static int sleepImmediately (void) { mach_port_t masterPort; io_connect_t rootPort; IOReturn err; if (IOPMSleepEnabled()) { if ((err = IOMasterPort(MACH_PORT_NULL, &masterPort))) { fprintf (stderr, "%s: can't get mach master port: %ld\n", args.progname, (long) err); return (1); } rootPort = IOPMFindPowerManagement(masterPort); if (rootPort) { err = IOPMSleepSystem(rootPort); if (err) { fprintf (stderr, "%s: IOPMSleepSystem failed: %ld\n", args.progname, (long) err); return (1); } } else { fprintf (stderr, "%s: IOPMFindPowerManagement failed\n", args.progname); return (1); } } else { fprintf (stderr, "%s: sleep mode is disabled\n", args.progname); return (1); } return (0); }
// Providing activateSettingsOverrides to PMAssertions.c // So that it may set multiple assertions without triggering a prefs // re-evaluate each time. PMAssertions.c can call overrideSetting() n times // and only call activateSettingsOverrides once. __private_extern__ void activateSettingOverrides(void) { if (!energySettings) return; if (gLastOverrideState != g_overrides) { if ((kPMPreventIdleSleep == (gLastOverrideState ^ g_overrides)) && (-1 != gSleepSetting)) do { static io_connect_t gIOPMConnection = MACH_PORT_NULL; IOReturn kr; if (!gIOPMConnection) gIOPMConnection = IOPMFindPowerManagement(0); if (!gIOPMConnection) break; kr = IOPMSetAggressiveness(gIOPMConnection, kPMMinutesToSleep, (kPMPreventIdleSleep & g_overrides) ? 0 : gSleepSetting); if (kIOReturnSuccess != kr) { gIOPMConnection = MACH_PORT_NULL; break; } gLastOverrideState = g_overrides; return; } while (false); gLastOverrideState = g_overrides; activate_profiles( energySettings, currentPowerSource, kIOPMRemoveUnsupportedSettings); } }
static OSStatus SleepSystem( AuthorizationRef auth, const void * userData, CFDictionaryRef request, CFMutableDictionaryRef response, aslclient asl, aslmsg aslMsg ) { io_connect_t fb = IOPMFindPowerManagement(MACH_PORT_NULL); IOPMSleepSystem(fb); return noErr; }