- pmCallBacks_t *callbacks)
-{
- if (callbacks != NULL && version == PM_DISPATCH_VERSION) {
- callbacks->setRTCPop = setPop;
- callbacks->resyncDeadlines = pmReSyncDeadlines;
- callbacks->initComplete = pmInitComplete;
- callbacks->GetLCPU = pmGetLogicalCPU;
- callbacks->GetCore = pmGetCore;
- callbacks->GetDie = pmGetDie;
- callbacks->GetPackage = pmGetPackage;
- callbacks->GetMyLCPU = pmGetMyLogicalCPU;
- callbacks->GetMyCore = pmGetMyCore;
- callbacks->GetMyDie = pmGetMyDie;
- callbacks->GetMyPackage = pmGetMyPackage;
- callbacks->GetPkgRoot = pmGetPkgRoot;
- callbacks->LockCPUTopology = pmLockCPUTopology;
- callbacks->GetHibernate = pmCPUGetHibernate;
- callbacks->LCPUtoProcessor = pmLCPUtoProcessor;
- callbacks->ThreadBind = thread_bind;
- callbacks->GetSavedRunCount = pmGetSavedRunCount;
- callbacks->pmSendIPI = pmSendIPI;
- callbacks->GetNanotimeInfo = pmGetNanotimeInfo;
- callbacks->ThreadGetUrgency = pmThreadGetUrgency;
- callbacks->RTCClockAdjust = rtc_clock_adjust;
- callbacks->timerQueueMigrate = pmTimerQueueMigrate;
- callbacks->topoParms = &topoParms;
- callbacks->InterruptPending = lapic_is_interrupt_pending;
- callbacks->IsInterrupting = lapic_is_interrupting;
- callbacks->InterruptStats = lapic_interrupt_counts;
- callbacks->DisableApicTimer = lapic_disable_timer;
- } else {
- panic("Version mis-match between Kernel (%d) and CPU PM (%d)",
- PM_DISPATCH_VERSION, version);
- }
-
- if (cpuFuncs != NULL) {
- pmDispatch = cpuFuncs;
-
- if (pmDispatch->pmIPIHandler != NULL) {
- lapic_set_pm_func((i386_intr_func_t)pmDispatch->pmIPIHandler);
- }
- }
-}
-
-/*
- * Unregisters the power management functions from the kext.
- */
-void
-pmUnRegister(pmDispatch_t *cpuFuncs)