Deleted Added
full compact
acpi_apm.c (136785) acpi_apm.c (148352)
1/*-
2 * Copyright (c) 2001 Mitsuru IWASAKI
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2001 Mitsuru IWASAKI
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: head/sys/i386/acpica/acpi_machdep.c 136785 2004-10-22 17:17:12Z njl $");
28__FBSDID("$FreeBSD: head/sys/i386/acpica/acpi_machdep.c 148352 2005-07-23 19:36:00Z njl $");
29
30#include <sys/param.h>
31#include <sys/bus.h>
32#include <sys/conf.h>
33#include <sys/fcntl.h>
34#include <sys/kernel.h>
35#include <sys/sysctl.h>
36#include <sys/uio.h>

--- 101 unchanged lines hidden (view full) ---

138 aip->ai_status = apm_active;
139 aip->ai_capabilities= 0xff00; /* unknown */
140
141 if (acpi_acad_get_acline(&acline))
142 aip->ai_acline = APM_UNKNOWN; /* unknown */
143 else
144 aip->ai_acline = acline; /* on/off */
145
29
30#include <sys/param.h>
31#include <sys/bus.h>
32#include <sys/conf.h>
33#include <sys/fcntl.h>
34#include <sys/kernel.h>
35#include <sys/sysctl.h>
36#include <sys/uio.h>

--- 101 unchanged lines hidden (view full) ---

138 aip->ai_status = apm_active;
139 aip->ai_capabilities= 0xff00; /* unknown */
140
141 if (acpi_acad_get_acline(&acline))
142 aip->ai_acline = APM_UNKNOWN; /* unknown */
143 else
144 aip->ai_acline = acline; /* on/off */
145
146 if (acpi_battery_get_battinfo(-1, &batt)) {
146 if (acpi_battery_get_battinfo(NULL, &batt) != 0) {
147 aip->ai_batt_stat = APM_UNKNOWN;
148 aip->ai_batt_life = APM_UNKNOWN;
149 aip->ai_batt_time = -1; /* unknown */
150 aip->ai_batteries = ~0U; /* unknown */
151 } else {
152 aip->ai_batt_stat = acpi_capm_convert_battstate(&batt);
153 aip->ai_batt_life = batt.cap;
154 aip->ai_batt_time = (batt.min == -1) ? -1 : batt.min * 60;
155 aip->ai_batteries = acpi_battery_get_units();
156 }
157
158 return (0);
159}
160
161static int
162acpi_capm_get_pwstatus(apm_pwstatus_t app)
163{
147 aip->ai_batt_stat = APM_UNKNOWN;
148 aip->ai_batt_life = APM_UNKNOWN;
149 aip->ai_batt_time = -1; /* unknown */
150 aip->ai_batteries = ~0U; /* unknown */
151 } else {
152 aip->ai_batt_stat = acpi_capm_convert_battstate(&batt);
153 aip->ai_batt_life = batt.cap;
154 aip->ai_batt_time = (batt.min == -1) ? -1 : batt.min * 60;
155 aip->ai_batteries = acpi_battery_get_units();
156 }
157
158 return (0);
159}
160
161static int
162acpi_capm_get_pwstatus(apm_pwstatus_t app)
163{
164 int batt_unit;
165 int acline;
164 device_t dev;
165 int acline, unit, error;
166 struct acpi_battinfo batt;
167
168 if (app->ap_device != PMDV_ALLDEV &&
169 (app->ap_device < PMDV_BATT0 || app->ap_device > PMDV_BATT_ALL))
170 return (1);
171
172 if (app->ap_device == PMDV_ALLDEV)
166 struct acpi_battinfo batt;
167
168 if (app->ap_device != PMDV_ALLDEV &&
169 (app->ap_device < PMDV_BATT0 || app->ap_device > PMDV_BATT_ALL))
170 return (1);
171
172 if (app->ap_device == PMDV_ALLDEV)
173 batt_unit = -1; /* all units */
174 else
175 batt_unit = app->ap_device - PMDV_BATT0;
176
177 if (acpi_battery_get_battinfo(batt_unit, &batt))
173 error = acpi_battery_get_battinfo(NULL, &batt);
174 else {
175 unit = app->ap_device - PMDV_BATT0;
176 dev = devclass_get_device(devclass_find("battery"), unit);
177 if (dev != NULL)
178 error = acpi_battery_get_battinfo(dev, &batt);
179 else
180 error = ENXIO;
181 }
182 if (error)
178 return (1);
179
180 app->ap_batt_stat = acpi_capm_convert_battstate(&batt);
181 app->ap_batt_flag = acpi_capm_convert_battflags(&batt);
182 app->ap_batt_life = batt.cap;
183 app->ap_batt_time = (batt.min == -1) ? -1 : batt.min * 60;
184
185 if (acpi_acad_get_acline(&acline))

--- 172 unchanged lines hidden ---
183 return (1);
184
185 app->ap_batt_stat = acpi_capm_convert_battstate(&batt);
186 app->ap_batt_flag = acpi_capm_convert_battflags(&batt);
187 app->ap_batt_life = batt.cap;
188 app->ap_batt_time = (batt.min == -1) ? -1 : batt.min * 60;
189
190 if (acpi_acad_get_acline(&acline))

--- 172 unchanged lines hidden ---