]> git.saurik.com Git - apple/xnu.git/blob - iokit/Kernel/IOPMPowerSource.cpp
xnu-792.24.17.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_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
23 #include <IOKit/pwr_mgt/IOPMPowerSource.h>
24
25 #define super OSObject
26
27 OSDefineMetaClassAndStructors(IOPMPowerSource, OSObject)
28
29 // **********************************************************************************
30 // init
31 //
32 // **********************************************************************************
33 bool IOPMPowerSource::init (unsigned short whichBatteryIndex)
34 {
35 if (!super::init ())
36 return false;
37
38 bBatteryIndex = whichBatteryIndex;
39 nextInList = 0;
40
41 return true;
42 }
43
44 // **********************************************************************************
45 // capacityPercentRemaining
46 //
47 // **********************************************************************************
48 unsigned long IOPMPowerSource::capacityPercentRemaining (void)
49 {
50 unsigned long percentage = 0;
51
52 if (bMaxCapacity > 0)
53 percentage = (bCurCapacity * 100) / bMaxCapacity;
54
55 // always return a non-zero value unless the real capacity IS zero.
56 if (percentage == 0 && bCurCapacity > 0)
57 percentage = 1;
58
59 return percentage;
60 }
61
62 // **********************************************************************************
63 // atWarnLevel
64 //
65 // **********************************************************************************
66 bool IOPMPowerSource::atWarnLevel (void)
67 {
68 return bFlags & kBatteryAtWarn;
69 }
70
71 // **********************************************************************************
72 // acConnected
73 //
74 // **********************************************************************************
75 bool IOPMPowerSource::acConnected (void)
76 {
77 return bFlags & kACInstalled;
78 }
79
80 // **********************************************************************************
81 // depleted
82 //
83 // **********************************************************************************
84 bool IOPMPowerSource::depleted (void)
85 {
86 return bFlags & kBatteryDepleted;
87 }
88
89 // **********************************************************************************
90 // isInstalled
91 //
92 // **********************************************************************************
93 bool IOPMPowerSource::isInstalled (void)
94 {
95 return bFlags & kBatteryInstalled;
96 }
97
98 // **********************************************************************************
99 // isCharging
100 //
101 // **********************************************************************************
102 bool IOPMPowerSource::isCharging (void)
103 {
104 return bFlags & kBatteryCharging;
105 }
106
107 // **********************************************************************************
108 // timeRemaining
109 //
110 // **********************************************************************************
111 unsigned long IOPMPowerSource::timeRemaining (void)
112 {
113 return bTimeRemaining;
114 }
115
116 // **********************************************************************************
117 // maxCapacity
118 //
119 // **********************************************************************************
120 unsigned long IOPMPowerSource::maxCapacity (void)
121 {
122 return bMaxCapacity;
123 }
124
125 // **********************************************************************************
126 // curCapacity
127 //
128 // **********************************************************************************
129 unsigned long IOPMPowerSource::curCapacity (void)
130 {
131 return bCurCapacity;
132 }
133
134 // **********************************************************************************
135 // currentDrawn
136 //
137 // **********************************************************************************
138 long IOPMPowerSource::currentDrawn (void)
139 {
140 return bCurrent;
141 }
142
143 // **********************************************************************************
144 // voltage
145 //
146 // **********************************************************************************
147
148 unsigned long IOPMPowerSource::voltage (void)
149 {
150 return bVoltage;
151 }
152
153 // **********************************************************************************
154 // updateStatus
155 //
156 // **********************************************************************************
157
158 void IOPMPowerSource::updateStatus (void)
159 {
160
161 }
162
163
164
165
166