summaryrefslogtreecommitdiffstats
path: root/private/os2/ldr/seldesc.inc
blob: 27d3996a2d088cc4f19bd97b6c2c308afe2c132a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
TABLE_MASK	EQU	004H 
RPL_MASK	EQU	003H 
RPL_CLR	EQU	0fffcH 
RPL_RING0	EQU	000H 
RPL_RING1	EQU	001H 
RPL_RING2	EQU	002H 
RPL_RING3	EQU	003H 
D_PRES	EQU	80H             
D_NOTPRES	EQU	0                
D_DPL0	EQU	0                
D_DPL1	EQU	20H             
D_DPL2	EQU	40H             
D_DPL3	EQU	60H             
D_PRIV	EQU	D_DPL3          
D_SEG	EQU	10H             
D_CTRL	EQU	0                
D_TSS_BUSY_BIT	EQU	2H              
D_GATE	EQU	4H              
D_32	EQU	8H              
D_TSS	EQU	1H              
D_LDT	EQU	2H              
D_TSS_BUSY	EQU	(D_TSS+D_TSS_BUSY_BIT) 
D_CALLGATE	EQU	(D_GATE+0 )      
D_TASKGATE	EQU	(D_GATE+1 )      
D_INTGATE	EQU	(D_GATE+2 )      
D_TRAPGATE	EQU	(D_GATE+3 )      
D_TSS32	EQU	(D_TSS+D_32)    
D_TSSBUSY32	EQU	(D_TSS_BUSY+D_32) 
D_CALLGATE32	EQU	(D_CALLGATE+D_32) 
D_INTGATE32	EQU	(D_INTGATE+D_32)    
D_TRAPGATE32	EQU	(D_TRAPGATE+D_32)   
D_TYPEMASK	EQU	0fH              
D_WCMASK	EQU	01fH             
D_MINGATE	EQU	D_CALLGATE       
D_MAXGATE	EQU	D_TRAPGATE32     
D_TSSBUSY_CLR	EQU	( NOT D_TSS_BUSY_BIT)
D_CODE	EQU	8H              
D_DATA	EQU	0                
D_CONFORM	EQU	4H              
D_EXPDN	EQU	4H              
D_RX	EQU	2H              
D_X	EQU	0                
D_W	EQU	2H              
D_R	EQU	0                
D_ACCESSED	EQU	1H              
D_GRAN4K	EQU	80H             
D_COPER32	EQU	40H             
D_DBIG	EQU	D_COPER32       
D_PAD	EQU	20H             
D_UVIRT	EQU	10H             
D_EXTLIMIT	EQU	0fH             
D_1MEG	EQU	100000H         
D_GRANMASK	EQU	0fffffH          
D_DATA0	EQU	(D_PRES+D_DPL0+D_SEG+D_DATA+D_W)     
D_CODE0	EQU	(D_PRES+D_DPL0+D_SEG+D_CODE+D_RX)    
D_TRAP0	EQU	(D_PRES+D_DPL0+D_CTRL+D_TRAPGATE)    
D_INT0	EQU	(D_PRES+D_DPL0+D_CTRL+D_INTGATE)     
D_TASK0	EQU	(D_PRES+D_DPL0+D_CTRL+D_TASKGATE)    
D_TSS0	EQU	(D_PRES+D_DPL0+D_CTRL+D_TSS)         
D_LDT0	EQU	(D_PRES+D_DPL0+D_CTRL+D_LDT)         
D_TRAP032	EQU	(D_PRES+D_DPL0+D_CTRL+D_TRAPGATE32) 
D_INT032	EQU	(D_PRES+D_DPL0+D_CTRL+D_INTGATE32)  
D_TSS032	EQU	(D_PRES+D_DPL0+D_CTRL+D_TSS32)      
D_DATA1	EQU	(D_PRES+D_DPL1+D_SEG+D_DATA+D_W)     
D_CODE1	EQU	(D_PRES+D_DPL1+D_SEG+D_CODE+D_RX)    
D_DATA2	EQU	(D_PRES+D_DPL2+D_SEG+D_DATA+D_W)     
D_CODE2	EQU	(D_PRES+D_DPL2+D_SEG+D_CODE+D_RX)    
D_DATA3	EQU	(D_PRES+D_DPL3+D_SEG+D_DATA+D_W)     
D_CODE3	EQU	(D_PRES+D_DPL3+D_SEG+D_CODE+D_RX)    
D_INT3	EQU	(D_PRES+D_DPL3+D_CTRL+D_INTGATE)     
D_TRAP3	EQU	(D_PRES+D_DPL3+D_CTRL+D_TRAPGATE)    
D_GATE3	EQU	(D_PRES+D_DPL3+D_CTRL+D_CALLGATE)    
D_INT332	EQU	(D_PRES+D_DPL3+D_CTRL+D_INTGATE32)  
D_GATE332	EQU	(D_PRES+D_DPL3+D_CTRL+D_CALLGATE32) 
D_TRAP332	EQU	(D_PRES+D_DPL3+D_CTRL+D_TRAPGATE32) 

desctab	STRUC
d_limit	DW	?
d_loaddr	DW	?
d_hiaddr	DB	?
d_access	DB	?
d_attr	DB	?
d_extaddr	DB	?
desctab	ENDS


desc32	STRUC
d32_low	DD	?
d32_high	DD	?
desc32	ENDS

d_flink	EQU	d_loaddr                
d_blink	EQU	d_limit                 

gate    STRUC
g_handler       DD      ?
g_parms         DB      ?
g_access        DB      ?
g_extoffset     DW      ?
gate    ENDS

g_lowoffset EQU     WORD PTR g_handler
g_sel       EQU     WORD PTR g_handler + 2



lidt_s	STRUC
lidt_limit	DW	?
lidt_base	DD	?
lidt_s	ENDS


tss_s	STRUC
tss_backlink	DW	?
tss_reservdbl	DW	?
tss_esp0	DD	?
tss_ss0	DW	?
tss_reservdss0	DW	?
tss_esp1	DD	?
tss_ss1	DW	?
tss_reservdss1	DW	?
tss_esp2	DD	?
tss_ss2	DW	?
tss_reservdss2	DW	?
tss_cr3	DD	?
tss_eip	DD	?
tss_eflags	DD	?
tss_eax	DD	?
tss_ecx	DD	?
tss_edx	DD	?
tss_ebx	DD	?
tss_esp	DD	?
tss_ebp	DD	?
tss_esi	DD	?
tss_edi	DD	?
tss_es	DW	?
tss_reservdes	DW	?
tss_cs	DW	?
tss_reservdcs	DW	?
tss_ss	DW	?
tss_reservdss	DW	?
tss_ds	DW	?
tss_reservdds	DW	?
tss_fs	DW	?
tss_reservdfs	DW	?
tss_gs	DW	?
tss_reservdgs	DW	?
tss_ldt	DW	?
tss_reservdldt	DW	?
tss_tflags	DW	?
tss_iomap	DW	?
tss_s	ENDS

TSS_DEBUGTRAP	EQU	001H     
tss_sp1         equ     word ptr tss_esp1
tss_sp2         equ     word ptr tss_esp2
tss_sp0         equ     word ptr tss_esp0
tss_ip          equ     word ptr tss_eip
tss_bx          equ     word ptr tss_ebx
tss_sp          equ     word ptr tss_esp
tss_flags       equ     word ptr tss_eflags
tss_cs0         equ     word ptr tss_cs