|
|
1.1 root 1: /*
2: * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
6: * The contents of this file constitute Original Code as defined in and
7: * are subject to the Apple Public Source License Version 1.1 (the
8: * "License"). You may not use this file except in compliance with the
9: * License. Please obtain a copy of the License at
10: * http://www.apple.com/publicsource and read it before using this file.
11: *
12: * This Original Code and all software distributed under the License are
13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17: * License for the specific language governing rights and limitations
18: * under the License.
19: *
20: * @APPLE_LICENSE_HEADER_END@
21: */
22: #ifndef _IOKIT_IOPM_H
23: #define _IOKIT_IOPM_H
24:
25: #define IOPMMaxPowerStates 10
26:
27: typedef unsigned long IOPMPowerFlags;
28:
29: #define IOPMNotAttainable 0x0001
30: #define IOPMPowerOn 0x0002
31: #define IOPMClockNormal 0x0004
32: #define IOPMClockRunning 0x0008
33: #define IOPMWakeupEnabled 0x0010
34: // following "capabilites" exist for the convenience
35: // of the "interested drivers"
36: #define IOPMDeviceUsable 0x8000
37: #define IOPMMaxPerformance 0x4000
38: #define IOPMContextRetained 0x2000
39: #define IOPMConfigRetained 0x1000
40:
41: #define IOPMNextHigherState 1
42: #define IOPMHighestState 2
43: #define IOPMNextLowerState 3
44: #define IOPMLowestState 4
45:
46:
47: enum { // commands on power managment command queue
48: kPMbroadcastAggressiveness = 1,
49: kPMunIdleDevice,
50: kPMsleepDemand,
51: kPMwakeSignal
52: };
53:
54:
55:
56: // Return codes
57:
58: #define IOPMNoErr 0 // normal return
59:
60: // returned by powerStateWillChange and powerStateDidChange:
61: #define IOPMAckImplied 0 // acknowledgement of power state change is implied
62: #define IOPMWillAckLater 1 // acknowledgement of power state change will come later
63:
64: // returned by requestDomainState
65: #define IOPMBadSpecification 4 // unrecognized specification parameter
66: #define IOPMNoSuchState 5 // no power state matches search specification
67:
68: #define IOPMCannotRaisePower 6 // a device cannot change its power for some reason
69:
70: // returned by changeStateTo
71: #define IOPMParameterError 7 // requested state doesn't exist
72: #define IOPMNotYetInitialized 8 // device not yet fully hooked into power management "graph"
73:
74:
75: // used by Root Domain UserClient
76: #define kNumPMMethods 4
77:
78: enum {
79: kPMGeneralAggressiveness = 0,
80: kPMMinutesToDim,
81: kPMMinutesToSpinDown,
82: kPMMinutesToSleep
83: };
84: #define kMaxType kPMMinutesToSleep
85:
86:
87: #define kIOBatteryInfoKey "IOBatteryInfo"
88: #define kIOBatteryCurrentChargeKey "Current"
89: #define kIOBatteryCapacityKey "Capacity"
90: #define kIOBatteryFlagsKey "Flags"
91: enum {
92: kIOBatteryInstalled = (1 << 2),
93: kIOBatteryCharge = (1 << 1),
94: kIOBatteryChargerConnect = (1 << 0)
95: };
96:
97:
98: #if KERNEL && __cplusplus
99: class IOService;
100:
101: enum {
102: kIOPowerEmergencyLevel = 1000
103: };
104:
105: enum {
106: kIOPMSubclassPolicy,
107: kIOPMSuperclassPolicy1
108: };
109:
110: extern void IOPMRegisterDevice(const char *, IOService *);
111: #endif /* KERNEL && __cplusplus */
112:
113: #endif /* ! _IOKIT_IOPM_H */
114:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.