2 * Copyright (c) 2000-2007 Apple Computer, Inc. All rights reserved.
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
34 * genassym.c is used to produce an
35 * assembly file which, intermingled with unuseful assembly code,
36 * has all the necessary definitions emitted. This assembly file is
37 * then postprocessed with sed to extract only these definitions
38 * and thus the final assyms.s is created.
40 * This convoluted means is necessary since the structure alignment
41 * and packing may be different between the host machine and the
42 * target so we are forced into using the cross compiler to generate
43 * the values, but we cannot run anything on the target machine.
48 #include <kern/task.h>
49 #include <kern/thread.h>
50 #include <kern/host.h>
51 #include <kern/lock.h>
52 #include <kern/locks.h>
53 #include <kern/processor.h>
54 #include <ppc/exception.h>
55 #include <ppc/thread.h>
56 #include <ppc/misc_protos.h>
57 #include <kern/syscall_sw.h>
58 #include <ppc/low_trace.h>
59 #include <ppc/PseudoKernel.h>
60 #include <ppc/mappings.h>
61 #include <ppc/Firmware.h>
62 #include <ppc/low_trace.h>
63 #include <vm/vm_map.h>
66 #include <ppc/Diagnostics.h>
67 #include <pexpert/pexpert.h>
68 #include <mach/machine.h>
69 #include <ppc/vmachmon.h>
70 #include <ppc/hw_perfmon.h>
71 #include <ppc/PPCcalls.h>
74 #include <ppc/lowglobals.h>
77 #define NEED_DTRACE_DEFS
78 #include <../bsd/sys/lockstat.h>
81 /* Undefine standard offsetof because it is different than the one here */
83 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE)0)->MEMBER)
85 #define DECLARE(SYM,VAL) \
86 __asm("#DEFINITION##define\t" SYM "\t%0" : : "n" ((u_int)(VAL)))
88 int main(int argc
, char *argv
[])
90 /* Process Control Block */
91 DECLARE("ACT_MACT_KSP", offsetof(thread_t
, machine
.ksp
));
92 DECLARE("ACT_MACT_BEDA", offsetof(thread_t
, machine
.bbDescAddr
));
93 DECLARE("ACT_MACT_BTS", offsetof(thread_t
, machine
.bbTableStart
));
94 DECLARE("ACT_MACT_BTE", offsetof(thread_t
, machine
.bbTaskEnv
));
95 DECLARE("ACT_MACT_SPF", offsetof(thread_t
, machine
.specFlags
));
96 DECLARE("ACT_PREEMPT_CNT", offsetof(thread_t
, machine
.preemption_count
));
97 DECLARE("ACT_PER_PROC", offsetof(thread_t
, machine
.PerProc
));
98 DECLARE("qactTimer", offsetof(thread_t
, machine
.qactTimer
));
99 DECLARE("umwSpace", offsetof(thread_t
, machine
.umwSpace
));
100 DECLARE("umwRelo", offsetof(thread_t
, machine
.umwRelo
));
101 DECLARE("umwSwitchAway", umwSwitchAway
);
102 DECLARE("umwSwitchAwayb", umwSwitchAwayb
);
103 DECLARE("bbTrap", offsetof(thread_t
, machine
.bbTrap
));
104 DECLARE("bbSysCall", offsetof(thread_t
, machine
.bbSysCall
));
105 DECLARE("bbInterrupt", offsetof(thread_t
, machine
.bbInterrupt
));
106 DECLARE("bbPending", offsetof(thread_t
, machine
.bbPending
));
108 DECLARE("floatUsed", floatUsed
);
109 DECLARE("vectorUsed", vectorUsed
);
110 DECLARE("runningVM", runningVM
);
111 DECLARE("runningVMbit", runningVMbit
);
112 DECLARE("floatCng", floatCng
);
113 DECLARE("floatCngbit", floatCngbit
);
114 DECLARE("vectorCng", vectorCng
);
115 DECLARE("vectorCngbit", vectorCngbit
);
116 DECLARE("userProtKey", userProtKey
);
117 DECLARE("userProtKeybit", userProtKeybit
);
119 DECLARE("bbThread", bbThread
);
120 DECLARE("bbThreadbit", bbThreadbit
);
121 DECLARE("bbNoMachSC", bbNoMachSC
);
122 DECLARE("bbNoMachSCbit",bbNoMachSCbit
);
123 DECLARE("bbPreemptive", bbPreemptive
);
124 DECLARE("bbPreemptivebit", bbPreemptivebit
);
126 DECLARE("fvChkb", fvChkb
);
127 DECLARE("fvChk", fvChk
);
128 DECLARE("FamVMena", FamVMena
);
129 DECLARE("FamVMenabit", FamVMenabit
);
130 DECLARE("FamVMmode", FamVMmode
);
131 DECLARE("FamVMmodebit", FamVMmodebit
);
132 DECLARE("perfMonitor", perfMonitor
);
133 DECLARE("perfMonitorbit", perfMonitorbit
);
134 DECLARE("OnProc", OnProc
);
135 DECLARE("OnProcbit", OnProcbit
);
137 /* Per Proc info structure */
138 DECLARE("PP_CPU_NUMBER", offsetof(struct per_proc_info
*, cpu_number
));
139 DECLARE("PP_CPU_FLAGS", offsetof(struct per_proc_info
*, cpu_flags
));
140 DECLARE("PP_ISTACKPTR", offsetof(struct per_proc_info
*, istackptr
));
141 DECLARE("PP_INTSTACK_TOP_SS", offsetof(struct per_proc_info
*, intstack_top_ss
));
142 DECLARE("PP_DEBSTACKPTR", offsetof(struct per_proc_info
*, debstackptr
));
143 DECLARE("PP_DEBSTACK_TOP_SS", offsetof(struct per_proc_info
*, debstack_top_ss
));
144 DECLARE("PP_HIBERNATE", offsetof(struct per_proc_info
*, hibernate
));
145 DECLARE("FPUowner", offsetof(struct per_proc_info
*, FPU_owner
));
146 DECLARE("VMXowner", offsetof(struct per_proc_info
*, VMX_owner
));
147 DECLARE("holdQFret", offsetof(struct per_proc_info
*, holdQFret
));
148 DECLARE("rtcPop", offsetof(struct per_proc_info
*, rtcPop
));
150 DECLARE("PP_PENDING_AST", offsetof(struct per_proc_info
*, pending_ast
));
151 DECLARE("quickfret", offsetof(struct per_proc_info
*, quickfret
));
152 DECLARE("lclfree", offsetof(struct per_proc_info
*, lclfree
));
153 DECLARE("lclfreecnt", offsetof(struct per_proc_info
*, lclfreecnt
));
154 DECLARE("PP_INTS_ENABLED", offsetof(struct per_proc_info
*, interrupts_enabled
));
155 DECLARE("UAW", offsetof(struct per_proc_info
*, Uassist
));
156 DECLARE("next_savearea", offsetof(struct per_proc_info
*, next_savearea
));
157 DECLARE("ppbbTaskEnv", offsetof(struct per_proc_info
*, ppbbTaskEnv
));
158 DECLARE("liveVRS", offsetof(struct per_proc_info
*, liveVRSave
));
159 DECLARE("spcFlags", offsetof(struct per_proc_info
*, spcFlags
));
160 DECLARE("spcTRc", offsetof(struct per_proc_info
*, spcTRc
));
161 DECLARE("spcTRp", offsetof(struct per_proc_info
*, spcTRp
));
162 DECLARE("ruptStamp", offsetof(struct per_proc_info
*, ruptStamp
));
163 DECLARE("pfAvailable", offsetof(struct per_proc_info
*, pf
.Available
));
164 DECLARE("pfFloat", pfFloat
);
165 DECLARE("pfFloatb", pfFloatb
);
166 DECLARE("pfAltivec", pfAltivec
);
167 DECLARE("pfAltivecb", pfAltivecb
);
168 DECLARE("pfAvJava", pfAvJava
);
169 DECLARE("pfAvJavab", pfAvJavab
);
170 DECLARE("pfSMPcap", pfSMPcap
);
171 DECLARE("pfSMPcapb", pfSMPcapb
);
172 DECLARE("pfCanSleep", pfCanSleep
);
173 DECLARE("pfCanSleepb", pfCanSleepb
);
174 DECLARE("pfCanNap", pfCanNap
);
175 DECLARE("pfCanNapb", pfCanNapb
);
176 DECLARE("pfCanDoze", pfCanDoze
);
177 DECLARE("pfCanDozeb", pfCanDozeb
);
178 DECLARE("pfSlowNap", pfSlowNap
);
179 DECLARE("pfSlowNapb", pfSlowNapb
);
180 DECLARE("pfNoMuMMCK", pfNoMuMMCK
);
181 DECLARE("pfNoMuMMCKb", pfNoMuMMCKb
);
182 DECLARE("pfNoL2PFNap", pfNoL2PFNap
);
183 DECLARE("pfNoL2PFNapb", pfNoL2PFNapb
);
184 DECLARE("pfSCOMFixUp", pfSCOMFixUp
);
185 DECLARE("pfSCOMFixUpb", pfSCOMFixUpb
);
186 DECLARE("pfHasDcba", pfHasDcba
);
187 DECLARE("pfHasDcbab", pfHasDcbab
);
188 DECLARE("pfL1fa", pfL1fa
);
189 DECLARE("pfL1fab", pfL1fab
);
190 DECLARE("pfL2", pfL2
);
191 DECLARE("pfL2b", pfL2b
);
192 DECLARE("pfL2fa", pfL2fa
);
193 DECLARE("pfL2fab", pfL2fab
);
194 DECLARE("pfL2i", pfL2i
);
195 DECLARE("pfL2ib", pfL2ib
);
196 DECLARE("pfLClck", pfLClck
);
197 DECLARE("pfLClckb", pfLClckb
);
198 DECLARE("pfWillNap", pfWillNap
);
199 DECLARE("pfWillNapb", pfWillNapb
);
200 DECLARE("pfNoMSRir", pfNoMSRir
);
201 DECLARE("pfNoMSRirb", pfNoMSRirb
);
202 DECLARE("pfL3pdet", pfL3pdet
);
203 DECLARE("pfL3pdetb", pfL3pdetb
);
204 DECLARE("pf128Byte", pf128Byte
);
205 DECLARE("pf128Byteb", pf128Byteb
);
206 DECLARE("pf32Byte", pf32Byte
);
207 DECLARE("pf32Byteb", pf32Byteb
);
208 DECLARE("pf64Bit", pf64Bit
);
209 DECLARE("pf64Bitb", pf64Bitb
);
210 DECLARE("pfL3", pfL3
);
211 DECLARE("pfL3b", pfL3b
);
212 DECLARE("pfL3fa", pfL3fa
);
213 DECLARE("pfL3fab", pfL3fab
);
214 DECLARE("pfValid", pfValid
);
215 DECLARE("pfValidb", pfValidb
);
216 DECLARE("pfrptdProc", offsetof(struct per_proc_info
*, pf
.rptdProc
));
217 DECLARE("pflineSize", offsetof(struct per_proc_info
*, pf
.lineSize
));
218 DECLARE("pfl1iSize", offsetof(struct per_proc_info
*, pf
.l1iSize
));
219 DECLARE("pfl1dSize", offsetof(struct per_proc_info
*, pf
.l1dSize
));
220 DECLARE("pfl2cr", offsetof(struct per_proc_info
*, pf
.l2cr
));
221 DECLARE("pfl2Size", offsetof(struct per_proc_info
*, pf
.l2Size
));
222 DECLARE("pfl3cr", offsetof(struct per_proc_info
*, pf
.l3cr
));
223 DECLARE("pfl3Size", offsetof(struct per_proc_info
*, pf
.l3Size
));
224 DECLARE("pfHID0", offsetof(struct per_proc_info
*, pf
.pfHID0
));
225 DECLARE("pfHID1", offsetof(struct per_proc_info
*, pf
.pfHID1
));
226 DECLARE("pfHID2", offsetof(struct per_proc_info
*, pf
.pfHID2
));
227 DECLARE("pfHID3", offsetof(struct per_proc_info
*, pf
.pfHID3
));
228 DECLARE("pfHID4", offsetof(struct per_proc_info
*, pf
.pfHID4
));
229 DECLARE("pfHID5", offsetof(struct per_proc_info
*, pf
.pfHID5
));
230 DECLARE("pfMSSCR0", offsetof(struct per_proc_info
*, pf
.pfMSSCR0
));
231 DECLARE("pfMSSCR1", offsetof(struct per_proc_info
*, pf
.pfMSSCR1
));
232 DECLARE("pfICTRL", offsetof(struct per_proc_info
*, pf
.pfICTRL
));
233 DECLARE("pfLDSTCR", offsetof(struct per_proc_info
*, pf
.pfLDSTCR
));
234 DECLARE("pfLDSTDB", offsetof(struct per_proc_info
*, pf
.pfLDSTDB
));
235 DECLARE("pfl2crOriginal", offsetof(struct per_proc_info
*, pf
.l2crOriginal
));
236 DECLARE("pfl3crOriginal", offsetof(struct per_proc_info
*, pf
.l3crOriginal
));
237 DECLARE("pfBootConfig", offsetof(struct per_proc_info
*, pf
.pfBootConfig
));
238 DECLARE("pfPowerModes", offsetof(struct per_proc_info
*, pf
.pfPowerModes
));
239 DECLARE("pfPowerTune0", offsetof(struct per_proc_info
*, pf
.pfPowerTune0
));
240 DECLARE("pfPowerTune1", offsetof(struct per_proc_info
*, pf
.pfPowerTune1
));
241 DECLARE("pmType", pmType
);
242 DECLARE("pmDPLLVmin", pmDPLLVmin
);
243 DECLARE("pmDPLLVminb", pmDPLLVminb
);
244 DECLARE("pmPowerTune", pmPowerTune
);
245 DECLARE("pmDFS", pmDFS
);
246 DECLARE("pmDualPLL", pmDualPLL
);
247 DECLARE("pfPTEG", offsetof(struct per_proc_info
*, pf
.pfPTEG
));
248 DECLARE("pfMaxVAddr", offsetof(struct per_proc_info
*, pf
.pfMaxVAddr
));
249 DECLARE("pfMaxPAddr", offsetof(struct per_proc_info
*, pf
.pfMaxPAddr
));
250 DECLARE("pfSize", sizeof(procFeatures
));
252 DECLARE("validSegs", offsetof(struct per_proc_info
*, validSegs
));
253 DECLARE("ppUserPmapVirt", offsetof(struct per_proc_info
*, ppUserPmapVirt
));
254 DECLARE("ppUserPmap", offsetof(struct per_proc_info
*, ppUserPmap
));
255 DECLARE("ppMapFlags", offsetof(struct per_proc_info
*, ppMapFlags
));
256 DECLARE("ppInvSeg", offsetof(struct per_proc_info
*, ppInvSeg
));
257 DECLARE("ppCurSeg", offsetof(struct per_proc_info
*, ppCurSeg
));
258 DECLARE("ppSegSteal", offsetof(struct per_proc_info
*, ppSegSteal
));
260 DECLARE("VMMareaPhys", offsetof(struct per_proc_info
*, VMMareaPhys
));
261 DECLARE("VMMXAFlgs", offsetof(struct per_proc_info
*, VMMXAFlgs
));
262 DECLARE("FAMintercept", offsetof(struct per_proc_info
*, FAMintercept
));
264 DECLARE("ppUMWmp", offsetof(struct per_proc_info
*, ppUMWmp
));
266 DECLARE("tempr0", offsetof(struct per_proc_info
*, tempr0
));
267 DECLARE("tempr1", offsetof(struct per_proc_info
*, tempr1
));
268 DECLARE("tempr2", offsetof(struct per_proc_info
*, tempr2
));
269 DECLARE("tempr3", offsetof(struct per_proc_info
*, tempr3
));
270 DECLARE("tempr4", offsetof(struct per_proc_info
*, tempr4
));
271 DECLARE("tempr5", offsetof(struct per_proc_info
*, tempr5
));
272 DECLARE("tempr6", offsetof(struct per_proc_info
*, tempr6
));
273 DECLARE("tempr7", offsetof(struct per_proc_info
*, tempr7
));
274 DECLARE("tempr8", offsetof(struct per_proc_info
*, tempr8
));
275 DECLARE("tempr9", offsetof(struct per_proc_info
*, tempr9
));
276 DECLARE("tempr10", offsetof(struct per_proc_info
*, tempr10
));
277 DECLARE("tempr11", offsetof(struct per_proc_info
*, tempr11
));
278 DECLARE("tempr12", offsetof(struct per_proc_info
*, tempr12
));
279 DECLARE("tempr13", offsetof(struct per_proc_info
*, tempr13
));
280 DECLARE("tempr14", offsetof(struct per_proc_info
*, tempr14
));
281 DECLARE("tempr15", offsetof(struct per_proc_info
*, tempr15
));
282 DECLARE("tempr16", offsetof(struct per_proc_info
*, tempr16
));
283 DECLARE("tempr17", offsetof(struct per_proc_info
*, tempr17
));
284 DECLARE("tempr18", offsetof(struct per_proc_info
*, tempr18
));
285 DECLARE("tempr19", offsetof(struct per_proc_info
*, tempr19
));
286 DECLARE("tempr20", offsetof(struct per_proc_info
*, tempr20
));
287 DECLARE("tempr21", offsetof(struct per_proc_info
*, tempr21
));
288 DECLARE("tempr22", offsetof(struct per_proc_info
*, tempr22
));
289 DECLARE("tempr23", offsetof(struct per_proc_info
*, tempr23
));
290 DECLARE("tempr24", offsetof(struct per_proc_info
*, tempr24
));
291 DECLARE("tempr25", offsetof(struct per_proc_info
*, tempr25
));
292 DECLARE("tempr26", offsetof(struct per_proc_info
*, tempr26
));
293 DECLARE("tempr27", offsetof(struct per_proc_info
*, tempr27
));
294 DECLARE("tempr28", offsetof(struct per_proc_info
*, tempr28
));
295 DECLARE("tempr29", offsetof(struct per_proc_info
*, tempr29
));
296 DECLARE("tempr30", offsetof(struct per_proc_info
*, tempr30
));
297 DECLARE("tempr31", offsetof(struct per_proc_info
*, tempr31
));
299 DECLARE("emfp0", offsetof(struct per_proc_info
*, emfp0
));
300 DECLARE("emfp1", offsetof(struct per_proc_info
*, emfp1
));
301 DECLARE("emfp2", offsetof(struct per_proc_info
*, emfp2
));
302 DECLARE("emfp3", offsetof(struct per_proc_info
*, emfp3
));
303 DECLARE("emfp4", offsetof(struct per_proc_info
*, emfp4
));
304 DECLARE("emfp5", offsetof(struct per_proc_info
*, emfp5
));
305 DECLARE("emfp6", offsetof(struct per_proc_info
*, emfp6
));
306 DECLARE("emfp7", offsetof(struct per_proc_info
*, emfp7
));
307 DECLARE("emfp8", offsetof(struct per_proc_info
*, emfp8
));
308 DECLARE("emfp9", offsetof(struct per_proc_info
*, emfp9
));
309 DECLARE("emfp10", offsetof(struct per_proc_info
*, emfp10
));
310 DECLARE("emfp11", offsetof(struct per_proc_info
*, emfp11
));
311 DECLARE("emfp12", offsetof(struct per_proc_info
*, emfp12
));
312 DECLARE("emfp13", offsetof(struct per_proc_info
*, emfp13
));
313 DECLARE("emfp14", offsetof(struct per_proc_info
*, emfp14
));
314 DECLARE("emfp15", offsetof(struct per_proc_info
*, emfp15
));
315 DECLARE("emfp16", offsetof(struct per_proc_info
*, emfp16
));
316 DECLARE("emfp17", offsetof(struct per_proc_info
*, emfp17
));
317 DECLARE("emfp18", offsetof(struct per_proc_info
*, emfp18
));
318 DECLARE("emfp19", offsetof(struct per_proc_info
*, emfp19
));
319 DECLARE("emfp20", offsetof(struct per_proc_info
*, emfp20
));
320 DECLARE("emfp21", offsetof(struct per_proc_info
*, emfp21
));
321 DECLARE("emfp22", offsetof(struct per_proc_info
*, emfp22
));
322 DECLARE("emfp23", offsetof(struct per_proc_info
*, emfp23
));
323 DECLARE("emfp24", offsetof(struct per_proc_info
*, emfp24
));
324 DECLARE("emfp25", offsetof(struct per_proc_info
*, emfp25
));
325 DECLARE("emfp26", offsetof(struct per_proc_info
*, emfp26
));
326 DECLARE("emfp27", offsetof(struct per_proc_info
*, emfp27
));
327 DECLARE("emfp28", offsetof(struct per_proc_info
*, emfp28
));
328 DECLARE("emfp29", offsetof(struct per_proc_info
*, emfp29
));
329 DECLARE("emfp30", offsetof(struct per_proc_info
*, emfp30
));
330 DECLARE("emfp31", offsetof(struct per_proc_info
*, emfp31
));
331 DECLARE("emfpscr_pad", offsetof(struct per_proc_info
*, emfpscr_pad
));
332 DECLARE("emfpscr", offsetof(struct per_proc_info
*, emfpscr
));
334 DECLARE("emvr0", offsetof(struct per_proc_info
*, emvr0
));
335 DECLARE("emvr1", offsetof(struct per_proc_info
*, emvr1
));
336 DECLARE("emvr2", offsetof(struct per_proc_info
*, emvr2
));
337 DECLARE("emvr3", offsetof(struct per_proc_info
*, emvr3
));
338 DECLARE("emvr4", offsetof(struct per_proc_info
*, emvr4
));
339 DECLARE("emvr5", offsetof(struct per_proc_info
*, emvr5
));
340 DECLARE("emvr6", offsetof(struct per_proc_info
*, emvr6
));
341 DECLARE("emvr7", offsetof(struct per_proc_info
*, emvr7
));
342 DECLARE("emvr8", offsetof(struct per_proc_info
*, emvr8
));
343 DECLARE("emvr9", offsetof(struct per_proc_info
*, emvr9
));
344 DECLARE("emvr10", offsetof(struct per_proc_info
*, emvr10
));
345 DECLARE("emvr11", offsetof(struct per_proc_info
*, emvr11
));
346 DECLARE("emvr12", offsetof(struct per_proc_info
*, emvr12
));
347 DECLARE("emvr13", offsetof(struct per_proc_info
*, emvr13
));
348 DECLARE("emvr14", offsetof(struct per_proc_info
*, emvr14
));
349 DECLARE("emvr15", offsetof(struct per_proc_info
*, emvr15
));
350 DECLARE("emvr16", offsetof(struct per_proc_info
*, emvr16
));
351 DECLARE("emvr17", offsetof(struct per_proc_info
*, emvr17
));
352 DECLARE("emvr18", offsetof(struct per_proc_info
*, emvr18
));
353 DECLARE("emvr19", offsetof(struct per_proc_info
*, emvr19
));
354 DECLARE("emvr20", offsetof(struct per_proc_info
*, emvr20
));
355 DECLARE("emvr21", offsetof(struct per_proc_info
*, emvr21
));
356 DECLARE("emvr22", offsetof(struct per_proc_info
*, emvr22
));
357 DECLARE("emvr23", offsetof(struct per_proc_info
*, emvr23
));
358 DECLARE("emvr24", offsetof(struct per_proc_info
*, emvr24
));
359 DECLARE("emvr25", offsetof(struct per_proc_info
*, emvr25
));
360 DECLARE("emvr26", offsetof(struct per_proc_info
*, emvr26
));
361 DECLARE("emvr27", offsetof(struct per_proc_info
*, emvr27
));
362 DECLARE("emvr28", offsetof(struct per_proc_info
*, emvr28
));
363 DECLARE("emvr29", offsetof(struct per_proc_info
*, emvr29
));
364 DECLARE("emvr30", offsetof(struct per_proc_info
*, emvr30
));
365 DECLARE("emvr31", offsetof(struct per_proc_info
*, emvr31
));
366 DECLARE("empadvr", offsetof(struct per_proc_info
*, empadvr
));
367 DECLARE("skipListPrev", offsetof(struct per_proc_info
*, skipListPrev
));
368 DECLARE("ppSize", sizeof(struct per_proc_info
));
369 DECLARE("ppe_paddr", offsetof(struct per_proc_entry
*, ppe_paddr
));
370 DECLARE("ppe_vaddr", offsetof(struct per_proc_entry
*, ppe_vaddr
));
371 DECLARE("ppeSize", sizeof(struct per_proc_entry
));
372 DECLARE("MAX_CPUS", MAX_CPUS
);
373 DECLARE("patcharea", offsetof(struct per_proc_info
*, patcharea
));
375 DECLARE("hwCounts", offsetof(struct per_proc_info
*, hwCtr
));
376 DECLARE("hwInVains", offsetof(struct per_proc_info
*, hwCtr
.hwInVains
));
377 DECLARE("hwResets", offsetof(struct per_proc_info
*, hwCtr
.hwResets
));
378 DECLARE("hwMachineChecks", offsetof(struct per_proc_info
*, hwCtr
.hwMachineChecks
));
379 DECLARE("hwDSIs", offsetof(struct per_proc_info
*, hwCtr
.hwDSIs
));
380 DECLARE("hwISIs", offsetof(struct per_proc_info
*, hwCtr
.hwISIs
));
381 DECLARE("hwExternals", offsetof(struct per_proc_info
*, hwCtr
.hwExternals
));
382 DECLARE("hwAlignments", offsetof(struct per_proc_info
*, hwCtr
.hwAlignments
));
383 DECLARE("hwPrograms", offsetof(struct per_proc_info
*, hwCtr
.hwPrograms
));
384 DECLARE("hwFloatPointUnavailable", offsetof(struct per_proc_info
*, hwCtr
.hwFloatPointUnavailable
));
385 DECLARE("hwDecrementers", offsetof(struct per_proc_info
*, hwCtr
.hwDecrementers
));
386 DECLARE("hwIOErrors", offsetof(struct per_proc_info
*, hwCtr
.hwIOErrors
));
387 DECLARE("hwrsvd0", offsetof(struct per_proc_info
*, hwCtr
.hwrsvd0
));
388 DECLARE("hwSystemCalls", offsetof(struct per_proc_info
*, hwCtr
.hwSystemCalls
));
389 DECLARE("hwTraces", offsetof(struct per_proc_info
*, hwCtr
.hwTraces
));
390 DECLARE("hwFloatingPointAssists", offsetof(struct per_proc_info
*, hwCtr
.hwFloatingPointAssists
));
391 DECLARE("hwPerformanceMonitors", offsetof(struct per_proc_info
*, hwCtr
.hwPerformanceMonitors
));
392 DECLARE("hwAltivecs", offsetof(struct per_proc_info
*, hwCtr
.hwAltivecs
));
393 DECLARE("hwrsvd1", offsetof(struct per_proc_info
*, hwCtr
.hwrsvd1
));
394 DECLARE("hwrsvd2", offsetof(struct per_proc_info
*, hwCtr
.hwrsvd2
));
395 DECLARE("hwrsvd3", offsetof(struct per_proc_info
*, hwCtr
.hwrsvd3
));
396 DECLARE("hwInstBreakpoints", offsetof(struct per_proc_info
*, hwCtr
.hwInstBreakpoints
));
397 DECLARE("hwSystemManagements", offsetof(struct per_proc_info
*, hwCtr
.hwSystemManagements
));
398 DECLARE("hwAltivecAssists", offsetof(struct per_proc_info
*, hwCtr
.hwAltivecAssists
));
399 DECLARE("hwThermal", offsetof(struct per_proc_info
*, hwCtr
.hwThermal
));
400 DECLARE("hwrsvd5", offsetof(struct per_proc_info
*, hwCtr
.hwrsvd5
));
401 DECLARE("hwrsvd6", offsetof(struct per_proc_info
*, hwCtr
.hwrsvd6
));
402 DECLARE("hwrsvd7", offsetof(struct per_proc_info
*, hwCtr
.hwrsvd7
));
403 DECLARE("hwrsvd8", offsetof(struct per_proc_info
*, hwCtr
.hwrsvd8
));
404 DECLARE("hwrsvd9", offsetof(struct per_proc_info
*, hwCtr
.hwrsvd9
));
405 DECLARE("hwrsvd10", offsetof(struct per_proc_info
*, hwCtr
.hwrsvd10
));
406 DECLARE("hwrsvd11", offsetof(struct per_proc_info
*, hwCtr
.hwrsvd11
));
407 DECLARE("hwrsvd12", offsetof(struct per_proc_info
*, hwCtr
.hwrsvd12
));
408 DECLARE("hwrsvd13", offsetof(struct per_proc_info
*, hwCtr
.hwrsvd13
));
409 DECLARE("hwTrace601", offsetof(struct per_proc_info
*, hwCtr
.hwTrace601
));
410 DECLARE("hwSIGPs", offsetof(struct per_proc_info
*, hwCtr
.hwSIGPs
));
411 DECLARE("hwPreemptions", offsetof(struct per_proc_info
*, hwCtr
.hwPreemptions
));
412 DECLARE("hwContextSwitchs", offsetof(struct per_proc_info
*, hwCtr
.hwContextSwitchs
));
413 DECLARE("hwShutdowns", offsetof(struct per_proc_info
*, hwCtr
.hwShutdowns
));
414 DECLARE("hwChokes", offsetof(struct per_proc_info
*, hwCtr
.hwChokes
));
415 DECLARE("hwDataSegments", offsetof(struct per_proc_info
*, hwCtr
.hwDataSegments
));
416 DECLARE("hwInstructionSegments", offsetof(struct per_proc_info
*, hwCtr
.hwInstructionSegments
));
417 DECLARE("hwSoftPatches", offsetof(struct per_proc_info
*, hwCtr
.hwSoftPatches
));
418 DECLARE("hwMaintenances", offsetof(struct per_proc_info
*, hwCtr
.hwMaintenances
));
419 DECLARE("hwInstrumentations", offsetof(struct per_proc_info
*, hwCtr
.hwInstrumentations
));
420 DECLARE("hwRedrives", offsetof(struct per_proc_info
*, hwCtr
.hwRedrives
));
421 DECLARE("hwIgnored", offsetof(struct per_proc_info
*, hwCtr
.hwIgnored
));
422 DECLARE("hwhdec", offsetof(struct per_proc_info
*, hwCtr
.hwhdec
));
423 DECLARE("hwSteals", offsetof(struct per_proc_info
*, hwCtr
.hwSteals
));
425 DECLARE("hwWalkPhys", offsetof(struct per_proc_info
*, hwCtr
.hwWalkPhys
));
426 DECLARE("hwWalkFull", offsetof(struct per_proc_info
*, hwCtr
.hwWalkFull
));
427 DECLARE("hwWalkMerge", offsetof(struct per_proc_info
*, hwCtr
.hwWalkMerge
));
428 DECLARE("hwWalkQuick", offsetof(struct per_proc_info
*, hwCtr
.hwWalkQuick
));
430 DECLARE("hwMckHang", offsetof(struct per_proc_info
*, hwCtr
.hwMckHang
));
431 DECLARE("hwMckSLBPE", offsetof(struct per_proc_info
*, hwCtr
.hwMckSLBPE
));
432 DECLARE("hwMckTLBPE", offsetof(struct per_proc_info
*, hwCtr
.hwMckTLBPE
));
433 DECLARE("hwMckERCPE", offsetof(struct per_proc_info
*, hwCtr
.hwMckERCPE
));
434 DECLARE("hwMckL1DPE", offsetof(struct per_proc_info
*, hwCtr
.hwMckL1DPE
));
435 DECLARE("hwMckL1TPE", offsetof(struct per_proc_info
*, hwCtr
.hwMckL1TPE
));
436 DECLARE("hwMckUE", offsetof(struct per_proc_info
*, hwCtr
.hwMckUE
));
437 DECLARE("hwMckIUE", offsetof(struct per_proc_info
*, hwCtr
.hwMckIUE
));
438 DECLARE("hwMckIUEr", offsetof(struct per_proc_info
*, hwCtr
.hwMckIUEr
));
439 DECLARE("hwMckDUE", offsetof(struct per_proc_info
*, hwCtr
.hwMckDUE
));
440 DECLARE("hwMckDTW", offsetof(struct per_proc_info
*, hwCtr
.hwMckDTW
));
441 DECLARE("hwMckUnk", offsetof(struct per_proc_info
*, hwCtr
.hwMckUnk
));
442 DECLARE("hwMckExt", offsetof(struct per_proc_info
*, hwCtr
.hwMckExt
));
443 DECLARE("hwMckICachePE", offsetof(struct per_proc_info
*, hwCtr
.hwMckICachePE
));
444 DECLARE("hwMckITagPE", offsetof(struct per_proc_info
*, hwCtr
.hwMckITagPE
));
445 DECLARE("hwMckIEratPE", offsetof(struct per_proc_info
*, hwCtr
.hwMckIEratPE
));
446 DECLARE("hwMckDEratPE", offsetof(struct per_proc_info
*, hwCtr
.hwMckDEratPE
));
448 DECLARE("ijsave", offsetof(struct per_proc_info
*, ijsave
));
450 DECLARE("napStamp", offsetof(struct per_proc_info
*, hwCtr
.napStamp
));
451 DECLARE("napTotal", offsetof(struct per_proc_info
*, hwCtr
.napTotal
));
452 DECLARE("PP_PROCESSOR", offsetof(struct per_proc_info
*, processor
[0]));
453 DECLARE("PP_PROCESSOR_SIZE", sizeof(((struct per_proc_info
*)0)->processor
));
454 DECLARE("PROCESSOR_SIZE", sizeof (struct processor
));
456 DECLARE("patchAddr", offsetof(struct patch_entry
*, addr
));
457 DECLARE("patchData", offsetof(struct patch_entry
*, data
));
458 DECLARE("patchType", offsetof(struct patch_entry
*, type
));
459 DECLARE("patchValue", offsetof(struct patch_entry
*, value
));
460 DECLARE("peSize", sizeof(patch_entry_t
));
461 DECLARE("PATCH_PROCESSOR", PATCH_PROCESSOR
);
462 DECLARE("PATCH_FEATURE", PATCH_FEATURE
);
463 DECLARE("PATCH_END_OF_TABLE", PATCH_END_OF_TABLE
);
464 DECLARE("PatchExt32", PatchExt32
);
465 DECLARE("PatchExt32b", PatchExt32b
);
466 DECLARE("PatchLwsync", PatchLwsync
);
467 DECLARE("PatchLwsyncb", PatchLwsyncb
);
469 DECLARE("RESETHANDLER_TYPE", offsetof(struct resethandler
*, type
));
470 DECLARE("RESETHANDLER_CALL", offsetof(struct resethandler
*, call_paddr
));
471 DECLARE("RESETHANDLER_ARG", offsetof(struct resethandler
*, arg__paddr
));
473 /* we want offset from
474 * bottom of kernel stack, not offset into structure
476 #define IKSBASE (u_int)STACK_IKS(0)
478 /* values from kern/thread.h */
479 DECLARE("THREAD_STATE", offsetof(thread_t
, state
));
480 DECLARE("TH_IDLE", TH_IDLE
);
481 DECLARE("THREAD_KERNEL_STACK", offsetof(thread_t
, kernel_stack
));
482 DECLARE("THREAD_RECOVER", offsetof(thread_t
, recover
));
483 DECLARE("THREAD_FUNNEL_LOCK",
484 offsetof(thread_t
, funnel_lock
));
485 DECLARE("THREAD_FUNNEL_STATE",
486 offsetof(thread_t
, funnel_state
));
487 DECLARE("LOCK_FNL_MUTEX",
488 offsetof(struct funnel_lock
*, fnl_mutex
));
490 DECLARE("ACT_TASK", offsetof(thread_t
, task
));
491 DECLARE("ACT_MACT_PCB", offsetof(thread_t
, machine
.pcb
));
492 DECLARE("ACT_MACT_UPCB", offsetof(thread_t
, machine
.upcb
));
493 DECLARE("ACT_AST", offsetof(thread_t
, ast
));
494 DECLARE("ACT_VMMAP", offsetof(thread_t
, map
));
495 DECLARE("vmmCEntry", offsetof(thread_t
, machine
.vmmCEntry
));
496 DECLARE("vmmControl", offsetof(thread_t
, machine
.vmmControl
));
497 DECLARE("curctx", offsetof(thread_t
, machine
.curctx
));
498 DECLARE("deferctx", offsetof(thread_t
, machine
.deferctx
));
499 DECLARE("facctx", offsetof(thread_t
, machine
.facctx
));
501 DECLARE("CTHREAD_SELF", offsetof(thread_t
, machine
.cthread_self
));
504 DECLARE("FPUsave", offsetof(struct facility_context
*,FPUsave
));
505 DECLARE("FPUlevel", offsetof(struct facility_context
*,FPUlevel
));
506 DECLARE("FPUcpu", offsetof(struct facility_context
*,FPUcpu
));
507 DECLARE("FPUsync", offsetof(struct facility_context
*,FPUsync
));
508 DECLARE("VMXsave", offsetof(struct facility_context
*,VMXsave
));
509 DECLARE("VMXlevel", offsetof(struct facility_context
*,VMXlevel
));
510 DECLARE("VMXcpu", offsetof(struct facility_context
*,VMXcpu
));
511 DECLARE("VMXsync", offsetof(struct facility_context
*,VMXsync
));
512 DECLARE("facAct", offsetof(struct facility_context
*,facAct
));
514 /* Values from vmachmon.h */
516 DECLARE("kVmmGetVersion", kVmmGetVersion
);
517 DECLARE("kVmmvGetFeatures", kVmmvGetFeatures
);
518 DECLARE("kVmmInitContext", kVmmInitContext
);
519 DECLARE("kVmmTearDownContext", kVmmTearDownContext
);
520 DECLARE("kVmmTearDownAll", kVmmTearDownAll
);
521 DECLARE("kVmmMapPage", kVmmMapPage
);
522 DECLARE("kVmmGetPageMapping", kVmmGetPageMapping
);
523 DECLARE("kVmmUnmapPage", kVmmUnmapPage
);
524 DECLARE("kVmmUnmapAllPages", kVmmUnmapAllPages
);
525 DECLARE("kVmmGetPageDirtyFlag", kVmmGetPageDirtyFlag
);
526 DECLARE("kVmmGetFloatState", kVmmGetFloatState
);
527 DECLARE("kVmmGetVectorState", kVmmGetVectorState
);
528 DECLARE("kVmmSetTimer", kVmmSetTimer
);
529 DECLARE("kVmmGetTimer", kVmmGetTimer
);
530 DECLARE("kVmmExecuteVM", kVmmExecuteVM
);
531 DECLARE("kVmmProtectPage", kVmmProtectPage
);
532 DECLARE("kVmmMapList", kVmmMapList
);
533 DECLARE("kVmmUnmapList", kVmmUnmapList
);
534 DECLARE("kVmmActivateXA", kVmmActivateXA
);
535 DECLARE("kVmmDeactivateXA", kVmmDeactivateXA
);
536 DECLARE("kVmmGetXA", kVmmGetXA
);
537 DECLARE("kVmmMapPage64", kVmmMapPage64
);
538 DECLARE("kVmmGetPageMapping64", kVmmGetPageMapping64
);
539 DECLARE("kVmmUnmapPage64", kVmmUnmapPage64
);
540 DECLARE("kVmmGetPageDirtyFlag64", kVmmGetPageDirtyFlag64
);
541 DECLARE("kVmmMapExecute64", kVmmMapExecute64
);
542 DECLARE("kVmmProtectExecute64", kVmmProtectExecute64
);
543 DECLARE("kVmmMapList64", kVmmMapList64
);
544 DECLARE("kVmmUnmapList64", kVmmUnmapList64
);
545 DECLARE("kvmmExitToHost", kvmmExitToHost
);
546 DECLARE("kvmmResumeGuest", kvmmResumeGuest
);
547 DECLARE("kvmmGetGuestRegister", kvmmGetGuestRegister
);
548 DECLARE("kvmmSetGuestRegister", kvmmSetGuestRegister
);
550 DECLARE("kVmmReturnNull", kVmmReturnNull
);
551 DECLARE("kVmmStopped", kVmmStopped
);
552 DECLARE("kVmmBogusContext", kVmmBogusContext
);
553 DECLARE("kVmmReturnDataPageFault", kVmmReturnDataPageFault
);
554 DECLARE("kVmmReturnInstrPageFault", kVmmReturnInstrPageFault
);
555 DECLARE("kVmmReturnAlignmentFault", kVmmReturnAlignmentFault
);
556 DECLARE("kVmmReturnProgramException", kVmmReturnProgramException
);
557 DECLARE("kVmmReturnSystemCall", kVmmReturnSystemCall
);
558 DECLARE("kVmmReturnTraceException", kVmmReturnTraceException
);
559 DECLARE("kVmmInvalidAdSpace", kVmmInvalidAdSpace
);
561 DECLARE("kVmmProtXtnd", kVmmProtXtnd
);
562 DECLARE("kVmmProtNARW", kVmmProtNARW
);
563 DECLARE("kVmmProtRORW", kVmmProtRORW
);
564 DECLARE("kVmmProtRWRW", kVmmProtRWRW
);
565 DECLARE("kVmmProtRORO", kVmmProtRORO
);
567 DECLARE("vmmFlags", offsetof(struct vmmCntrlEntry
*, vmmFlags
));
568 DECLARE("vmmXAFlgs", offsetof(struct vmmCntrlEntry
*, vmmXAFlgs
));
569 DECLARE("vmmPmap", offsetof(struct vmmCntrlEntry
*, vmmPmap
));
570 DECLARE("vmmInUseb", vmmInUseb
);
571 DECLARE("vmmInUse", vmmInUse
);
572 DECLARE("vmmContextKern", offsetof(struct vmmCntrlEntry
*, vmmContextKern
));
573 DECLARE("vmmContextPhys", offsetof(struct vmmCntrlEntry
*, vmmContextPhys
));
574 DECLARE("vmmContextUser", offsetof(struct vmmCntrlEntry
*, vmmContextUser
));
575 DECLARE("vmmFacCtx", offsetof(struct vmmCntrlEntry
*, vmmFacCtx
));
576 DECLARE("vmmLastMap", offsetof(struct vmmCntrlTable
*, vmmLastMap
));
577 DECLARE("vmmGFlags", offsetof(struct vmmCntrlTable
*, vmmGFlags
));
578 DECLARE("vmmc", offsetof(struct vmmCntrlTable
*, vmmc
));
579 DECLARE("vmmAdsp", offsetof(struct vmmCntrlTable
*, vmmAdsp
));
580 DECLARE("vmmLastAdSp", vmmLastAdSp
);
581 DECLARE("vmmFAMintercept", offsetof(struct vmmCntrlEntry
*, vmmFAMintercept
));
582 DECLARE("vmmCEntrySize", sizeof(struct vmmCntrlEntry
));
583 DECLARE("kVmmMaxContexts", kVmmMaxContexts
);
585 DECLARE("interface_version", offsetof(struct vmm_state_page_t
*, interface_version
));
586 DECLARE("thread_index", offsetof(struct vmm_state_page_t
*, thread_index
));
587 DECLARE("vmmStat", offsetof(struct vmm_state_page_t
*, vmmStat
));
588 DECLARE("vmmCntrl", offsetof(struct vmm_state_page_t
*, vmmCntrl
));
589 DECLARE("vmm_proc_state", offsetof(struct vmm_state_page_t
*, vmm_proc_state
));
591 DECLARE("return_code", offsetof(struct vmm_state_page_t
*, return_code
));
593 DECLARE("return_params", offsetof(struct vmm_state_page_t
*, vmmRet
.vmmrp32
.return_params
));
594 DECLARE("return_paramsX", offsetof(struct vmm_state_page_t
*, vmmRet
.vmmrp64
.return_params
));
597 DECLARE("return_params", offsetof(struct vmm_state_page_t
*, return_params
));
598 DECLARE("vmm_proc_state", offsetof(struct vmm_state_page_t
*, vmm_proc_state
));
600 DECLARE("vmmppcVRs", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcVRs
));
601 DECLARE("vmmppcVSCR", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcVSCR
));
602 DECLARE("vmmppcFPRs", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcFPRs
));
603 DECLARE("vmmppcFPSCR", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcFPSCR
));
605 DECLARE("vmmppcpc", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcPC
));
606 DECLARE("vmmppcmsr", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcMSR
));
607 DECLARE("vmmppcr0", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x00));
608 DECLARE("vmmppcr1", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x04));
609 DECLARE("vmmppcr2", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x08));
610 DECLARE("vmmppcr3", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x0C));
611 DECLARE("vmmppcr4", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x10));
612 DECLARE("vmmppcr5", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x14));
614 DECLARE("vmmppcr6", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x18));
615 DECLARE("vmmppcr7", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x1C));
616 DECLARE("vmmppcr8", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x20));
617 DECLARE("vmmppcr9", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x24));
618 DECLARE("vmmppcr10", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x28));
619 DECLARE("vmmppcr11", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x2C));
620 DECLARE("vmmppcr12", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x30));
621 DECLARE("vmmppcr13", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x34));
623 DECLARE("vmmppcr14", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x38));
624 DECLARE("vmmppcr15", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x3C));
625 DECLARE("vmmppcr16", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x40));
626 DECLARE("vmmppcr17", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x44));
627 DECLARE("vmmppcr18", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x48));
628 DECLARE("vmmppcr19", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x4C));
629 DECLARE("vmmppcr20", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x50));
630 DECLARE("vmmppcr21", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x54));
632 DECLARE("vmmppcr22", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x58));
633 DECLARE("vmmppcr23", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x5C));
634 DECLARE("vmmppcr24", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x60));
635 DECLARE("vmmppcr25", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x64));
636 DECLARE("vmmppcr26", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x68));
637 DECLARE("vmmppcr27", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x6C));
638 DECLARE("vmmppcr28", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x70));
639 DECLARE("vmmppcr29", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x74));
641 DECLARE("vmmppcr30", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x78));
642 DECLARE("vmmppcr31", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcGPRs
+0x7C));
643 DECLARE("vmmppccr", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcCR
));
644 DECLARE("vmmppcxer", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcXER
));
645 DECLARE("vmmppclr", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcLR
));
646 DECLARE("vmmppcctr", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcCTR
));
647 DECLARE("vmmppcmq", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcMQ
));
648 DECLARE("vmmppcvrsave", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs32
.ppcVRSave
));
650 DECLARE("vmmppcXpc", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcPC
));
651 DECLARE("vmmppcXmsr", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcMSR
));
652 DECLARE("vmmppcXr0", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x00));
653 DECLARE("vmmppcXr1", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x08));
654 DECLARE("vmmppcXr2", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x10));
655 DECLARE("vmmppcXr3", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x18));
656 DECLARE("vmmppcXr4", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x20));
657 DECLARE("vmmppcXr5", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x28));
659 DECLARE("vmmppcXr6", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x30));
660 DECLARE("vmmppcXr7", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x38));
661 DECLARE("vmmppcXr8", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x40));
662 DECLARE("vmmppcXr9", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x48));
663 DECLARE("vmmppcXr10", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x50));
664 DECLARE("vmmppcXr11", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x58));
665 DECLARE("vmmppcXr12", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x60));
666 DECLARE("vmmppcXr13", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x68));
668 DECLARE("vmmppcXr14", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x70));
669 DECLARE("vmmppcXr15", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x78));
670 DECLARE("vmmppcXr16", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x80));
671 DECLARE("vmmppcXr17", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x88));
672 DECLARE("vmmppcXr18", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x90));
673 DECLARE("vmmppcXr19", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0x98));
674 DECLARE("vmmppcXr20", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0xA0));
675 DECLARE("vmmppcXr21", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0xA8));
677 DECLARE("vmmppcXr22", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0xB0));
678 DECLARE("vmmppcXr23", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0xB8));
679 DECLARE("vmmppcXr24", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0xC0));
680 DECLARE("vmmppcXr25", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0xC8));
681 DECLARE("vmmppcXr26", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0xD0));
682 DECLARE("vmmppcXr27", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0xD8));
683 DECLARE("vmmppcXr28", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0xE0));
684 DECLARE("vmmppcXr29", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0xE8));
686 DECLARE("vmmppcXr30", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0xF0));
687 DECLARE("vmmppcXr31", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcGPRs
+0xF8));
688 DECLARE("vmmppcXcr", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcCR
));
689 DECLARE("vmmppcXxer", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcXER
));
690 DECLARE("vmmppcXlr", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcLR
));
691 DECLARE("vmmppcXctr", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcCTR
));
692 DECLARE("vmmppcXvrsave", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcRegs
.ppcRegs64
.ppcVRSave
));
694 DECLARE("vmmppcvscr", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcVSCR
+0x00));
695 DECLARE("vmmppcfpscrpad", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcFPSCR
));
696 DECLARE("vmmppcfpscr", offsetof(struct vmm_state_page_t
*, vmm_proc_state
.ppcFPSCR
+4));
698 DECLARE("famguestr0", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.guest_register
));
699 DECLARE("famguestr1", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.guest_register
+0x4));
700 DECLARE("famguestr2", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.guest_register
+0x8));
701 DECLARE("famguestr3", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.guest_register
+0xC));
702 DECLARE("famguestr4", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.guest_register
+0x10));
703 DECLARE("famguestr5", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.guest_register
+0x14));
704 DECLARE("famguestr6", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.guest_register
+0x18));
705 DECLARE("famguestr7", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.guest_register
+0x1C));
706 DECLARE("famguestpc", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.guest_pc
));
707 DECLARE("famguestmsr", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.guest_msr
));
708 DECLARE("famdispcode", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.fastassist_dispatch_code
));
709 DECLARE("famrefcon", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.fastassist_refcon
));
710 DECLARE("famparam", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.fastassist_parameter
));
711 DECLARE("famhandler", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.fastassist_dispatch
));
712 DECLARE("famintercepts", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs32
.fastassist_intercepts
));
714 DECLARE("famguestXr0", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.guest_register
));
715 DECLARE("famguestXr1", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.guest_register
+0x8));
716 DECLARE("famguestXr2", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.guest_register
+0x10));
717 DECLARE("famguestXr3", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.guest_register
+0x18));
718 DECLARE("famguestXr4", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.guest_register
+0x20));
719 DECLARE("famguestXr5", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.guest_register
+0x28));
720 DECLARE("famguestXr6", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.guest_register
+0x30));
721 DECLARE("famguestXr7", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.guest_register
+0x38));
722 DECLARE("famguestXpc", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.guest_pc
));
723 DECLARE("famguestXmsr", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.guest_msr
));
724 DECLARE("famdispcodeX", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.fastassist_dispatch_code
));
725 DECLARE("famrefconX", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.fastassist_refcon
));
726 DECLARE("famparamX", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.fastassist_parameter
));
727 DECLARE("famhandlerX", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.fastassist_dispatch
));
728 DECLARE("faminterceptsX", offsetof(struct vmm_state_page_t
*, vmm_fastassist_state
.vmmfs64
.fastassist_intercepts
));
730 DECLARE("vmmFloatCngd", vmmFloatCngd
);
731 DECLARE("vmmFloatCngdb", vmmFloatCngdb
);
732 DECLARE("vmmVectCngd", vmmVectCngd
);
733 DECLARE("vmmVectCngdb", vmmVectCngdb
);
734 DECLARE("vmmTimerPop", vmmTimerPop
);
735 DECLARE("vmmTimerPopb", vmmTimerPopb
);
736 DECLARE("vmmFAMmode", vmmFAMmode
);
737 DECLARE("vmmFAMmodeb", vmmFAMmodeb
);
738 DECLARE("vmmSpfSave", vmmSpfSave
);
739 DECLARE("vmmSpfSaveb", vmmSpfSaveb
);
740 DECLARE("vmmFloatLoad", vmmFloatLoad
);
741 DECLARE("vmmFloatLoadb", vmmFloatLoadb
);
742 DECLARE("vmmVectLoad", vmmVectLoad
);
743 DECLARE("vmmVectLoadb", vmmVectLoadb
);
744 DECLARE("vmmVectVRall", vmmVectVRall
);
745 DECLARE("vmmVectVRallb", vmmVectVRallb
);
746 DECLARE("vmmVectVAss", vmmVectVAss
);
747 DECLARE("vmmVectVAssb", vmmVectVAssb
);
748 DECLARE("vmmXStart", vmmXStart
);
749 DECLARE("vmmXStartb", vmmXStartb
);
750 DECLARE("vmmXStop", vmmXStop
);
751 DECLARE("vmmXStopb", vmmXStopb
);
752 DECLARE("vmmKey", vmmKey
);
753 DECLARE("vmmKeyb", vmmKeyb
);
754 DECLARE("vmmFamSet", vmmFamSet
);
755 DECLARE("vmmFamSetb", vmmFamSetb
);
756 DECLARE("vmmFamEna", vmmFamEna
);
757 DECLARE("vmmFamEnab", vmmFamEnab
);
758 DECLARE("vmm64Bit", vmm64Bit
);
760 /* values from kern/task.h */
761 DECLARE("TASK_SYSCALLS_MACH", offsetof(struct task
*, syscalls_mach
));
762 DECLARE("TASK_SYSCALLS_UNIX", offsetof(struct task
*, syscalls_unix
));
764 DECLARE("TASK_VTIMERS", offsetof(struct task
*, vtimers
));
766 /* values from vm/vm_map.h */
767 DECLARE("VMMAP_PMAP", offsetof(struct _vm_map
*, pmap
));
769 /* values from machine/pmap.h */
770 DECLARE("pmapSpace", offsetof(struct pmap
*, space
));
771 DECLARE("spaceNum", offsetof(struct pmap
*, spaceNum
));
772 DECLARE("pmapSXlk", offsetof(struct pmap
*, pmapSXlk
));
773 DECLARE("pmapCCtl", offsetof(struct pmap
*, pmapCCtl
));
774 DECLARE("pmapCCtlVal", pmapCCtlVal
);
775 DECLARE("pmapCCtlLck", pmapCCtlLck
);
776 DECLARE("pmapCCtlLckb", pmapCCtlLckb
);
777 DECLARE("pmapCCtlGen", pmapCCtlGen
);
778 DECLARE("pmapSegCacheCnt", pmapSegCacheCnt
);
779 DECLARE("pmapSegCacheUse", pmapSegCacheUse
);
780 DECLARE("pmapvr", offsetof(struct pmap
*, pmapvr
));
781 DECLARE("pmapFlags", offsetof(struct pmap
*, pmapFlags
));
782 DECLARE("pmapKeys", pmapKeys
);
783 DECLARE("pmapKeyDef", pmapKeyDef
);
784 DECLARE("pmapSCSubTag", offsetof(struct pmap
*, pmapSCSubTag
));
785 DECLARE("pmapVmmExt", offsetof(struct pmap
*, pmapVmmExt
));
786 DECLARE("pmapVmmExtPhys", offsetof(struct pmap
*, pmapVmmExtPhys
));
787 DECLARE("pmapVMhost", pmapVMhost
);
788 DECLARE("pmapVMgsaa", pmapVMgsaa
);
789 DECLARE("pmapSegCache", offsetof(struct pmap
*, pmapSegCache
));
790 DECLARE("pmapCurLists", offsetof(struct pmap
*, pmapCurLists
));
791 DECLARE("pmapRandNum", offsetof(struct pmap
*, pmapRandNum
));
792 DECLARE("pmapSkipLists", offsetof(struct pmap
*, pmapSkipLists
));
793 DECLARE("pmapSearchVisits", offsetof(struct pmap
*, pmapSearchVisits
));
794 DECLARE("pmapSearchCnt", offsetof(struct pmap
*, pmapSearchCnt
));
795 DECLARE("pmapSize", pmapSize
);
796 DECLARE("kSkipListFanoutShift", kSkipListFanoutShift
);
797 DECLARE("kSkipListMaxLists", kSkipListMaxLists
);
798 DECLARE("invalSpace", invalSpace
);
800 DECLARE("sgcESID", offsetof(struct sgc
*, sgcESID
));
801 DECLARE("sgcESmsk", sgcESmsk
);
802 DECLARE("sgcVSID", offsetof(struct sgc
*, sgcVSID
));
803 DECLARE("sgcVSmsk", sgcVSmsk
);
804 DECLARE("sgcVSKeys", sgcVSKeys
);
805 DECLARE("sgcVSKeyUsr", sgcVSKeyUsr
);
806 DECLARE("sgcVSNoEx", sgcVSNoEx
);
807 DECLARE("pmapPAddr", offsetof(struct pmapTransTab
*, pmapPAddr
));
808 DECLARE("pmapVAddr", offsetof(struct pmapTransTab
*, pmapVAddr
));
809 DECLARE("pmapTransSize", sizeof(pmapTransTab
));
810 DECLARE("pmapResidentCnt", offsetof(struct pmap
*, stats
.resident_count
));
811 DECLARE("pmapResidentMax", offsetof(struct pmap
*, stats
.resident_max
));
813 DECLARE("maxAdrSp", maxAdrSp
);
814 DECLARE("maxAdrSpb", maxAdrSpb
);
816 DECLARE("cppvPsnkb", cppvPsnkb
);
817 DECLARE("cppvPsrcb", cppvPsrcb
);
818 DECLARE("cppvFsnkb", cppvFsnkb
);
819 DECLARE("cppvFsrcb", cppvFsrcb
);
820 DECLARE("cppvNoModSnkb", cppvNoModSnkb
);
821 DECLARE("cppvNoRefSrcb", cppvNoRefSrcb
);
822 DECLARE("cppvKmapb", cppvKmapb
);
824 DECLARE("vmxSalt", offsetof(struct pmap_vmm_ext
*, vmxSalt
));
825 DECLARE("vmxHostPmapPhys", offsetof(struct pmap_vmm_ext
*, vmxHostPmapPhys
));
826 DECLARE("vmxHostPmap", offsetof(struct pmap_vmm_ext
*, vmxHostPmap
));
827 DECLARE("vmxHashPgIdx", offsetof(struct pmap_vmm_ext
*, vmxHashPgIdx
));
828 DECLARE("vmxHashPgList", offsetof(struct pmap_vmm_ext
*, vmxHashPgList
));
829 DECLARE("vmxStats", offsetof(struct pmap_vmm_ext
*, vmxStats
));
830 DECLARE("vmxSize", sizeof(struct pmap_vmm_ext
));
831 DECLARE("VMX_HPIDX_OFFSET", VMX_HPIDX_OFFSET
);
832 DECLARE("VMX_HPLIST_OFFSET", VMX_HPLIST_OFFSET
);
833 DECLARE("VMX_ACTMAP_OFFSET", VMX_ACTMAP_OFFSET
);
834 DECLARE("vxsGpf", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGpf
));
835 DECLARE("vxsGpfMiss", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGpfMiss
));
836 DECLARE("vxsGrm", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGrm
));
837 DECLARE("vxsGrmMiss", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGrmMiss
));
838 DECLARE("vxsGrmActive", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGrmActive
));
839 DECLARE("vxsGra", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGra
));
840 DECLARE("vxsGraHits", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGraHits
));
841 DECLARE("vxsGraActive", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGraActive
));
842 DECLARE("vxsGrl", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGrl
));
843 DECLARE("vxsGrlActive", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGrlActive
));
844 DECLARE("vxsGrs", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGrs
));
845 DECLARE("vxsGrsHitAct", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGrsHitAct
));
846 DECLARE("vxsGrsHitSusp", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGrsHitSusp
));
847 DECLARE("vxsGrsMissGV", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGrsMissGV
));
848 DECLARE("vxsGrsHitPE", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGrsHitPE
));
849 DECLARE("vxsGrsMissPE", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGrsMissPE
));
850 DECLARE("vxsGad", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGad
));
851 DECLARE("vxsGadHit", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGadHit
));
852 DECLARE("vxsGadFree", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGadFree
));
853 DECLARE("vxsGadDormant", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGadDormant
));
854 DECLARE("vxsGadSteal", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGadSteal
));
855 DECLARE("vxsGsu", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGsu
));
856 DECLARE("vxsGsuHit", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGsuHit
));
857 DECLARE("vxsGsuMiss", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGsuMiss
));
858 DECLARE("vxsGtd", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGtd
));
859 DECLARE("vxsGtdHit", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGtdHit
));
860 DECLARE("vxsGtdMiss", offsetof(struct pmap_vmm_ext
*, vmxStats
.vxsGtdMiss
));
862 /* values from kern/timer.h */
863 DECLARE("TIMER_LOW", offsetof(struct timer
*, low_bits
));
864 DECLARE("TIMER_HIGH", offsetof(struct timer
*, high_bits
));
865 DECLARE("TIMER_HIGHCHK", offsetof(struct timer
*, high_bits_check
));
866 DECLARE("TIMER_TSTAMP", offsetof(struct timer
*, tstamp
));
868 DECLARE("THREAD_TIMER", offsetof(struct processor
*, processor_data
.thread_timer
));
869 DECLARE("KERNEL_TIMER", offsetof(struct processor
*, processor_data
.kernel_timer
));
870 DECLARE("SYSTEM_TIMER", offsetof(struct thread
*, system_timer
));
871 DECLARE("USER_TIMER", offsetof(struct thread
*, user_timer
));
872 DECLARE("SYSTEM_STATE", offsetof(struct processor
*, processor_data
.system_state
));
873 DECLARE("USER_STATE", offsetof(struct processor
*, processor_data
.user_state
));
874 DECLARE("CURRENT_STATE", offsetof(struct processor
*, processor_data
.current_state
));
876 /* Constants from pmap.h */
877 DECLARE("PPC_SID_KERNEL", PPC_SID_KERNEL
);
879 /* values for accessing mach_trap table */
880 DECLARE("MACH_TRAP_ARG_MUNGE32",
881 offsetof(mach_trap_t
*, mach_trap_arg_munge32
));
882 DECLARE("MACH_TRAP_ARG_MUNGE64",
883 offsetof(mach_trap_t
*, mach_trap_arg_munge64
));
884 DECLARE("MACH_TRAP_ARGC",
885 offsetof(mach_trap_t
*, mach_trap_arg_count
));
886 DECLARE("MACH_TRAP_FUNCTION",
887 offsetof(mach_trap_t
*, mach_trap_function
));
889 DECLARE("MACH_TRAP_TABLE_COUNT", MACH_TRAP_TABLE_COUNT
);
891 DECLARE("PPCcallmax", sizeof(PPCcalls
));
893 /* Misc values used by assembler */
894 DECLARE("AST_ALL", AST_ALL
);
895 DECLARE("AST_URGENT", AST_URGENT
);
896 DECLARE("AST_BSD", AST_BSD
);
898 /* Spin Lock structure */
899 DECLARE("SLOCK_ILK", offsetof(lck_spin_t
*, interlock
));
901 /* Mutex structure */
902 DECLARE("MUTEX_DATA", offsetof(lck_mtx_t
*, lck_mtx_data
));
903 DECLARE("MUTEX_WAITERS",offsetof(lck_mtx_t
*, lck_mtx_waiters
));
904 DECLARE("MUTEX_PROMOTED_PRI",offsetof(lck_mtx_t
*, lck_mtx_pri
));
905 DECLARE("MUTEX_TYPE", offsetof(lck_mtx_ext_t
*, lck_mtx_deb
.type
));
906 DECLARE("MUTEX_STACK", offsetof(lck_mtx_ext_t
*, lck_mtx_deb
.stack
));
907 DECLARE("MUTEX_FRAMES", LCK_FRAMES_MAX
);
908 DECLARE("MUTEX_THREAD", offsetof(lck_mtx_ext_t
*, lck_mtx_deb
.thread
));
909 DECLARE("MUTEX_ATTR", offsetof(lck_mtx_ext_t
*, lck_mtx_attr
));
910 DECLARE("MUTEX_ATTR_DEBUG", LCK_MTX_ATTR_DEBUG
);
911 DECLARE("MUTEX_ATTR_DEBUGb", LCK_MTX_ATTR_DEBUGb
);
912 DECLARE("MUTEX_ATTR_STAT", LCK_MTX_ATTR_STAT
);
913 DECLARE("MUTEX_ATTR_STATb", LCK_MTX_ATTR_STATb
);
914 DECLARE("MUTEX_GRP", offsetof(lck_mtx_ext_t
*, lck_mtx_grp
));
915 DECLARE("MUTEX_TAG", MUTEX_TAG
);
916 DECLARE("MUTEX_IND", LCK_MTX_TAG_INDIRECT
);
917 DECLARE("MUTEX_ITAG",offsetof(lck_mtx_t
*, lck_mtx_tag
));
918 DECLARE("MUTEX_PTR",offsetof(lck_mtx_t
*, lck_mtx_ptr
));
919 DECLARE("MUTEX_ASSERT_OWNED", LCK_MTX_ASSERT_OWNED
);
920 DECLARE("MUTEX_ASSERT_NOTOWNED",LCK_MTX_ASSERT_NOTOWNED
);
921 DECLARE("GRP_MTX_STAT_UTIL", offsetof(lck_grp_t
*, lck_grp_stat
.lck_grp_mtx_stat
.lck_grp_mtx_util_cnt
));
922 DECLARE("GRP_MTX_STAT_MISS", offsetof(lck_grp_t
*, lck_grp_stat
.lck_grp_mtx_stat
.lck_grp_mtx_miss_cnt
));
923 DECLARE("GRP_MTX_STAT_WAIT", offsetof(lck_grp_t
*, lck_grp_stat
.lck_grp_mtx_stat
.lck_grp_mtx_wait_cnt
));
925 /* RW lock structure */
926 DECLARE("RW_IND", LCK_RW_TAG_INDIRECT
);
927 DECLARE("RW_PTR", offsetof(lck_rw_t
*, lck_rw_ptr
));
928 DECLARE("RW_SHARED", LCK_RW_TYPE_SHARED
);
929 DECLARE("RW_EXCL", LCK_RW_TYPE_EXCLUSIVE
);
930 DECLARE("RW_EVENT", (((sizeof(lck_rw_t
)-1))/sizeof(unsigned int))*sizeof(unsigned int));
932 /* values from low_trace.h */
933 DECLARE("LTR_cpu", offsetof(struct LowTraceRecord
*, LTR_cpu
));
934 DECLARE("LTR_excpt", offsetof(struct LowTraceRecord
*, LTR_excpt
));
935 DECLARE("LTR_timeHi", offsetof(struct LowTraceRecord
*, LTR_timeHi
));
936 DECLARE("LTR_timeLo", offsetof(struct LowTraceRecord
*, LTR_timeLo
));
937 DECLARE("LTR_cr", offsetof(struct LowTraceRecord
*, LTR_cr
));
938 DECLARE("LTR_srr0", offsetof(struct LowTraceRecord
*, LTR_srr0
));
939 DECLARE("LTR_srr1", offsetof(struct LowTraceRecord
*, LTR_srr1
));
940 DECLARE("LTR_dar", offsetof(struct LowTraceRecord
*, LTR_dar
));
941 DECLARE("LTR_dsisr", offsetof(struct LowTraceRecord
*, LTR_dsisr
));
942 DECLARE("LTR_rsvd0", offsetof(struct LowTraceRecord
*, LTR_rsvd0
));
943 DECLARE("LTR_save", offsetof(struct LowTraceRecord
*, LTR_save
));
944 DECLARE("LTR_lr", offsetof(struct LowTraceRecord
*, LTR_lr
));
945 DECLARE("LTR_ctr", offsetof(struct LowTraceRecord
*, LTR_ctr
));
946 DECLARE("LTR_r0", offsetof(struct LowTraceRecord
*, LTR_r0
));
947 DECLARE("LTR_r1", offsetof(struct LowTraceRecord
*, LTR_r1
));
948 DECLARE("LTR_r2", offsetof(struct LowTraceRecord
*, LTR_r2
));
949 DECLARE("LTR_r3", offsetof(struct LowTraceRecord
*, LTR_r3
));
950 DECLARE("LTR_r4", offsetof(struct LowTraceRecord
*, LTR_r4
));
951 DECLARE("LTR_r5", offsetof(struct LowTraceRecord
*, LTR_r5
));
952 DECLARE("LTR_r6", offsetof(struct LowTraceRecord
*, LTR_r6
));
953 DECLARE("LTR_size", sizeof(struct LowTraceRecord
));
955 /* Values from pexpert.h */
956 DECLARE("PECFIcpurate", offsetof(struct clock_frequency_info_t
*, cpu_clock_rate_hz
));
957 DECLARE("PECFIbusrate", offsetof(struct clock_frequency_info_t
*, bus_clock_rate_hz
));
959 /* Values from pmap_internals.h and mappings.h */
961 DECLARE("mpFlags", offsetof(struct mapping
*, mpFlags
));
962 DECLARE("mpBusy", mpBusy
);
963 DECLARE("mpPrevious", mpPrevious
);
964 DECLARE("mpNext", mpNext
);
965 DECLARE("mpPIndex", mpPIndex
);
966 DECLARE("mpType", mpType
);
967 DECLARE("mpNormal", mpNormal
);
968 DECLARE("mpBlock", mpBlock
);
969 DECLARE("mpMinSpecial", mpMinSpecial
);
970 DECLARE("mpNest", mpNest
);
971 DECLARE("mpLinkage", mpLinkage
);
972 DECLARE("mpACID", mpACID
);
973 DECLARE("mpGuest", mpGuest
);
974 DECLARE("mpFIP", mpFIP
);
975 DECLARE("mpFIPb", mpFIPb
);
976 DECLARE("mpPcfg", mpPcfg
);
977 DECLARE("mpPcfgb", mpPcfgb
);
978 DECLARE("mpRIP", mpRIP
);
979 DECLARE("mpRIPb", mpRIPb
);
980 DECLARE("mpPerm", mpPerm
);
981 DECLARE("mpPermb", mpPermb
);
982 DECLARE("mpBSu", mpBSu
);
983 DECLARE("mpBSub", mpBSub
);
984 DECLARE("mpLists", mpLists
);
985 DECLARE("mpListsb", mpListsb
);
986 DECLARE("mpgFlags", mpgFlags
);
987 DECLARE("mpgFree", mpgFree
);
988 DECLARE("mpgGlobal", mpgGlobal
);
989 DECLARE("mpgDormant", mpgDormant
);
991 DECLARE("mpSpace", offsetof(struct mapping
*, mpSpace
));
992 DECLARE("mpBSize", offsetof(struct mapping
*, u
.mpBSize
));
993 DECLARE("mpgCursor", offsetof(struct mapping
*, u
.mpgCursor
));
994 DECLARE("mpPte", offsetof(struct mapping
*, mpPte
));
995 DECLARE("mpHValid", mpHValid
);
996 DECLARE("mpHValidb", mpHValidb
);
998 DECLARE("mpPAddr", offsetof(struct mapping
*, mpPAddr
));
999 DECLARE("mpVAddr", offsetof(struct mapping
*, mpVAddr
));
1000 DECLARE("mpHWFlags", mpHWFlags
);
1001 DECLARE("mpHWFlagsb", mpHWFlagsb
);
1002 DECLARE("mpN", mpN
);
1003 DECLARE("mpNb", mpNb
);
1004 DECLARE("mpPP", mpPP
);
1005 DECLARE("mpPPb", mpPPb
);
1006 DECLARE("mpPPe", mpPPe
);
1007 DECLARE("mpKKN", mpKKN
);
1008 DECLARE("mpKKNb", mpKKNb
);
1009 DECLARE("mpWIMG", mpWIMG
);
1010 DECLARE("mpWIMGb", mpWIMGb
);
1011 DECLARE("mpW", mpW
);
1012 DECLARE("mpWb", mpWb
);
1013 DECLARE("mpI", mpI
);
1014 DECLARE("mpIb", mpIb
);
1015 DECLARE("mpM", mpM
);
1016 DECLARE("mpMb", mpMb
);
1017 DECLARE("mpG", mpG
);
1018 DECLARE("mpGb", mpGb
);
1019 DECLARE("mpWIMGe", mpWIMGe
);
1020 DECLARE("mpC", mpC
);
1021 DECLARE("mpCb", mpCb
);
1022 DECLARE("mpR", mpR
);
1023 DECLARE("mpRb", mpRb
);
1024 DECLARE("mpAlias", offsetof(struct mapping
*, mpAlias
));
1025 DECLARE("mpNestReloc", offsetof(struct mapping
*, mpNestReloc
));
1026 DECLARE("mpBlkRemCur", offsetof(struct mapping
*, mpBlkRemCur
));
1027 DECLARE("mpList0", offsetof(struct mapping
*, mpList0
));
1028 DECLARE("mpList ", offsetof(struct mapping
*, mpList
));
1029 DECLARE("mpBasicSize", mpBasicSize
);
1030 DECLARE("mpBasicLists", mpBasicLists
);
1032 DECLARE("mbvrswap", offsetof(struct mappingblok
*, mapblokvrswap
));
1033 DECLARE("mbfree", offsetof(struct mappingblok
*, mapblokfree
));
1034 DECLARE("mapcsize", sizeof(struct mappingctl
));
1036 DECLARE("hwpPurgePTE", hwpPurgePTE
);
1037 DECLARE("hwpMergePTE", hwpMergePTE
);
1038 DECLARE("hwpNoopPTE", hwpNoopPTE
);
1040 // DANGER WIL ROBINSON!!! This wonderfully magical tool doesn't seem to handle 64-bit constants,
1041 // leaving us with only the cold ash of a zero. ppI, ppG, and who knows what else is affected.
1042 DECLARE("ppLink", offsetof(struct phys_entry
*, ppLink
));
1043 DECLARE("ppLock", ppLock
);
1044 DECLARE("ppFlags", ppFlags
);
1045 // DECLARE("ppI", ppI);
1046 DECLARE("ppIb", ppIb
);
1047 // DECLARE("ppG", ppG);
1048 DECLARE("ppGb", ppGb
);
1049 DECLARE("ppR", ppR
);
1050 DECLARE("ppRb", ppRb
);
1051 DECLARE("ppC", ppC
);
1052 DECLARE("ppCb", ppCb
);
1053 DECLARE("physEntrySize",physEntrySize
);
1054 DECLARE("ppLFAmask", ppLFAmask
);
1055 DECLARE("ppLFArrot", ppLFArrot
);
1057 DECLARE("pcfFlags", offsetof(struct pcfg
*, pcfFlags
));
1058 DECLARE("pcfEncode", offsetof(struct pcfg
*, pcfEncode
));
1059 DECLARE("pcfPSize", offsetof(struct pcfg
*, pcfPSize
));
1060 DECLARE("pcfShift", offsetof(struct pcfg
*, pcfShift
));
1061 DECLARE("pcfValid", pcfValid
);
1062 DECLARE("pcfLarge", pcfLarge
);
1063 DECLARE("pcfDedSeg", pcfDedSeg
);
1064 DECLARE("pcfSize", sizeof(struct pcfg
));
1065 DECLARE("pcfDefPcfg", pcfDefPcfg
);
1066 DECLARE("pcfLargePcfg", pcfLargePcfg
);
1068 DECLARE("PCAallo", offsetof(struct PCA
*, flgs
.PCAallo
));
1069 DECLARE("PCAfree", offsetof(struct PCA
*, flgs
.PCAalflgs
.PCAfree
));
1070 DECLARE("PCAauto", offsetof(struct PCA
*, flgs
.PCAalflgs
.PCAauto
));
1071 DECLARE("PCAmisc", offsetof(struct PCA
*, flgs
.PCAalflgs
.PCAmisc
));
1072 DECLARE("PCAlock", PCAlock
);
1073 DECLARE("PCAlockb", PCAlockb
);
1074 DECLARE("PCAsteal", offsetof(struct PCA
*, flgs
.PCAalflgs
.PCAsteal
));
1076 DECLARE("mrPhysTab", offsetof(struct mem_region
*, mrPhysTab
));
1077 DECLARE("mrStart", offsetof(struct mem_region
*, mrStart
));
1078 DECLARE("mrEnd", offsetof(struct mem_region
*, mrEnd
));
1079 DECLARE("mrAStart", offsetof(struct mem_region
*, mrAStart
));
1080 DECLARE("mrAEnd", offsetof(struct mem_region
*, mrAEnd
));
1081 DECLARE("mrSize", sizeof(struct mem_region
));
1083 DECLARE("mapRemChunk", mapRemChunk
);
1085 DECLARE("mapRetCode", mapRetCode
);
1086 DECLARE("mapRtOK", mapRtOK
);
1087 DECLARE("mapRtBadLk", mapRtBadLk
);
1088 DECLARE("mapRtPerm", mapRtPerm
);
1089 DECLARE("mapRtNotFnd", mapRtNotFnd
);
1090 DECLARE("mapRtBlock", mapRtBlock
);
1091 DECLARE("mapRtNest", mapRtNest
);
1092 DECLARE("mapRtRemove", mapRtRemove
);
1093 DECLARE("mapRtMapDup", mapRtMapDup
);
1094 DECLARE("mapRtGuest", mapRtGuest
);
1095 DECLARE("mapRtEmpty", mapRtEmpty
);
1096 DECLARE("mapRtSmash", mapRtSmash
);
1099 DECLARE("MFpcaptr", offsetof(struct mappingflush
*, pcaptr
));
1100 DECLARE("MFmappingcnt", offsetof(struct mappingflush
*, mappingcnt
));
1101 DECLARE("MFmapping", offsetof(struct mappingflush
*, mapping
));
1102 DECLARE("MFmappingSize", sizeof(struct mfmapping
));
1105 DECLARE("GV_GROUPS_LG2", GV_GROUPS_LG2
);
1106 DECLARE("GV_GROUPS", GV_GROUPS
);
1107 DECLARE("GV_SLOT_SZ_LG2", GV_SLOT_SZ_LG2
);
1108 DECLARE("GV_SLOT_SZ", GV_SLOT_SZ
);
1109 DECLARE("GV_SLOTS_LG2", GV_SLOTS_LG2
);
1110 DECLARE("GV_SLOTS", GV_SLOTS
);
1111 DECLARE("GV_PGIDX_SZ_LG2", GV_PGIDX_SZ_LG2
);
1112 DECLARE("GV_PAGE_SZ_LG2", GV_PAGE_SZ_LG2
);
1113 DECLARE("GV_PAGE_SZ", GV_PAGE_SZ
);
1114 DECLARE("GV_PAGE_MASK", GV_PAGE_MASK
);
1115 DECLARE("GV_HPAGES", GV_HPAGES
);
1116 DECLARE("GV_GRPS_PPG_LG2", GV_GRPS_PPG_LG2
);
1117 DECLARE("GV_GRPS_PPG", GV_GRPS_PPG
);
1118 DECLARE("GV_GRP_MASK", GV_GRP_MASK
);
1119 DECLARE("GV_SLOT_MASK", GV_SLOT_MASK
);
1120 DECLARE("GV_HPAGE_SHIFT", GV_HPAGE_SHIFT
);
1121 DECLARE("GV_HPAGE_MASK", GV_HPAGE_MASK
);
1122 DECLARE("GV_HGRP_SHIFT", GV_HGRP_SHIFT
);
1123 DECLARE("GV_HGRP_MASK", GV_HGRP_MASK
);
1124 DECLARE("GV_MAPWD_BITS_LG2",GV_MAPWD_BITS_LG2
);
1125 DECLARE("GV_MAPWD_SZ_LG2", GV_MAPWD_SZ_LG2
);
1126 DECLARE("GV_MAP_WORDS", GV_MAP_WORDS
);
1127 DECLARE("GV_MAP_MASK", GV_MAP_MASK
);
1128 DECLARE("GV_MAP_SHIFT", GV_MAP_SHIFT
);
1129 DECLARE("GV_BAND_SHIFT", GV_BAND_SHIFT
);
1130 DECLARE("GV_BAND_SZ_LG2", GV_BAND_SZ_LG2
);
1131 DECLARE("GV_BAND_MASK", GV_BAND_MASK
);
1134 DECLARE("GDsave", offsetof(struct GDWorkArea
*, GDsave
));
1135 DECLARE("GDfp0", offsetof(struct GDWorkArea
*, GDfp0
));
1136 DECLARE("GDfp1", offsetof(struct GDWorkArea
*, GDfp1
));
1137 DECLARE("GDfp2", offsetof(struct GDWorkArea
*, GDfp2
));
1138 DECLARE("GDfp3", offsetof(struct GDWorkArea
*, GDfp3
));
1139 DECLARE("GDtop", offsetof(struct GDWorkArea
*, GDtop
));
1140 DECLARE("GDleft", offsetof(struct GDWorkArea
*, GDleft
));
1141 DECLARE("GDtopleft", offsetof(struct GDWorkArea
*, GDtopleft
));
1142 DECLARE("GDrowbytes", offsetof(struct GDWorkArea
*, GDrowbytes
));
1143 DECLARE("GDrowchar", offsetof(struct GDWorkArea
*, GDrowchar
));
1144 DECLARE("GDdepth", offsetof(struct GDWorkArea
*, GDdepth
));
1145 DECLARE("GDcollgn", offsetof(struct GDWorkArea
*, GDcollgn
));
1146 DECLARE("GDready", offsetof(struct GDWorkArea
*, GDready
));
1147 DECLARE("GDrowbuf1", offsetof(struct GDWorkArea
*, GDrowbuf1
));
1148 DECLARE("GDrowbuf2", offsetof(struct GDWorkArea
*, GDrowbuf2
));
1151 DECLARE("enaExpTrace", enaExpTrace
);
1152 DECLARE("enaExpTraceb", enaExpTraceb
);
1153 DECLARE("enaUsrFCall", enaUsrFCall
);
1154 DECLARE("enaUsrFCallb", enaUsrFCallb
);
1155 DECLARE("enaUsrPhyMp", enaUsrPhyMp
);
1156 DECLARE("enaUsrPhyMpb", enaUsrPhyMpb
);
1157 DECLARE("enaDiagSCs", enaDiagSCs
);
1158 DECLARE("enaDiagSCsb", enaDiagSCsb
);
1159 DECLARE("enaDiagEM", enaDiagEM
);
1160 DECLARE("enaDiagEMb", enaDiagEMb
);
1161 DECLARE("enaNotifyEM", enaNotifyEM
);
1162 DECLARE("enaNotifyEMb", enaNotifyEMb
);
1163 DECLARE("disLkType", disLkType
);
1164 DECLARE("disLktypeb", disLktypeb
);
1165 DECLARE("disLkThread", disLkThread
);
1166 DECLARE("disLkThreadb", disLkThreadb
);
1167 DECLARE("enaLkExtStck", enaLkExtStck
);
1168 DECLARE("enaLkExtStckb",enaLkExtStckb
);
1169 DECLARE("disLkMyLck", disLkMyLck
);
1170 DECLARE("disLkMyLckb", disLkMyLckb
);
1171 DECLARE("dgMisc1", offsetof(struct diagWork
*, dgMisc1
));
1172 DECLARE("dgMisc2", offsetof(struct diagWork
*, dgMisc2
));
1173 DECLARE("dgMisc3", offsetof(struct diagWork
*, dgMisc3
));
1174 DECLARE("dgMisc4", offsetof(struct diagWork
*, dgMisc4
));
1175 DECLARE("dgMisc5", offsetof(struct diagWork
*, dgMisc5
));
1177 DECLARE("SACnext", offsetof(struct savearea_comm
*, sac_next
));
1178 DECLARE("SACprev", offsetof(struct savearea_comm
*, sac_prev
));
1179 DECLARE("SACvrswap", offsetof(struct savearea_comm
*, sac_vrswap
));
1180 DECLARE("SACalloc", offsetof(struct savearea_comm
*, sac_alloc
));
1181 DECLARE("SACflags", offsetof(struct savearea_comm
*, sac_flags
));
1182 DECLARE("sac_cnt", sac_cnt
);
1183 DECLARE("sac_empty", sac_empty
);
1184 DECLARE("sac_perm", sac_perm
);
1185 DECLARE("sac_permb", sac_permb
);
1187 DECLARE("LocalSaveTarget", LocalSaveTarget
);
1188 DECLARE("LocalSaveMin", LocalSaveMin
);
1189 DECLARE("LocalSaveMax", LocalSaveMax
);
1190 DECLARE("FreeListMin", FreeListMin
);
1191 DECLARE("SaveLowHysteresis", SaveLowHysteresis
);
1192 DECLARE("SaveHighHysteresis", SaveHighHysteresis
);
1193 DECLARE("InitialSaveAreas", InitialSaveAreas
);
1194 DECLARE("InitialSaveTarget", InitialSaveTarget
);
1195 DECLARE("InitialSaveBloks", InitialSaveBloks
);
1197 DECLARE("SAVprev", offsetof(struct savearea_comm
*, save_prev
));
1198 DECLARE("SAVact", offsetof(struct savearea_comm
*, save_act
));
1199 DECLARE("SAVflags", offsetof(struct savearea_comm
*, save_flags
));
1200 DECLARE("SAVlevel", offsetof(struct savearea_comm
*, save_level
));
1201 DECLARE("SAVtime", offsetof(struct savearea_comm
*, save_time
));
1202 DECLARE("savemisc0", offsetof(struct savearea_comm
*, save_misc0
));
1203 DECLARE("savemisc1", offsetof(struct savearea_comm
*, save_misc1
));
1204 DECLARE("savemisc2", offsetof(struct savearea_comm
*, save_misc2
));
1205 DECLARE("savemisc3", offsetof(struct savearea_comm
*, save_misc3
));
1207 DECLARE("SAVsize", sizeof(struct savearea
));
1208 DECLARE("SAVsizefpu", sizeof(struct savearea_vec
));
1209 DECLARE("SAVsizevec", sizeof(struct savearea_fpu
));
1210 DECLARE("SAVcommsize", sizeof(struct savearea_comm
));
1212 DECLARE("savesrr0", offsetof(struct savearea
*, save_srr0
));
1213 DECLARE("savesrr1", offsetof(struct savearea
*, save_srr1
));
1214 DECLARE("savecr", offsetof(struct savearea
*, save_cr
));
1215 DECLARE("savexer", offsetof(struct savearea
*, save_xer
));
1216 DECLARE("savelr", offsetof(struct savearea
*, save_lr
));
1217 DECLARE("savectr", offsetof(struct savearea
*, save_ctr
));
1218 DECLARE("savedar", offsetof(struct savearea
*, save_dar
));
1219 DECLARE("savedsisr", offsetof(struct savearea
*, save_dsisr
));
1220 DECLARE("saveexception", offsetof(struct savearea
*, save_exception
));
1221 DECLARE("savefpscrpad", offsetof(struct savearea
*, save_fpscrpad
));
1222 DECLARE("savefpscr", offsetof(struct savearea
*, save_fpscr
));
1223 DECLARE("savevrsave", offsetof(struct savearea
*, save_vrsave
));
1224 DECLARE("savevscr", offsetof(struct savearea
*, save_vscr
));
1226 DECLARE("savemmcr0", offsetof(struct savearea
*, save_mmcr0
));
1227 DECLARE("savemmcr1", offsetof(struct savearea
*, save_mmcr1
));
1228 DECLARE("savemmcr2", offsetof(struct savearea
*, save_mmcr2
));
1229 DECLARE("savepmc", offsetof(struct savearea
*, save_pmc
));
1231 DECLARE("saveinstr", offsetof(struct savearea
*, save_instr
));
1233 DECLARE("savexdat0", offsetof(struct savearea
*, save_xdat0
));
1234 DECLARE("savexdat1", offsetof(struct savearea
*, save_xdat1
));
1235 DECLARE("savexdat2", offsetof(struct savearea
*, save_xdat2
));
1236 DECLARE("savexdat3", offsetof(struct savearea
*, save_xdat3
));
1238 DECLARE("saver0", offsetof(struct savearea
*, save_r0
));
1239 DECLARE("saver1", offsetof(struct savearea
*, save_r1
));
1240 DECLARE("saver2", offsetof(struct savearea
*, save_r2
));
1241 DECLARE("saver3", offsetof(struct savearea
*, save_r3
));
1242 DECLARE("saver4", offsetof(struct savearea
*, save_r4
));
1243 DECLARE("saver5", offsetof(struct savearea
*, save_r5
));
1244 DECLARE("saver6", offsetof(struct savearea
*, save_r6
));
1245 DECLARE("saver7", offsetof(struct savearea
*, save_r7
));
1246 DECLARE("saver8", offsetof(struct savearea
*, save_r8
));
1247 DECLARE("saver9", offsetof(struct savearea
*, save_r9
));
1248 DECLARE("saver10", offsetof(struct savearea
*, save_r10
));
1249 DECLARE("saver11", offsetof(struct savearea
*, save_r11
));
1250 DECLARE("saver12", offsetof(struct savearea
*, save_r12
));
1251 DECLARE("saver13", offsetof(struct savearea
*, save_r13
));
1252 DECLARE("saver14", offsetof(struct savearea
*, save_r14
));
1253 DECLARE("saver15", offsetof(struct savearea
*, save_r15
));
1254 DECLARE("saver16", offsetof(struct savearea
*, save_r16
));
1255 DECLARE("saver17", offsetof(struct savearea
*, save_r17
));
1256 DECLARE("saver18", offsetof(struct savearea
*, save_r18
));
1257 DECLARE("saver19", offsetof(struct savearea
*, save_r19
));
1258 DECLARE("saver20", offsetof(struct savearea
*, save_r20
));
1259 DECLARE("saver21", offsetof(struct savearea
*, save_r21
));
1260 DECLARE("saver22", offsetof(struct savearea
*, save_r22
));
1261 DECLARE("saver23", offsetof(struct savearea
*, save_r23
));
1262 DECLARE("saver24", offsetof(struct savearea
*, save_r24
));
1263 DECLARE("saver25", offsetof(struct savearea
*, save_r25
));
1264 DECLARE("saver26", offsetof(struct savearea
*, save_r26
));
1265 DECLARE("saver27", offsetof(struct savearea
*, save_r27
));
1266 DECLARE("saver28", offsetof(struct savearea
*, save_r28
));
1267 DECLARE("saver29", offsetof(struct savearea
*, save_r29
));
1268 DECLARE("saver30", offsetof(struct savearea
*, save_r30
));
1269 DECLARE("saver31", offsetof(struct savearea
*, save_r31
));
1271 DECLARE("savefp0", offsetof(struct savearea_fpu
*, save_fp0
));
1272 DECLARE("savefp1", offsetof(struct savearea_fpu
*, save_fp1
));
1273 DECLARE("savefp2", offsetof(struct savearea_fpu
*, save_fp2
));
1274 DECLARE("savefp3", offsetof(struct savearea_fpu
*, save_fp3
));
1275 DECLARE("savefp4", offsetof(struct savearea_fpu
*, save_fp4
));
1276 DECLARE("savefp5", offsetof(struct savearea_fpu
*, save_fp5
));
1277 DECLARE("savefp6", offsetof(struct savearea_fpu
*, save_fp6
));
1278 DECLARE("savefp7", offsetof(struct savearea_fpu
*, save_fp7
));
1279 DECLARE("savefp8", offsetof(struct savearea_fpu
*, save_fp8
));
1280 DECLARE("savefp9", offsetof(struct savearea_fpu
*, save_fp9
));
1281 DECLARE("savefp10", offsetof(struct savearea_fpu
*, save_fp10
));
1282 DECLARE("savefp11", offsetof(struct savearea_fpu
*, save_fp11
));
1283 DECLARE("savefp12", offsetof(struct savearea_fpu
*, save_fp12
));
1284 DECLARE("savefp13", offsetof(struct savearea_fpu
*, save_fp13
));
1285 DECLARE("savefp14", offsetof(struct savearea_fpu
*, save_fp14
));
1286 DECLARE("savefp15", offsetof(struct savearea_fpu
*, save_fp15
));
1287 DECLARE("savefp16", offsetof(struct savearea_fpu
*, save_fp16
));
1288 DECLARE("savefp17", offsetof(struct savearea_fpu
*, save_fp17
));
1289 DECLARE("savefp18", offsetof(struct savearea_fpu
*, save_fp18
));
1290 DECLARE("savefp19", offsetof(struct savearea_fpu
*, save_fp19
));
1291 DECLARE("savefp20", offsetof(struct savearea_fpu
*, save_fp20
));
1292 DECLARE("savefp21", offsetof(struct savearea_fpu
*, save_fp21
));
1293 DECLARE("savefp22", offsetof(struct savearea_fpu
*, save_fp22
));
1294 DECLARE("savefp23", offsetof(struct savearea_fpu
*, save_fp23
));
1295 DECLARE("savefp24", offsetof(struct savearea_fpu
*, save_fp24
));
1296 DECLARE("savefp25", offsetof(struct savearea_fpu
*, save_fp25
));
1297 DECLARE("savefp26", offsetof(struct savearea_fpu
*, save_fp26
));
1298 DECLARE("savefp27", offsetof(struct savearea_fpu
*, save_fp27
));
1299 DECLARE("savefp28", offsetof(struct savearea_fpu
*, save_fp28
));
1300 DECLARE("savefp29", offsetof(struct savearea_fpu
*, save_fp29
));
1301 DECLARE("savefp30", offsetof(struct savearea_fpu
*, save_fp30
));
1302 DECLARE("savefp31", offsetof(struct savearea_fpu
*, save_fp31
));
1304 DECLARE("savevr0", offsetof(struct savearea_vec
*, save_vr0
));
1305 DECLARE("savevr1", offsetof(struct savearea_vec
*, save_vr1
));
1306 DECLARE("savevr2", offsetof(struct savearea_vec
*, save_vr2
));
1307 DECLARE("savevr3", offsetof(struct savearea_vec
*, save_vr3
));
1308 DECLARE("savevr4", offsetof(struct savearea_vec
*, save_vr4
));
1309 DECLARE("savevr5", offsetof(struct savearea_vec
*, save_vr5
));
1310 DECLARE("savevr6", offsetof(struct savearea_vec
*, save_vr6
));
1311 DECLARE("savevr7", offsetof(struct savearea_vec
*, save_vr7
));
1312 DECLARE("savevr8", offsetof(struct savearea_vec
*, save_vr8
));
1313 DECLARE("savevr9", offsetof(struct savearea_vec
*, save_vr9
));
1314 DECLARE("savevr10", offsetof(struct savearea_vec
*, save_vr10
));
1315 DECLARE("savevr11", offsetof(struct savearea_vec
*, save_vr11
));
1316 DECLARE("savevr12", offsetof(struct savearea_vec
*, save_vr12
));
1317 DECLARE("savevr13", offsetof(struct savearea_vec
*, save_vr13
));
1318 DECLARE("savevr14", offsetof(struct savearea_vec
*, save_vr14
));
1319 DECLARE("savevr15", offsetof(struct savearea_vec
*, save_vr15
));
1320 DECLARE("savevr16", offsetof(struct savearea_vec
*, save_vr16
));
1321 DECLARE("savevr17", offsetof(struct savearea_vec
*, save_vr17
));
1322 DECLARE("savevr18", offsetof(struct savearea_vec
*, save_vr18
));
1323 DECLARE("savevr19", offsetof(struct savearea_vec
*, save_vr19
));
1324 DECLARE("savevr20", offsetof(struct savearea_vec
*, save_vr20
));
1325 DECLARE("savevr21", offsetof(struct savearea_vec
*, save_vr21
));
1326 DECLARE("savevr22", offsetof(struct savearea_vec
*, save_vr22
));
1327 DECLARE("savevr23", offsetof(struct savearea_vec
*, save_vr23
));
1328 DECLARE("savevr24", offsetof(struct savearea_vec
*, save_vr24
));
1329 DECLARE("savevr25", offsetof(struct savearea_vec
*, save_vr25
));
1330 DECLARE("savevr26", offsetof(struct savearea_vec
*, save_vr26
));
1331 DECLARE("savevr27", offsetof(struct savearea_vec
*, save_vr27
));
1332 DECLARE("savevr28", offsetof(struct savearea_vec
*, save_vr28
));
1333 DECLARE("savevr29", offsetof(struct savearea_vec
*, save_vr29
));
1334 DECLARE("savevr30", offsetof(struct savearea_vec
*, save_vr30
));
1335 DECLARE("savevr31", offsetof(struct savearea_vec
*, save_vr31
));
1336 DECLARE("savevrvalid", offsetof(struct savearea_vec
*, save_vrvalid
));
1338 /* PseudoKernel Exception Descriptor info */
1339 DECLARE("BEDA_SRR0", offsetof(BEDA_t
*, srr0
));
1340 DECLARE("BEDA_SRR1", offsetof(BEDA_t
*, srr1
));
1341 DECLARE("BEDA_SPRG0", offsetof(BEDA_t
*, sprg0
));
1342 DECLARE("BEDA_SPRG1", offsetof(BEDA_t
*, sprg1
));
1344 /* PseudoKernel Interrupt Control Word */
1345 DECLARE("BTTD_INTCONTROLWORD", offsetof(BTTD_t
*, InterruptControlWord
));
1347 /* New state when exiting the pseudokernel */
1348 DECLARE("BTTD_NEWEXITSTATE", offsetof(BTTD_t
*, NewExitState
));
1350 /* PseudoKernel Test/Post Interrupt */
1351 DECLARE("BTTD_TESTINTMASK", offsetof(BTTD_t
*, testIntMask
));
1352 DECLARE("BTTD_POSTINTMASK", offsetof(BTTD_t
*, postIntMask
));
1354 /* PseudoKernel Vectors */
1355 DECLARE("BTTD_TRAP_VECTOR", offsetof(BTTD_t
*, TrapVector
));
1356 DECLARE("BTTD_SYSCALL_VECTOR", offsetof(BTTD_t
*, SysCallVector
));
1357 DECLARE("BTTD_INTERRUPT_VECTOR", offsetof(BTTD_t
*, InterruptVector
));
1358 DECLARE("BTTD_PENDINGINT_VECTOR", offsetof(BTTD_t
*, PendingIntVector
));
1360 /* PseudoKernel Bits, Masks and misc */
1361 DECLARE("SYSCONTEXTSTATE", kInSystemContext
);
1362 DECLARE("PSEUDOKERNELSTATE", kInPseudoKernel
);
1363 DECLARE("INTSTATEMASK_B", 12);
1364 DECLARE("INTSTATEMASK_E", 15);
1365 DECLARE("INTCR2MASK_B", 8);
1366 DECLARE("INTCR2MASK_E", 11);
1367 DECLARE("INTBACKUPCR2MASK_B", 28);
1368 DECLARE("INTBACKUPCR2MASK_E", 31);
1369 DECLARE("INTCR2TOBACKUPSHIFT", kCR2ToBackupShift
);
1370 DECLARE("BB_MAX_TRAP", bbMaxTrap
);
1371 DECLARE("BB_RFI_TRAP", bbRFITrap
);
1373 /* Various hackery */
1374 DECLARE("procState", offsetof(struct processor
*, state
));
1376 DECLARE("CPU_SUBTYPE_POWERPC_ALL", CPU_SUBTYPE_POWERPC_ALL
);
1377 DECLARE("CPU_SUBTYPE_POWERPC_750", CPU_SUBTYPE_POWERPC_750
);
1378 DECLARE("CPU_SUBTYPE_POWERPC_7400", CPU_SUBTYPE_POWERPC_7400
);
1379 DECLARE("CPU_SUBTYPE_POWERPC_7450", CPU_SUBTYPE_POWERPC_7450
);
1380 DECLARE("CPU_SUBTYPE_POWERPC_970", CPU_SUBTYPE_POWERPC_970
);
1382 DECLARE("shdIBAT", offsetof(struct shadowBAT
*, IBATs
));
1383 DECLARE("shdDBAT", offsetof(struct shadowBAT
*, DBATs
));
1385 /* Low Memory Globals */
1387 DECLARE("lgVerCode", offsetof(struct lowglo
*, lgVerCode
));
1388 DECLARE("lgPPStart", offsetof(struct lowglo
*, lgPPStart
));
1389 DECLARE("maxDec", offsetof(struct lowglo
*, lgMaxDec
));
1390 DECLARE("mckFlags", offsetof(struct lowglo
*, lgMckFlags
));
1391 DECLARE("lgPMWvaddr", offsetof(struct lowglo
*, lgPMWvaddr
));
1392 DECLARE("lgUMWvaddr", offsetof(struct lowglo
*, lgUMWvaddr
));
1393 DECLARE("trcWork", offsetof(struct lowglo
*, lgTrcWork
));
1394 DECLARE("traceMask", offsetof(struct lowglo
*, lgTrcWork
.traceMask
));
1395 DECLARE("traceCurr", offsetof(struct lowglo
*, lgTrcWork
.traceCurr
));
1396 DECLARE("traceStart", offsetof(struct lowglo
*, lgTrcWork
.traceStart
));
1397 DECLARE("traceEnd", offsetof(struct lowglo
*, lgTrcWork
.traceEnd
));
1398 DECLARE("traceMsnd", offsetof(struct lowglo
*, lgTrcWork
.traceMsnd
));
1400 DECLARE("Zero", offsetof(struct lowglo
*, lgZero
));
1401 DECLARE("saveanchor", offsetof(struct lowglo
*, lgSaveanchor
));
1403 DECLARE("SVlock", offsetof(struct lowglo
*, lgSaveanchor
.savelock
));
1404 DECLARE("SVpoolfwd", offsetof(struct lowglo
*, lgSaveanchor
.savepoolfwd
));
1405 DECLARE("SVpoolbwd", offsetof(struct lowglo
*, lgSaveanchor
.savepoolbwd
));
1406 DECLARE("SVfree", offsetof(struct lowglo
*, lgSaveanchor
.savefree
));
1407 DECLARE("SVfreecnt", offsetof(struct lowglo
*, lgSaveanchor
.savefreecnt
));
1408 DECLARE("SVadjust", offsetof(struct lowglo
*, lgSaveanchor
.saveadjust
));
1409 DECLARE("SVinuse", offsetof(struct lowglo
*, lgSaveanchor
.saveinuse
));
1410 DECLARE("SVtarget", offsetof(struct lowglo
*, lgSaveanchor
.savetarget
));
1411 DECLARE("SVsaveinusesnapshot", offsetof(struct lowglo
*, lgSaveanchor
.saveinusesnapshot
));
1412 DECLARE("SVsavefreesnapshot", offsetof(struct lowglo
*, lgSaveanchor
.savefreesnapshot
));
1413 DECLARE("SVsize", sizeof(struct Saveanchor
));
1415 DECLARE("tlbieLock", offsetof(struct lowglo
*, lgTlbieLck
));
1417 DECLARE("dgFlags", offsetof(struct lowglo
*, lgdgWork
.dgFlags
));
1418 DECLARE("dgLock", offsetof(struct lowglo
*, lgdgWork
.dgLock
));
1419 DECLARE("dgMisc0", offsetof(struct lowglo
*, lgdgWork
.dgMisc0
));
1421 DECLARE("lglcksWork", offsetof(struct lowglo
*, lglcksWork
));
1422 DECLARE("lgKillResv", offsetof(struct lowglo
*, lgKillResv
));
1423 DECLARE("lgpPcfg", offsetof(struct lowglo
*, lgpPcfg
));
1426 DECLARE("scomcpu", offsetof(struct scomcomm
*, scomcpu
));
1427 DECLARE("scomfunc", offsetof(struct scomcomm
*, scomfunc
));
1428 DECLARE("scomreg", offsetof(struct scomcomm
*, scomreg
));
1429 DECLARE("scomstat", offsetof(struct scomcomm
*, scomstat
));
1430 DECLARE("scomdata", offsetof(struct scomcomm
*, scomdata
));
1433 DECLARE("LS_LCK_MTX_UNLOCK_RELEASE", LS_LCK_MTX_UNLOCK_RELEASE
);
1434 DECLARE("LS_LCK_MTX_LOCK_ACQUIRE", LS_LCK_MTX_LOCK_ACQUIRE
);
1437 return(0); /* For ANSI C :-) */