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