71 lines
2.1 KiB
PHP
71 lines
2.1 KiB
PHP
|
;; File: cpu.inc
|
||
|
|
||
|
;; Structure: idt_gate
|
||
|
;; .offset_low - TODO
|
||
|
;; .selector - TODO
|
||
|
;; .zero - TODO
|
||
|
;; .attributes - TODO
|
||
|
;; .offset_high - TODO
|
||
|
;;
|
||
|
struc idt_gate
|
||
|
.offset_low: resw 1
|
||
|
.selector: resw 1
|
||
|
.zero: resb 1
|
||
|
.attributes: resb 1
|
||
|
.offset_high: resw 1
|
||
|
endstruc
|
||
|
|
||
|
;; About: Gates
|
||
|
;; - Task Gate
|
||
|
;; > 31 23 15 7 0
|
||
|
;; > +----------------|----------------+-----------------|-----------------+
|
||
|
;; > | (NOT USED) | P DPL 0 0 1 0 1 (NOT USED) |
|
||
|
;; > +----------------|----------------+-----------------|-----------------+
|
||
|
;; > | SELECTOR | (NOT USED) |
|
||
|
;; > +----------------|----------------+-----------------|-----------------+
|
||
|
;;
|
||
|
;; - Interrupt Gate
|
||
|
;; > 31 23 15 7 0
|
||
|
;; > +----------------|----------------+-----------------|-----------------+
|
||
|
;; > | OFFSET 31..16 | P DPL 0 1 1 1 0 0 0 0 0 0 0 0 0 |
|
||
|
;; > +----------------|----------------+-----------------|-----------------+
|
||
|
;; > | SELECTOR | OFFSET 15..0 |
|
||
|
;; > +--------------- |----------------+-----------------|-----------------+
|
||
|
;;
|
||
|
;; - Trap Gate
|
||
|
;; > 31 23 15 7 0
|
||
|
;; > +----------------|----------------+-----------------|-----------------+
|
||
|
;; > | OFFSET 31..16 | P DPL 0 1 1 1 1 0 0 0 0 0 0 0 0 |
|
||
|
;; > +----------------|----------------+-----------------|-----------------+
|
||
|
;; > | SELECTOR | OFFSET 15..0 |
|
||
|
;; > +--------------- |----------------+-----------------|-----------------+
|
||
|
|
||
|
struc intframe
|
||
|
;; registers
|
||
|
.edi: resd 1
|
||
|
.esi: resd 1
|
||
|
.ebp: resd 1
|
||
|
.esp: resd 1
|
||
|
.ebx: resd 1
|
||
|
.edx: resd 1
|
||
|
.ecx: resd 1
|
||
|
.eax: resd 1
|
||
|
|
||
|
;;
|
||
|
.gs: resd 1
|
||
|
.fs: resd 1
|
||
|
.es: resd 1
|
||
|
.ds: resd 1
|
||
|
.intno: resd 1
|
||
|
|
||
|
;; by x86 hardware
|
||
|
.err: resd 1
|
||
|
.eip: resd 1
|
||
|
.cs: resd 1
|
||
|
.eflags: resd 1
|
||
|
|
||
|
;; crossring
|
||
|
.useresp: resd 1
|
||
|
.ss: resd 1
|
||
|
endstruc
|