+void pmCPUStateInit(void);
+uint64_t pmCPUGetDeadline(struct cpu_data *cpu);
+uint64_t pmCPUSetDeadline(struct cpu_data *cpu, uint64_t deadline);
+void pmCPUDeadline(struct cpu_data *cpu);
+boolean_t pmCPUExitIdle(struct cpu_data *cpu);
+void pmCPUMarkRunning(struct cpu_data *cpu);
+void pmHPETInterrupt(void);
+int pmCPUControl(uint32_t cmd, void *datap);
+void pmCPUHalt(uint32_t reason);
+
+#define PM_HALT_NORMAL 0 /* normal halt path */
+#define PM_HALT_DEBUG 1 /* debug code wants to halt */
+#define PM_HALT_PANIC 2 /* panic code wants to halt */
+
+void pmSafeMode(x86_lcpu_t *lcpu, uint32_t flags);
+
+#define PM_SAFE_FL_NORMAL 0x00000001 /* put CPU into "normal" power mode */
+#define PM_SAFE_FL_SAFE 0x00000002 /* put CPU into a "safe" power mode */
+#define PM_SAFE_FL_PAUSE 0x00000010 /* pause execution on the CPU */
+#define PM_SAFE_FL_RESUME 0x00000020 /* resume execution on the CPU */
+
+extern int pmsafe_debug;