powermanagement.defs   [plain text]


/*
 * Copyright (c) 1999-2008 Apple Computer, Inc.  All Rights Reserved.
 * 
 * @APPLE_LICENSE_HEADER_START@
 * 
 * This file contains Original Code and/or Modifications of Original Code
 * as defined in and that are subject to the Apple Public Source License
 * Version 2.0 (the 'License'). You may not use this file except in
 * compliance with the License. Please obtain a copy of the License at
 * http://www.opensource.apple.com/apsl/ and read it before using this
 * file.
 * 
 * The Original Code and all software distributed under the License are
 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
 * Please see the License for the specific language governing rights and
 * limitations under the License.
 * 
 * @APPLE_LICENSE_HEADER_END@
 */
#include <mach/std_types.defs>
#include <mach/mach_types.defs>

type string_t = c_string[*:1024] ctype:string_t;

import <IOKit/pwr_mgt/powermanagement_mig.h>;

subsystem powermanagement 73000; 
serverprefix _;

routine io_pm_get_value_int(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
        in  selector    : int;
        out value       : int);

// PM Settings
routine io_pm_force_active_settings(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
        in  profiles    : pointer_t;
        out return_val  : int);

routine io_pm_set_active_profile(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
        in  profiles    : pointer_t;
        out return_val  : int);

// Scheduled Events
routine io_pm_schedule_power_event(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
        in  package     : pointer_t;
        in action       : int;
        out return_val  : int);

routine io_pm_schedule_repeat_event(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
        in  package     : pointer_t;
        in action       : int;
        out return_val  : int);


routine io_pm_cancel_repeat_events(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
        out return_val  : int);


// PM Bookkeeping
routine io_pm_last_wake_time(
            server      : mach_port_t;
        out wakeData    : pointer_t;
        out deltaData   : pointer_t;
        out return_val  : int);

// IOPMAssertion
routine io_pm_assertion_create(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
        in  props       : pointer_t;
        out assertion_id: int;
        out return_code : int);
        
routine io_pm_assertion_set_properties(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
        in  assertion_id: int;
        in  props       : pointer_t;
        out return_code : int);

routine io_pm_assertion_retain_release(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
        in  assertion_id: int;
        in  action      : int;
        out return_code : int);

routine io_pm_assertion_copy_details(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
        in assertion_id : int;
        in whichData    : int;
        out assertions  : pointer_t, dealloc;
        out return_val  : int);

routine io_pm_declare_user_active(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
           in user_type : int;
        in  props       : pointer_t;
      inout assertion_id: int;
        out return_code : int);

// IOPMPowerHistory

routine io_pm_set_power_history_bookmark(
            server      : mach_port_t;
            out uuid    : string_t);

routine io_pm_get_uuid(
            server      : mach_port_t;
         in selector    : int;
        out out_uuid    : string_t;
        out return_val  : int);

// IOPMConnection
routine io_pm_connection_create(
            server      : mach_port_t;
        in task_in       : mach_port_t;
        in name         : string_t;
        in interests    : int;
        out connection_id : uint32_t;
        out return_code :int);

routine io_pm_connection_schedule_notification(
            server      : mach_port_t;
        in connection_id : uint32_t;
        in notify_port  : mach_port_t;
        in disable      : int;
        out return_code : int);
        
routine io_pm_connection_release(
            server      : mach_port_t;
        in connection_id : uint32_t;
        out return_code : int);

routine io_pm_connection_acknowledge_event(
           server       : mach_port_t;
        in connection_id : uint32_t;
        in messageToken : int;
        in options      : pointer_t;
        out return_code : int);

routine io_pm_connection_copy_status(
           server       : mach_port_t;
        in status_index : int;
        out status_data : pointer_t;
        out return_val  : int);

// "Soft" OS controlled power sources        
routine io_pm_new_pspowersource(
            server      : mach_port_t;
        in  clientport  : mach_port_t;
        in  clienttype  : string_t;
        out dskey       : string_t;
        out return_code : int);
    
routine io_pm_update_pspowersource(
            server      : mach_port_t;
        in  dskey       : string_t;
        in  psdetails   : pointer_t;
        out return_code : int);
                
// IOPMHIDPostEventActivity
simpleroutine io_pm_hid_event_report_activity(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
        in  _action     : int);

routine io_pm_hid_event_copy_history(
            server      : mach_port_t;
            out eventArray : pointer_t, dealloc;
            out return_val : int);

routine io_pm_set_debug_flags(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
            in  newFlags   : uint32_t;
            out oldFlags   : uint32_t;
            out return_val : int);

routine io_pm_set_bt_wake_interval(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
            in  newInterval   : uint32_t;
            out oldInterval   : uint32_t;
            out return_val    : int);

routine io_pm_set_sleepservice_wake_time_cap(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
            in  cap_time   : int;
            out return_val : int);

routine io_pm_get_capability_bits(
            server      : mach_port_t;
ServerAuditToken token  : audit_token_t;
            out capBits : uint32_t;
            out return_val : int);