/** * Callback for blah blah blah. */ IOReturn VbgdDarwinSleepHandler(void * /* pvTarget */, void *pvRefCon, UInt32 uMessageType, IOService * /* pProvider */, void * /* pvMessageArgument */, vm_size_t /* argSize */) { LogFlow(("VBoxGuest: Got sleep/wake notice. Message type was %X\n", (uint)uMessageType)); if (uMessageType == kIOMessageSystemWillSleep) RTPowerSignalEvent(RTPOWEREVENT_SUSPEND); else if (uMessageType == kIOMessageSystemHasPoweredOn) RTPowerSignalEvent(RTPOWEREVENT_RESUME); acknowledgeSleepWakeNotification(pvRefCon); return 0; }
/** * Callback for blah blah blah. */ static IOReturn vgdrvDarwinSleepHandler(void *pvTarget, void *pvRefCon, UInt32 uMessageType, IOService *pProvider, void *pvMsgArg, vm_size_t cbMsgArg) { LogFlow(("VBoxGuest: Got sleep/wake notice. Message type was %x\n", uMessageType)); if (uMessageType == kIOMessageSystemWillSleep) RTPowerSignalEvent(RTPOWEREVENT_SUSPEND); else if (uMessageType == kIOMessageSystemHasPoweredOn) RTPowerSignalEvent(RTPOWEREVENT_RESUME); acknowledgeSleepWakeNotification(pvRefCon); return 0; }
static IOReturn IOWatchDogTimerSleepHandler(void *target, void */*refCon*/, UInt32 messageType, IOService */*provider*/, void *messageArgument, vm_size_t /*argSize*/) { IOWatchDogTimer *watchDogTimer = (IOWatchDogTimer *)target; sleepWakeNote *swNote = (sleepWakeNote *)messageArgument; if (messageType != kIOMessageSystemWillSleep) return kIOReturnUnsupported; watchDogTimer->setProperty(kWatchDogEnabledProperty, kOSBooleanFalse); watchDogTimer->setWatchDogTimer(0); swNote->returnValue = 0; acknowledgeSleepWakeNotification(swNote->powerRef); return kIOReturnSuccess; }