FreeBSD/Linux Kernel Cross Reference
sys/kernel/sconst.h
1 ! Miscellaneous constants used in assembler code.
2 W = _WORD_SIZE ! Machine word size.
3
4 ! Offsets in struct proc. They MUST match proc.h.
5 P_STACKBASE = 0
6 #if _WORD_SIZE == 2
7 ESREG = P_STACKBASE
8 #else
9 GSREG = P_STACKBASE
10 FSREG = GSREG + 2 ! 386 introduces FS and GS segments
11 ESREG = FSREG + 2
12 #endif
13 DSREG = ESREG + 2
14 DIREG = DSREG + 2
15 SIREG = DIREG + W
16 BPREG = SIREG + W
17 STREG = BPREG + W ! hole for another SP
18 BXREG = STREG + W
19 DXREG = BXREG + W
20 CXREG = DXREG + W
21 AXREG = CXREG + W
22 RETADR = AXREG + W ! return address for save() call
23 PCREG = RETADR + W
24 CSREG = PCREG + W
25 PSWREG = CSREG + W
26 SPREG = PSWREG + W
27 SSREG = SPREG + W
28 P_STACKTOP = SSREG + W
29 P_LDT_SEL = P_STACKTOP
30 P_LDT = P_LDT_SEL + W
31
32 #if _WORD_SIZE == 2
33 Msize = 12 ! size of a message in 16-bit words
34 #else
35 Msize = 9 ! size of a message in 32-bit words
36 #endif
Cache object: dfd709060b72e8062ba38d157417f110
|