mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Merge pull request #1288 from lubinszARM:pr_ring0_6
PiperOrigin-RevId: 292369598
This commit is contained in:
@@ -88,14 +88,14 @@ const (
|
||||
El0Sync_undef
|
||||
El0Sync_dbg
|
||||
El0Sync_inv
|
||||
VirtualizationException
|
||||
_NR_INTERRUPTS
|
||||
)
|
||||
|
||||
// System call vectors.
|
||||
const (
|
||||
Syscall Vector = El0Sync_svc
|
||||
PageFault Vector = El0Sync_da
|
||||
Syscall Vector = El0Sync_svc
|
||||
PageFault Vector = El0Sync_da
|
||||
VirtualizationException Vector = El0Error
|
||||
)
|
||||
|
||||
// VirtualAddressBits returns the number bits available for virtual addresses.
|
||||
|
||||
@@ -601,7 +601,19 @@ TEXT ·El0_fiq(SB),NOSPLIT,$0
|
||||
B ·Shutdown(SB)
|
||||
|
||||
TEXT ·El0_error(SB),NOSPLIT,$0
|
||||
B ·Shutdown(SB)
|
||||
KERNEL_ENTRY_FROM_EL0
|
||||
WORD $0xd538d092 //MRS TPIDR_EL1, R18
|
||||
WORD $0xd538601a //MRS FAR_EL1, R26
|
||||
|
||||
MOVD R26, CPU_FAULT_ADDR(RSV_REG)
|
||||
|
||||
MOVD $1, R3
|
||||
MOVD R3, CPU_ERROR_TYPE(RSV_REG) // Set error type to user.
|
||||
|
||||
MOVD $VirtualizationException, R3
|
||||
MOVD R3, CPU_VECTOR_CODE(RSV_REG)
|
||||
|
||||
B ·Halt(SB)
|
||||
|
||||
TEXT ·El0_sync_invalid(SB),NOSPLIT,$0
|
||||
B ·Shutdown(SB)
|
||||
|
||||
@@ -85,6 +85,7 @@ func Emit(w io.Writer) {
|
||||
|
||||
fmt.Fprintf(w, "#define PageFault 0x%02x\n", PageFault)
|
||||
fmt.Fprintf(w, "#define Syscall 0x%02x\n", Syscall)
|
||||
fmt.Fprintf(w, "#define VirtualizationException 0x%02x\n", VirtualizationException)
|
||||
|
||||
p := &syscall.PtraceRegs{}
|
||||
fmt.Fprintf(w, "\n// Ptrace registers.\n")
|
||||
|
||||
Reference in New Issue
Block a user