acpi_machdep.c (136785) | acpi_machdep.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 --- |