StupidOS/kernel/sys/i386/registers.inc

127 lines
3.9 KiB
PHP

;; File: registers.inc
;; =========================================================================
;; Control Registers
;; =========================================================================
;; Defines: CR0
;; CR0_PE - Protected Mode Enable
;; CR0_MP - Monitor co-processor
;; CR0_EM - x87 FPU Emulation
;; CR0_TS - Task switched
;; CR0_ET - Extension type
;; CR0_NE - Numeric error
;; CR0_WP - Write protect
;; CR0_AM - Alignment mask
;; CR0_NW - Not-write through
;; CR0_CD - Cache disable
;; CR0_PG - Paging
CR0_PE equ 1 << 0
CR0_MP equ 1 << 1
CR0_EM equ 1 << 2
CR0_TS equ 1 << 3
CR0_ET equ 1 << 4
CR0_NE equ 1 << 5
CR0_WP equ 1 << 16
CR0_AM equ 1 << 18
CR0_NW equ 1 << 29
CR0_CD equ 1 << 30
CR0_PG equ 1 << 31
;; Defines: CR3
;; CR3_PWT - Page-level Write-Through
;; CR3_PCD - Page-level Cache Disable
CR3_PWT equ 1 << 3
CR3_PCD equ 1 << 4
;; Defines: CR4
;; CR4_VME - Virtual 8086 Mode Extensions
;; CR4_PVI - Protected-mode Virtual Interrupts
;; CR4_TSD - Time Stamp Disable
;; CR4_DE - Debugging Extensions
;; CR4_PSE - Page Size Extension
;; CR4_PAE - Physical Address Extension
;; CR4_MCE - Machine Check Exception
;; CR4_PGE - Page Global Enabled
;; CR4_PCE - Performance-Monitoring Counter enable
;; CR4_OSFXSR - Operating system support for FXSAVE and FXRSTOR
;; instructions
;; CR4_OSXMMEXCPT - Operating System Support for Unmasked SIMD
;; Floating-Point Excepions
;; CR4_UMIP - User-Mode Instruction Prevention
;; CR4_VMXE - Virtual Machine Extensions Enable
;; CR4_SMXE - Safer Mode Extensions Enable
;; CR4_FSGSBASE -
;; CR4_PCIDE - PCID Enable
;; CR4_OSXSSAVE - XSAVE and Processor Extended States Enable
;; CR4_SMEP - Supervisor Mode Execution Protection Enable
;; CR4_SMAP - Supervisor Mode Access Prevention Enable
;; CR4_PKE - Protection Key Enable
;; CR4_CET - Control-flow Enforcement Technology
;; CR4_PKS - Enable Protection Keys for Supervisor-Mode Pages
CR4_VME equ 1 << 0
CR4_PVI equ 1 << 1
CR4_TSD equ 1 << 2
CR4_DE equ 1 << 3
CR4_PSE equ 1 << 4
CR4_PAE equ 1 << 5
CR4_MCE equ 1 << 6
CR4_PGE equ 1 << 7
CR4_PCE equ 1 << 8
CR4_OSDXSR equ 1 << 9
CR4_OSXMMEXCPT equ 1 << 10
CR4_UMIP equ 1 << 11
CR4_VMXE equ 1 << 13
CR4_SMXE equ 1 << 14
CR4_FSGSBASE equ 1 << 16
CR4_PCIDE equ 1 << 17
CR4_OSXSAVE equ 1 << 18
CR4_SMEP equ 1 << 20
CR4_SMAP equ 1 << 21
CR4_PKE equ 1 << 22
CR4_CET equ 1 << 23
CR4_PKS equ 1 << 24
;; =========================================================================
;; eflags
;; =========================================================================
;; Defines: EFLAGS
;; EFLAGS_CF - Carry flag
;; EFLAGS_PF - Parity flag
;; EFLAGS_AF - Auxiliary flag
;; EFLAGS_ZF - Zero flag
;; EFLAGS_SF - Sign flag
;; EFLAGS_TF - Trap flag
;; EFLAGS_IF - Interrupt enable flag
;; EFLAGS_DF - Direction flag
;; EFLAGS_OF - Overflow flag
;; EFLAGS_IOPL1 - I/O privilege flag
;; EFLAGS_IOPL2 - I/O privilege flag
;; EFLAGS_NT - Nested task flag
;; EFLAGS_RF - Resume flag
;; EFLAGS_VM - Virtual 8086 mode flag
;; EFLAGS_AC - Alignment check
;; EFLAGS_VIF - Virtual Interrupt flag
;; EFLAGS_VIP - Virtual Interrupt pending
;; EFLAGS_ID - CPUID instruction available
EFLAGS_CF equ 1 << 0
EFLAGS_PF equ 1 << 2
EFLAGS_AF equ 1 << 4
EFLAGS_ZF equ 1 << 6
EFLAGS_SF equ 1 << 7
EFLAGS_TF equ 1 << 8
EFLAGS_IF equ 1 << 9
EFLAGS_DF equ 1 << 10
EFLAGS_OF equ 1 << 11
EFLAGS_IOPL1 equ 1 << 12
EFLAGS_IOPL2 equ 1 << 13
EFLAGS_NT equ 1 << 14
EFLAGS_RF equ 1 << 16
EFLAGS_VM equ 1 << 17
EFLAGS_AC equ 1 << 18
EFLAGS_VIF equ 1 << 19
EFLAGS_VIP equ 1 << 20
EFLAGS_ID equ 1 << 21