]> git.saurik.com Git - apple/xnu.git/blob - iokit/Kernel/IOPMPowerSource.cpp
xnu-792.12.6.tar.gz
[apple/xnu.git] / iokit / Kernel / IOPMPowerSource.cpp
1 /*
2 * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_OSREFERENCE_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
10 * License may not be used to create, or enable the creation or
11 * redistribution of, unlawful or unlicensed copies of an Apple operating
12 * system, or to circumvent, violate, or enable the circumvention or
13 * violation of, any terms of an Apple operating system software license
14 * agreement.
15 *
16 * Please obtain a copy of the License at
17 * http://www.opensource.apple.com/apsl/ and read it before using this
18 * file.
19 *
20 * The Original Code and all software distributed under the License are
21 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
22 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
23 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
24 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
25 * Please see the License for the specific language governing rights and
26 * limitations under the License.
27 *
28 * @APPLE_LICENSE_OSREFERENCE_HEADER_END@
29 */
30
31 #include <IOKit/pwr_mgt/IOPMPowerSource.h>
32
33 #define super OSObject
34
35 OSDefineMetaClassAndStructors(IOPMPowerSource, OSObject)
36
37 // **********************************************************************************
38 // init
39 //
40 // **********************************************************************************
41 bool IOPMPowerSource::init (unsigned short whichBatteryIndex)
42 {
43 if (!super::init ())
44 return false;
45
46 bBatteryIndex = whichBatteryIndex;
47 nextInList = 0;
48
49 return true;
50 }
51
52 // **********************************************************************************
53 // capacityPercentRemaining
54 //
55 // **********************************************************************************
56 unsigned long IOPMPowerSource::capacityPercentRemaining (void)
57 {
58 unsigned long percentage = 0;
59
60 if (bMaxCapacity > 0)
61 percentage = (bCurCapacity * 100) / bMaxCapacity;
62
63 // always return a non-zero value unless the real capacity IS zero.
64 if (percentage == 0 && bCurCapacity > 0)
65 percentage = 1;
66
67 return percentage;
68 }
69
70 // **********************************************************************************
71 // atWarnLevel
72 //
73 // **********************************************************************************
74 bool IOPMPowerSource::atWarnLevel (void)
75 {
76 return bFlags & kBatteryAtWarn;
77 }
78
79 // **********************************************************************************
80 // acConnected
81 //
82 // **********************************************************************************
83 bool IOPMPowerSource::acConnected (void)
84 {
85 return bFlags & kACInstalled;
86 }
87
88 // **********************************************************************************
89 // depleted
90 //
91 // **********************************************************************************
92 bool IOPMPowerSource::depleted (void)
93 {
94 return bFlags & kBatteryDepleted;
95 }
96
97 // **********************************************************************************
98 // isInstalled
99 //
100 // **********************************************************************************
101 bool IOPMPowerSource::isInstalled (void)
102 {
103 return bFlags & kBatteryInstalled;
104 }
105
106 // **********************************************************************************
107 // isCharging
108 //
109 // **********************************************************************************
110 bool IOPMPowerSource::isCharging (void)
111 {
112 return bFlags & kBatteryCharging;
113 }
114
115 // **********************************************************************************
116 // timeRemaining
117 //
118 // **********************************************************************************
119 unsigned long IOPMPowerSource::timeRemaining (void)
120 {
121 return bTimeRemaining;
122 }
123
124 // **********************************************************************************
125 // maxCapacity
126 //
127 // **********************************************************************************
128 unsigned long IOPMPowerSource::maxCapacity (void)
129 {
130 return bMaxCapacity;
131 }
132
133 // **********************************************************************************
134 // curCapacity
135 //
136 // **********************************************************************************
137 unsigned long IOPMPowerSource::curCapacity (void)
138 {
139 return bCurCapacity;
140 }
141
142 // **********************************************************************************
143 // currentDrawn
144 //
145 // **********************************************************************************
146 long IOPMPowerSource::currentDrawn (void)
147 {
148 return bCurrent;
149 }
150
151 // **********************************************************************************
152 // voltage
153 //
154 // **********************************************************************************
155
156 unsigned long IOPMPowerSource::voltage (void)
157 {
158 return bVoltage;
159 }
160
161 // **********************************************************************************
162 // updateStatus
163 //
164 // **********************************************************************************
165
166 void IOPMPowerSource::updateStatus (void)
167 {
168
169 }
170
171
172
173
174