1/* 2 * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved. 3 * 4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. The rights granted to you under the License 10 * may not be used to create, or enable the creation or redistribution of, 11 * unlawful or unlicensed copies of an Apple operating system, or to 12 * circumvent, violate, or enable the circumvention or violation of, any 13 * terms of an Apple operating system software license agreement. 14 * 15 * Please obtain a copy of the License at 16 * http://www.opensource.apple.com/apsl/ and read it before using this file. 17 * 18 * The Original Code and all software distributed under the License are 19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 23 * Please see the License for the specific language governing rights and 24 * limitations under the License. 25 * 26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 27 */ 28 29#ifndef _IOKIT_IOSERVICEPM_H 30#define _IOKIT_IOSERVICEPM_H 31 32#include <libkern/c++/OSObject.h> 33#include <IOKit/IOLocks.h> 34#include <IOKit/pwr_mgt/IOPM.h> 35 36extern "C" { 37#include <kern/thread_call.h> 38} 39 40class IOService; 41class IOServicePM; 42class IOPowerConnection; 43class IOPMinformee; 44class IOPMinformeeList; 45class IOWorkLoop; 46class IOCommandGate; 47class IOTimerEventSource; 48class IOPlatformExpert; 49class IOPMWorkQueue; 50class IOPMRequest; 51class IOPMRequestQueue; 52struct changeNoteItem; 53 54/* DEPRECATED */ 55/*! @class IOPMprot 56 @abstract Protected power management instance variables for IOService objects. 57 @availability Mac OS X version 10.0. Deprecated in version 10.5. 58 @discussion IOPMprot is deprecated. Do not use it in any new code. 59 60 Call IOService::getPowerState to query the current power state rather than access myCurrentState. 61*/ 62class IOPMprot : public OSObject 63{ 64 friend class IOService; 65 66 OSDeclareDefaultStructors(IOPMprot) 67 68public: 69 /*! @var ourName 70 From getName(), used in logging. 71 */ 72 const char * ourName; 73 74 /*! @var thePlatform 75 From getPlatform, used in logging and registering. 76 */ 77 IOPlatformExpert * thePlatform; 78 79 /*! @var theNumberOfPowerStates 80 The number of states in the array. 81 */ 82 unsigned long theNumberOfPowerStates; 83 84 /*! @var thePowerStates 85 The array. 86 */ 87 IOPMPowerState thePowerStates[IOPMMaxPowerStates]; 88 89 /*! @var theControllingDriver 90 Points to the controlling driver. 91 */ 92 IOService * theControllingDriver; 93 94 /*! @var aggressiveness 95 Current value of power management aggressiveness. 96 */ 97 unsigned long aggressiveness; 98 99 /*! @var current_aggressiveness_values 100 Array of aggressiveness values. 101 */ 102 unsigned long current_aggressiveness_values [kMaxType+1]; 103 104 /*! @var current_aggressiveness_validity 105 True for values that are currently valid. 106 */ 107 bool current_aggressiveness_valid [kMaxType+1]; 108 109 /*! @var myCurrentState 110 The ordinal of our current power state. 111 */ 112 unsigned long myCurrentState; 113}; 114 115#endif /* !_IOKIT_IOSERVICEPM_H */ 116