/**
 * 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;
}
Exemple #3
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;
}