Page MenuHomedesp's stash

common.inc
No OneTemporary

common.inc

;
; Constants for system irql and IDT vector conversion.
;
RPL_MASK equ 00003H
;
; Gdt Descriptor Offset Definitions.
;
KGDT64_R3_DATA equ 00028H
KGDT64_R3_CMTEB equ 00050H
;
; Define constants for system IRQL and IDT vector conversion.
;
MODE_MASK equ 00001H
;
; Define TRAP_FRAME64 field offsets.
;
TrErrorCode equ 00058H
TrRip equ 00060H
TrSegCs equ 00068H
TrEFlags equ 00070H
TrRsp equ 00078H
TrSegSs equ 00080H
;
; Define special macros to align trap entry points on cache line boundaries.
;
; N.B. This will only work if all functions in this module are declared with
; these macros.
;
TRAP_ENTRY macro
local KernelMode
push rbp
push rsi
push rdi
push rbx
push r11
push r10
push r9
push r8
push rdx
push rcx
push rax
test byte ptr TrSegCs[rsp], MODE_MASK
jz KernelMode
swapgs
KernelMode:
mov rbp, rsp
endm
;
; TRAP_END macro.
;
TRAP_END macro
local KernelMode
test byte ptr TrSegCs[rsp], MODE_MASK
jz KernelMode
swapgs
KernelMode:
pop rax
pop rcx
pop rdx
pop r8
pop r9
pop r10
pop r11
pop rbx
pop rdi
pop rsi
pop rbp
endm

File Metadata

Mime Type
text/plain
Expires
Tue, Mar 3, 4:03 AM (2 h, 59 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
25/e5/526c6a3c848018d5339a30203a04

Event Timeline