2 * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
4 * @APPLE_LICENSE_HEADER_START@
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
20 * @APPLE_LICENSE_HEADER_END@
28 * genassym.c is used to produce an
29 * assembly file which, intermingled with unuseful assembly code,
30 * has all the necessary definitions emitted. This assembly file is
31 * then postprocessed with sed to extract only these definitions
32 * and thus the final assyms.s is created.
34 * This convoluted means is necessary since the structure alignment
35 * and packing may be different between the host machine and the
36 * target so we are forced into using the cross compiler to generate
37 * the values, but we cannot run anything on the target machine.
44 #include <kern/task.h>
45 #include <kern/thread.h>
46 #include <kern/thread_act.h>
47 #include <kern/host.h>
48 #include <kern/lock.h>
49 #include <kern/processor.h>
50 #include <ppc/exception.h>
51 #include <ppc/thread_act.h>
52 #include <ppc/misc_protos.h>
53 #include <kern/syscall_sw.h>
55 #include <ppc/low_trace.h>
56 #include <ppc/PseudoKernel.h>
57 #include <ppc/mappings.h>
58 #include <ppc/Firmware.h>
59 #include <ppc/low_trace.h>
60 #include <vm/vm_map.h>
63 #include <ppc/pmap_internals.h>
64 #include <ppc/Diagnostics.h>
65 #include <ppc/POWERMAC/mp/MPPlugIn.h>
66 #include <pexpert/pexpert.h>
67 #include <mach/machine.h>
68 #include <ppc/vmachmon.h>
69 #include <ppc/PPCcalls.h>
71 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE)0)->MEMBER)
73 #define DECLARE(SYM,VAL) \
74 __asm("#DEFINITION##define\t" SYM "\t%0" : : "n" ((u_int)(VAL)))
76 int main(int argc
, char *argv
[])
78 /* Process Control Block */
80 DECLARE("PCB_FLOAT_STATE", offsetof(struct pcb
*, fs
));
82 /* Floating point state */
84 DECLARE("PCB_FS_F0", offsetof(struct pcb
*, fs
.fpregs
[0]));
85 DECLARE("PCB_FS_F1", offsetof(struct pcb
*, fs
.fpregs
[1]));
86 DECLARE("PCB_FS_F2", offsetof(struct pcb
*, fs
.fpregs
[2]));
87 DECLARE("PCB_FS_F3", offsetof(struct pcb
*, fs
.fpregs
[3]));
88 DECLARE("PCB_FS_F4", offsetof(struct pcb
*, fs
.fpregs
[4]));
89 DECLARE("PCB_FS_F5", offsetof(struct pcb
*, fs
.fpregs
[5]));
90 DECLARE("PCB_FS_F6", offsetof(struct pcb
*, fs
.fpregs
[6]));
91 DECLARE("PCB_FS_F7", offsetof(struct pcb
*, fs
.fpregs
[7]));
92 DECLARE("PCB_FS_F8", offsetof(struct pcb
*, fs
.fpregs
[8]));
93 DECLARE("PCB_FS_F9", offsetof(struct pcb
*, fs
.fpregs
[9]));
94 DECLARE("PCB_FS_F10", offsetof(struct pcb
*, fs
.fpregs
[10]));
95 DECLARE("PCB_FS_F11", offsetof(struct pcb
*, fs
.fpregs
[11]));
96 DECLARE("PCB_FS_F12", offsetof(struct pcb
*, fs
.fpregs
[12]));
97 DECLARE("PCB_FS_F13", offsetof(struct pcb
*, fs
.fpregs
[13]));
98 DECLARE("PCB_FS_F14", offsetof(struct pcb
*, fs
.fpregs
[14]));
99 DECLARE("PCB_FS_F15", offsetof(struct pcb
*, fs
.fpregs
[15]));
100 DECLARE("PCB_FS_F16", offsetof(struct pcb
*, fs
.fpregs
[16]));
101 DECLARE("PCB_FS_F17", offsetof(struct pcb
*, fs
.fpregs
[17]));
102 DECLARE("PCB_FS_F18", offsetof(struct pcb
*, fs
.fpregs
[18]));
103 DECLARE("PCB_FS_F19", offsetof(struct pcb
*, fs
.fpregs
[19]));
104 DECLARE("PCB_FS_F20", offsetof(struct pcb
*, fs
.fpregs
[20]));
105 DECLARE("PCB_FS_F21", offsetof(struct pcb
*, fs
.fpregs
[21]));
106 DECLARE("PCB_FS_F22", offsetof(struct pcb
*, fs
.fpregs
[22]));
107 DECLARE("PCB_FS_F23", offsetof(struct pcb
*, fs
.fpregs
[23]));
108 DECLARE("PCB_FS_F24", offsetof(struct pcb
*, fs
.fpregs
[24]));
109 DECLARE("PCB_FS_F25", offsetof(struct pcb
*, fs
.fpregs
[25]));
110 DECLARE("PCB_FS_F26", offsetof(struct pcb
*, fs
.fpregs
[26]));
111 DECLARE("PCB_FS_F27", offsetof(struct pcb
*, fs
.fpregs
[27]));
112 DECLARE("PCB_FS_F28", offsetof(struct pcb
*, fs
.fpregs
[28]));
113 DECLARE("PCB_FS_F29", offsetof(struct pcb
*, fs
.fpregs
[29]));
114 DECLARE("PCB_FS_F30", offsetof(struct pcb
*, fs
.fpregs
[30]));
115 DECLARE("PCB_FS_F31", offsetof(struct pcb
*, fs
.fpregs
[31]));
116 DECLARE("PCB_FS_FPSCR", offsetof(struct pcb
*, fs
.fpscr_pad
));
118 DECLARE("PCB_SAVED_STATE",offsetof(struct pcb
*, ss
));
119 DECLARE("ACT_MACT_KSP", offsetof(struct thread_activation
*, mact
.ksp
));
120 DECLARE("ACT_MACT_BEDA", offsetof(struct thread_activation
*, mact
.bbDescAddr
));
121 DECLARE("ACT_MACT_BTS", offsetof(struct thread_activation
*, mact
.bbTableStart
));
122 DECLARE("ACT_MACT_BTE", offsetof(struct thread_activation
*, mact
.bbTaskEnv
));
123 DECLARE("ACT_MACT_SPF", offsetof(struct thread_activation
*, mact
.specFlags
));
124 DECLARE("qactTimer", offsetof(struct thread_activation
*, mact
.qactTimer
));
125 DECLARE("floatUsed", floatUsed
);
126 DECLARE("vectorUsed", vectorUsed
);
127 DECLARE("bbNoMachSCbit",bbNoMachSCbit
);
128 DECLARE("runningVM", runningVM
);
129 DECLARE("floatCng", floatCng
);
130 DECLARE("vectorCng", vectorCng
);
131 DECLARE("floatCngbit", floatCngbit
);
132 DECLARE("vectorCngbit", vectorCngbit
);
133 DECLARE("bbThreadbit", bbThreadbit
);
134 DECLARE("bbPreemptivebit", bbPreemptivebit
);
135 DECLARE("bbThread", bbThread
);
136 DECLARE("bbPreemptive", bbPreemptive
);
137 DECLARE("fvChkb", fvChkb
);
138 DECLARE("fvChk", fvChk
);
139 DECLARE("userProtKeybit", userProtKeybit
);
140 DECLARE("userProtKey", userProtKey
);
142 DECLARE("PCB_SIZE", sizeof(struct pcb
));
144 /* Save State Structure */
145 DECLARE("SS_R0", offsetof(struct ppc_saved_state
*, r0
));
146 DECLARE("SS_R1", offsetof(struct ppc_saved_state
*, r1
));
147 DECLARE("SS_R2", offsetof(struct ppc_saved_state
*, r2
));
148 DECLARE("SS_R3", offsetof(struct ppc_saved_state
*, r3
));
149 DECLARE("SS_R4", offsetof(struct ppc_saved_state
*, r4
));
150 DECLARE("SS_R5", offsetof(struct ppc_saved_state
*, r5
));
151 DECLARE("SS_R6", offsetof(struct ppc_saved_state
*, r6
));
152 DECLARE("SS_R7", offsetof(struct ppc_saved_state
*, r7
));
153 DECLARE("SS_R8", offsetof(struct ppc_saved_state
*, r8
));
154 DECLARE("SS_R9", offsetof(struct ppc_saved_state
*, r9
));
155 DECLARE("SS_R10", offsetof(struct ppc_saved_state
*, r10
));
156 DECLARE("SS_R11", offsetof(struct ppc_saved_state
*, r11
));
157 DECLARE("SS_R12", offsetof(struct ppc_saved_state
*, r12
));
158 DECLARE("SS_R13", offsetof(struct ppc_saved_state
*, r13
));
159 DECLARE("SS_R14", offsetof(struct ppc_saved_state
*, r14
));
160 DECLARE("SS_R15", offsetof(struct ppc_saved_state
*, r15
));
161 DECLARE("SS_R16", offsetof(struct ppc_saved_state
*, r16
));
162 DECLARE("SS_R17", offsetof(struct ppc_saved_state
*, r17
));
163 DECLARE("SS_R18", offsetof(struct ppc_saved_state
*, r18
));
164 DECLARE("SS_R19", offsetof(struct ppc_saved_state
*, r19
));
165 DECLARE("SS_R20", offsetof(struct ppc_saved_state
*, r20
));
166 DECLARE("SS_R21", offsetof(struct ppc_saved_state
*, r21
));
167 DECLARE("SS_R22", offsetof(struct ppc_saved_state
*, r22
));
168 DECLARE("SS_R23", offsetof(struct ppc_saved_state
*, r23
));
169 DECLARE("SS_R24", offsetof(struct ppc_saved_state
*, r24
));
170 DECLARE("SS_R25", offsetof(struct ppc_saved_state
*, r25
));
171 DECLARE("SS_R26", offsetof(struct ppc_saved_state
*, r26
));
172 DECLARE("SS_R27", offsetof(struct ppc_saved_state
*, r27
));
173 DECLARE("SS_R28", offsetof(struct ppc_saved_state
*, r28
));
174 DECLARE("SS_R29", offsetof(struct ppc_saved_state
*, r29
));
175 DECLARE("SS_R30", offsetof(struct ppc_saved_state
*, r30
));
176 DECLARE("SS_R31", offsetof(struct ppc_saved_state
*, r31
));
177 DECLARE("SS_CR", offsetof(struct ppc_saved_state
*, cr
));
178 DECLARE("SS_XER", offsetof(struct ppc_saved_state
*, xer
));
179 DECLARE("SS_LR", offsetof(struct ppc_saved_state
*, lr
));
180 DECLARE("SS_CTR", offsetof(struct ppc_saved_state
*, ctr
));
181 DECLARE("SS_SRR0", offsetof(struct ppc_saved_state
*, srr0
));
182 DECLARE("SS_SRR1", offsetof(struct ppc_saved_state
*, srr1
));
183 DECLARE("SS_MQ", offsetof(struct ppc_saved_state
*, mq
));
184 DECLARE("SS_SR_COPYIN", offsetof(struct ppc_saved_state
*, sr_copyin
));
185 DECLARE("SS_SIZE", sizeof(struct ppc_saved_state
));
187 /* Per Proc info structure */
188 DECLARE("PP_CPU_NUMBER", offsetof(struct per_proc_info
*, cpu_number
));
189 DECLARE("PP_CPU_FLAGS", offsetof(struct per_proc_info
*, cpu_flags
));
190 DECLARE("PP_ISTACKPTR", offsetof(struct per_proc_info
*, istackptr
));
191 DECLARE("PP_INTSTACK_TOP_SS", offsetof(struct per_proc_info
*, intstack_top_ss
));
192 DECLARE("PP_DEBSTACKPTR", offsetof(struct per_proc_info
*, debstackptr
));
193 DECLARE("PP_DEBSTACK_TOP_SS", offsetof(struct per_proc_info
*, debstack_top_ss
));
194 DECLARE("PP_TEMPWORK1", offsetof(struct per_proc_info
*, tempwork1
));
195 DECLARE("PP_USERSPACE", offsetof(struct per_proc_info
*, userspace
));
196 DECLARE("PP_USERPMAP", offsetof(struct per_proc_info
*, userpmap
));
197 DECLARE("PP_LASTPMAP", offsetof(struct per_proc_info
*, Lastpmap
));
198 DECLARE("savedSave", offsetof(struct per_proc_info
*, savedSave
));
200 DECLARE("PP_SAVE_EXCEPTION_TYPE", offsetof(struct per_proc_info
*, save_exception_type
));
201 DECLARE("PP_CPU_DATA", offsetof(struct per_proc_info
*, cpu_data
));
202 DECLARE("PP_ACTIVE_KLOADED", offsetof(struct per_proc_info
*, active_kloaded
));
203 DECLARE("PP_ACTIVE_STACKS", offsetof(struct per_proc_info
*, active_stacks
));
204 DECLARE("PP_NEED_AST", offsetof(struct per_proc_info
*, need_ast
));
205 DECLARE("PP_FPU_THREAD", offsetof(struct per_proc_info
*, FPU_thread
));
206 DECLARE("FPU_vmmCtx", offsetof(struct per_proc_info
*, FPU_vmmCtx
));
207 DECLARE("PP_VMX_THREAD", offsetof(struct per_proc_info
*, VMX_thread
));
208 DECLARE("VMX_vmmCtx", offsetof(struct per_proc_info
*, VMX_vmmCtx
));
209 DECLARE("PP_QUICKFRET", offsetof(struct per_proc_info
*, quickfret
));
210 DECLARE("PP_INTS_ENABLED", offsetof(struct per_proc_info
*, interrupts_enabled
));
211 DECLARE("UAW", offsetof(struct per_proc_info
*, Uassist
));
212 DECLARE("ppbbTaskEnv", offsetof(struct per_proc_info
*, ppbbTaskEnv
));
213 DECLARE("liveVRS", offsetof(struct per_proc_info
*, liveVRSave
));
214 DECLARE("liveFPSCR", offsetof(struct per_proc_info
*, liveFPSCR
));
215 DECLARE("spcFlags", offsetof(struct per_proc_info
*, spcFlags
));
216 DECLARE("spcTRc", offsetof(struct per_proc_info
*, spcTRc
));
217 DECLARE("spcTRp", offsetof(struct per_proc_info
*, spcTRp
));
218 DECLARE("ruptStamp", offsetof(struct per_proc_info
*, ruptStamp
));
219 DECLARE("pfAvailable", offsetof(struct per_proc_info
*, pf
.Available
));
220 DECLARE("pfFloat", pfFloat
);
221 DECLARE("pfFloatb", pfFloatb
);
222 DECLARE("pfAltivec", pfAltivec
);
223 DECLARE("pfAltivecb", pfAltivecb
);
224 DECLARE("pfAvJava", pfAvJava
);
225 DECLARE("pfAvJavab", pfAvJavab
);
226 DECLARE("pfSMPcap", pfSMPcap
);
227 DECLARE("pfSMPcapb", pfSMPcapb
);
228 DECLARE("pfCanSleep", pfCanSleep
);
229 DECLARE("pfCanSleepb", pfCanSleepb
);
230 DECLARE("pfCanNap", pfCanNap
);
231 DECLARE("pfCanNapb", pfCanNapb
);
232 DECLARE("pfCanDoze", pfCanDoze
);
233 DECLARE("pfCanDozeb", pfCanDozeb
);
234 DECLARE("pfCanDoze", pfCanDoze
);
235 DECLARE("pfCanDozeb", pfCanDozeb
);
236 DECLARE("pfThermal", pfThermal
);
237 DECLARE("pfThermalb", pfThermalb
);
238 DECLARE("pfThermInt", pfThermInt
);
239 DECLARE("pfThermIntb", pfThermIntb
);
240 DECLARE("pfWillNap", pfWillNap
);
241 DECLARE("pfWillNapb", pfWillNapb
);
242 DECLARE("pfNoMSRir", pfNoMSRir
);
243 DECLARE("pfNoMSRirb", pfNoMSRirb
);
244 DECLARE("pfLClck", pfLClck
);
245 DECLARE("pfLClckb", pfLClckb
);
246 DECLARE("pfL3pdet", pfL3pdet
);
247 DECLARE("pfL3pdetb", pfL3pdetb
);
248 DECLARE("pfL1i", pfL1i
);
249 DECLARE("pfL1ib", pfL1ib
);
250 DECLARE("pfL1d", pfL1d
);
251 DECLARE("pfL1db", pfL1db
);
252 DECLARE("pfL1fa", pfL1fa
);
253 DECLARE("pfL1fab", pfL1fab
);
254 DECLARE("pfL2", pfL2
);
255 DECLARE("pfL2b", pfL2b
);
256 DECLARE("pfL2fa", pfL2fa
);
257 DECLARE("pfL2fab", pfL2fab
);
258 DECLARE("pfL2i", pfL2i
);
259 DECLARE("pfL2ib", pfL2ib
);
260 DECLARE("pfL3", pfL3
);
261 DECLARE("pfL3b", pfL3b
);
262 DECLARE("pfL3fa", pfL3fa
);
263 DECLARE("pfL3fab", pfL3fab
);
264 DECLARE("pfValid", pfValid
);
265 DECLARE("pfValidb", pfValidb
);
266 DECLARE("pfrptdProc", offsetof(struct per_proc_info
*, pf
.rptdProc
));
267 DECLARE("pflineSize", offsetof(struct per_proc_info
*, pf
.lineSize
));
268 DECLARE("pfl1iSize", offsetof(struct per_proc_info
*, pf
.l1iSize
));
269 DECLARE("pfl1dSize", offsetof(struct per_proc_info
*, pf
.l1dSize
));
270 DECLARE("pfl2cr", offsetof(struct per_proc_info
*, pf
.l2cr
));
271 DECLARE("pfl2Size", offsetof(struct per_proc_info
*, pf
.l2Size
));
272 DECLARE("pfl3cr", offsetof(struct per_proc_info
*, pf
.l3cr
));
273 DECLARE("pfl3Size", offsetof(struct per_proc_info
*, pf
.l3Size
));
274 DECLARE("pfHID0", offsetof(struct per_proc_info
*, pf
.pfHID0
));
275 DECLARE("pfHID1", offsetof(struct per_proc_info
*, pf
.pfHID1
));
276 DECLARE("pfHID2", offsetof(struct per_proc_info
*, pf
.pfHID2
));
277 DECLARE("pfHID3", offsetof(struct per_proc_info
*, pf
.pfHID3
));
278 DECLARE("pfMSSCR0", offsetof(struct per_proc_info
*, pf
.pfMSSCR0
));
279 DECLARE("pfMSSCR1", offsetof(struct per_proc_info
*, pf
.pfMSSCR1
));
280 DECLARE("pfICTRL", offsetof(struct per_proc_info
*, pf
.pfICTRL
));
281 DECLARE("pfLDSTCR", offsetof(struct per_proc_info
*, pf
.pfLDSTCR
));
282 DECLARE("pfLDSTDB", offsetof(struct per_proc_info
*, pf
.pfLDSTDB
));
283 DECLARE("pfSize", sizeof(procFeatures
));
285 DECLARE("thrmmaxTemp", offsetof(struct per_proc_info
*, thrm
.maxTemp
));
286 DECLARE("thrmthrottleTemp", offsetof(struct per_proc_info
*, thrm
.throttleTemp
));
287 DECLARE("thrmlowTemp", offsetof(struct per_proc_info
*, thrm
.lowTemp
));
288 DECLARE("thrmhighTemp", offsetof(struct per_proc_info
*, thrm
.highTemp
));
289 DECLARE("thrm3val", offsetof(struct per_proc_info
*, thrm
.thrm3val
));
290 DECLARE("thrmSize", sizeof(thrmControl
));
292 DECLARE("napStamp", offsetof(struct per_proc_info
*, napStamp
));
293 DECLARE("napTotal", offsetof(struct per_proc_info
*, napTotal
));
295 DECLARE("emfp0", offsetof(struct per_proc_info
*, emfp0
));
296 DECLARE("emfp1", offsetof(struct per_proc_info
*, emfp1
));
297 DECLARE("emfp2", offsetof(struct per_proc_info
*, emfp2
));
298 DECLARE("emfp3", offsetof(struct per_proc_info
*, emfp3
));
299 DECLARE("emfp4", offsetof(struct per_proc_info
*, emfp4
));
300 DECLARE("emfp5", offsetof(struct per_proc_info
*, emfp5
));
301 DECLARE("emfp6", offsetof(struct per_proc_info
*, emfp6
));
302 DECLARE("emfp7", offsetof(struct per_proc_info
*, emfp7
));
303 DECLARE("emfp8", offsetof(struct per_proc_info
*, emfp8
));
304 DECLARE("emfp9", offsetof(struct per_proc_info
*, emfp9
));
305 DECLARE("emfp10", offsetof(struct per_proc_info
*, emfp10
));
306 DECLARE("emfp11", offsetof(struct per_proc_info
*, emfp11
));
307 DECLARE("emfp12", offsetof(struct per_proc_info
*, emfp12
));
308 DECLARE("emfp13", offsetof(struct per_proc_info
*, emfp13
));
309 DECLARE("emfp14", offsetof(struct per_proc_info
*, emfp14
));
310 DECLARE("emfp15", offsetof(struct per_proc_info
*, emfp15
));
311 DECLARE("emfp16", offsetof(struct per_proc_info
*, emfp16
));
312 DECLARE("emfp17", offsetof(struct per_proc_info
*, emfp17
));
313 DECLARE("emfp18", offsetof(struct per_proc_info
*, emfp18
));
314 DECLARE("emfp19", offsetof(struct per_proc_info
*, emfp19
));
315 DECLARE("emfp20", offsetof(struct per_proc_info
*, emfp20
));
316 DECLARE("emfp21", offsetof(struct per_proc_info
*, emfp21
));
317 DECLARE("emfp22", offsetof(struct per_proc_info
*, emfp22
));
318 DECLARE("emfp23", offsetof(struct per_proc_info
*, emfp23
));
319 DECLARE("emfp24", offsetof(struct per_proc_info
*, emfp24
));
320 DECLARE("emfp25", offsetof(struct per_proc_info
*, emfp25
));
321 DECLARE("emfp26", offsetof(struct per_proc_info
*, emfp26
));
322 DECLARE("emfp27", offsetof(struct per_proc_info
*, emfp27
));
323 DECLARE("emfp28", offsetof(struct per_proc_info
*, emfp28
));
324 DECLARE("emfp29", offsetof(struct per_proc_info
*, emfp29
));
325 DECLARE("emfp30", offsetof(struct per_proc_info
*, emfp30
));
326 DECLARE("emfp31", offsetof(struct per_proc_info
*, emfp31
));
327 DECLARE("emfpscr_pad", offsetof(struct per_proc_info
*, emfpscr_pad
));
328 DECLARE("emfpscr", offsetof(struct per_proc_info
*, emfpscr
));
330 DECLARE("emvr0", offsetof(struct per_proc_info
*, emvr0
));
331 DECLARE("emvr1", offsetof(struct per_proc_info
*, emvr1
));
332 DECLARE("emvr2", offsetof(struct per_proc_info
*, emvr2
));
333 DECLARE("emvr3", offsetof(struct per_proc_info
*, emvr3
));
334 DECLARE("emvr4", offsetof(struct per_proc_info
*, emvr4
));
335 DECLARE("emvr5", offsetof(struct per_proc_info
*, emvr5
));
336 DECLARE("emvr6", offsetof(struct per_proc_info
*, emvr6
));
337 DECLARE("emvr7", offsetof(struct per_proc_info
*, emvr7
));
338 DECLARE("emvr8", offsetof(struct per_proc_info
*, emvr8
));
339 DECLARE("emvr9", offsetof(struct per_proc_info
*, emvr9
));
340 DECLARE("emvr10", offsetof(struct per_proc_info
*, emvr10
));
341 DECLARE("emvr11", offsetof(struct per_proc_info
*, emvr11
));
342 DECLARE("emvr12", offsetof(struct per_proc_info
*, emvr12
));
343 DECLARE("emvr13", offsetof(struct per_proc_info
*, emvr13
));
344 DECLARE("emvr14", offsetof(struct per_proc_info
*, emvr14
));
345 DECLARE("emvr15", offsetof(struct per_proc_info
*, emvr15
));
346 DECLARE("emvr16", offsetof(struct per_proc_info
*, emvr16
));
347 DECLARE("emvr17", offsetof(struct per_proc_info
*, emvr17
));
348 DECLARE("emvr18", offsetof(struct per_proc_info
*, emvr18
));
349 DECLARE("emvr19", offsetof(struct per_proc_info
*, emvr19
));
350 DECLARE("emvr20", offsetof(struct per_proc_info
*, emvr20
));
351 DECLARE("emvr21", offsetof(struct per_proc_info
*, emvr21
));
352 DECLARE("emvr22", offsetof(struct per_proc_info
*, emvr22
));
353 DECLARE("emvr23", offsetof(struct per_proc_info
*, emvr23
));
354 DECLARE("emvr24", offsetof(struct per_proc_info
*, emvr24
));
355 DECLARE("emvr25", offsetof(struct per_proc_info
*, emvr25
));
356 DECLARE("emvr26", offsetof(struct per_proc_info
*, emvr26
));
357 DECLARE("emvr27", offsetof(struct per_proc_info
*, emvr27
));
358 DECLARE("emvr28", offsetof(struct per_proc_info
*, emvr28
));
359 DECLARE("emvr29", offsetof(struct per_proc_info
*, emvr29
));
360 DECLARE("emvr30", offsetof(struct per_proc_info
*, emvr30
));
361 DECLARE("emvr31", offsetof(struct per_proc_info
*, emvr31
));
362 DECLARE("empadvr", offsetof(struct per_proc_info
*, empadvr
));
363 DECLARE("ppSize", sizeof(struct per_proc_info
));
364 DECLARE("patcharea", offsetof(struct per_proc_info
*, patcharea
));
366 DECLARE("RESETHANDLER_TYPE", offsetof(struct resethandler
*, type
));
367 DECLARE("RESETHANDLER_CALL", offsetof(struct resethandler
*, call_paddr
));
368 DECLARE("RESETHANDLER_ARG", offsetof(struct resethandler
*, arg__paddr
));
370 /* we want offset from
371 * bottom of kernel stack, not offset into structure
373 #define IKSBASE (u_int)STACK_IKS(0)
375 /* values from kern/thread.h */
376 DECLARE("THREAD_TOP_ACT",
377 offsetof(struct thread_shuttle
*, top_act
));
378 DECLARE("THREAD_KERNEL_STACK",
379 offsetof(struct thread_shuttle
*, kernel_stack
));
380 DECLARE("THREAD_CONTINUATION",
381 offsetof(struct thread_shuttle
*, continuation
));
382 DECLARE("THREAD_RECOVER",
383 offsetof(struct thread_shuttle
*, recover
));
385 DECLARE("THREAD_MUTEX_COUNT",
386 offsetof(struct thread_shuttle
*, mutex_count
));
387 #endif /* MACH_LDEBUG */
388 DECLARE("THREAD_PSET", offsetof(struct thread_shuttle
*, processor_set
));
389 DECLARE("THREAD_LINKS", offsetof(struct thread_shuttle
*, links
));
390 DECLARE("THREAD_PSTHRN", offsetof(struct thread_shuttle
*, pset_threads
.next
));
392 /* values from kern/thread_act.h */
393 DECLARE("ACT_TASK", offsetof(struct thread_activation
*, task
));
394 DECLARE("ACT_THREAD", offsetof(struct thread_activation
*, thread
));
395 DECLARE("ACT_LOWER", offsetof(struct thread_activation
*, lower
));
396 DECLARE("ACT_MACT_PCB",offsetof(struct thread_activation
*, mact
.pcb
));
397 DECLARE("ACT_MACT_FPU",offsetof(struct thread_activation
*, mact
.FPU_pcb
));
398 DECLARE("ACT_MACT_FPUlvl",offsetof(struct thread_activation
*, mact
.FPU_lvl
));
399 DECLARE("ACT_MACT_FPUcpu",offsetof(struct thread_activation
*, mact
.FPU_cpu
));
400 DECLARE("ACT_MACT_VMX",offsetof(struct thread_activation
*, mact
.VMX_pcb
));
401 DECLARE("ACT_MACT_VMXlvl",offsetof(struct thread_activation
*, mact
.VMX_lvl
));
402 DECLARE("ACT_MACT_VMXcpu",offsetof(struct thread_activation
*, mact
.VMX_cpu
));
403 DECLARE("ACT_AST", offsetof(struct thread_activation
*, ast
));
404 DECLARE("ACT_VMMAP", offsetof(struct thread_activation
*, map
));
405 DECLARE("runningVM", runningVM
);
406 DECLARE("runningVMbit", runningVMbit
);
407 DECLARE("ACT_KLOADED",
408 offsetof(struct thread_activation
*, kernel_loaded
));
409 DECLARE("ACT_KLOADING",
410 offsetof(struct thread_activation
*, kernel_loading
));
411 DECLARE("ACT_MACH_EXC_PORT",
412 offsetof(struct thread_activation
*,
413 exc_actions
[EXC_MACH_SYSCALL
].port
));
414 DECLARE("vmmCEntry", offsetof(struct thread_activation
*, mact
.vmmCEntry
));
415 DECLARE("vmmControl", offsetof(struct thread_activation
*, mact
.vmmControl
));
417 DECLARE("CTHREAD_SELF", offsetof(struct thread_activation
*, mact
.cthread_self
));
420 /* Values from vmachmon.h */
422 DECLARE("kVmmGetVersion", kVmmGetVersion
);
423 DECLARE("kVmmvGetFeatures", kVmmvGetFeatures
);
424 DECLARE("kVmmInitContext", kVmmInitContext
);
425 DECLARE("kVmmTearDownContext", kVmmTearDownContext
);
426 DECLARE("kVmmTearDownAll", kVmmTearDownAll
);
427 DECLARE("kVmmMapPage", kVmmMapPage
);
428 DECLARE("kVmmGetPageMapping", kVmmGetPageMapping
);
429 DECLARE("kVmmUnmapPage", kVmmUnmapPage
);
430 DECLARE("kVmmUnmapAllPages", kVmmUnmapAllPages
);
431 DECLARE("kVmmGetPageDirtyFlag", kVmmGetPageDirtyFlag
);
432 DECLARE("kVmmGetFloatState", kVmmGetFloatState
);
433 DECLARE("kVmmGetVectorState", kVmmGetVectorState
);
434 DECLARE("kVmmSetTimer", kVmmSetTimer
);
435 DECLARE("kVmmExecuteVM", kVmmExecuteVM
);
436 DECLARE("kVmmProtectPage", kVmmProtectPage
);
438 DECLARE("kVmmReturnNull", kVmmReturnNull
);
439 DECLARE("kVmmStopped", kVmmStopped
);
440 DECLARE("kVmmBogusContext", kVmmBogusContext
);
441 DECLARE("kVmmReturnDataPageFault", kVmmReturnDataPageFault
);
442 DECLARE("kVmmReturnInstrPageFault", kVmmReturnInstrPageFault
);
443 DECLARE("kVmmReturnAlignmentFault", kVmmReturnAlignmentFault
);
444 DECLARE("kVmmReturnProgramException", kVmmReturnProgramException
);
445 DECLARE("kVmmReturnSystemCall", kVmmReturnSystemCall
);
446 DECLARE("kVmmReturnTraceException", kVmmReturnTraceException
);
448 DECLARE("kVmmProtXtnd", kVmmProtXtnd
);
449 DECLARE("kVmmProtNARW", kVmmProtNARW
);
450 DECLARE("kVmmProtRORW", kVmmProtRORW
);
451 DECLARE("kVmmProtRWRW", kVmmProtRWRW
);
452 DECLARE("kVmmProtRORO", kVmmProtRORO
);
454 DECLARE("vmmFlags", offsetof(struct vmmCntrlEntry
*, vmmFlags
));
455 DECLARE("vmmInUseb", vmmInUseb
);
456 DECLARE("vmmInUse", vmmInUse
);
457 DECLARE("vmmPmap", offsetof(struct vmmCntrlEntry
*, vmmPmap
));
458 DECLARE("vmmContextKern", offsetof(struct vmmCntrlEntry
*, vmmContextKern
));
459 DECLARE("vmmContextUser", offsetof(struct vmmCntrlEntry
*, vmmContextUser
));
460 DECLARE("vmmFPU_pcb", offsetof(struct vmmCntrlEntry
*, vmmFPU_pcb
));
461 DECLARE("vmmFPU_cpu", offsetof(struct vmmCntrlEntry
*, vmmFPU_cpu
));
462 DECLARE("vmmVMX_pcb", offsetof(struct vmmCntrlEntry
*, vmmVMX_pcb
));
463 DECLARE("vmmVMX_cpu", offsetof(struct vmmCntrlEntry
*, vmmVMX_cpu
));
464 DECLARE("vmmLastMap", offsetof(struct vmmCntrlEntry
*, vmmLastMap
));
465 DECLARE("vmmCEntrySize", sizeof(struct vmmCntrlEntry
));
466 DECLARE("kVmmMaxContextsPerThread", kVmmMaxContextsPerThread
);
468 DECLARE("interface_version", offsetof(struct vmm_state_page_t
*, interface_version
));
469 DECLARE("thread_index", offsetof(struct vmm_state_page_t
*, thread_index
));
470 DECLARE("vmmStat", offsetof(struct vmm_state_page_t
*, vmmStat
));
471 DECLARE("vmmCntrl", offsetof(struct vmm_state_page_t
*, vmmCntrl
));
472 DECLARE("return_code", offsetof(struct vmm_state_page_t
*, return_code
));
473 DECLARE("return_params", offsetof(struct vmm_state_page_t
*, return_params
));
474 DECLARE("vmm_proc_state", offsetof(struct vmm_state_page_t
*, vmm_proc_state
));
475 DECLARE("return_params", offsetof(struct vmm_state_page_t
*, return_params
));
476 DECLARE("vmmppcVRs", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcVRs
));
477 DECLARE("vmmppcVSCR", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcVSCR
));
478 DECLARE("vmmppcFPRs", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcFPRs
));
479 DECLARE("vmmppcFPSCR", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcFPSCR
));
480 DECLARE("vmmFloatCngd", vmmFloatCngd
);
481 DECLARE("vmmFloatCngdb", vmmFloatCngdb
);
482 DECLARE("vmmVectCngd", vmmVectCngd
);
483 DECLARE("vmmVectCngdb", vmmVectCngdb
);
484 DECLARE("vmmTimerPop", vmmTimerPop
);
485 DECLARE("vmmTimerPopb", vmmTimerPopb
);
486 DECLARE("vmmMapDone", vmmMapDone
);
487 DECLARE("vmmMapDoneb", vmmMapDoneb
);
488 DECLARE("vmmSpfSave", vmmSpfSave
);
489 DECLARE("vmmSpfSaveb", vmmSpfSaveb
);
490 DECLARE("vmmFloatLoad", vmmFloatLoad
);
491 DECLARE("vmmFloatLoadb", vmmFloatLoadb
);
492 DECLARE("vmmVectLoad", vmmVectLoad
);
493 DECLARE("vmmVectLoadb", vmmVectLoadb
);
494 DECLARE("vmmVectVRall", vmmVectVRall
);
495 DECLARE("vmmVectVRallb", vmmVectVRallb
);
496 DECLARE("vmmVectVAss", vmmVectVAss
);
497 DECLARE("vmmVectVAssb", vmmVectVAssb
);
498 DECLARE("vmmXStart", vmmXStart
);
499 DECLARE("vmmXStartb", vmmXStartb
);
500 DECLARE("vmmXStop", vmmXStop
);
501 DECLARE("vmmXStopb", vmmXStopb
);
502 DECLARE("vmmKey", vmmKey
);
503 DECLARE("vmmKeyb", vmmKeyb
);
505 /* values from kern/task.h */
506 DECLARE("TASK_MACH_EXC_PORT",
507 offsetof(struct task
*, exc_actions
[EXC_MACH_SYSCALL
].port
));
508 DECLARE("TASK_SYSCALLS_MACH",
509 offsetof(struct task
*, syscalls_mach
));
511 /* values from vm/vm_map.h */
512 DECLARE("VMMAP_PMAP", offsetof(struct vm_map
*, pmap
));
514 /* values from machine/pmap.h */
515 DECLARE("PMAP_SPACE", offsetof(struct pmap
*, space
));
516 DECLARE("PMAP_BMAPS", offsetof(struct pmap
*, bmaps
));
517 DECLARE("PMAP_PMAPVR", offsetof(struct pmap
*, pmapvr
));
518 DECLARE("PMAP_VFLAGS", offsetof(struct pmap
*, vflags
));
519 DECLARE("PMAP_USAGE", offsetof(struct pmap
*, pmapUsage
));
520 DECLARE("PMAP_SEGS", offsetof(struct pmap
*, pmapSegs
));
521 DECLARE("PMAP_SIZE", pmapSize
);
524 /* Constants from pmap.h */
525 DECLARE("PPC_SID_KERNEL", PPC_SID_KERNEL
);
527 /* values for accessing mach_trap table */
528 DECLARE("MACH_TRAP_OFFSET_POW2", 4);
530 DECLARE("MACH_TRAP_ARGC",
531 offsetof(mach_trap_t
*, mach_trap_arg_count
));
532 DECLARE("MACH_TRAP_FUNCTION",
533 offsetof(mach_trap_t
*, mach_trap_function
));
535 DECLARE("HOST_SELF", offsetof(host_t
, host_self
));
537 DECLARE("PPCcallmax", sizeof(PPCcalls
));
539 /* values from cpu_data.h */
540 DECLARE("CPU_ACTIVE_THREAD", offsetof(cpu_data_t
*, active_thread
));
541 DECLARE("CPU_PREEMPTION_LEVEL", offsetof(cpu_data_t
*, preemption_level
));
542 DECLARE("CPU_SIMPLE_LOCK_COUNT",
543 offsetof(cpu_data_t
*, simple_lock_count
));
544 DECLARE("CPU_INTERRUPT_LEVEL",offsetof(cpu_data_t
*, interrupt_level
));
546 /* Misc values used by assembler */
547 DECLARE("AST_ALL", AST_ALL
);
548 DECLARE("AST_URGENT", AST_URGENT
);
550 /* Simple Lock structure */
551 DECLARE("SLOCK_ILK", offsetof(simple_lock_t
, interlock
));
553 DECLARE("SLOCK_TYPE", offsetof(simple_lock_t
, lock_type
));
554 DECLARE("SLOCK_PC", offsetof(simple_lock_t
, debug
.lock_pc
));
555 DECLARE("SLOCK_THREAD", offsetof(simple_lock_t
, debug
.lock_thread
));
556 DECLARE("SLOCK_DURATIONH",offsetof(simple_lock_t
, debug
.duration
[0]));
557 DECLARE("SLOCK_DURATIONL",offsetof(simple_lock_t
, debug
.duration
[1]));
558 DECLARE("USLOCK_TAG", USLOCK_TAG
);
559 #endif /* MACH_LDEBUG */
561 /* Mutex structure */
562 DECLARE("LOCK_DATA", offsetof(mutex_t
*, interlock
));
563 DECLARE("MUTEX_WAITERS",offsetof(mutex_t
*, waiters
));
565 DECLARE("MUTEX_TYPE", offsetof(mutex_t
*, type
));
566 DECLARE("MUTEX_PC", offsetof(mutex_t
*, pc
));
567 DECLARE("MUTEX_THREAD", offsetof(mutex_t
*, thread
));
568 DECLARE("MUTEX_TAG", MUTEX_TAG
);
569 #endif /* MACH_LDEBUG */
572 /* values from mp/PlugIn.h */
574 DECLARE("MPSversionID", offsetof(struct MPPlugInSpec
*, versionID
));
575 DECLARE("MPSareaAddr", offsetof(struct MPPlugInSpec
*, areaAddr
));
576 DECLARE("MPSareaSize", offsetof(struct MPPlugInSpec
*, areaSize
));
577 DECLARE("MPSoffsetTableAddr", offsetof(struct MPPlugInSpec
*, offsetTableAddr
));
578 DECLARE("MPSbaseAddr", offsetof(struct MPPlugInSpec
*, baseAddr
));
579 DECLARE("MPSdataArea", offsetof(struct MPPlugInSpec
*, dataArea
));
580 DECLARE("MPSCPUArea", offsetof(struct MPPlugInSpec
*, CPUArea
));
581 DECLARE("MPSSIGPhandler", offsetof(struct MPPlugInSpec
*, SIGPhandler
));
583 DECLARE("CSAstate", offsetof(struct CPUStatusArea
*, state
));
584 DECLARE("CSAregsAreValid", offsetof(struct CPUStatusArea
*,
586 DECLARE("CSAgpr", offsetof(struct CPUStatusArea
*, gpr
));
587 DECLARE("CSAfpr", offsetof(struct CPUStatusArea
*, fpr
));
588 DECLARE("CSAcr", offsetof(struct CPUStatusArea
*, cr
));
589 DECLARE("CSAfpscr", offsetof(struct CPUStatusArea
*, fpscr
));
590 DECLARE("CSAxer", offsetof(struct CPUStatusArea
*, xer
));
591 DECLARE("CSAlr", offsetof(struct CPUStatusArea
*, lr
));
592 DECLARE("CSActr", offsetof(struct CPUStatusArea
*, ctr
));
593 DECLARE("CSAtbu", offsetof(struct CPUStatusArea
*, tbu
));
594 DECLARE("CSAtbl", offsetof(struct CPUStatusArea
*, tbl
));
595 DECLARE("CSApvr", offsetof(struct CPUStatusArea
*, pvr
));
596 DECLARE("CSAibat", offsetof(struct CPUStatusArea
*, ibat
));
597 DECLARE("CSAdbat", offsetof(struct CPUStatusArea
*, dbat
));
598 DECLARE("CSAsdr1", offsetof(struct CPUStatusArea
*, sdr1
));
599 DECLARE("CSAsr", offsetof(struct CPUStatusArea
*, sr
));
600 DECLARE("CSAdar", offsetof(struct CPUStatusArea
*, dar
));
601 DECLARE("CSAdsisr", offsetof(struct CPUStatusArea
*, dsisr
));
602 DECLARE("CSAsprg", offsetof(struct CPUStatusArea
*, sprg
));
603 DECLARE("CSAsrr0", offsetof(struct CPUStatusArea
*, srr0
));
604 DECLARE("CSAsrr1", offsetof(struct CPUStatusArea
*, srr1
));
605 DECLARE("CSAdec", offsetof(struct CPUStatusArea
*, dec
));
606 DECLARE("CSAdabr", offsetof(struct CPUStatusArea
*, dabr
));
607 DECLARE("CSAiabr", offsetof(struct CPUStatusArea
*, iabr
));
608 DECLARE("CSAear", offsetof(struct CPUStatusArea
*, ear
));
609 DECLARE("CSAhid", offsetof(struct CPUStatusArea
*, hid
));
610 DECLARE("CSAmmcr", offsetof(struct CPUStatusArea
*, mmcr
));
611 DECLARE("CSApmc", offsetof(struct CPUStatusArea
*, pmc
));
612 DECLARE("CSApir", offsetof(struct CPUStatusArea
*, pir
));
613 DECLARE("CSAsda", offsetof(struct CPUStatusArea
*, sda
));
614 DECLARE("CSAsia", offsetof(struct CPUStatusArea
*, sia
));
615 DECLARE("CSAmq", offsetof(struct CPUStatusArea
*, mq
));
616 DECLARE("CSAmsr", offsetof(struct CPUStatusArea
*, msr
));
617 DECLARE("CSApc", offsetof(struct CPUStatusArea
*, pc
));
618 DECLARE("CSAsysregs", offsetof(struct CPUStatusArea
*, sysregs
));
619 DECLARE("CSAsize", sizeof(struct CPUStatusArea
));
622 DECLARE("MPPICStat", offsetof(struct MPPInterface
*, MPPICStat
));
623 DECLARE("MPPICParm0", offsetof(struct MPPInterface
*, MPPICParm0
));
624 DECLARE("MPPICParm1", offsetof(struct MPPInterface
*, MPPICParm1
));
625 DECLARE("MPPICParm2", offsetof(struct MPPInterface
*, MPPICParm2
));
626 DECLARE("MPPICspare0", offsetof(struct MPPInterface
*, MPPICspare0
));
627 DECLARE("MPPICspare1", offsetof(struct MPPInterface
*, MPPICspare1
));
628 DECLARE("MPPICParm0BU", offsetof(struct MPPInterface
*, MPPICParm0BU
));
629 DECLARE("MPPICPriv", offsetof(struct MPPInterface
*, MPPICPriv
));
633 #endif /* NCPUS > 1 */
635 /* values from low_trace.h */
636 DECLARE("LTR_cpu", offsetof(struct LowTraceRecord
*, LTR_cpu
));
637 DECLARE("LTR_excpt", offsetof(struct LowTraceRecord
*, LTR_excpt
));
638 DECLARE("LTR_timeHi", offsetof(struct LowTraceRecord
*, LTR_timeHi
));
639 DECLARE("LTR_timeLo", offsetof(struct LowTraceRecord
*, LTR_timeLo
));
640 DECLARE("LTR_cr", offsetof(struct LowTraceRecord
*, LTR_cr
));
641 DECLARE("LTR_srr0", offsetof(struct LowTraceRecord
*, LTR_srr0
));
642 DECLARE("LTR_srr1", offsetof(struct LowTraceRecord
*, LTR_srr1
));
643 DECLARE("LTR_dar", offsetof(struct LowTraceRecord
*, LTR_dar
));
644 DECLARE("LTR_save", offsetof(struct LowTraceRecord
*, LTR_save
));
645 DECLARE("LTR_lr", offsetof(struct LowTraceRecord
*, LTR_lr
));
646 DECLARE("LTR_ctr", offsetof(struct LowTraceRecord
*, LTR_ctr
));
647 DECLARE("LTR_r0", offsetof(struct LowTraceRecord
*, LTR_r0
));
648 DECLARE("LTR_r1", offsetof(struct LowTraceRecord
*, LTR_r1
));
649 DECLARE("LTR_r2", offsetof(struct LowTraceRecord
*, LTR_r2
));
650 DECLARE("LTR_r3", offsetof(struct LowTraceRecord
*, LTR_r3
));
651 DECLARE("LTR_r4", offsetof(struct LowTraceRecord
*, LTR_r4
));
652 DECLARE("LTR_r5", offsetof(struct LowTraceRecord
*, LTR_r5
));
653 DECLARE("LTR_size", sizeof(struct LowTraceRecord
));
655 /* Values from pexpert.h */
656 DECLARE("PECFIcpurate", offsetof(struct clock_frequency_info_t
*, cpu_clock_rate_hz
));
657 DECLARE("PECFIbusrate", offsetof(struct clock_frequency_info_t
*, bus_clock_rate_hz
));
659 /* Values from pmap_internals.h and mappings.h */
660 DECLARE("mmnext", offsetof(struct mapping
*, next
));
661 DECLARE("mmhashnext", offsetof(struct mapping
*, hashnext
));
662 DECLARE("mmPTEhash", offsetof(struct mapping
*, PTEhash
));
663 DECLARE("mmPTEent", offsetof(struct mapping
*, PTEent
));
664 DECLARE("mmPTEv", offsetof(struct mapping
*, PTEv
));
665 DECLARE("mmPTEr", offsetof(struct mapping
*, PTEr
));
666 DECLARE("mmphysent", offsetof(struct mapping
*, physent
));
667 DECLARE("mmpmap", offsetof(struct mapping
*, pmap
));
669 DECLARE("bmnext", offsetof(struct blokmap
*, next
));
670 DECLARE("bmstart", offsetof(struct blokmap
*, start
));
671 DECLARE("bmend", offsetof(struct blokmap
*, end
));
672 DECLARE("bmPTEr", offsetof(struct blokmap
*, PTEr
));
673 DECLARE("bmspace", offsetof(struct blokmap
*, space
));
674 DECLARE("blkFlags", offsetof(struct blokmap
*, blkFlags
));
675 DECLARE("blkPerm", blkPerm
);
676 DECLARE("blkPermbit", blkPermbit
);
678 DECLARE("mbvrswap", offsetof(struct mappingblok
*, mapblokvrswap
));
679 DECLARE("mbfree", offsetof(struct mappingblok
*, mapblokfree
));
680 DECLARE("mapcsize", sizeof(struct mappingctl
));
682 DECLARE("pephyslink", offsetof(struct phys_entry
*, phys_link
));
683 DECLARE("pepte1", offsetof(struct phys_entry
*, pte1
));
685 DECLARE("PCAlock", offsetof(struct PCA
*, PCAlock
));
686 DECLARE("PCAallo", offsetof(struct PCA
*, flgs
.PCAallo
));
687 DECLARE("PCAfree", offsetof(struct PCA
*, flgs
.PCAalflgs
.PCAfree
));
688 DECLARE("PCAauto", offsetof(struct PCA
*, flgs
.PCAalflgs
.PCAauto
));
689 DECLARE("PCAslck", offsetof(struct PCA
*, flgs
.PCAalflgs
.PCAslck
));
690 DECLARE("PCAsteal", offsetof(struct PCA
*, flgs
.PCAalflgs
.PCAsteal
));
691 DECLARE("PCAgas", offsetof(struct PCA
*, PCAgas
));
692 DECLARE("PCAhash", offsetof(struct PCA
*, PCAhash
));
694 DECLARE("SVlock", offsetof(struct Saveanchor
*, savelock
));
695 DECLARE("SVcount", offsetof(struct Saveanchor
*, savecount
));
696 DECLARE("SVinuse", offsetof(struct Saveanchor
*, saveinuse
));
697 DECLARE("SVmin", offsetof(struct Saveanchor
*, savemin
));
698 DECLARE("SVneghyst", offsetof(struct Saveanchor
*, saveneghyst
));
699 DECLARE("SVtarget", offsetof(struct Saveanchor
*, savetarget
));
700 DECLARE("SVposhyst", offsetof(struct Saveanchor
*, saveposhyst
));
701 DECLARE("SVfree", offsetof(struct Saveanchor
*, savefree
));
702 DECLARE("SVsize", sizeof(struct Saveanchor
));
705 DECLARE("GDsave", offsetof(struct GDWorkArea
*, GDsave
));
706 DECLARE("GDfp0", offsetof(struct GDWorkArea
*, GDfp0
));
707 DECLARE("GDfp1", offsetof(struct GDWorkArea
*, GDfp1
));
708 DECLARE("GDfp2", offsetof(struct GDWorkArea
*, GDfp2
));
709 DECLARE("GDfp3", offsetof(struct GDWorkArea
*, GDfp3
));
710 DECLARE("GDtop", offsetof(struct GDWorkArea
*, GDtop
));
711 DECLARE("GDleft", offsetof(struct GDWorkArea
*, GDleft
));
712 DECLARE("GDtopleft", offsetof(struct GDWorkArea
*, GDtopleft
));
713 DECLARE("GDrowbytes", offsetof(struct GDWorkArea
*, GDrowbytes
));
714 DECLARE("GDrowchar", offsetof(struct GDWorkArea
*, GDrowchar
));
715 DECLARE("GDdepth", offsetof(struct GDWorkArea
*, GDdepth
));
716 DECLARE("GDcollgn", offsetof(struct GDWorkArea
*, GDcollgn
));
717 DECLARE("GDready", offsetof(struct GDWorkArea
*, GDready
));
718 DECLARE("GDrowbuf1", offsetof(struct GDWorkArea
*, GDrowbuf1
));
719 DECLARE("GDrowbuf2", offsetof(struct GDWorkArea
*, GDrowbuf2
));
722 DECLARE("dgLock", offsetof(struct diagWork
*, dgLock
));
723 DECLARE("dgFlags", offsetof(struct diagWork
*, dgFlags
));
724 DECLARE("dgMisc0", offsetof(struct diagWork
*, dgMisc0
));
725 DECLARE("enaExpTrace", enaExpTrace
);
726 DECLARE("enaExpTraceb", enaExpTraceb
);
727 DECLARE("enaUsrFCall", enaUsrFCall
);
728 DECLARE("enaUsrFCallb", enaUsrFCallb
);
729 DECLARE("enaUsrPhyMp", enaUsrPhyMp
);
730 DECLARE("enaUsrPhyMpb", enaUsrPhyMpb
);
731 DECLARE("enaDiagSCs", enaDiagSCs
);
732 DECLARE("enaDiagSCsb", enaDiagSCsb
);
733 DECLARE("disLkType", disLkType
);
734 DECLARE("disLktypeb", disLktypeb
);
735 DECLARE("disLkThread", disLkThread
);
736 DECLARE("disLkThreadb", disLkThreadb
);
737 DECLARE("disLkNmSimp", disLkNmSimp
);
738 DECLARE("disLkNmSimpb", disLkNmSimpb
);
739 DECLARE("disLkMyLck", disLkMyLck
);
740 DECLARE("disLkMyLckb", disLkMyLckb
);
741 DECLARE("dgMisc1", offsetof(struct diagWork
*, dgMisc1
));
742 DECLARE("dgMisc2", offsetof(struct diagWork
*, dgMisc2
));
743 DECLARE("dgMisc3", offsetof(struct diagWork
*, dgMisc3
));
744 DECLARE("dgMisc4", offsetof(struct diagWork
*, dgMisc4
));
745 DECLARE("dgMisc5", offsetof(struct diagWork
*, dgMisc5
));
747 DECLARE("traceMask", offsetof(struct traceWork
*, traceMask
));
748 DECLARE("traceCurr", offsetof(struct traceWork
*, traceCurr
));
749 DECLARE("traceStart", offsetof(struct traceWork
*, traceStart
));
750 DECLARE("traceEnd", offsetof(struct traceWork
*, traceEnd
));
751 DECLARE("traceMsnd", offsetof(struct traceWork
*, traceMsnd
));
753 DECLARE("SACsize", sizeof(struct savectl
));
754 DECLARE("SACspot", 4096-sizeof(struct savectl
));
755 DECLARE("SACnext", offsetof(struct savectl
*, sac_next
)+4096-sizeof(struct savectl
));
756 DECLARE("SACvrswap", offsetof(struct savectl
*, sac_vrswap
)+4096-sizeof(struct savectl
));
757 DECLARE("SACalloc", offsetof(struct savectl
*, sac_alloc
)+4096-sizeof(struct savectl
));
758 DECLARE("SACflags", offsetof(struct savectl
*, sac_flags
)+4096-sizeof(struct savectl
));
760 DECLARE("SAVprev", offsetof(struct savearea
*, save_prev
));
761 DECLARE("SAVprefp", offsetof(struct savearea
*, save_prev_float
));
762 DECLARE("SAVprevec", offsetof(struct savearea
*, save_prev_vector
));
763 DECLARE("SAVphys", offsetof(struct savearea
*, save_phys
));
764 DECLARE("SAVqfret", offsetof(struct savearea
*, save_qfret
));
765 DECLARE("SAVact", offsetof(struct savearea
*, save_act
));
766 DECLARE("SAVflags", offsetof(struct savearea
*, save_flags
));
767 DECLARE("SAVlvlfp", offsetof(struct savearea
*, save_level_fp
));
768 DECLARE("SAVlvlvec", offsetof(struct savearea
*, save_level_vec
));
769 DECLARE("SAVsize", sizeof(struct savearea
));
771 DECLARE("savesrr0", offsetof(struct savearea
*, save_srr0
));
772 DECLARE("savesrr1", offsetof(struct savearea
*, save_srr1
));
773 DECLARE("savecr", offsetof(struct savearea
*, save_cr
));
774 DECLARE("savexer", offsetof(struct savearea
*, save_xer
));
775 DECLARE("savelr", offsetof(struct savearea
*, save_lr
));
776 DECLARE("savectr", offsetof(struct savearea
*, save_ctr
));
777 DECLARE("savemq", offsetof(struct savearea
*, save_mq
));
778 DECLARE("savecopyin", offsetof(struct savearea
*, save_sr_copyin
));
779 DECLARE("savedar", offsetof(struct savearea
*, save_dar
));
780 DECLARE("savedsisr", offsetof(struct savearea
*, save_dsisr
));
781 DECLARE("saveexception", offsetof(struct savearea
*, save_exception
));
782 DECLARE("savexfpscrpad", offsetof(struct savearea
*, save_xfpscrpad
));
783 DECLARE("savexfpscr", offsetof(struct savearea
*, save_xfpscr
));
784 DECLARE("savevrsave", offsetof(struct savearea
*, save_vrsave
));
786 DECLARE("saver0", offsetof(struct savearea
*, save_r0
));
787 DECLARE("saver1", offsetof(struct savearea
*, save_r1
));
788 DECLARE("saver2", offsetof(struct savearea
*, save_r2
));
789 DECLARE("saver3", offsetof(struct savearea
*, save_r3
));
790 DECLARE("saver4", offsetof(struct savearea
*, save_r4
));
791 DECLARE("saver5", offsetof(struct savearea
*, save_r5
));
792 DECLARE("saver6", offsetof(struct savearea
*, save_r6
));
793 DECLARE("saver7", offsetof(struct savearea
*, save_r7
));
794 DECLARE("saver8", offsetof(struct savearea
*, save_r8
));
795 DECLARE("saver9", offsetof(struct savearea
*, save_r9
));
796 DECLARE("saver10", offsetof(struct savearea
*, save_r10
));
797 DECLARE("saver11", offsetof(struct savearea
*, save_r11
));
798 DECLARE("saver12", offsetof(struct savearea
*, save_r12
));
799 DECLARE("saver13", offsetof(struct savearea
*, save_r13
));
800 DECLARE("saver14", offsetof(struct savearea
*, save_r14
));
801 DECLARE("saver15", offsetof(struct savearea
*, save_r15
));
802 DECLARE("saver16", offsetof(struct savearea
*, save_r16
));
803 DECLARE("saver17", offsetof(struct savearea
*, save_r17
));
804 DECLARE("saver18", offsetof(struct savearea
*, save_r18
));
805 DECLARE("saver19", offsetof(struct savearea
*, save_r19
));
806 DECLARE("saver20", offsetof(struct savearea
*, save_r20
));
807 DECLARE("saver21", offsetof(struct savearea
*, save_r21
));
808 DECLARE("saver22", offsetof(struct savearea
*, save_r22
));
809 DECLARE("saver23", offsetof(struct savearea
*, save_r23
));
810 DECLARE("saver24", offsetof(struct savearea
*, save_r24
));
811 DECLARE("saver25", offsetof(struct savearea
*, save_r25
));
812 DECLARE("saver26", offsetof(struct savearea
*, save_r26
));
813 DECLARE("saver27", offsetof(struct savearea
*, save_r27
));
814 DECLARE("saver28", offsetof(struct savearea
*, save_r28
));
815 DECLARE("saver29", offsetof(struct savearea
*, save_r29
));
816 DECLARE("saver30", offsetof(struct savearea
*, save_r30
));
817 DECLARE("saver31", offsetof(struct savearea
*, save_r31
));
819 DECLARE("savefp0", offsetof(struct savearea
*, save_fp0
));
820 DECLARE("savefp1", offsetof(struct savearea
*, save_fp1
));
821 DECLARE("savefp2", offsetof(struct savearea
*, save_fp2
));
822 DECLARE("savefp3", offsetof(struct savearea
*, save_fp3
));
823 DECLARE("savefp4", offsetof(struct savearea
*, save_fp4
));
824 DECLARE("savefp5", offsetof(struct savearea
*, save_fp5
));
825 DECLARE("savefp6", offsetof(struct savearea
*, save_fp6
));
826 DECLARE("savefp7", offsetof(struct savearea
*, save_fp7
));
827 DECLARE("savefp8", offsetof(struct savearea
*, save_fp8
));
828 DECLARE("savefp9", offsetof(struct savearea
*, save_fp9
));
829 DECLARE("savefp10", offsetof(struct savearea
*, save_fp10
));
830 DECLARE("savefp11", offsetof(struct savearea
*, save_fp11
));
831 DECLARE("savefp12", offsetof(struct savearea
*, save_fp12
));
832 DECLARE("savefp13", offsetof(struct savearea
*, save_fp13
));
833 DECLARE("savefp14", offsetof(struct savearea
*, save_fp14
));
834 DECLARE("savefp15", offsetof(struct savearea
*, save_fp15
));
835 DECLARE("savefp16", offsetof(struct savearea
*, save_fp16
));
836 DECLARE("savefp17", offsetof(struct savearea
*, save_fp17
));
837 DECLARE("savefp18", offsetof(struct savearea
*, save_fp18
));
838 DECLARE("savefp19", offsetof(struct savearea
*, save_fp19
));
839 DECLARE("savefp20", offsetof(struct savearea
*, save_fp20
));
840 DECLARE("savefp21", offsetof(struct savearea
*, save_fp21
));
841 DECLARE("savefp22", offsetof(struct savearea
*, save_fp22
));
842 DECLARE("savefp23", offsetof(struct savearea
*, save_fp23
));
843 DECLARE("savefp24", offsetof(struct savearea
*, save_fp24
));
844 DECLARE("savefp25", offsetof(struct savearea
*, save_fp25
));
845 DECLARE("savefp26", offsetof(struct savearea
*, save_fp26
));
846 DECLARE("savefp27", offsetof(struct savearea
*, save_fp27
));
847 DECLARE("savefp28", offsetof(struct savearea
*, save_fp28
));
848 DECLARE("savefp29", offsetof(struct savearea
*, save_fp29
));
849 DECLARE("savefp30", offsetof(struct savearea
*, save_fp30
));
850 DECLARE("savefp31", offsetof(struct savearea
*, save_fp31
));
851 DECLARE("savefpscrpad", offsetof(struct savearea
*, save_fpscr_pad
));
852 DECLARE("savefpscr", offsetof(struct savearea
*, save_fpscr
));
854 DECLARE("savesr0", offsetof(struct savearea
*, save_sr0
));
855 DECLARE("savesr1", offsetof(struct savearea
*, save_sr1
));
856 DECLARE("savesr2", offsetof(struct savearea
*, save_sr2
));
857 DECLARE("savesr3", offsetof(struct savearea
*, save_sr3
));
858 DECLARE("savesr4", offsetof(struct savearea
*, save_sr4
));
859 DECLARE("savesr5", offsetof(struct savearea
*, save_sr5
));
860 DECLARE("savesr6", offsetof(struct savearea
*, save_sr6
));
861 DECLARE("savesr7", offsetof(struct savearea
*, save_sr7
));
862 DECLARE("savesr8", offsetof(struct savearea
*, save_sr8
));
863 DECLARE("savesr9", offsetof(struct savearea
*, save_sr9
));
864 DECLARE("savesr10", offsetof(struct savearea
*, save_sr10
));
865 DECLARE("savesr11", offsetof(struct savearea
*, save_sr11
));
866 DECLARE("savesr12", offsetof(struct savearea
*, save_sr12
));
867 DECLARE("savesr13", offsetof(struct savearea
*, save_sr13
));
868 DECLARE("savesr14", offsetof(struct savearea
*, save_sr14
));
869 DECLARE("savesr15", offsetof(struct savearea
*, save_sr15
));
871 DECLARE("savevr0", offsetof(struct savearea
*, save_vr0
));
872 DECLARE("savevr1", offsetof(struct savearea
*, save_vr1
));
873 DECLARE("savevr2", offsetof(struct savearea
*, save_vr2
));
874 DECLARE("savevr3", offsetof(struct savearea
*, save_vr3
));
875 DECLARE("savevr4", offsetof(struct savearea
*, save_vr4
));
876 DECLARE("savevr5", offsetof(struct savearea
*, save_vr5
));
877 DECLARE("savevr6", offsetof(struct savearea
*, save_vr6
));
878 DECLARE("savevr7", offsetof(struct savearea
*, save_vr7
));
879 DECLARE("savevr8", offsetof(struct savearea
*, save_vr8
));
880 DECLARE("savevr9", offsetof(struct savearea
*, save_vr9
));
881 DECLARE("savevr10", offsetof(struct savearea
*, save_vr10
));
882 DECLARE("savevr11", offsetof(struct savearea
*, save_vr11
));
883 DECLARE("savevr12", offsetof(struct savearea
*, save_vr12
));
884 DECLARE("savevr13", offsetof(struct savearea
*, save_vr13
));
885 DECLARE("savevr14", offsetof(struct savearea
*, save_vr14
));
886 DECLARE("savevr15", offsetof(struct savearea
*, save_vr15
));
887 DECLARE("savevr16", offsetof(struct savearea
*, save_vr16
));
888 DECLARE("savevr17", offsetof(struct savearea
*, save_vr17
));
889 DECLARE("savevr18", offsetof(struct savearea
*, save_vr18
));
890 DECLARE("savevr19", offsetof(struct savearea
*, save_vr19
));
891 DECLARE("savevr20", offsetof(struct savearea
*, save_vr20
));
892 DECLARE("savevr21", offsetof(struct savearea
*, save_vr21
));
893 DECLARE("savevr22", offsetof(struct savearea
*, save_vr22
));
894 DECLARE("savevr23", offsetof(struct savearea
*, save_vr23
));
895 DECLARE("savevr24", offsetof(struct savearea
*, save_vr24
));
896 DECLARE("savevr25", offsetof(struct savearea
*, save_vr25
));
897 DECLARE("savevr26", offsetof(struct savearea
*, save_vr26
));
898 DECLARE("savevr27", offsetof(struct savearea
*, save_vr27
));
899 DECLARE("savevr28", offsetof(struct savearea
*, save_vr28
));
900 DECLARE("savevr29", offsetof(struct savearea
*, save_vr29
));
901 DECLARE("savevr30", offsetof(struct savearea
*, save_vr30
));
902 DECLARE("savevr31", offsetof(struct savearea
*, save_vr31
));
903 DECLARE("savevscr", offsetof(struct savearea
*, save_vscr
));
904 DECLARE("savevrvalid", offsetof(struct savearea
*, save_vrvalid
));
906 /* PseudoKernel Exception Descriptor info */
907 DECLARE("BEDA_SRR0", offsetof(BEDA_t
*, srr0
));
908 DECLARE("BEDA_SRR1", offsetof(BEDA_t
*, srr1
));
909 DECLARE("BEDA_SPRG0", offsetof(BEDA_t
*, sprg0
));
910 DECLARE("BEDA_SPRG1", offsetof(BEDA_t
*, sprg1
));
912 /* PseudoKernel Interrupt Control Word */
913 DECLARE("BTTD_INTCONTROLWORD", offsetof(BTTD_t
*, InterruptControlWord
));
915 /* New state when exiting the pseudokernel */
916 DECLARE("BTTD_NEWEXITSTATE", offsetof(BTTD_t
*, NewExitState
));
918 /* PseudoKernel Test/Post Interrupt */
919 DECLARE("BTTD_TESTINTMASK", offsetof(BTTD_t
*, testIntMask
));
920 DECLARE("BTTD_POSTINTMASK", offsetof(BTTD_t
*, postIntMask
));
922 /* PseudoKernel Vectors */
923 DECLARE("BTTD_TRAP_VECTOR", offsetof(BTTD_t
*, TrapVector
));
924 DECLARE("BTTD_SYSCALL_VECTOR", offsetof(BTTD_t
*, SysCallVector
));
925 DECLARE("BTTD_INTERRUPT_VECTOR", offsetof(BTTD_t
*, InterruptVector
));
926 DECLARE("BTTD_PENDINGINT_VECTOR", offsetof(BTTD_t
*, PendingIntVector
));
928 /* PseudoKernel Bits, Masks and misc */
929 DECLARE("SYSCONTEXTSTATE", kInSystemContext
);
930 DECLARE("PSEUDOKERNELSTATE", kInPseudoKernel
);
931 DECLARE("INTSTATEMASK_B", 12);
932 DECLARE("INTSTATEMASK_E", 15);
933 DECLARE("INTCR2MASK_B", 8);
934 DECLARE("INTCR2MASK_E", 11);
935 DECLARE("INTBACKUPCR2MASK_B", 28);
936 DECLARE("INTBACKUPCR2MASK_E", 31);
937 DECLARE("INTCR2TOBACKUPSHIFT", kCR2ToBackupShift
);
938 DECLARE("BB_MAX_TRAP", bbMaxTrap
);
939 DECLARE("BB_RFI_TRAP", bbRFITrap
);
941 /* Various hackery */
942 DECLARE("procState", offsetof(struct processor
*, state
));
944 DECLARE("CPU_SUBTYPE_POWERPC_ALL", CPU_SUBTYPE_POWERPC_ALL
);
945 DECLARE("CPU_SUBTYPE_POWERPC_601", CPU_SUBTYPE_POWERPC_601
);
946 DECLARE("CPU_SUBTYPE_POWERPC_602", CPU_SUBTYPE_POWERPC_602
);
947 DECLARE("CPU_SUBTYPE_POWERPC_603", CPU_SUBTYPE_POWERPC_603
);
948 DECLARE("CPU_SUBTYPE_POWERPC_603e", CPU_SUBTYPE_POWERPC_603e
);
949 DECLARE("CPU_SUBTYPE_POWERPC_603ev", CPU_SUBTYPE_POWERPC_603ev
);
950 DECLARE("CPU_SUBTYPE_POWERPC_604", CPU_SUBTYPE_POWERPC_604
);
951 DECLARE("CPU_SUBTYPE_POWERPC_604e", CPU_SUBTYPE_POWERPC_604e
);
952 DECLARE("CPU_SUBTYPE_POWERPC_620", CPU_SUBTYPE_POWERPC_620
);
953 DECLARE("CPU_SUBTYPE_POWERPC_750", CPU_SUBTYPE_POWERPC_750
);
954 DECLARE("CPU_SUBTYPE_POWERPC_7400", CPU_SUBTYPE_POWERPC_7400
);
955 DECLARE("CPU_SUBTYPE_POWERPC_7450", CPU_SUBTYPE_POWERPC_7450
);
958 return(0); /* For ANSI C :-) */