/* * Copyright (c) 2000-2007 Apple Computer, Inc. All rights reserved. * * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * * This file contains Original Code and/or Modifications of Original Code * as defined in and that are subject to the Apple Public Source License * Version 2.0 (the 'License'). You may not use this file except in * compliance with the License. The rights granted to you under the License * may not be used to create, or enable the creation or redistribution of, * unlawful or unlicensed copies of an Apple operating system, or to * circumvent, violate, or enable the circumvention or violation of, any * terms of an Apple operating system software license agreement. * * Please obtain a copy of the License at * http://www.opensource.apple.com/apsl/ and read it before using this file. * * The Original Code and all software distributed under the License are * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. * Please see the License for the specific language governing rights and * limitations under the License. * * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ /* * @OSF_COPYRIGHT@ * */ /* * genassym.c is used to produce an * assembly file which, intermingled with unuseful assembly code, * has all the necessary definitions emitted. This assembly file is * then postprocessed with sed to extract only these definitions * and thus the final assyms.s is created. * * This convoluted means is necessary since the structure alignment * and packing may be different between the host machine and the * target so we are forced into using the cross compiler to generate * the values, but we cannot run anything on the target machine. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if CONFIG_DTRACE #define NEED_DTRACE_DEFS #include <../bsd/sys/lockstat.h> #endif /* Undefine standard offsetof because it is different than the one here */ #undef offsetof #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE)0)->MEMBER) #define DECLARE(SYM,VAL) \ __asm("#DEFINITION##define\t" SYM "\t%0" : : "n" ((u_int)(VAL))) int main(int argc, char *argv[]) { /* Process Control Block */ DECLARE("ACT_MACT_KSP", offsetof(thread_t, machine.ksp)); DECLARE("ACT_MACT_BEDA", offsetof(thread_t, machine.bbDescAddr)); DECLARE("ACT_MACT_BTS", offsetof(thread_t, machine.bbTableStart)); DECLARE("ACT_MACT_BTE", offsetof(thread_t, machine.bbTaskEnv)); DECLARE("ACT_MACT_SPF", offsetof(thread_t, machine.specFlags)); DECLARE("ACT_PREEMPT_CNT", offsetof(thread_t, machine.preemption_count)); DECLARE("ACT_PER_PROC", offsetof(thread_t, machine.PerProc)); DECLARE("qactTimer", offsetof(thread_t, machine.qactTimer)); DECLARE("umwSpace", offsetof(thread_t, machine.umwSpace)); DECLARE("umwRelo", offsetof(thread_t, machine.umwRelo)); DECLARE("umwSwitchAway", umwSwitchAway); DECLARE("umwSwitchAwayb", umwSwitchAwayb); DECLARE("bbTrap", offsetof(thread_t, machine.bbTrap)); DECLARE("bbSysCall", offsetof(thread_t, machine.bbSysCall)); DECLARE("bbInterrupt", offsetof(thread_t, machine.bbInterrupt)); DECLARE("bbPending", offsetof(thread_t, machine.bbPending)); DECLARE("floatUsed", floatUsed); DECLARE("vectorUsed", vectorUsed); DECLARE("runningVM", runningVM); DECLARE("runningVMbit", runningVMbit); DECLARE("floatCng", floatCng); DECLARE("floatCngbit", floatCngbit); DECLARE("vectorCng", vectorCng); DECLARE("vectorCngbit", vectorCngbit); DECLARE("userProtKey", userProtKey); DECLARE("userProtKeybit", userProtKeybit); DECLARE("bbThread", bbThread); DECLARE("bbThreadbit", bbThreadbit); DECLARE("bbNoMachSC", bbNoMachSC); DECLARE("bbNoMachSCbit",bbNoMachSCbit); DECLARE("bbPreemptive", bbPreemptive); DECLARE("bbPreemptivebit", bbPreemptivebit); DECLARE("fvChkb", fvChkb); DECLARE("fvChk", fvChk); DECLARE("FamVMena", FamVMena); DECLARE("FamVMenabit", FamVMenabit); DECLARE("FamVMmode", FamVMmode); DECLARE("FamVMmodebit", FamVMmodebit); DECLARE("perfMonitor", perfMonitor); DECLARE("perfMonitorbit", perfMonitorbit); DECLARE("OnProc", OnProc); DECLARE("OnProcbit", OnProcbit); /* Per Proc info structure */ DECLARE("PP_CPU_NUMBER", offsetof(struct per_proc_info *, cpu_number)); DECLARE("PP_CPU_FLAGS", offsetof(struct per_proc_info *, cpu_flags)); DECLARE("PP_ISTACKPTR", offsetof(struct per_proc_info *, istackptr)); DECLARE("PP_INTSTACK_TOP_SS", offsetof(struct per_proc_info *, intstack_top_ss)); DECLARE("PP_DEBSTACKPTR", offsetof(struct per_proc_info *, debstackptr)); DECLARE("PP_DEBSTACK_TOP_SS", offsetof(struct per_proc_info *, debstack_top_ss)); DECLARE("PP_HIBERNATE", offsetof(struct per_proc_info *, hibernate)); DECLARE("FPUowner", offsetof(struct per_proc_info *, FPU_owner)); DECLARE("VMXowner", offsetof(struct per_proc_info *, VMX_owner)); DECLARE("holdQFret", offsetof(struct per_proc_info *, holdQFret)); DECLARE("rtcPop", offsetof(struct per_proc_info *, rtcPop)); DECLARE("PP_PENDING_AST", offsetof(struct per_proc_info *, pending_ast)); DECLARE("quickfret", offsetof(struct per_proc_info *, quickfret)); DECLARE("lclfree", offsetof(struct per_proc_info *, lclfree)); DECLARE("lclfreecnt", offsetof(struct per_proc_info *, lclfreecnt)); DECLARE("PP_INTS_ENABLED", offsetof(struct per_proc_info *, interrupts_enabled)); DECLARE("UAW", offsetof(struct per_proc_info *, Uassist)); DECLARE("next_savearea", offsetof(struct per_proc_info *, next_savearea)); DECLARE("ppbbTaskEnv", offsetof(struct per_proc_info *, ppbbTaskEnv)); DECLARE("liveVRS", offsetof(struct per_proc_info *, liveVRSave)); DECLARE("spcFlags", offsetof(struct per_proc_info *, spcFlags)); DECLARE("spcTRc", offsetof(struct per_proc_info *, spcTRc)); DECLARE("spcTRp", offsetof(struct per_proc_info *, spcTRp)); DECLARE("ruptStamp", offsetof(struct per_proc_info *, ruptStamp)); DECLARE("pfAvailable", offsetof(struct per_proc_info *, pf.Available)); DECLARE("pfFloat", pfFloat); DECLARE("pfFloatb", pfFloatb); DECLARE("pfAltivec", pfAltivec); DECLARE("pfAltivecb", pfAltivecb); DECLARE("pfAvJava", pfAvJava); DECLARE("pfAvJavab", pfAvJavab); DECLARE("pfSMPcap", pfSMPcap); DECLARE("pfSMPcapb", pfSMPcapb); DECLARE("pfCanSleep", pfCanSleep); DECLARE("pfCanSleepb", pfCanSleepb); DECLARE("pfCanNap", pfCanNap); DECLARE("pfCanNapb", pfCanNapb); DECLARE("pfCanDoze", pfCanDoze); DECLARE("pfCanDozeb", pfCanDozeb); DECLARE("pfSlowNap", pfSlowNap); DECLARE("pfSlowNapb", pfSlowNapb); DECLARE("pfNoMuMMCK", pfNoMuMMCK); DECLARE("pfNoMuMMCKb", pfNoMuMMCKb); DECLARE("pfNoL2PFNap", pfNoL2PFNap); DECLARE("pfNoL2PFNapb", pfNoL2PFNapb); DECLARE("pfSCOMFixUp", pfSCOMFixUp); DECLARE("pfSCOMFixUpb", pfSCOMFixUpb); DECLARE("pfHasDcba", pfHasDcba); DECLARE("pfHasDcbab", pfHasDcbab); DECLARE("pfL1fa", pfL1fa); DECLARE("pfL1fab", pfL1fab); DECLARE("pfL2", pfL2); DECLARE("pfL2b", pfL2b); DECLARE("pfL2fa", pfL2fa); DECLARE("pfL2fab", pfL2fab); DECLARE("pfL2i", pfL2i); DECLARE("pfL2ib", pfL2ib); DECLARE("pfLClck", pfLClck); DECLARE("pfLClckb", pfLClckb); DECLARE("pfWillNap", pfWillNap); DECLARE("pfWillNapb", pfWillNapb); DECLARE("pfNoMSRir", pfNoMSRir); DECLARE("pfNoMSRirb", pfNoMSRirb); DECLARE("pfL3pdet", pfL3pdet); DECLARE("pfL3pdetb", pfL3pdetb); DECLARE("pf128Byte", pf128Byte); DECLARE("pf128Byteb", pf128Byteb); DECLARE("pf32Byte", pf32Byte); DECLARE("pf32Byteb", pf32Byteb); DECLARE("pf64Bit", pf64Bit); DECLARE("pf64Bitb", pf64Bitb); DECLARE("pfL3", pfL3); DECLARE("pfL3b", pfL3b); DECLARE("pfL3fa", pfL3fa); DECLARE("pfL3fab", pfL3fab); DECLARE("pfValid", pfValid); DECLARE("pfValidb", pfValidb); DECLARE("pfrptdProc", offsetof(struct per_proc_info *, pf.rptdProc)); DECLARE("pflineSize", offsetof(struct per_proc_info *, pf.lineSize)); DECLARE("pfl1iSize", offsetof(struct per_proc_info *, pf.l1iSize)); DECLARE("pfl1dSize", offsetof(struct per_proc_info *, pf.l1dSize)); DECLARE("pfl2cr", offsetof(struct per_proc_info *, pf.l2cr)); DECLARE("pfl2Size", offsetof(struct per_proc_info *, pf.l2Size)); DECLARE("pfl3cr", offsetof(struct per_proc_info *, pf.l3cr)); DECLARE("pfl3Size", offsetof(struct per_proc_info *, pf.l3Size)); DECLARE("pfHID0", offsetof(struct per_proc_info *, pf.pfHID0)); DECLARE("pfHID1", offsetof(struct per_proc_info *, pf.pfHID1)); DECLARE("pfHID2", offsetof(struct per_proc_info *, pf.pfHID2)); DECLARE("pfHID3", offsetof(struct per_proc_info *, pf.pfHID3)); DECLARE("pfHID4", offsetof(struct per_proc_info *, pf.pfHID4)); DECLARE("pfHID5", offsetof(struct per_proc_info *, pf.pfHID5)); DECLARE("pfMSSCR0", offsetof(struct per_proc_info *, pf.pfMSSCR0)); DECLARE("pfMSSCR1", offsetof(struct per_proc_info *, pf.pfMSSCR1)); DECLARE("pfICTRL", offsetof(struct per_proc_info *, pf.pfICTRL)); DECLARE("pfLDSTCR", offsetof(struct per_proc_info *, pf.pfLDSTCR)); DECLARE("pfLDSTDB", offsetof(struct per_proc_info *, pf.pfLDSTDB)); DECLARE("pfl2crOriginal", offsetof(struct per_proc_info *, pf.l2crOriginal)); DECLARE("pfl3crOriginal", offsetof(struct per_proc_info *, pf.l3crOriginal)); DECLARE("pfBootConfig", offsetof(struct per_proc_info *, pf.pfBootConfig)); DECLARE("pfPowerModes", offsetof(struct per_proc_info *, pf.pfPowerModes)); DECLARE("pfPowerTune0", offsetof(struct per_proc_info *, pf.pfPowerTune0)); DECLARE("pfPowerTune1", offsetof(struct per_proc_info *, pf.pfPowerTune1)); DECLARE("pmType", pmType); DECLARE("pmDPLLVmin", pmDPLLVmin); DECLARE("pmDPLLVminb", pmDPLLVminb); DECLARE("pmPowerTune", pmPowerTune); DECLARE("pmDFS", pmDFS); DECLARE("pmDualPLL", pmDualPLL); DECLARE("pfPTEG", offsetof(struct per_proc_info *, pf.pfPTEG)); DECLARE("pfMaxVAddr", offsetof(struct per_proc_info *, pf.pfMaxVAddr)); DECLARE("pfMaxPAddr", offsetof(struct per_proc_info *, pf.pfMaxPAddr)); DECLARE("pfSize", sizeof(procFeatures)); DECLARE("validSegs", offsetof(struct per_proc_info *, validSegs)); DECLARE("ppUserPmapVirt", offsetof(struct per_proc_info *, ppUserPmapVirt)); DECLARE("ppUserPmap", offsetof(struct per_proc_info *, ppUserPmap)); DECLARE("ppMapFlags", offsetof(struct per_proc_info *, ppMapFlags)); DECLARE("ppInvSeg", offsetof(struct per_proc_info *, ppInvSeg)); DECLARE("ppCurSeg", offsetof(struct per_proc_info *, ppCurSeg)); DECLARE("ppSegSteal", offsetof(struct per_proc_info *, ppSegSteal)); DECLARE("VMMareaPhys", offsetof(struct per_proc_info *, VMMareaPhys)); DECLARE("VMMXAFlgs", offsetof(struct per_proc_info *, VMMXAFlgs)); DECLARE("FAMintercept", offsetof(struct per_proc_info *, FAMintercept)); DECLARE("ppUMWmp", offsetof(struct per_proc_info *, ppUMWmp)); DECLARE("tempr0", offsetof(struct per_proc_info *, tempr0)); DECLARE("tempr1", offsetof(struct per_proc_info *, tempr1)); DECLARE("tempr2", offsetof(struct per_proc_info *, tempr2)); DECLARE("tempr3", offsetof(struct per_proc_info *, tempr3)); DECLARE("tempr4", offsetof(struct per_proc_info *, tempr4)); DECLARE("tempr5", offsetof(struct per_proc_info *, tempr5)); DECLARE("tempr6", offsetof(struct per_proc_info *, tempr6)); DECLARE("tempr7", offsetof(struct per_proc_info *, tempr7)); DECLARE("tempr8", offsetof(struct per_proc_info *, tempr8)); DECLARE("tempr9", offsetof(struct per_proc_info *, tempr9)); DECLARE("tempr10", offsetof(struct per_proc_info *, tempr10)); DECLARE("tempr11", offsetof(struct per_proc_info *, tempr11)); DECLARE("tempr12", offsetof(struct per_proc_info *, tempr12)); DECLARE("tempr13", offsetof(struct per_proc_info *, tempr13)); DECLARE("tempr14", offsetof(struct per_proc_info *, tempr14)); DECLARE("tempr15", offsetof(struct per_proc_info *, tempr15)); DECLARE("tempr16", offsetof(struct per_proc_info *, tempr16)); DECLARE("tempr17", offsetof(struct per_proc_info *, tempr17)); DECLARE("tempr18", offsetof(struct per_proc_info *, tempr18)); DECLARE("tempr19", offsetof(struct per_proc_info *, tempr19)); DECLARE("tempr20", offsetof(struct per_proc_info *, tempr20)); DECLARE("tempr21", offsetof(struct per_proc_info *, tempr21)); DECLARE("tempr22", offsetof(struct per_proc_info *, tempr22)); DECLARE("tempr23", offsetof(struct per_proc_info *, tempr23)); DECLARE("tempr24", offsetof(struct per_proc_info *, tempr24)); DECLARE("tempr25", offsetof(struct per_proc_info *, tempr25)); DECLARE("tempr26", offsetof(struct per_proc_info *, tempr26)); DECLARE("tempr27", offsetof(struct per_proc_info *, tempr27)); DECLARE("tempr28", offsetof(struct per_proc_info *, tempr28)); DECLARE("tempr29", offsetof(struct per_proc_info *, tempr29)); DECLARE("tempr30", offsetof(struct per_proc_info *, tempr30)); DECLARE("tempr31", offsetof(struct per_proc_info *, tempr31)); DECLARE("emfp0", offsetof(struct per_proc_info *, emfp0)); DECLARE("emfp1", offsetof(struct per_proc_info *, emfp1)); DECLARE("emfp2", offsetof(struct per_proc_info *, emfp2)); DECLARE("emfp3", offsetof(struct per_proc_info *, emfp3)); DECLARE("emfp4", offsetof(struct per_proc_info *, emfp4)); DECLARE("emfp5", offsetof(struct per_proc_info *, emfp5)); DECLARE("emfp6", offsetof(struct per_proc_info *, emfp6)); DECLARE("emfp7", offsetof(struct per_proc_info *, emfp7)); DECLARE("emfp8", offsetof(struct per_proc_info *, emfp8)); DECLARE("emfp9", offsetof(struct per_proc_info *, emfp9)); DECLARE("emfp10", offsetof(struct per_proc_info *, emfp10)); DECLARE("emfp11", offsetof(struct per_proc_info *, emfp11)); DECLARE("emfp12", offsetof(struct per_proc_info *, emfp12)); DECLARE("emfp13", offsetof(struct per_proc_info *, emfp13)); DECLARE("emfp14", offsetof(struct per_proc_info *, emfp14)); DECLARE("emfp15", offsetof(struct per_proc_info *, emfp15)); DECLARE("emfp16", offsetof(struct per_proc_info *, emfp16)); DECLARE("emfp17", offsetof(struct per_proc_info *, emfp17)); DECLARE("emfp18", offsetof(struct per_proc_info *, emfp18)); DECLARE("emfp19", offsetof(struct per_proc_info *, emfp19)); DECLARE("emfp20", offsetof(struct per_proc_info *, emfp20)); DECLARE("emfp21", offsetof(struct per_proc_info *, emfp21)); DECLARE("emfp22", offsetof(struct per_proc_info *, emfp22)); DECLARE("emfp23", offsetof(struct per_proc_info *, emfp23)); DECLARE("emfp24", offsetof(struct per_proc_info *, emfp24)); DECLARE("emfp25", offsetof(struct per_proc_info *, emfp25)); DECLARE("emfp26", offsetof(struct per_proc_info *, emfp26)); DECLARE("emfp27", offsetof(struct per_proc_info *, emfp27)); DECLARE("emfp28", offsetof(struct per_proc_info *, emfp28)); DECLARE("emfp29", offsetof(struct per_proc_info *, emfp29)); DECLARE("emfp30", offsetof(struct per_proc_info *, emfp30)); DECLARE("emfp31", offsetof(struct per_proc_info *, emfp31)); DECLARE("emfpscr_pad", offsetof(struct per_proc_info *, emfpscr_pad)); DECLARE("emfpscr", offsetof(struct per_proc_info *, emfpscr)); DECLARE("emvr0", offsetof(struct per_proc_info *, emvr0)); DECLARE("emvr1", offsetof(struct per_proc_info *, emvr1)); DECLARE("emvr2", offsetof(struct per_proc_info *, emvr2)); DECLARE("emvr3", offsetof(struct per_proc_info *, emvr3)); DECLARE("emvr4", offsetof(struct per_proc_info *, emvr4)); DECLARE("emvr5", offsetof(struct per_proc_info *, emvr5)); DECLARE("emvr6", offsetof(struct per_proc_info *, emvr6)); DECLARE("emvr7", offsetof(struct per_proc_info *, emvr7)); DECLARE("emvr8", offsetof(struct per_proc_info *, emvr8)); DECLARE("emvr9", offsetof(struct per_proc_info *, emvr9)); DECLARE("emvr10", offsetof(struct per_proc_info *, emvr10)); DECLARE("emvr11", offsetof(struct per_proc_info *, emvr11)); DECLARE("emvr12", offsetof(struct per_proc_info *, emvr12)); DECLARE("emvr13", offsetof(struct per_proc_info *, emvr13)); DECLARE("emvr14", offsetof(struct per_proc_info *, emvr14)); DECLARE("emvr15", offsetof(struct per_proc_info *, emvr15)); DECLARE("emvr16", offsetof(struct per_proc_info *, emvr16)); DECLARE("emvr17", offsetof(struct per_proc_info *, emvr17)); DECLARE("emvr18", offsetof(struct per_proc_info *, emvr18)); DECLARE("emvr19", offsetof(struct per_proc_info *, emvr19)); DECLARE("emvr20", offsetof(struct per_proc_info *, emvr20)); DECLARE("emvr21", offsetof(struct per_proc_info *, emvr21)); DECLARE("emvr22", offsetof(struct per_proc_info *, emvr22)); DECLARE("emvr23", offsetof(struct per_proc_info *, emvr23)); DECLARE("emvr24", offsetof(struct per_proc_info *, emvr24)); DECLARE("emvr25", offsetof(struct per_proc_info *, emvr25)); DECLARE("emvr26", offsetof(struct per_proc_info *, emvr26)); DECLARE("emvr27", offsetof(struct per_proc_info *, emvr27)); DECLARE("emvr28", offsetof(struct per_proc_info *, emvr28)); DECLARE("emvr29", offsetof(struct per_proc_info *, emvr29)); DECLARE("emvr30", offsetof(struct per_proc_info *, emvr30)); DECLARE("emvr31", offsetof(struct per_proc_info *, emvr31)); DECLARE("empadvr", offsetof(struct per_proc_info *, empadvr)); DECLARE("skipListPrev", offsetof(struct per_proc_info *, skipListPrev)); DECLARE("ppSize", sizeof(struct per_proc_info)); DECLARE("ppe_paddr", offsetof(struct per_proc_entry *, ppe_paddr)); DECLARE("ppe_vaddr", offsetof(struct per_proc_entry *, ppe_vaddr)); DECLARE("ppeSize", sizeof(struct per_proc_entry)); DECLARE("MAX_CPUS", MAX_CPUS); DECLARE("patcharea", offsetof(struct per_proc_info *, patcharea)); DECLARE("hwCounts", offsetof(struct per_proc_info *, hwCtr)); DECLARE("hwInVains", offsetof(struct per_proc_info *, hwCtr.hwInVains)); DECLARE("hwResets", offsetof(struct per_proc_info *, hwCtr.hwResets)); DECLARE("hwMachineChecks", offsetof(struct per_proc_info *, hwCtr.hwMachineChecks)); DECLARE("hwDSIs", offsetof(struct per_proc_info *, hwCtr.hwDSIs)); DECLARE("hwISIs", offsetof(struct per_proc_info *, hwCtr.hwISIs)); DECLARE("hwExternals", offsetof(struct per_proc_info *, hwCtr.hwExternals)); DECLARE("hwAlignments", offsetof(struct per_proc_info *, hwCtr.hwAlignments)); DECLARE("hwPrograms", offsetof(struct per_proc_info *, hwCtr.hwPrograms)); DECLARE("hwFloatPointUnavailable", offsetof(struct per_proc_info *, hwCtr.hwFloatPointUnavailable)); DECLARE("hwDecrementers", offsetof(struct per_proc_info *, hwCtr.hwDecrementers)); DECLARE("hwIOErrors", offsetof(struct per_proc_info *, hwCtr.hwIOErrors)); DECLARE("hwrsvd0", offsetof(struct per_proc_info *, hwCtr.hwrsvd0)); DECLARE("hwSystemCalls", offsetof(struct per_proc_info *, hwCtr.hwSystemCalls)); DECLARE("hwTraces", offsetof(struct per_proc_info *, hwCtr.hwTraces)); DECLARE("hwFloatingPointAssists", offsetof(struct per_proc_info *, hwCtr.hwFloatingPointAssists)); DECLARE("hwPerformanceMonitors", offsetof(struct per_proc_info *, hwCtr.hwPerformanceMonitors)); DECLARE("hwAltivecs", offsetof(struct per_proc_info *, hwCtr.hwAltivecs)); DECLARE("hwrsvd1", offsetof(struct per_proc_info *, hwCtr.hwrsvd1)); DECLARE("hwrsvd2", offsetof(struct per_proc_info *, hwCtr.hwrsvd2)); DECLARE("hwrsvd3", offsetof(struct per_proc_info *, hwCtr.hwrsvd3)); DECLARE("hwInstBreakpoints", offsetof(struct per_proc_info *, hwCtr.hwInstBreakpoints)); DECLARE("hwSystemManagements", offsetof(struct per_proc_info *, hwCtr.hwSystemManagements)); DECLARE("hwAltivecAssists", offsetof(struct per_proc_info *, hwCtr.hwAltivecAssists)); DECLARE("hwThermal", offsetof(struct per_proc_info *, hwCtr.hwThermal)); DECLARE("hwrsvd5", offsetof(struct per_proc_info *, hwCtr.hwrsvd5)); DECLARE("hwrsvd6", offsetof(struct per_proc_info *, hwCtr.hwrsvd6)); DECLARE("hwrsvd7", offsetof(struct per_proc_info *, hwCtr.hwrsvd7)); DECLARE("hwrsvd8", offsetof(struct per_proc_info *, hwCtr.hwrsvd8)); DECLARE("hwrsvd9", offsetof(struct per_proc_info *, hwCtr.hwrsvd9)); DECLARE("hwrsvd10", offsetof(struct per_proc_info *, hwCtr.hwrsvd10)); DECLARE("hwrsvd11", offsetof(struct per_proc_info *, hwCtr.hwrsvd11)); DECLARE("hwrsvd12", offsetof(struct per_proc_info *, hwCtr.hwrsvd12)); DECLARE("hwrsvd13", offsetof(struct per_proc_info *, hwCtr.hwrsvd13)); DECLARE("hwTrace601", offsetof(struct per_proc_info *, hwCtr.hwTrace601)); DECLARE("hwSIGPs", offsetof(struct per_proc_info *, hwCtr.hwSIGPs)); DECLARE("hwPreemptions", offsetof(struct per_proc_info *, hwCtr.hwPreemptions)); DECLARE("hwContextSwitchs", offsetof(struct per_proc_info *, hwCtr.hwContextSwitchs)); DECLARE("hwShutdowns", offsetof(struct per_proc_info *, hwCtr.hwShutdowns)); DECLARE("hwChokes", offsetof(struct per_proc_info *, hwCtr.hwChokes)); DECLARE("hwDataSegments", offsetof(struct per_proc_info *, hwCtr.hwDataSegments)); DECLARE("hwInstructionSegments", offsetof(struct per_proc_info *, hwCtr.hwInstructionSegments)); DECLARE("hwSoftPatches", offsetof(struct per_proc_info *, hwCtr.hwSoftPatches)); DECLARE("hwMaintenances", offsetof(struct per_proc_info *, hwCtr.hwMaintenances)); DECLARE("hwInstrumentations", offsetof(struct per_proc_info *, hwCtr.hwInstrumentations)); DECLARE("hwRedrives", offsetof(struct per_proc_info *, hwCtr.hwRedrives)); DECLARE("hwIgnored", offsetof(struct per_proc_info *, hwCtr.hwIgnored)); DECLARE("hwhdec", offsetof(struct per_proc_info *, hwCtr.hwhdec)); DECLARE("hwSteals", offsetof(struct per_proc_info *, hwCtr.hwSteals)); DECLARE("hwWalkPhys", offsetof(struct per_proc_info *, hwCtr.hwWalkPhys)); DECLARE("hwWalkFull", offsetof(struct per_proc_info *, hwCtr.hwWalkFull)); DECLARE("hwWalkMerge", offsetof(struct per_proc_info *, hwCtr.hwWalkMerge)); DECLARE("hwWalkQuick", offsetof(struct per_proc_info *, hwCtr.hwWalkQuick)); DECLARE("hwMckHang", offsetof(struct per_proc_info *, hwCtr.hwMckHang)); DECLARE("hwMckSLBPE", offsetof(struct per_proc_info *, hwCtr.hwMckSLBPE)); DECLARE("hwMckTLBPE", offsetof(struct per_proc_info *, hwCtr.hwMckTLBPE)); DECLARE("hwMckERCPE", offsetof(struct per_proc_info *, hwCtr.hwMckERCPE)); DECLARE("hwMckL1DPE", offsetof(struct per_proc_info *, hwCtr.hwMckL1DPE)); DECLARE("hwMckL1TPE", offsetof(struct per_proc_info *, hwCtr.hwMckL1TPE)); DECLARE("hwMckUE", offsetof(struct per_proc_info *, hwCtr.hwMckUE)); DECLARE("hwMckIUE", offsetof(struct per_proc_info *, hwCtr.hwMckIUE)); DECLARE("hwMckIUEr", offsetof(struct per_proc_info *, hwCtr.hwMckIUEr)); DECLARE("hwMckDUE", offsetof(struct per_proc_info *, hwCtr.hwMckDUE)); DECLARE("hwMckDTW", offsetof(struct per_proc_info *, hwCtr.hwMckDTW)); DECLARE("hwMckUnk", offsetof(struct per_proc_info *, hwCtr.hwMckUnk)); DECLARE("hwMckExt", offsetof(struct per_proc_info *, hwCtr.hwMckExt)); DECLARE("hwMckICachePE", offsetof(struct per_proc_info *, hwCtr.hwMckICachePE)); DECLARE("hwMckITagPE", offsetof(struct per_proc_info *, hwCtr.hwMckITagPE)); DECLARE("hwMckIEratPE", offsetof(struct per_proc_info *, hwCtr.hwMckIEratPE)); DECLARE("hwMckDEratPE", offsetof(struct per_proc_info *, hwCtr.hwMckDEratPE)); DECLARE("ijsave", offsetof(struct per_proc_info *, ijsave)); DECLARE("napStamp", offsetof(struct per_proc_info *, hwCtr.napStamp)); DECLARE("napTotal", offsetof(struct per_proc_info *, hwCtr.napTotal)); DECLARE("PP_PROCESSOR", offsetof(struct per_proc_info *, processor[0])); DECLARE("PP_PROCESSOR_SIZE", sizeof(((struct per_proc_info *)0)->processor)); DECLARE("PROCESSOR_SIZE", sizeof (struct processor)); DECLARE("patchAddr", offsetof(struct patch_entry *, addr)); DECLARE("patchData", offsetof(struct patch_entry *, data)); DECLARE("patchType", offsetof(struct patch_entry *, type)); DECLARE("patchValue", offsetof(struct patch_entry *, value)); DECLARE("peSize", sizeof(patch_entry_t)); DECLARE("PATCH_PROCESSOR", PATCH_PROCESSOR); DECLARE("PATCH_FEATURE", PATCH_FEATURE); DECLARE("PATCH_END_OF_TABLE", PATCH_END_OF_TABLE); DECLARE("PatchExt32", PatchExt32); DECLARE("PatchExt32b", PatchExt32b); DECLARE("PatchLwsync", PatchLwsync); DECLARE("PatchLwsyncb", PatchLwsyncb); DECLARE("RESETHANDLER_TYPE", offsetof(struct resethandler *, type)); DECLARE("RESETHANDLER_CALL", offsetof(struct resethandler *, call_paddr)); DECLARE("RESETHANDLER_ARG", offsetof(struct resethandler *, arg__paddr)); /* we want offset from * bottom of kernel stack, not offset into structure */ #define IKSBASE (u_int)STACK_IKS(0) /* values from kern/thread.h */ DECLARE("THREAD_STATE", offsetof(thread_t, state)); DECLARE("TH_IDLE", TH_IDLE); DECLARE("THREAD_KERNEL_STACK", offsetof(thread_t, kernel_stack)); DECLARE("THREAD_RECOVER", offsetof(thread_t, recover)); DECLARE("THREAD_FUNNEL_LOCK", offsetof(thread_t, funnel_lock)); DECLARE("THREAD_FUNNEL_STATE", offsetof(thread_t, funnel_state)); DECLARE("LOCK_FNL_MUTEX", offsetof(struct funnel_lock *, fnl_mutex)); DECLARE("ACT_TASK", offsetof(thread_t, task)); DECLARE("ACT_MACT_PCB", offsetof(thread_t, machine.pcb)); DECLARE("ACT_MACT_UPCB", offsetof(thread_t, machine.upcb)); DECLARE("ACT_AST", offsetof(thread_t, ast)); DECLARE("ACT_VMMAP", offsetof(thread_t, map)); DECLARE("vmmCEntry", offsetof(thread_t, machine.vmmCEntry)); DECLARE("vmmControl", offsetof(thread_t, machine.vmmControl)); DECLARE("curctx", offsetof(thread_t, machine.curctx)); DECLARE("deferctx", offsetof(thread_t, machine.deferctx)); DECLARE("facctx", offsetof(thread_t, machine.facctx)); #ifdef MACH_BSD DECLARE("CTHREAD_SELF", offsetof(thread_t, machine.cthread_self)); #endif DECLARE("FPUsave", offsetof(struct facility_context *,FPUsave)); DECLARE("FPUlevel", offsetof(struct facility_context *,FPUlevel)); DECLARE("FPUcpu", offsetof(struct facility_context *,FPUcpu)); DECLARE("FPUsync", offsetof(struct facility_context *,FPUsync)); DECLARE("VMXsave", offsetof(struct facility_context *,VMXsave)); DECLARE("VMXlevel", offsetof(struct facility_context *,VMXlevel)); DECLARE("VMXcpu", offsetof(struct facility_context *,VMXcpu)); DECLARE("VMXsync", offsetof(struct facility_context *,VMXsync)); DECLARE("facAct", offsetof(struct facility_context *,facAct)); /* Values from vmachmon.h */ DECLARE("kVmmGetVersion", kVmmGetVersion); DECLARE("kVmmvGetFeatures", kVmmvGetFeatures); DECLARE("kVmmInitContext", kVmmInitContext); DECLARE("kVmmTearDownContext", kVmmTearDownContext); DECLARE("kVmmTearDownAll", kVmmTearDownAll); DECLARE("kVmmMapPage", kVmmMapPage); DECLARE("kVmmGetPageMapping", kVmmGetPageMapping); DECLARE("kVmmUnmapPage", kVmmUnmapPage); DECLARE("kVmmUnmapAllPages", kVmmUnmapAllPages); DECLARE("kVmmGetPageDirtyFlag", kVmmGetPageDirtyFlag); DECLARE("kVmmGetFloatState", kVmmGetFloatState); DECLARE("kVmmGetVectorState", kVmmGetVectorState); DECLARE("kVmmSetTimer", kVmmSetTimer); DECLARE("kVmmGetTimer", kVmmGetTimer); DECLARE("kVmmExecuteVM", kVmmExecuteVM); DECLARE("kVmmProtectPage", kVmmProtectPage); DECLARE("kVmmMapList", kVmmMapList); DECLARE("kVmmUnmapList", kVmmUnmapList); DECLARE("kVmmActivateXA", kVmmActivateXA); DECLARE("kVmmDeactivateXA", kVmmDeactivateXA); DECLARE("kVmmGetXA", kVmmGetXA); DECLARE("kVmmMapPage64", kVmmMapPage64); DECLARE("kVmmGetPageMapping64", kVmmGetPageMapping64); DECLARE("kVmmUnmapPage64", kVmmUnmapPage64); DECLARE("kVmmGetPageDirtyFlag64", kVmmGetPageDirtyFlag64); DECLARE("kVmmMapExecute64", kVmmMapExecute64); DECLARE("kVmmProtectExecute64", kVmmProtectExecute64); DECLARE("kVmmMapList64", kVmmMapList64); DECLARE("kVmmUnmapList64", kVmmUnmapList64); DECLARE("kvmmExitToHost", kvmmExitToHost); DECLARE("kvmmResumeGuest", kvmmResumeGuest); DECLARE("kvmmGetGuestRegister", kvmmGetGuestRegister); DECLARE("kvmmSetGuestRegister", kvmmSetGuestRegister); DECLARE("kVmmReturnNull", kVmmReturnNull); DECLARE("kVmmStopped", kVmmStopped); DECLARE("kVmmBogusContext", kVmmBogusContext); DECLARE("kVmmReturnDataPageFault", kVmmReturnDataPageFault); DECLARE("kVmmReturnInstrPageFault", kVmmReturnInstrPageFault); DECLARE("kVmmReturnAlignmentFault", kVmmReturnAlignmentFault); DECLARE("kVmmReturnProgramException", kVmmReturnProgramException); DECLARE("kVmmReturnSystemCall", kVmmReturnSystemCall); DECLARE("kVmmReturnTraceException", kVmmReturnTraceException); DECLARE("kVmmInvalidAdSpace", kVmmInvalidAdSpace); DECLARE("kVmmProtXtnd", kVmmProtXtnd); DECLARE("kVmmProtNARW", kVmmProtNARW); DECLARE("kVmmProtRORW", kVmmProtRORW); DECLARE("kVmmProtRWRW", kVmmProtRWRW); DECLARE("kVmmProtRORO", kVmmProtRORO); DECLARE("vmmFlags", offsetof(struct vmmCntrlEntry *, vmmFlags)); DECLARE("vmmXAFlgs", offsetof(struct vmmCntrlEntry *, vmmXAFlgs)); DECLARE("vmmPmap", offsetof(struct vmmCntrlEntry *, vmmPmap)); DECLARE("vmmInUseb", vmmInUseb); DECLARE("vmmInUse", vmmInUse); DECLARE("vmmContextKern", offsetof(struct vmmCntrlEntry *, vmmContextKern)); DECLARE("vmmContextPhys", offsetof(struct vmmCntrlEntry *, vmmContextPhys)); DECLARE("vmmContextUser", offsetof(struct vmmCntrlEntry *, vmmContextUser)); DECLARE("vmmFacCtx", offsetof(struct vmmCntrlEntry *, vmmFacCtx)); DECLARE("vmmLastMap", offsetof(struct vmmCntrlTable *, vmmLastMap)); DECLARE("vmmGFlags", offsetof(struct vmmCntrlTable *, vmmGFlags)); DECLARE("vmmc", offsetof(struct vmmCntrlTable *, vmmc)); DECLARE("vmmAdsp", offsetof(struct vmmCntrlTable *, vmmAdsp)); DECLARE("vmmLastAdSp", vmmLastAdSp); DECLARE("vmmFAMintercept", offsetof(struct vmmCntrlEntry *, vmmFAMintercept)); DECLARE("vmmCEntrySize", sizeof(struct vmmCntrlEntry)); DECLARE("kVmmMaxContexts", kVmmMaxContexts); DECLARE("interface_version", offsetof(struct vmm_state_page_t *, interface_version)); DECLARE("thread_index", offsetof(struct vmm_state_page_t *, thread_index)); DECLARE("vmmStat", offsetof(struct vmm_state_page_t *, vmmStat)); DECLARE("vmmCntrl", offsetof(struct vmm_state_page_t *, vmmCntrl)); DECLARE("vmm_proc_state", offsetof(struct vmm_state_page_t *, vmm_proc_state)); DECLARE("return_code", offsetof(struct vmm_state_page_t *, return_code)); DECLARE("return_params", offsetof(struct vmm_state_page_t *, vmmRet.vmmrp32.return_params)); DECLARE("return_paramsX", offsetof(struct vmm_state_page_t *, vmmRet.vmmrp64.return_params)); #if 0 DECLARE("return_params", offsetof(struct vmm_state_page_t *, return_params)); DECLARE("vmm_proc_state", offsetof(struct vmm_state_page_t *, vmm_proc_state)); #endif DECLARE("vmmppcVRs", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcVRs)); DECLARE("vmmppcVSCR", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcVSCR)); DECLARE("vmmppcFPRs", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcFPRs)); DECLARE("vmmppcFPSCR", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcFPSCR)); DECLARE("vmmppcpc", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcPC)); DECLARE("vmmppcmsr", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcMSR)); DECLARE("vmmppcr0", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x00)); DECLARE("vmmppcr1", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x04)); DECLARE("vmmppcr2", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x08)); DECLARE("vmmppcr3", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x0C)); DECLARE("vmmppcr4", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x10)); DECLARE("vmmppcr5", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x14)); DECLARE("vmmppcr6", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x18)); DECLARE("vmmppcr7", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x1C)); DECLARE("vmmppcr8", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x20)); DECLARE("vmmppcr9", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x24)); DECLARE("vmmppcr10", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x28)); DECLARE("vmmppcr11", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x2C)); DECLARE("vmmppcr12", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x30)); DECLARE("vmmppcr13", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x34)); DECLARE("vmmppcr14", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x38)); DECLARE("vmmppcr15", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x3C)); DECLARE("vmmppcr16", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x40)); DECLARE("vmmppcr17", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x44)); DECLARE("vmmppcr18", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x48)); DECLARE("vmmppcr19", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x4C)); DECLARE("vmmppcr20", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x50)); DECLARE("vmmppcr21", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x54)); DECLARE("vmmppcr22", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x58)); DECLARE("vmmppcr23", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x5C)); DECLARE("vmmppcr24", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x60)); DECLARE("vmmppcr25", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x64)); DECLARE("vmmppcr26", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x68)); DECLARE("vmmppcr27", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x6C)); DECLARE("vmmppcr28", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x70)); DECLARE("vmmppcr29", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x74)); DECLARE("vmmppcr30", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x78)); DECLARE("vmmppcr31", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcGPRs+0x7C)); DECLARE("vmmppccr", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcCR)); DECLARE("vmmppcxer", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcXER)); DECLARE("vmmppclr", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcLR)); DECLARE("vmmppcctr", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcCTR)); DECLARE("vmmppcmq", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcMQ)); DECLARE("vmmppcvrsave", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs32.ppcVRSave)); DECLARE("vmmppcXpc", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcPC)); DECLARE("vmmppcXmsr", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcMSR)); DECLARE("vmmppcXr0", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x00)); DECLARE("vmmppcXr1", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x08)); DECLARE("vmmppcXr2", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x10)); DECLARE("vmmppcXr3", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x18)); DECLARE("vmmppcXr4", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x20)); DECLARE("vmmppcXr5", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x28)); DECLARE("vmmppcXr6", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x30)); DECLARE("vmmppcXr7", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x38)); DECLARE("vmmppcXr8", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x40)); DECLARE("vmmppcXr9", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x48)); DECLARE("vmmppcXr10", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x50)); DECLARE("vmmppcXr11", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x58)); DECLARE("vmmppcXr12", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x60)); DECLARE("vmmppcXr13", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x68)); DECLARE("vmmppcXr14", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x70)); DECLARE("vmmppcXr15", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x78)); DECLARE("vmmppcXr16", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x80)); DECLARE("vmmppcXr17", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x88)); DECLARE("vmmppcXr18", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x90)); DECLARE("vmmppcXr19", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0x98)); DECLARE("vmmppcXr20", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0xA0)); DECLARE("vmmppcXr21", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0xA8)); DECLARE("vmmppcXr22", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0xB0)); DECLARE("vmmppcXr23", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0xB8)); DECLARE("vmmppcXr24", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0xC0)); DECLARE("vmmppcXr25", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0xC8)); DECLARE("vmmppcXr26", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0xD0)); DECLARE("vmmppcXr27", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0xD8)); DECLARE("vmmppcXr28", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0xE0)); DECLARE("vmmppcXr29", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0xE8)); DECLARE("vmmppcXr30", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0xF0)); DECLARE("vmmppcXr31", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcGPRs+0xF8)); DECLARE("vmmppcXcr", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcCR)); DECLARE("vmmppcXxer", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcXER)); DECLARE("vmmppcXlr", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcLR)); DECLARE("vmmppcXctr", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcCTR)); DECLARE("vmmppcXvrsave", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcRegs.ppcRegs64.ppcVRSave)); DECLARE("vmmppcvscr", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcVSCR+0x00)); DECLARE("vmmppcfpscrpad", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcFPSCR)); DECLARE("vmmppcfpscr", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcFPSCR+4)); DECLARE("famguestr0", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.guest_register)); DECLARE("famguestr1", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.guest_register+0x4)); DECLARE("famguestr2", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.guest_register+0x8)); DECLARE("famguestr3", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.guest_register+0xC)); DECLARE("famguestr4", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.guest_register+0x10)); DECLARE("famguestr5", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.guest_register+0x14)); DECLARE("famguestr6", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.guest_register+0x18)); DECLARE("famguestr7", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.guest_register+0x1C)); DECLARE("famguestpc", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.guest_pc)); DECLARE("famguestmsr", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.guest_msr)); DECLARE("famdispcode", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.fastassist_dispatch_code)); DECLARE("famrefcon", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.fastassist_refcon)); DECLARE("famparam", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.fastassist_parameter)); DECLARE("famhandler", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.fastassist_dispatch)); DECLARE("famintercepts", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs32.fastassist_intercepts)); DECLARE("famguestXr0", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.guest_register)); DECLARE("famguestXr1", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.guest_register+0x8)); DECLARE("famguestXr2", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.guest_register+0x10)); DECLARE("famguestXr3", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.guest_register+0x18)); DECLARE("famguestXr4", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.guest_register+0x20)); DECLARE("famguestXr5", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.guest_register+0x28)); DECLARE("famguestXr6", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.guest_register+0x30)); DECLARE("famguestXr7", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.guest_register+0x38)); DECLARE("famguestXpc", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.guest_pc)); DECLARE("famguestXmsr", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.guest_msr)); DECLARE("famdispcodeX", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.fastassist_dispatch_code)); DECLARE("famrefconX", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.fastassist_refcon)); DECLARE("famparamX", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.fastassist_parameter)); DECLARE("famhandlerX", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.fastassist_dispatch)); DECLARE("faminterceptsX", offsetof(struct vmm_state_page_t *, vmm_fastassist_state.vmmfs64.fastassist_intercepts)); DECLARE("vmmFloatCngd", vmmFloatCngd); DECLARE("vmmFloatCngdb", vmmFloatCngdb); DECLARE("vmmVectCngd", vmmVectCngd); DECLARE("vmmVectCngdb", vmmVectCngdb); DECLARE("vmmTimerPop", vmmTimerPop); DECLARE("vmmTimerPopb", vmmTimerPopb); DECLARE("vmmFAMmode", vmmFAMmode); DECLARE("vmmFAMmodeb", vmmFAMmodeb); DECLARE("vmmSpfSave", vmmSpfSave); DECLARE("vmmSpfSaveb", vmmSpfSaveb); DECLARE("vmmFloatLoad", vmmFloatLoad); DECLARE("vmmFloatLoadb", vmmFloatLoadb); DECLARE("vmmVectLoad", vmmVectLoad); DECLARE("vmmVectLoadb", vmmVectLoadb); DECLARE("vmmVectVRall", vmmVectVRall); DECLARE("vmmVectVRallb", vmmVectVRallb); DECLARE("vmmVectVAss", vmmVectVAss); DECLARE("vmmVectVAssb", vmmVectVAssb); DECLARE("vmmXStart", vmmXStart); DECLARE("vmmXStartb", vmmXStartb); DECLARE("vmmXStop", vmmXStop); DECLARE("vmmXStopb", vmmXStopb); DECLARE("vmmKey", vmmKey); DECLARE("vmmKeyb", vmmKeyb); DECLARE("vmmFamSet", vmmFamSet); DECLARE("vmmFamSetb", vmmFamSetb); DECLARE("vmmFamEna", vmmFamEna); DECLARE("vmmFamEnab", vmmFamEnab); DECLARE("vmm64Bit", vmm64Bit); /* values from kern/task.h */ DECLARE("TASK_SYSCALLS_MACH", offsetof(struct task *, syscalls_mach)); DECLARE("TASK_SYSCALLS_UNIX", offsetof(struct task *, syscalls_unix)); DECLARE("TASK_VTIMERS", offsetof(struct task *, vtimers)); /* values from vm/vm_map.h */ DECLARE("VMMAP_PMAP", offsetof(struct _vm_map *, pmap)); /* values from machine/pmap.h */ DECLARE("pmapSpace", offsetof(struct pmap *, space)); DECLARE("spaceNum", offsetof(struct pmap *, spaceNum)); DECLARE("pmapSXlk", offsetof(struct pmap *, pmapSXlk)); DECLARE("pmapCCtl", offsetof(struct pmap *, pmapCCtl)); DECLARE("pmapCCtlVal", pmapCCtlVal); DECLARE("pmapCCtlLck", pmapCCtlLck); DECLARE("pmapCCtlLckb", pmapCCtlLckb); DECLARE("pmapCCtlGen", pmapCCtlGen); DECLARE("pmapSegCacheCnt", pmapSegCacheCnt); DECLARE("pmapSegCacheUse", pmapSegCacheUse); DECLARE("pmapvr", offsetof(struct pmap *, pmapvr)); DECLARE("pmapFlags", offsetof(struct pmap *, pmapFlags)); DECLARE("pmapKeys", pmapKeys); DECLARE("pmapKeyDef", pmapKeyDef); DECLARE("pmapSCSubTag", offsetof(struct pmap *, pmapSCSubTag)); DECLARE("pmapVmmExt", offsetof(struct pmap *, pmapVmmExt)); DECLARE("pmapVmmExtPhys", offsetof(struct pmap *, pmapVmmExtPhys)); DECLARE("pmapVMhost", pmapVMhost); DECLARE("pmapVMgsaa", pmapVMgsaa); DECLARE("pmapSegCache", offsetof(struct pmap *, pmapSegCache)); DECLARE("pmapCurLists", offsetof(struct pmap *, pmapCurLists)); DECLARE("pmapRandNum", offsetof(struct pmap *, pmapRandNum)); DECLARE("pmapSkipLists", offsetof(struct pmap *, pmapSkipLists)); DECLARE("pmapSearchVisits", offsetof(struct pmap *, pmapSearchVisits)); DECLARE("pmapSearchCnt", offsetof(struct pmap *, pmapSearchCnt)); DECLARE("pmapSize", pmapSize); DECLARE("kSkipListFanoutShift", kSkipListFanoutShift); DECLARE("kSkipListMaxLists", kSkipListMaxLists); DECLARE("invalSpace", invalSpace); DECLARE("sgcESID", offsetof(struct sgc *, sgcESID)); DECLARE("sgcESmsk", sgcESmsk); DECLARE("sgcVSID", offsetof(struct sgc *, sgcVSID)); DECLARE("sgcVSmsk", sgcVSmsk); DECLARE("sgcVSKeys", sgcVSKeys); DECLARE("sgcVSKeyUsr", sgcVSKeyUsr); DECLARE("sgcVSNoEx", sgcVSNoEx); DECLARE("pmapPAddr", offsetof(struct pmapTransTab *, pmapPAddr)); DECLARE("pmapVAddr", offsetof(struct pmapTransTab *, pmapVAddr)); DECLARE("pmapTransSize", sizeof(pmapTransTab)); DECLARE("pmapResidentCnt", offsetof(struct pmap *, stats.resident_count)); DECLARE("pmapResidentMax", offsetof(struct pmap *, stats.resident_max)); DECLARE("maxAdrSp", maxAdrSp); DECLARE("maxAdrSpb", maxAdrSpb); DECLARE("cppvPsnkb", cppvPsnkb); DECLARE("cppvPsrcb", cppvPsrcb); DECLARE("cppvFsnkb", cppvFsnkb); DECLARE("cppvFsrcb", cppvFsrcb); DECLARE("cppvNoModSnkb", cppvNoModSnkb); DECLARE("cppvNoRefSrcb", cppvNoRefSrcb); DECLARE("cppvKmapb", cppvKmapb); DECLARE("vmxSalt", offsetof(struct pmap_vmm_ext *, vmxSalt)); DECLARE("vmxHostPmapPhys", offsetof(struct pmap_vmm_ext *, vmxHostPmapPhys)); DECLARE("vmxHostPmap", offsetof(struct pmap_vmm_ext *, vmxHostPmap)); DECLARE("vmxHashPgIdx", offsetof(struct pmap_vmm_ext *, vmxHashPgIdx)); DECLARE("vmxHashPgList", offsetof(struct pmap_vmm_ext *, vmxHashPgList)); DECLARE("vmxStats", offsetof(struct pmap_vmm_ext *, vmxStats)); DECLARE("vmxSize", sizeof(struct pmap_vmm_ext)); DECLARE("VMX_HPIDX_OFFSET", VMX_HPIDX_OFFSET); DECLARE("VMX_HPLIST_OFFSET", VMX_HPLIST_OFFSET); DECLARE("VMX_ACTMAP_OFFSET", VMX_ACTMAP_OFFSET); DECLARE("vxsGpf", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGpf)); DECLARE("vxsGpfMiss", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGpfMiss)); DECLARE("vxsGrm", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGrm)); DECLARE("vxsGrmMiss", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGrmMiss)); DECLARE("vxsGrmActive", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGrmActive)); DECLARE("vxsGra", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGra)); DECLARE("vxsGraHits", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGraHits)); DECLARE("vxsGraActive", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGraActive)); DECLARE("vxsGrl", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGrl)); DECLARE("vxsGrlActive", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGrlActive)); DECLARE("vxsGrs", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGrs)); DECLARE("vxsGrsHitAct", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGrsHitAct)); DECLARE("vxsGrsHitSusp", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGrsHitSusp)); DECLARE("vxsGrsMissGV", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGrsMissGV)); DECLARE("vxsGrsHitPE", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGrsHitPE)); DECLARE("vxsGrsMissPE", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGrsMissPE)); DECLARE("vxsGad", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGad)); DECLARE("vxsGadHit", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGadHit)); DECLARE("vxsGadFree", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGadFree)); DECLARE("vxsGadDormant", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGadDormant)); DECLARE("vxsGadSteal", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGadSteal)); DECLARE("vxsGsu", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGsu)); DECLARE("vxsGsuHit", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGsuHit)); DECLARE("vxsGsuMiss", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGsuMiss)); DECLARE("vxsGtd", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGtd)); DECLARE("vxsGtdHit", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGtdHit)); DECLARE("vxsGtdMiss", offsetof(struct pmap_vmm_ext *, vmxStats.vxsGtdMiss)); /* values from kern/timer.h */ DECLARE("TIMER_LOW", offsetof(struct timer *, low_bits)); DECLARE("TIMER_HIGH", offsetof(struct timer *, high_bits)); DECLARE("TIMER_HIGHCHK", offsetof(struct timer *, high_bits_check)); DECLARE("TIMER_TSTAMP", offsetof(struct timer *, tstamp)); DECLARE("THREAD_TIMER", offsetof(struct processor *, processor_data.thread_timer)); DECLARE("KERNEL_TIMER", offsetof(struct processor *, processor_data.kernel_timer)); DECLARE("SYSTEM_TIMER", offsetof(struct thread *, system_timer)); DECLARE("USER_TIMER", offsetof(struct thread *, user_timer)); DECLARE("SYSTEM_STATE", offsetof(struct processor *, processor_data.system_state)); DECLARE("USER_STATE", offsetof(struct processor *, processor_data.user_state)); DECLARE("CURRENT_STATE", offsetof(struct processor *, processor_data.current_state)); /* Constants from pmap.h */ DECLARE("PPC_SID_KERNEL", PPC_SID_KERNEL); /* values for accessing mach_trap table */ DECLARE("MACH_TRAP_ARG_MUNGE32", offsetof(mach_trap_t *, mach_trap_arg_munge32)); DECLARE("MACH_TRAP_ARG_MUNGE64", offsetof(mach_trap_t *, mach_trap_arg_munge64)); DECLARE("MACH_TRAP_ARGC", offsetof(mach_trap_t *, mach_trap_arg_count)); DECLARE("MACH_TRAP_FUNCTION", offsetof(mach_trap_t *, mach_trap_function)); DECLARE("MACH_TRAP_TABLE_COUNT", MACH_TRAP_TABLE_COUNT); DECLARE("PPCcallmax", sizeof(PPCcalls)); /* Misc values used by assembler */ DECLARE("AST_ALL", AST_ALL); DECLARE("AST_URGENT", AST_URGENT); DECLARE("AST_BSD", AST_BSD); /* Spin Lock structure */ DECLARE("SLOCK_ILK", offsetof(lck_spin_t *, interlock)); /* Mutex structure */ DECLARE("MUTEX_DATA", offsetof(lck_mtx_t *, lck_mtx_data)); DECLARE("MUTEX_WAITERS",offsetof(lck_mtx_t *, lck_mtx_waiters)); DECLARE("MUTEX_PROMOTED_PRI",offsetof(lck_mtx_t *, lck_mtx_pri)); DECLARE("MUTEX_TYPE", offsetof(lck_mtx_ext_t *, lck_mtx_deb.type)); DECLARE("MUTEX_STACK", offsetof(lck_mtx_ext_t *, lck_mtx_deb.stack)); DECLARE("MUTEX_FRAMES", LCK_FRAMES_MAX); DECLARE("MUTEX_THREAD", offsetof(lck_mtx_ext_t *, lck_mtx_deb.thread)); DECLARE("MUTEX_ATTR", offsetof(lck_mtx_ext_t *, lck_mtx_attr)); DECLARE("MUTEX_ATTR_DEBUG", LCK_MTX_ATTR_DEBUG); DECLARE("MUTEX_ATTR_DEBUGb", LCK_MTX_ATTR_DEBUGb); DECLARE("MUTEX_ATTR_STAT", LCK_MTX_ATTR_STAT); DECLARE("MUTEX_ATTR_STATb", LCK_MTX_ATTR_STATb); DECLARE("MUTEX_GRP", offsetof(lck_mtx_ext_t *, lck_mtx_grp)); DECLARE("MUTEX_TAG", MUTEX_TAG); DECLARE("MUTEX_IND", LCK_MTX_TAG_INDIRECT); DECLARE("MUTEX_ITAG",offsetof(lck_mtx_t *, lck_mtx_tag)); DECLARE("MUTEX_PTR",offsetof(lck_mtx_t *, lck_mtx_ptr)); DECLARE("MUTEX_ASSERT_OWNED", LCK_MTX_ASSERT_OWNED); DECLARE("MUTEX_ASSERT_NOTOWNED",LCK_MTX_ASSERT_NOTOWNED); DECLARE("GRP_MTX_STAT_UTIL", offsetof(lck_grp_t *, lck_grp_stat.lck_grp_mtx_stat.lck_grp_mtx_util_cnt)); DECLARE("GRP_MTX_STAT_MISS", offsetof(lck_grp_t *, lck_grp_stat.lck_grp_mtx_stat.lck_grp_mtx_miss_cnt)); DECLARE("GRP_MTX_STAT_WAIT", offsetof(lck_grp_t *, lck_grp_stat.lck_grp_mtx_stat.lck_grp_mtx_wait_cnt)); /* RW lock structure */ DECLARE("RW_IND", LCK_RW_TAG_INDIRECT); DECLARE("RW_PTR", offsetof(lck_rw_t *, lck_rw_ptr)); DECLARE("RW_SHARED", LCK_RW_TYPE_SHARED); DECLARE("RW_EXCL", LCK_RW_TYPE_EXCLUSIVE); DECLARE("RW_EVENT", (((sizeof(lck_rw_t)-1))/sizeof(unsigned int))*sizeof(unsigned int)); /* values from low_trace.h */ DECLARE("LTR_cpu", offsetof(struct LowTraceRecord *, LTR_cpu)); DECLARE("LTR_excpt", offsetof(struct LowTraceRecord *, LTR_excpt)); DECLARE("LTR_timeHi", offsetof(struct LowTraceRecord *, LTR_timeHi)); DECLARE("LTR_timeLo", offsetof(struct LowTraceRecord *, LTR_timeLo)); DECLARE("LTR_cr", offsetof(struct LowTraceRecord *, LTR_cr)); DECLARE("LTR_srr0", offsetof(struct LowTraceRecord *, LTR_srr0)); DECLARE("LTR_srr1", offsetof(struct LowTraceRecord *, LTR_srr1)); DECLARE("LTR_dar", offsetof(struct LowTraceRecord *, LTR_dar)); DECLARE("LTR_dsisr", offsetof(struct LowTraceRecord *, LTR_dsisr)); DECLARE("LTR_rsvd0", offsetof(struct LowTraceRecord *, LTR_rsvd0)); DECLARE("LTR_save", offsetof(struct LowTraceRecord *, LTR_save)); DECLARE("LTR_lr", offsetof(struct LowTraceRecord *, LTR_lr)); DECLARE("LTR_ctr", offsetof(struct LowTraceRecord *, LTR_ctr)); DECLARE("LTR_r0", offsetof(struct LowTraceRecord *, LTR_r0)); DECLARE("LTR_r1", offsetof(struct LowTraceRecord *, LTR_r1)); DECLARE("LTR_r2", offsetof(struct LowTraceRecord *, LTR_r2)); DECLARE("LTR_r3", offsetof(struct LowTraceRecord *, LTR_r3)); DECLARE("LTR_r4", offsetof(struct LowTraceRecord *, LTR_r4)); DECLARE("LTR_r5", offsetof(struct LowTraceRecord *, LTR_r5)); DECLARE("LTR_r6", offsetof(struct LowTraceRecord *, LTR_r6)); DECLARE("LTR_size", sizeof(struct LowTraceRecord)); /* Values from pexpert.h */ DECLARE("PECFIcpurate", offsetof(struct clock_frequency_info_t *, cpu_clock_rate_hz)); DECLARE("PECFIbusrate", offsetof(struct clock_frequency_info_t *, bus_clock_rate_hz)); /* Values from pmap_internals.h and mappings.h */ DECLARE("mpFlags", offsetof(struct mapping *, mpFlags)); DECLARE("mpBusy", mpBusy); DECLARE("mpPrevious", mpPrevious); DECLARE("mpNext", mpNext); DECLARE("mpPIndex", mpPIndex); DECLARE("mpType", mpType); DECLARE("mpNormal", mpNormal); DECLARE("mpBlock", mpBlock); DECLARE("mpMinSpecial", mpMinSpecial); DECLARE("mpNest", mpNest); DECLARE("mpLinkage", mpLinkage); DECLARE("mpACID", mpACID); DECLARE("mpGuest", mpGuest); DECLARE("mpFIP", mpFIP); DECLARE("mpFIPb", mpFIPb); DECLARE("mpPcfg", mpPcfg); DECLARE("mpPcfgb", mpPcfgb); DECLARE("mpRIP", mpRIP); DECLARE("mpRIPb", mpRIPb); DECLARE("mpPerm", mpPerm); DECLARE("mpPermb", mpPermb); DECLARE("mpBSu", mpBSu); DECLARE("mpBSub", mpBSub); DECLARE("mpLists", mpLists); DECLARE("mpListsb", mpListsb); DECLARE("mpgFlags", mpgFlags); DECLARE("mpgFree", mpgFree); DECLARE("mpgGlobal", mpgGlobal); DECLARE("mpgDormant", mpgDormant); DECLARE("mpSpace", offsetof(struct mapping *, mpSpace)); DECLARE("mpBSize", offsetof(struct mapping *, u.mpBSize)); DECLARE("mpgCursor", offsetof(struct mapping *, u.mpgCursor)); DECLARE("mpPte", offsetof(struct mapping *, mpPte)); DECLARE("mpHValid", mpHValid); DECLARE("mpHValidb", mpHValidb); DECLARE("mpPAddr", offsetof(struct mapping *, mpPAddr)); DECLARE("mpVAddr", offsetof(struct mapping *, mpVAddr)); DECLARE("mpHWFlags", mpHWFlags); DECLARE("mpHWFlagsb", mpHWFlagsb); DECLARE("mpN", mpN); DECLARE("mpNb", mpNb); DECLARE("mpPP", mpPP); DECLARE("mpPPb", mpPPb); DECLARE("mpPPe", mpPPe); DECLARE("mpKKN", mpKKN); DECLARE("mpKKNb", mpKKNb); DECLARE("mpWIMG", mpWIMG); DECLARE("mpWIMGb", mpWIMGb); DECLARE("mpW", mpW); DECLARE("mpWb", mpWb); DECLARE("mpI", mpI); DECLARE("mpIb", mpIb); DECLARE("mpM", mpM); DECLARE("mpMb", mpMb); DECLARE("mpG", mpG); DECLARE("mpGb", mpGb); DECLARE("mpWIMGe", mpWIMGe); DECLARE("mpC", mpC); DECLARE("mpCb", mpCb); DECLARE("mpR", mpR); DECLARE("mpRb", mpRb); DECLARE("mpAlias", offsetof(struct mapping *, mpAlias)); DECLARE("mpNestReloc", offsetof(struct mapping *, mpNestReloc)); DECLARE("mpBlkRemCur", offsetof(struct mapping *, mpBlkRemCur)); DECLARE("mpList0", offsetof(struct mapping *, mpList0)); DECLARE("mpList ", offsetof(struct mapping *, mpList)); DECLARE("mpBasicSize", mpBasicSize); DECLARE("mpBasicLists", mpBasicLists); DECLARE("mbvrswap", offsetof(struct mappingblok *, mapblokvrswap)); DECLARE("mbfree", offsetof(struct mappingblok *, mapblokfree)); DECLARE("mapcsize", sizeof(struct mappingctl)); DECLARE("hwpPurgePTE", hwpPurgePTE); DECLARE("hwpMergePTE", hwpMergePTE); DECLARE("hwpNoopPTE", hwpNoopPTE); // DANGER WIL ROBINSON!!! This wonderfully magical tool doesn't seem to handle 64-bit constants, // leaving us with only the cold ash of a zero. ppI, ppG, and who knows what else is affected. DECLARE("ppLink", offsetof(struct phys_entry *, ppLink)); DECLARE("ppLock", ppLock); DECLARE("ppFlags", ppFlags); // DECLARE("ppI", ppI); DECLARE("ppIb", ppIb); // DECLARE("ppG", ppG); DECLARE("ppGb", ppGb); DECLARE("ppR", ppR); DECLARE("ppRb", ppRb); DECLARE("ppC", ppC); DECLARE("ppCb", ppCb); DECLARE("physEntrySize",physEntrySize); DECLARE("ppLFAmask", ppLFAmask); DECLARE("ppLFArrot", ppLFArrot); DECLARE("pcfFlags", offsetof(struct pcfg *, pcfFlags)); DECLARE("pcfEncode", offsetof(struct pcfg *, pcfEncode)); DECLARE("pcfPSize", offsetof(struct pcfg *, pcfPSize)); DECLARE("pcfShift", offsetof(struct pcfg *, pcfShift)); DECLARE("pcfValid", pcfValid); DECLARE("pcfLarge", pcfLarge); DECLARE("pcfDedSeg", pcfDedSeg); DECLARE("pcfSize", sizeof(struct pcfg)); DECLARE("pcfDefPcfg", pcfDefPcfg); DECLARE("pcfLargePcfg", pcfLargePcfg); DECLARE("PCAallo", offsetof(struct PCA *, flgs.PCAallo)); DECLARE("PCAfree", offsetof(struct PCA *, flgs.PCAalflgs.PCAfree)); DECLARE("PCAauto", offsetof(struct PCA *, flgs.PCAalflgs.PCAauto)); DECLARE("PCAmisc", offsetof(struct PCA *, flgs.PCAalflgs.PCAmisc)); DECLARE("PCAlock", PCAlock); DECLARE("PCAlockb", PCAlockb); DECLARE("PCAsteal", offsetof(struct PCA *, flgs.PCAalflgs.PCAsteal)); DECLARE("mrPhysTab", offsetof(struct mem_region *, mrPhysTab)); DECLARE("mrStart", offsetof(struct mem_region *, mrStart)); DECLARE("mrEnd", offsetof(struct mem_region *, mrEnd)); DECLARE("mrAStart", offsetof(struct mem_region *, mrAStart)); DECLARE("mrAEnd", offsetof(struct mem_region *, mrAEnd)); DECLARE("mrSize", sizeof(struct mem_region)); DECLARE("mapRemChunk", mapRemChunk); DECLARE("mapRetCode", mapRetCode); DECLARE("mapRtOK", mapRtOK); DECLARE("mapRtBadLk", mapRtBadLk); DECLARE("mapRtPerm", mapRtPerm); DECLARE("mapRtNotFnd", mapRtNotFnd); DECLARE("mapRtBlock", mapRtBlock); DECLARE("mapRtNest", mapRtNest); DECLARE("mapRtRemove", mapRtRemove); DECLARE("mapRtMapDup", mapRtMapDup); DECLARE("mapRtGuest", mapRtGuest); DECLARE("mapRtEmpty", mapRtEmpty); DECLARE("mapRtSmash", mapRtSmash); #if 0 DECLARE("MFpcaptr", offsetof(struct mappingflush *, pcaptr)); DECLARE("MFmappingcnt", offsetof(struct mappingflush *, mappingcnt)); DECLARE("MFmapping", offsetof(struct mappingflush *, mapping)); DECLARE("MFmappingSize", sizeof(struct mfmapping)); #endif DECLARE("GV_GROUPS_LG2", GV_GROUPS_LG2); DECLARE("GV_GROUPS", GV_GROUPS); DECLARE("GV_SLOT_SZ_LG2", GV_SLOT_SZ_LG2); DECLARE("GV_SLOT_SZ", GV_SLOT_SZ); DECLARE("GV_SLOTS_LG2", GV_SLOTS_LG2); DECLARE("GV_SLOTS", GV_SLOTS); DECLARE("GV_PGIDX_SZ_LG2", GV_PGIDX_SZ_LG2); DECLARE("GV_PAGE_SZ_LG2", GV_PAGE_SZ_LG2); DECLARE("GV_PAGE_SZ", GV_PAGE_SZ); DECLARE("GV_PAGE_MASK", GV_PAGE_MASK); DECLARE("GV_HPAGES", GV_HPAGES); DECLARE("GV_GRPS_PPG_LG2", GV_GRPS_PPG_LG2); DECLARE("GV_GRPS_PPG", GV_GRPS_PPG); DECLARE("GV_GRP_MASK", GV_GRP_MASK); DECLARE("GV_SLOT_MASK", GV_SLOT_MASK); DECLARE("GV_HPAGE_SHIFT", GV_HPAGE_SHIFT); DECLARE("GV_HPAGE_MASK", GV_HPAGE_MASK); DECLARE("GV_HGRP_SHIFT", GV_HGRP_SHIFT); DECLARE("GV_HGRP_MASK", GV_HGRP_MASK); DECLARE("GV_MAPWD_BITS_LG2",GV_MAPWD_BITS_LG2); DECLARE("GV_MAPWD_SZ_LG2", GV_MAPWD_SZ_LG2); DECLARE("GV_MAP_WORDS", GV_MAP_WORDS); DECLARE("GV_MAP_MASK", GV_MAP_MASK); DECLARE("GV_MAP_SHIFT", GV_MAP_SHIFT); DECLARE("GV_BAND_SHIFT", GV_BAND_SHIFT); DECLARE("GV_BAND_SZ_LG2", GV_BAND_SZ_LG2); DECLARE("GV_BAND_MASK", GV_BAND_MASK); #if 1 DECLARE("GDsave", offsetof(struct GDWorkArea *, GDsave)); DECLARE("GDfp0", offsetof(struct GDWorkArea *, GDfp0)); DECLARE("GDfp1", offsetof(struct GDWorkArea *, GDfp1)); DECLARE("GDfp2", offsetof(struct GDWorkArea *, GDfp2)); DECLARE("GDfp3", offsetof(struct GDWorkArea *, GDfp3)); DECLARE("GDtop", offsetof(struct GDWorkArea *, GDtop)); DECLARE("GDleft", offsetof(struct GDWorkArea *, GDleft)); DECLARE("GDtopleft", offsetof(struct GDWorkArea *, GDtopleft)); DECLARE("GDrowbytes", offsetof(struct GDWorkArea *, GDrowbytes)); DECLARE("GDrowchar", offsetof(struct GDWorkArea *, GDrowchar)); DECLARE("GDdepth", offsetof(struct GDWorkArea *, GDdepth)); DECLARE("GDcollgn", offsetof(struct GDWorkArea *, GDcollgn)); DECLARE("GDready", offsetof(struct GDWorkArea *, GDready)); DECLARE("GDrowbuf1", offsetof(struct GDWorkArea *, GDrowbuf1)); DECLARE("GDrowbuf2", offsetof(struct GDWorkArea *, GDrowbuf2)); #endif DECLARE("enaExpTrace", enaExpTrace); DECLARE("enaExpTraceb", enaExpTraceb); DECLARE("enaUsrFCall", enaUsrFCall); DECLARE("enaUsrFCallb", enaUsrFCallb); DECLARE("enaUsrPhyMp", enaUsrPhyMp); DECLARE("enaUsrPhyMpb", enaUsrPhyMpb); DECLARE("enaDiagSCs", enaDiagSCs); DECLARE("enaDiagSCsb", enaDiagSCsb); DECLARE("enaDiagEM", enaDiagEM); DECLARE("enaDiagEMb", enaDiagEMb); DECLARE("enaNotifyEM", enaNotifyEM); DECLARE("enaNotifyEMb", enaNotifyEMb); DECLARE("disLkType", disLkType); DECLARE("disLktypeb", disLktypeb); DECLARE("disLkThread", disLkThread); DECLARE("disLkThreadb", disLkThreadb); DECLARE("enaLkExtStck", enaLkExtStck); DECLARE("enaLkExtStckb",enaLkExtStckb); DECLARE("disLkMyLck", disLkMyLck); DECLARE("disLkMyLckb", disLkMyLckb); DECLARE("dgMisc1", offsetof(struct diagWork *, dgMisc1)); DECLARE("dgMisc2", offsetof(struct diagWork *, dgMisc2)); DECLARE("dgMisc3", offsetof(struct diagWork *, dgMisc3)); DECLARE("dgMisc4", offsetof(struct diagWork *, dgMisc4)); DECLARE("dgMisc5", offsetof(struct diagWork *, dgMisc5)); DECLARE("SACnext", offsetof(struct savearea_comm *, sac_next)); DECLARE("SACprev", offsetof(struct savearea_comm *, sac_prev)); DECLARE("SACvrswap", offsetof(struct savearea_comm *, sac_vrswap)); DECLARE("SACalloc", offsetof(struct savearea_comm *, sac_alloc)); DECLARE("SACflags", offsetof(struct savearea_comm *, sac_flags)); DECLARE("sac_cnt", sac_cnt); DECLARE("sac_empty", sac_empty); DECLARE("sac_perm", sac_perm); DECLARE("sac_permb", sac_permb); DECLARE("LocalSaveTarget", LocalSaveTarget); DECLARE("LocalSaveMin", LocalSaveMin); DECLARE("LocalSaveMax", LocalSaveMax); DECLARE("FreeListMin", FreeListMin); DECLARE("SaveLowHysteresis", SaveLowHysteresis); DECLARE("SaveHighHysteresis", SaveHighHysteresis); DECLARE("InitialSaveAreas", InitialSaveAreas); DECLARE("InitialSaveTarget", InitialSaveTarget); DECLARE("InitialSaveBloks", InitialSaveBloks); DECLARE("SAVprev", offsetof(struct savearea_comm *, save_prev)); DECLARE("SAVact", offsetof(struct savearea_comm *, save_act)); DECLARE("SAVflags", offsetof(struct savearea_comm *, save_flags)); DECLARE("SAVlevel", offsetof(struct savearea_comm *, save_level)); DECLARE("SAVtime", offsetof(struct savearea_comm *, save_time)); DECLARE("savemisc0", offsetof(struct savearea_comm *, save_misc0)); DECLARE("savemisc1", offsetof(struct savearea_comm *, save_misc1)); DECLARE("savemisc2", offsetof(struct savearea_comm *, save_misc2)); DECLARE("savemisc3", offsetof(struct savearea_comm *, save_misc3)); DECLARE("SAVsize", sizeof(struct savearea)); DECLARE("SAVsizefpu", sizeof(struct savearea_vec)); DECLARE("SAVsizevec", sizeof(struct savearea_fpu)); DECLARE("SAVcommsize", sizeof(struct savearea_comm)); DECLARE("savesrr0", offsetof(struct savearea *, save_srr0)); DECLARE("savesrr1", offsetof(struct savearea *, save_srr1)); DECLARE("savecr", offsetof(struct savearea *, save_cr)); DECLARE("savexer", offsetof(struct savearea *, save_xer)); DECLARE("savelr", offsetof(struct savearea *, save_lr)); DECLARE("savectr", offsetof(struct savearea *, save_ctr)); DECLARE("savedar", offsetof(struct savearea *, save_dar)); DECLARE("savedsisr", offsetof(struct savearea *, save_dsisr)); DECLARE("saveexception", offsetof(struct savearea *, save_exception)); DECLARE("savefpscrpad", offsetof(struct savearea *, save_fpscrpad)); DECLARE("savefpscr", offsetof(struct savearea *, save_fpscr)); DECLARE("savevrsave", offsetof(struct savearea *, save_vrsave)); DECLARE("savevscr", offsetof(struct savearea *, save_vscr)); DECLARE("savemmcr0", offsetof(struct savearea *, save_mmcr0)); DECLARE("savemmcr1", offsetof(struct savearea *, save_mmcr1)); DECLARE("savemmcr2", offsetof(struct savearea *, save_mmcr2)); DECLARE("savepmc", offsetof(struct savearea *, save_pmc)); DECLARE("saveinstr", offsetof(struct savearea *, save_instr)); DECLARE("savexdat0", offsetof(struct savearea *, save_xdat0)); DECLARE("savexdat1", offsetof(struct savearea *, save_xdat1)); DECLARE("savexdat2", offsetof(struct savearea *, save_xdat2)); DECLARE("savexdat3", offsetof(struct savearea *, save_xdat3)); DECLARE("saver0", offsetof(struct savearea *, save_r0)); DECLARE("saver1", offsetof(struct savearea *, save_r1)); DECLARE("saver2", offsetof(struct savearea *, save_r2)); DECLARE("saver3", offsetof(struct savearea *, save_r3)); DECLARE("saver4", offsetof(struct savearea *, save_r4)); DECLARE("saver5", offsetof(struct savearea *, save_r5)); DECLARE("saver6", offsetof(struct savearea *, save_r6)); DECLARE("saver7", offsetof(struct savearea *, save_r7)); DECLARE("saver8", offsetof(struct savearea *, save_r8)); DECLARE("saver9", offsetof(struct savearea *, save_r9)); DECLARE("saver10", offsetof(struct savearea *, save_r10)); DECLARE("saver11", offsetof(struct savearea *, save_r11)); DECLARE("saver12", offsetof(struct savearea *, save_r12)); DECLARE("saver13", offsetof(struct savearea *, save_r13)); DECLARE("saver14", offsetof(struct savearea *, save_r14)); DECLARE("saver15", offsetof(struct savearea *, save_r15)); DECLARE("saver16", offsetof(struct savearea *, save_r16)); DECLARE("saver17", offsetof(struct savearea *, save_r17)); DECLARE("saver18", offsetof(struct savearea *, save_r18)); DECLARE("saver19", offsetof(struct savearea *, save_r19)); DECLARE("saver20", offsetof(struct savearea *, save_r20)); DECLARE("saver21", offsetof(struct savearea *, save_r21)); DECLARE("saver22", offsetof(struct savearea *, save_r22)); DECLARE("saver23", offsetof(struct savearea *, save_r23)); DECLARE("saver24", offsetof(struct savearea *, save_r24)); DECLARE("saver25", offsetof(struct savearea *, save_r25)); DECLARE("saver26", offsetof(struct savearea *, save_r26)); DECLARE("saver27", offsetof(struct savearea *, save_r27)); DECLARE("saver28", offsetof(struct savearea *, save_r28)); DECLARE("saver29", offsetof(struct savearea *, save_r29)); DECLARE("saver30", offsetof(struct savearea *, save_r30)); DECLARE("saver31", offsetof(struct savearea *, save_r31)); DECLARE("savefp0", offsetof(struct savearea_fpu *, save_fp0)); DECLARE("savefp1", offsetof(struct savearea_fpu *, save_fp1)); DECLARE("savefp2", offsetof(struct savearea_fpu *, save_fp2)); DECLARE("savefp3", offsetof(struct savearea_fpu *, save_fp3)); DECLARE("savefp4", offsetof(struct savearea_fpu *, save_fp4)); DECLARE("savefp5", offsetof(struct savearea_fpu *, save_fp5)); DECLARE("savefp6", offsetof(struct savearea_fpu *, save_fp6)); DECLARE("savefp7", offsetof(struct savearea_fpu *, save_fp7)); DECLARE("savefp8", offsetof(struct savearea_fpu *, save_fp8)); DECLARE("savefp9", offsetof(struct savearea_fpu *, save_fp9)); DECLARE("savefp10", offsetof(struct savearea_fpu *, save_fp10)); DECLARE("savefp11", offsetof(struct savearea_fpu *, save_fp11)); DECLARE("savefp12", offsetof(struct savearea_fpu *, save_fp12)); DECLARE("savefp13", offsetof(struct savearea_fpu *, save_fp13)); DECLARE("savefp14", offsetof(struct savearea_fpu *, save_fp14)); DECLARE("savefp15", offsetof(struct savearea_fpu *, save_fp15)); DECLARE("savefp16", offsetof(struct savearea_fpu *, save_fp16)); DECLARE("savefp17", offsetof(struct savearea_fpu *, save_fp17)); DECLARE("savefp18", offsetof(struct savearea_fpu *, save_fp18)); DECLARE("savefp19", offsetof(struct savearea_fpu *, save_fp19)); DECLARE("savefp20", offsetof(struct savearea_fpu *, save_fp20)); DECLARE("savefp21", offsetof(struct savearea_fpu *, save_fp21)); DECLARE("savefp22", offsetof(struct savearea_fpu *, save_fp22)); DECLARE("savefp23", offsetof(struct savearea_fpu *, save_fp23)); DECLARE("savefp24", offsetof(struct savearea_fpu *, save_fp24)); DECLARE("savefp25", offsetof(struct savearea_fpu *, save_fp25)); DECLARE("savefp26", offsetof(struct savearea_fpu *, save_fp26)); DECLARE("savefp27", offsetof(struct savearea_fpu *, save_fp27)); DECLARE("savefp28", offsetof(struct savearea_fpu *, save_fp28)); DECLARE("savefp29", offsetof(struct savearea_fpu *, save_fp29)); DECLARE("savefp30", offsetof(struct savearea_fpu *, save_fp30)); DECLARE("savefp31", offsetof(struct savearea_fpu *, save_fp31)); DECLARE("savevr0", offsetof(struct savearea_vec *, save_vr0)); DECLARE("savevr1", offsetof(struct savearea_vec *, save_vr1)); DECLARE("savevr2", offsetof(struct savearea_vec *, save_vr2)); DECLARE("savevr3", offsetof(struct savearea_vec *, save_vr3)); DECLARE("savevr4", offsetof(struct savearea_vec *, save_vr4)); DECLARE("savevr5", offsetof(struct savearea_vec *, save_vr5)); DECLARE("savevr6", offsetof(struct savearea_vec *, save_vr6)); DECLARE("savevr7", offsetof(struct savearea_vec *, save_vr7)); DECLARE("savevr8", offsetof(struct savearea_vec *, save_vr8)); DECLARE("savevr9", offsetof(struct savearea_vec *, save_vr9)); DECLARE("savevr10", offsetof(struct savearea_vec *, save_vr10)); DECLARE("savevr11", offsetof(struct savearea_vec *, save_vr11)); DECLARE("savevr12", offsetof(struct savearea_vec *, save_vr12)); DECLARE("savevr13", offsetof(struct savearea_vec *, save_vr13)); DECLARE("savevr14", offsetof(struct savearea_vec *, save_vr14)); DECLARE("savevr15", offsetof(struct savearea_vec *, save_vr15)); DECLARE("savevr16", offsetof(struct savearea_vec *, save_vr16)); DECLARE("savevr17", offsetof(struct savearea_vec *, save_vr17)); DECLARE("savevr18", offsetof(struct savearea_vec *, save_vr18)); DECLARE("savevr19", offsetof(struct savearea_vec *, save_vr19)); DECLARE("savevr20", offsetof(struct savearea_vec *, save_vr20)); DECLARE("savevr21", offsetof(struct savearea_vec *, save_vr21)); DECLARE("savevr22", offsetof(struct savearea_vec *, save_vr22)); DECLARE("savevr23", offsetof(struct savearea_vec *, save_vr23)); DECLARE("savevr24", offsetof(struct savearea_vec *, save_vr24)); DECLARE("savevr25", offsetof(struct savearea_vec *, save_vr25)); DECLARE("savevr26", offsetof(struct savearea_vec *, save_vr26)); DECLARE("savevr27", offsetof(struct savearea_vec *, save_vr27)); DECLARE("savevr28", offsetof(struct savearea_vec *, save_vr28)); DECLARE("savevr29", offsetof(struct savearea_vec *, save_vr29)); DECLARE("savevr30", offsetof(struct savearea_vec *, save_vr30)); DECLARE("savevr31", offsetof(struct savearea_vec *, save_vr31)); DECLARE("savevrvalid", offsetof(struct savearea_vec *, save_vrvalid)); /* PseudoKernel Exception Descriptor info */ DECLARE("BEDA_SRR0", offsetof(BEDA_t *, srr0)); DECLARE("BEDA_SRR1", offsetof(BEDA_t *, srr1)); DECLARE("BEDA_SPRG0", offsetof(BEDA_t *, sprg0)); DECLARE("BEDA_SPRG1", offsetof(BEDA_t *, sprg1)); /* PseudoKernel Interrupt Control Word */ DECLARE("BTTD_INTCONTROLWORD", offsetof(BTTD_t *, InterruptControlWord)); /* New state when exiting the pseudokernel */ DECLARE("BTTD_NEWEXITSTATE", offsetof(BTTD_t *, NewExitState)); /* PseudoKernel Test/Post Interrupt */ DECLARE("BTTD_TESTINTMASK", offsetof(BTTD_t *, testIntMask)); DECLARE("BTTD_POSTINTMASK", offsetof(BTTD_t *, postIntMask)); /* PseudoKernel Vectors */ DECLARE("BTTD_TRAP_VECTOR", offsetof(BTTD_t *, TrapVector)); DECLARE("BTTD_SYSCALL_VECTOR", offsetof(BTTD_t *, SysCallVector)); DECLARE("BTTD_INTERRUPT_VECTOR", offsetof(BTTD_t *, InterruptVector)); DECLARE("BTTD_PENDINGINT_VECTOR", offsetof(BTTD_t *, PendingIntVector)); /* PseudoKernel Bits, Masks and misc */ DECLARE("SYSCONTEXTSTATE", kInSystemContext); DECLARE("PSEUDOKERNELSTATE", kInPseudoKernel); DECLARE("INTSTATEMASK_B", 12); DECLARE("INTSTATEMASK_E", 15); DECLARE("INTCR2MASK_B", 8); DECLARE("INTCR2MASK_E", 11); DECLARE("INTBACKUPCR2MASK_B", 28); DECLARE("INTBACKUPCR2MASK_E", 31); DECLARE("INTCR2TOBACKUPSHIFT", kCR2ToBackupShift); DECLARE("BB_MAX_TRAP", bbMaxTrap); DECLARE("BB_RFI_TRAP", bbRFITrap); /* Various hackery */ DECLARE("procState", offsetof(struct processor *, state)); DECLARE("CPU_SUBTYPE_POWERPC_ALL", CPU_SUBTYPE_POWERPC_ALL); DECLARE("CPU_SUBTYPE_POWERPC_750", CPU_SUBTYPE_POWERPC_750); DECLARE("CPU_SUBTYPE_POWERPC_7400", CPU_SUBTYPE_POWERPC_7400); DECLARE("CPU_SUBTYPE_POWERPC_7450", CPU_SUBTYPE_POWERPC_7450); DECLARE("CPU_SUBTYPE_POWERPC_970", CPU_SUBTYPE_POWERPC_970); DECLARE("shdIBAT", offsetof(struct shadowBAT *, IBATs)); DECLARE("shdDBAT", offsetof(struct shadowBAT *, DBATs)); /* Low Memory Globals */ DECLARE("lgVerCode", offsetof(struct lowglo *, lgVerCode)); DECLARE("lgPPStart", offsetof(struct lowglo *, lgPPStart)); DECLARE("maxDec", offsetof(struct lowglo *, lgMaxDec)); DECLARE("mckFlags", offsetof(struct lowglo *, lgMckFlags)); DECLARE("lgPMWvaddr", offsetof(struct lowglo *, lgPMWvaddr)); DECLARE("lgUMWvaddr", offsetof(struct lowglo *, lgUMWvaddr)); DECLARE("trcWork", offsetof(struct lowglo *, lgTrcWork)); DECLARE("traceMask", offsetof(struct lowglo *, lgTrcWork.traceMask)); DECLARE("traceCurr", offsetof(struct lowglo *, lgTrcWork.traceCurr)); DECLARE("traceStart", offsetof(struct lowglo *, lgTrcWork.traceStart)); DECLARE("traceEnd", offsetof(struct lowglo *, lgTrcWork.traceEnd)); DECLARE("traceMsnd", offsetof(struct lowglo *, lgTrcWork.traceMsnd)); DECLARE("Zero", offsetof(struct lowglo *, lgZero)); DECLARE("saveanchor", offsetof(struct lowglo *, lgSaveanchor)); DECLARE("SVlock", offsetof(struct lowglo *, lgSaveanchor.savelock)); DECLARE("SVpoolfwd", offsetof(struct lowglo *, lgSaveanchor.savepoolfwd)); DECLARE("SVpoolbwd", offsetof(struct lowglo *, lgSaveanchor.savepoolbwd)); DECLARE("SVfree", offsetof(struct lowglo *, lgSaveanchor.savefree)); DECLARE("SVfreecnt", offsetof(struct lowglo *, lgSaveanchor.savefreecnt)); DECLARE("SVadjust", offsetof(struct lowglo *, lgSaveanchor.saveadjust)); DECLARE("SVinuse", offsetof(struct lowglo *, lgSaveanchor.saveinuse)); DECLARE("SVtarget", offsetof(struct lowglo *, lgSaveanchor.savetarget)); DECLARE("SVsaveinusesnapshot", offsetof(struct lowglo *, lgSaveanchor.saveinusesnapshot)); DECLARE("SVsavefreesnapshot", offsetof(struct lowglo *, lgSaveanchor.savefreesnapshot)); DECLARE("SVsize", sizeof(struct Saveanchor)); DECLARE("tlbieLock", offsetof(struct lowglo *, lgTlbieLck)); DECLARE("dgFlags", offsetof(struct lowglo *, lgdgWork.dgFlags)); DECLARE("dgLock", offsetof(struct lowglo *, lgdgWork.dgLock)); DECLARE("dgMisc0", offsetof(struct lowglo *, lgdgWork.dgMisc0)); DECLARE("lglcksWork", offsetof(struct lowglo *, lglcksWork)); DECLARE("lgKillResv", offsetof(struct lowglo *, lgKillResv)); DECLARE("lgpPcfg", offsetof(struct lowglo *, lgpPcfg)); DECLARE("scomcpu", offsetof(struct scomcomm *, scomcpu)); DECLARE("scomfunc", offsetof(struct scomcomm *, scomfunc)); DECLARE("scomreg", offsetof(struct scomcomm *, scomreg)); DECLARE("scomstat", offsetof(struct scomcomm *, scomstat)); DECLARE("scomdata", offsetof(struct scomcomm *, scomdata)); #if CONFIG_DTRACE DECLARE("LS_LCK_MTX_UNLOCK_RELEASE", LS_LCK_MTX_UNLOCK_RELEASE); DECLARE("LS_LCK_MTX_LOCK_ACQUIRE", LS_LCK_MTX_LOCK_ACQUIRE); #endif return(0); /* For ANSI C :-) */ }