Beispiel #1
0
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);
}
Beispiel #2
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);
    }
}
Beispiel #3
0
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;
}