-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathkernel.inc
235 lines (198 loc) · 6.18 KB
/
kernel.inc
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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
;***************************************************************************
;
; Copyright (c) 1997, 1998 Timpanogas Research Group, Inc. All Rights
; Reserved.
;
; AUTHOR : Jeff V. Merkey
; FILE : KERNEL.INC
; DESCRIP : Kernel equates and structures for MANOS v1.0
; DATE : November 29, 1997
;
;
;**************************************************************************/
include version.inc
LWP_INACTIVE EQU 0
LWP_ACTIVE EQU 1
PS_HALT EQU 0
PS_ACTIVE EQU 1
PS_SLEEP EQU 2
PS_SYNC EQU 3
if (IA32_OPCODE)
; 124 bytes total size numeric register context
NUMERIC_REGISTER_CONTEXT struc
sig0 dw ?
sig1 dw ?
sig2 dw ?
sig3 dw ?
exp_sign dw ?
NUMERIC_REGISTER_CONTEXT ends
NUMERIC_FRAME struc
control dd ?
status dd ?
tag dd ?
eip dd ?
cs dd ?
dataptr dd ?
datasel dd ?
num1 NUMERIC_REGISTER_CONTEXT <?>
num2 NUMERIC_REGISTER_CONTEXT <?>
num3 NUMERIC_REGISTER_CONTEXT <?>
num4 NUMERIC_REGISTER_CONTEXT <?>
num5 NUMERIC_REGISTER_CONTEXT <?>
num6 NUMERIC_REGISTER_CONTEXT <?>
num7 NUMERIC_REGISTER_CONTEXT <?>
num8 NUMERIC_REGISTER_CONTEXT <?>
pad dd 5 dup (?)
NUMERIC_FRAME ends
; 104 bytes total size register context
CONTEXT_FRAME struc
cBackLink dw ?
cTSSReserved dw ?
cESP0 dd ?
cSS0 dw ?
cSS0res dw ?
cESP1 dd ?
cSS1 dw ?
cSS1res dw ?
cESP2 dd ?
cSS2 dw ?
cSS2res dw ?
cCR3 dd ?
cEIP dd ?
cSystemFlags dd ?
cEAX dd ?
cECX dd ?
cEDX dd ?
cEBX dd ?
cESP dd ?
cEBP dd ?
cESI dd ?
cEDI dd ?
cES dw 2 dup (?)
cCS dw 2 dup (?)
cSS dw 2 dup (?)
cDS dw 2 dup (?)
cFS dw 2 dup (?)
cGS dw 2 dup (?)
cLDT dw 2 dup (?)
cIOPermissMap dw 2 dup (?)
cPad dd 6 dup (?)
CONTEXT_FRAME ends
endif
SEMAPHORE struc
SEMA_next dd ?
SEMA_prior dd ?
SEMA_kernelNext dd ?
SEMA_kernelPrior dd ?
sema_value dd ?
sema_head dd ?
sema_tail dd ?
sema_mutex dd ?
sema_waiters dd ?
sema_signature dd ?
sema_timerID dd ?
SEMAPHORE ends
PROCESS_CONTROL struc
ps_next dd ?
ps_prior dd ?
kernelNext dd ?
kernelPrior dd ?
syncNext dd ?
syncPrior dd ?
processID dd ?
typeID dd ?
stackPointer dd ?
stackLimit dd ?
stackEnd dd ?
processSignature dd ?
refCount dd ?
threadMutex dd ?
processorBinding dd ?
realTimePriority dd ?
inheritedPriority dd ?
setMemberPriority dd ?
processName db 64 dup (?)
startAddress dd ?
startParm dd ?
ps_utilizationCount dd ?
threadState dd ?
threadType dd ?
threadFlags dd ?
codeSegment dd ?
threadDataArea dd 10 dup (?)
lastProcessor dd ?
resourceFlag dd ?
threadSemaphore dd ?
threadUtilization dd ?
delayNext dd ?
delayPrior dd ?
delaySignature dd ?
delayWaitTime dd ?
delayCurrTime dd ?
delayParameter dd ?
delayFunction dd ?
delayFlags dd ?
delayStamp dd ?
keyBuffer dd ?
typeAheadCount dd ?
threadSubUtil dd ?
threadPreempt dd ?
bindswFlags dd ?
ProcessContext CONTEXT_FRAME <?>
NumericContext NUMERIC_FRAME <?>
tModuleContext dd ?
tAddressSpace dd ?
thread_sema SEMAPHORE <?>
syncObject dd ?
syncState dd ?
syncFlag dd ?
PROCESS_CONTROL ends
LIGHT_WEIGHT_PROCESS struc
lwp_next dd ?
lwp_prior dd ?
lwp_procedureAddress dd ?
lwp_State dd ?
lwp_Delay dd ?
lwp_Flags dd ?
lwp_Argument dd ?
LIGHT_WEIGHT_PROCESS ends
PROCESSOR_QUEUE struc
idle_process dd ?
running_process dd ?
local_queue_head dd ?
local_queue_tail dd ?
bind_queue_head dd ?
bind_queue_tail dd ?
bind_queue_mutex dd ?
lwp_queue_head dd ?
lwp_queue_tail dd ?
lwp_bind_queue_head dd ?
lwp_bind_queue_tail dd ?
lwp_bind_queue_mutex dd ?
lsoft_int_head dd ?
lsoft_int_tail dd ?
lsoft_int_mutex dd ?
lfast_lwp_head dd ?
lfast_lwp_tail dd ?
lfast_lwp_mutex dd ?
lwp_worker_queue_head dd ?
lwp_worker_queue_tail dd ?
local_queue_count dd ?
bind_queue_count dd ?
lwp_queue_count dd ?
lwpExecCount dd ?
idleCount dd ?
utilizationCount dd ?
sampleCount dd ?
processorUtilization dd ?
eligibleCount dd ?
activeCount dd ?
lwpProcessCounter dd ?
sleepDisallowed dd ?
processorNumber dd ?
bindsw_queue_head dd ?
bindsw_queue_tail dd ?
bindsw_queue_mutex dd ?
ModuleContext dd ?
AddressSpace dd ?
PROCESSOR_QUEUE ends