/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
*
- * @APPLE_LICENSE_HEADER_START@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
*
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License"). You may not use this file except in compliance with the
- * License. Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
+ * 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.
*
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * 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 OR NON-INFRINGEMENT. Please see the
- * License for the specific language governing rights and limitations
- * under the License.
+ * 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_LICENSE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
*/
/*
* @OSF_COPYRIGHT@
* the values, but we cannot run anything on the target machine.
*/
-#include <cpus.h>
#include <va_list.h>
#include <types.h>
#include <kern/task.h>
#include <kern/thread.h>
-#include <kern/thread_act.h>
#include <kern/host.h>
#include <kern/lock.h>
+#include <kern/locks.h>
#include <kern/processor.h>
#include <ppc/exception.h>
-#include <ppc/thread_act.h>
+#include <ppc/thread.h>
#include <ppc/misc_protos.h>
#include <kern/syscall_sw.h>
-#include <kern/ast.h>
#include <ppc/low_trace.h>
#include <ppc/PseudoKernel.h>
#include <ppc/mappings.h>
#include <vm/vm_map.h>
#include <vm/pmap.h>
#include <ppc/pmap.h>
-#include <ppc/pmap_internals.h>
#include <ppc/Diagnostics.h>
-#include <ppc/POWERMAC/mp/MPPlugIn.h>
#include <pexpert/pexpert.h>
#include <mach/machine.h>
#include <ppc/vmachmon.h>
+#include <ppc/hw_perfmon.h>
#include <ppc/PPCcalls.h>
#include <ppc/mem.h>
+#include <ppc/boot.h>
+#include <ppc/lowglobals.h>
+/* 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) \
int main(int argc, char *argv[])
{
/* Process Control Block */
-
- DECLARE("ACT_MACT_KSP", offsetof(struct thread_activation *, mact.ksp));
- DECLARE("ACT_MACT_BEDA", offsetof(struct thread_activation *, mact.bbDescAddr));
- DECLARE("ACT_MACT_BTS", offsetof(struct thread_activation *, mact.bbTableStart));
- DECLARE("ACT_MACT_BTE", offsetof(struct thread_activation *, mact.bbTaskEnv));
- DECLARE("ACT_MACT_SPF", offsetof(struct thread_activation *, mact.specFlags));
- DECLARE("qactTimer", offsetof(struct thread_activation *, mact.qactTimer));
+ 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("vectorCngbit", vectorCngbit);
DECLARE("userProtKey", userProtKey);
DECLARE("userProtKeybit", userProtKeybit);
- DECLARE("trapUnalign", trapUnalign);
- DECLARE("trapUnalignbit", trapUnalignbit);
- DECLARE("notifyUnalign", notifyUnalign);
- DECLARE("notifyUnalignbit", notifyUnalignbit);
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_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_TEMPWORK1", offsetof(struct per_proc_info *, tempwork1));
- DECLARE("PP_USERSPACE", offsetof(struct per_proc_info *, userspace));
- DECLARE("PP_USERPMAP", offsetof(struct per_proc_info *, userpmap));
- DECLARE("PP_LASTPMAP", offsetof(struct per_proc_info *, Lastpmap));
+ 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_SAVE_EXCEPTION_TYPE", offsetof(struct per_proc_info *, save_exception_type));
- DECLARE("PP_ACTIVE_KLOADED", offsetof(struct per_proc_info *, active_kloaded));
- DECLARE("PP_ACTIVE_STACKS", offsetof(struct per_proc_info *, active_stacks));
- DECLARE("PP_NEED_AST", offsetof(struct per_proc_info *, need_ast));
+ 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("PP_ACTIVE_THREAD", offsetof(struct per_proc_info *, pp_active_thread));
- DECLARE("PP_PREEMPT_CNT", offsetof(struct per_proc_info *, pp_preemption_count));
- DECLARE("PP_SIMPLE_LOCK_CNT", offsetof(struct per_proc_info *, pp_simple_lock_count));
- DECLARE("PP_INTERRUPT_LVL", offsetof(struct per_proc_info *, pp_interrupt_level));
+ 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("pfCanNapb", pfCanNapb);
DECLARE("pfCanDoze", pfCanDoze);
DECLARE("pfCanDozeb", pfCanDozeb);
- DECLARE("pfCanDoze", pfCanDoze);
- DECLARE("pfCanDozeb", pfCanDozeb);
- DECLARE("pfThermal", pfThermal);
- DECLARE("pfThermalb", pfThermalb);
- DECLARE("pfThermInt", pfThermInt);
- DECLARE("pfThermIntb", pfThermIntb);
- DECLARE("pfWillNap", pfWillNap);
- DECLARE("pfWillNapb", pfWillNapb);
- DECLARE("pfNoMSRir", pfNoMSRir);
- DECLARE("pfNoMSRirb", pfNoMSRirb);
- DECLARE("pfNoL2PFNap", pfNoL2PFNap);
- DECLARE("pfNoL2PFNapb", pfNoL2PFNapb);
DECLARE("pfSlowNap", pfSlowNap);
DECLARE("pfSlowNapb", pfSlowNapb);
DECLARE("pfNoMuMMCK", pfNoMuMMCK);
DECLARE("pfNoMuMMCKb", pfNoMuMMCKb);
- DECLARE("pfLClck", pfLClck);
- DECLARE("pfLClckb", pfLClckb);
- DECLARE("pfL3pdet", pfL3pdet);
- DECLARE("pfL3pdetb", pfL3pdetb);
- DECLARE("pfL1i", pfL1i);
- DECLARE("pfL1ib", pfL1ib);
- DECLARE("pfL1d", pfL1d);
- DECLARE("pfL1db", pfL1db);
+ 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("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("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("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("thrmmaxTemp", offsetof(struct per_proc_info *, thrm.maxTemp));
- DECLARE("thrmthrottleTemp", offsetof(struct per_proc_info *, thrm.throttleTemp));
- DECLARE("thrmlowTemp", offsetof(struct per_proc_info *, thrm.lowTemp));
- DECLARE("thrmhighTemp", offsetof(struct per_proc_info *, thrm.highTemp));
- DECLARE("thrm3val", offsetof(struct per_proc_info *, thrm.thrm3val));
- DECLARE("thrmSize", sizeof(thrmControl));
-
- DECLARE("napStamp", offsetof(struct per_proc_info *, napStamp));
- DECLARE("napTotal", offsetof(struct per_proc_info *, napTotal));
+ 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("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("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));
#define IKSBASE (u_int)STACK_IKS(0)
/* values from kern/thread.h */
- DECLARE("THREAD_TOP_ACT", offsetof(struct thread_shuttle *, top_act));
- DECLARE("THREAD_KERNEL_STACK", offsetof(struct thread_shuttle *, kernel_stack));
- DECLARE("THREAD_CONTINUATION", offsetof(struct thread_shuttle *, continuation));
- DECLARE("THREAD_RECOVER", offsetof(struct thread_shuttle *, recover));
+ DECLARE("THREAD_OPTIONS", offsetof(thread_t, options));
+ DECLARE("TH_OPT_DELAYIDLE", TH_OPT_DELAYIDLE);
+ DECLARE("THREAD_KERNEL_STACK", offsetof(thread_t, kernel_stack));
+ DECLARE("THREAD_RECOVER", offsetof(thread_t, recover));
DECLARE("THREAD_FUNNEL_LOCK",
- offsetof(struct thread_shuttle *, funnel_lock));
+ offsetof(thread_t, funnel_lock));
DECLARE("THREAD_FUNNEL_STATE",
- offsetof(struct thread_shuttle *, funnel_state));
+ offsetof(thread_t, funnel_state));
DECLARE("LOCK_FNL_MUTEX",
offsetof(struct funnel_lock *, fnl_mutex));
-#if MACH_LDEBUG
- DECLARE("THREAD_MUTEX_COUNT", offsetof(struct thread_shuttle *, mutex_count));
-#endif /* MACH_LDEBUG */
- DECLARE("THREAD_PSET", offsetof(struct thread_shuttle *, processor_set));
- DECLARE("THREAD_LINKS", offsetof(struct thread_shuttle *, links));
- DECLARE("THREAD_PSTHRN", offsetof(struct thread_shuttle *, pset_threads.next));
-
- /* values from kern/thread_act.h */
- DECLARE("ACT_TASK", offsetof(struct thread_activation *, task));
- DECLARE("ACT_THREAD", offsetof(struct thread_activation *, thread));
- DECLARE("ACT_LOWER", offsetof(struct thread_activation *, lower));
- DECLARE("ACT_MACT_PCB", offsetof(struct thread_activation *, mact.pcb));
- DECLARE("ACT_AST", offsetof(struct thread_activation *, ast));
- DECLARE("ACT_VMMAP", offsetof(struct thread_activation *, map));
- DECLARE("ACT_KLOADED", offsetof(struct thread_activation *, kernel_loaded));
- DECLARE("ACT_KLOADING", offsetof(struct thread_activation *, kernel_loading));
- DECLARE("vmmCEntry", offsetof(struct thread_activation *, mact.vmmCEntry));
- DECLARE("vmmControl", offsetof(struct thread_activation *, mact.vmmControl));
- DECLARE("curctx", offsetof(struct thread_activation *, mact.curctx));
- DECLARE("deferctx", offsetof(struct thread_activation *, mact.deferctx));
- DECLARE("facctx", offsetof(struct thread_activation *, mact.facctx));
+
+ 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(struct thread_activation *, mact.cthread_self));
+ 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("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("kVmmReturnProgramException", kVmmReturnProgramException);
DECLARE("kVmmReturnSystemCall", kVmmReturnSystemCall);
DECLARE("kVmmReturnTraceException", kVmmReturnTraceException);
+ DECLARE("kVmmInvalidAdSpace", kVmmInvalidAdSpace);
DECLARE("kVmmProtXtnd", kVmmProtXtnd);
DECLARE("kVmmProtNARW", kVmmProtNARW);
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("vmmPmap", offsetof(struct vmmCntrlEntry *, vmmPmap));
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 vmmCntrlEntry *, vmmLastMap));
+ 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("kVmmMaxContextsPerThread", kVmmMaxContextsPerThread);
+ 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));
- DECLARE("return_params", offsetof(struct vmm_state_page_t *, return_params));
+#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("vmmppcVSCRshadow", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcVSCRshadow));
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("vmmppcFPSCRshadow", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcFPSCRshadow));
-
- DECLARE("vmmppcpc", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcPC));
- DECLARE("vmmppcmsr", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcMSR));
- DECLARE("vmmppcr0", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x00));
- DECLARE("vmmppcr1", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x04));
- DECLARE("vmmppcr2", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x08));
- DECLARE("vmmppcr3", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x0C));
- DECLARE("vmmppcr4", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x10));
- DECLARE("vmmppcr5", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x14));
-
- DECLARE("vmmppcr6", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x18));
- DECLARE("vmmppcr7", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x1C));
- DECLARE("vmmppcr8", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x20));
- DECLARE("vmmppcr9", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x24));
- DECLARE("vmmppcr10", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x28));
- DECLARE("vmmppcr11", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x2C));
- DECLARE("vmmppcr12", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x30));
- DECLARE("vmmppcr13", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x34));
-
- DECLARE("vmmppcr14", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x38));
- DECLARE("vmmppcr15", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x3C));
- DECLARE("vmmppcr16", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x40));
- DECLARE("vmmppcr17", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x44));
- DECLARE("vmmppcr18", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x48));
- DECLARE("vmmppcr19", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x4C));
- DECLARE("vmmppcr20", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x50));
- DECLARE("vmmppcr21", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x54));
-
- DECLARE("vmmppcr22", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x58));
- DECLARE("vmmppcr23", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x5C));
- DECLARE("vmmppcr24", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x60));
- DECLARE("vmmppcr25", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x64));
- DECLARE("vmmppcr26", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x68));
- DECLARE("vmmppcr27", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x6C));
- DECLARE("vmmppcr28", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x70));
- DECLARE("vmmppcr29", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x74));
-
- DECLARE("vmmppcr30", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x78));
- DECLARE("vmmppcr31", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcGPRs+0x7C));
- DECLARE("vmmppccr", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcCR));
- DECLARE("vmmppcxer", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcXER));
- DECLARE("vmmppclr", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcLR));
- DECLARE("vmmppcctr", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcCTR));
- DECLARE("vmmppcmq", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcMQ));
- DECLARE("vmmppcvrsave", offsetof(struct vmm_state_page_t *, vmm_proc_state.ppcVRSave));
+
+ 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("vmmMapDone", vmmMapDone);
- DECLARE("vmmMapDoneb", vmmMapDoneb);
+ DECLARE("vmmFAMmode", vmmFAMmode);
+ DECLARE("vmmFAMmodeb", vmmFAMmodeb);
DECLARE("vmmSpfSave", vmmSpfSave);
DECLARE("vmmSpfSaveb", vmmSpfSaveb);
DECLARE("vmmFloatLoad", vmmFloatLoad);
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",
DECLARE("VMMAP_PMAP", offsetof(struct vm_map *, pmap));
/* values from machine/pmap.h */
- DECLARE("PMAP_SPACE", offsetof(struct pmap *, space));
- DECLARE("PMAP_BMAPS", offsetof(struct pmap *, bmaps));
- DECLARE("PMAP_PMAPVR", offsetof(struct pmap *, pmapvr));
- DECLARE("PMAP_VFLAGS", offsetof(struct pmap *, vflags));
- DECLARE("PMAP_USAGE", offsetof(struct pmap *, pmapUsage));
- DECLARE("PMAP_SEGS", offsetof(struct pmap *, pmapSegs));
- DECLARE("PMAP_SIZE", pmapSize);
-
- /* values from kern/processor.h */
- DECLARE("psthreads", offsetof(struct processor_set *, threads));
- DECLARE("psthreadcnt", offsetof(struct processor_set *, thread_count));
+ 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("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("CURRENT_TIMER", offsetof(struct processor *, processor_data.current_timer));
+ DECLARE("SYSTEM_TIMER", offsetof(struct thread *, system_timer));
+ DECLARE("USER_TIMER", offsetof(struct thread *, user_timer));
/* Constants from pmap.h */
DECLARE("PPC_SID_KERNEL", PPC_SID_KERNEL);
/* values for accessing mach_trap table */
- DECLARE("MACH_TRAP_OFFSET_POW2", 4);
-
+ 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("HOST_SELF", offsetof(host_t, host_self));
-
- DECLARE("PPCcallmax", sizeof(PPCcalls));
+ DECLARE("MACH_TRAP_TABLE_COUNT", MACH_TRAP_TABLE_COUNT);
- /* values from cpu_data.h */
- DECLARE("CPU_ACTIVE_THREAD", offsetof(cpu_data_t *, active_thread));
- DECLARE("CPU_PREEMPTION_LEVEL", offsetof(cpu_data_t *, preemption_level));
- DECLARE("CPU_SIMPLE_LOCK_COUNT",
- offsetof(cpu_data_t *, simple_lock_count));
- DECLARE("CPU_INTERRUPT_LEVEL",offsetof(cpu_data_t *, interrupt_level));
+ DECLARE("PPCcallmax", sizeof(PPCcalls));
/* Misc values used by assembler */
DECLARE("AST_ALL", AST_ALL);
DECLARE("AST_URGENT", AST_URGENT);
- /* Simple Lock structure */
- DECLARE("SLOCK_ILK", offsetof(usimple_lock_t, interlock));
-#if MACH_LDEBUG
- DECLARE("SLOCK_TYPE", offsetof(usimple_lock_t, lock_type));
- DECLARE("SLOCK_PC", offsetof(usimple_lock_t, debug.lock_pc));
- DECLARE("SLOCK_THREAD", offsetof(usimple_lock_t, debug.lock_thread));
- DECLARE("SLOCK_DURATIONH",offsetof(usimple_lock_t, debug.duration[0]));
- DECLARE("SLOCK_DURATIONL",offsetof(usimple_lock_t, debug.duration[1]));
- DECLARE("USLOCK_TAG", USLOCK_TAG);
-#endif /* MACH_LDEBUG */
+ /* Spin Lock structure */
+ DECLARE("SLOCK_ILK", offsetof(lck_spin_t *, interlock));
/* Mutex structure */
- DECLARE("LOCK_DATA", offsetof(mutex_t *, interlock));
- DECLARE("MUTEX_WAITERS",offsetof(mutex_t *, waiters));
- DECLARE("MUTEX_PROMOTED_PRI",offsetof(mutex_t *, promoted_pri));
-#if MACH_LDEBUG
- DECLARE("MUTEX_TYPE", offsetof(mutex_t *, type));
- DECLARE("MUTEX_PC", offsetof(mutex_t *, pc));
- DECLARE("MUTEX_THREAD", offsetof(mutex_t *, thread));
+ 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);
-#endif /* MACH_LDEBUG */
-
+ 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_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_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("PECFIbusrate", offsetof(struct clock_frequency_info_t *, bus_clock_rate_hz));
/* Values from pmap_internals.h and mappings.h */
- DECLARE("mmnext", offsetof(struct mapping *, next));
- DECLARE("mmhashnext", offsetof(struct mapping *, hashnext));
- DECLARE("mmPTEhash", offsetof(struct mapping *, PTEhash));
- DECLARE("mmPTEent", offsetof(struct mapping *, PTEent));
- DECLARE("mmPTEv", offsetof(struct mapping *, PTEv));
- DECLARE("mmPTEr", offsetof(struct mapping *, PTEr));
- DECLARE("mmphysent", offsetof(struct mapping *, physent));
- DECLARE("mmpmap", offsetof(struct mapping *, pmap));
-
- DECLARE("bmnext", offsetof(struct blokmap *, next));
- DECLARE("bmstart", offsetof(struct blokmap *, start));
- DECLARE("bmend", offsetof(struct blokmap *, end));
- DECLARE("bmcurrent", offsetof(struct blokmap *, current));
- DECLARE("bmPTEr", offsetof(struct blokmap *, PTEr));
- DECLARE("bmspace", offsetof(struct blokmap *, space));
- DECLARE("blkFlags", offsetof(struct blokmap *, blkFlags));
- DECLARE("blkPerm", blkPerm);
- DECLARE("blkRem", blkRem);
- DECLARE("blkPermbit", blkPermbit);
- DECLARE("blkRembit", blkRembit);
- DECLARE("BLKREMMAX", BLKREMMAX);
-
+
+ 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("pephyslink", offsetof(struct phys_entry *, phys_link));
- DECLARE("pepte1", offsetof(struct phys_entry *, pte1));
-
- DECLARE("PCAlock", offsetof(struct PCA *, PCAlock));
DECLARE("PCAallo", offsetof(struct PCA *, flgs.PCAallo));
DECLARE("PCAfree", offsetof(struct PCA *, flgs.PCAalflgs.PCAfree));
DECLARE("PCAauto", offsetof(struct PCA *, flgs.PCAalflgs.PCAauto));
- DECLARE("PCAslck", offsetof(struct PCA *, flgs.PCAalflgs.PCAslck));
+ DECLARE("PCAmisc", offsetof(struct PCA *, flgs.PCAalflgs.PCAmisc));
+ DECLARE("PCAlock", PCAlock);
+ DECLARE("PCAlockb", PCAlockb);
DECLARE("PCAsteal", offsetof(struct PCA *, flgs.PCAalflgs.PCAsteal));
- DECLARE("PCAgas", offsetof(struct PCA *, PCAgas));
- DECLARE("PCAhash", offsetof(struct PCA *, PCAhash));
+ 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("SVlock", offsetof(struct Saveanchor *, savelock));
- DECLARE("SVpoolfwd", offsetof(struct Saveanchor *, savepoolfwd));
- DECLARE("SVpoolbwd", offsetof(struct Saveanchor *, savepoolbwd));
- DECLARE("SVfree", offsetof(struct Saveanchor *, savefree));
- DECLARE("SVfreecnt", offsetof(struct Saveanchor *, savefreecnt));
- DECLARE("SVadjust", offsetof(struct Saveanchor *, saveadjust));
- DECLARE("SVinuse", offsetof(struct Saveanchor *, saveinuse));
- DECLARE("SVtarget", offsetof(struct Saveanchor *, savetarget));
- DECLARE("SVsize", sizeof(struct Saveanchor));
+ 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("GDrowbuf2", offsetof(struct GDWorkArea *, GDrowbuf2));
#endif
- DECLARE("dgLock", offsetof(struct diagWork *, dgLock));
- DECLARE("dgFlags", offsetof(struct diagWork *, dgFlags));
- DECLARE("dgMisc0", offsetof(struct diagWork *, dgMisc0));
DECLARE("enaExpTrace", enaExpTrace);
DECLARE("enaExpTraceb", enaExpTraceb);
DECLARE("enaUsrFCall", enaUsrFCall);
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("disLkNmSimp", disLkNmSimp);
- DECLARE("disLkNmSimpb", disLkNmSimpb);
+ DECLARE("enaLkExtStck", enaLkExtStck);
+ DECLARE("enaLkExtStckb",enaLkExtStckb);
DECLARE("disLkMyLck", disLkMyLck);
DECLARE("disLkMyLckb", disLkMyLckb);
DECLARE("dgMisc1", offsetof(struct diagWork *, dgMisc1));
DECLARE("dgMisc4", offsetof(struct diagWork *, dgMisc4));
DECLARE("dgMisc5", offsetof(struct diagWork *, dgMisc5));
- DECLARE("traceMask", offsetof(struct traceWork *, traceMask));
- DECLARE("traceCurr", offsetof(struct traceWork *, traceCurr));
- DECLARE("traceStart", offsetof(struct traceWork *, traceStart));
- DECLARE("traceEnd", offsetof(struct traceWork *, traceEnd));
- DECLARE("traceMsnd", offsetof(struct traceWork *, traceMsnd));
-
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("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("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("saver30", offsetof(struct savearea *, save_r30));
DECLARE("saver31", offsetof(struct savearea *, save_r31));
- DECLARE("savesr0", offsetof(struct savearea *, save_sr0));
- DECLARE("savesr1", offsetof(struct savearea *, save_sr1));
- DECLARE("savesr2", offsetof(struct savearea *, save_sr2));
- DECLARE("savesr3", offsetof(struct savearea *, save_sr3));
- DECLARE("savesr4", offsetof(struct savearea *, save_sr4));
- DECLARE("savesr5", offsetof(struct savearea *, save_sr5));
- DECLARE("savesr6", offsetof(struct savearea *, save_sr6));
- DECLARE("savesr7", offsetof(struct savearea *, save_sr7));
- DECLARE("savesr8", offsetof(struct savearea *, save_sr8));
- DECLARE("savesr9", offsetof(struct savearea *, save_sr9));
- DECLARE("savesr10", offsetof(struct savearea *, save_sr10));
- DECLARE("savesr11", offsetof(struct savearea *, save_sr11));
- DECLARE("savesr12", offsetof(struct savearea *, save_sr12));
- DECLARE("savesr13", offsetof(struct savearea *, save_sr13));
- DECLARE("savesr14", offsetof(struct savearea *, save_sr14));
- DECLARE("savesr15", offsetof(struct savearea *, save_sr15));
-
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("procState", offsetof(struct processor *, state));
DECLARE("CPU_SUBTYPE_POWERPC_ALL", CPU_SUBTYPE_POWERPC_ALL);
- DECLARE("CPU_SUBTYPE_POWERPC_601", CPU_SUBTYPE_POWERPC_601);
- DECLARE("CPU_SUBTYPE_POWERPC_602", CPU_SUBTYPE_POWERPC_602);
- DECLARE("CPU_SUBTYPE_POWERPC_603", CPU_SUBTYPE_POWERPC_603);
- DECLARE("CPU_SUBTYPE_POWERPC_603e", CPU_SUBTYPE_POWERPC_603e);
- DECLARE("CPU_SUBTYPE_POWERPC_603ev", CPU_SUBTYPE_POWERPC_603ev);
- DECLARE("CPU_SUBTYPE_POWERPC_604", CPU_SUBTYPE_POWERPC_604);
- DECLARE("CPU_SUBTYPE_POWERPC_604e", CPU_SUBTYPE_POWERPC_604e);
- DECLARE("CPU_SUBTYPE_POWERPC_620", CPU_SUBTYPE_POWERPC_620);
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));
- return(0); /* For ANSI C :-) */
+ 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));
+ return(0); /* For ANSI C :-) */
}