The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/acpica/acpiio.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * Copyright (c) 1999 Takanori Watanabe <takawata@jp.freebsd.org>
    3  * Copyright (c) 1999 Mitsuru IWASAKI <iwasaki@FreeBSD.org>
    4  * All rights reserved.
    5  *
    6  * Redistribution and use in source and binary forms, with or without
    7  * modification, are permitted provided that the following conditions
    8  * are met:
    9  * 1. Redistributions of source code must retain the above copyright
   10  *    notice, this list of conditions and the following disclaimer.
   11  * 2. Redistributions in binary form must reproduce the above copyright
   12  *    notice, this list of conditions and the following disclaimer in the
   13  *    documentation and/or other materials provided with the distribution.
   14  *
   15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   18  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   19  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   20  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   21  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   22  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   23  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   24  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   25  * SUCH DAMAGE.
   26  *
   27  * $FreeBSD$
   28  */
   29 
   30 #ifndef _ACPIIO_H_
   31 #define _ACPIIO_H_
   32 
   33 /*
   34  * Core ACPI subsystem ioctls
   35  */
   36 #define ACPIIO_SETSLPSTATE      _IOW('P', 3, int) /* DEPRECATED */
   37 
   38 /* Request S1-5 sleep state. User is notified and then sleep proceeds. */
   39 #define ACPIIO_REQSLPSTATE      _IOW('P', 4, int)
   40 
   41 /* Allow suspend to continue (0) or abort it (errno). */
   42 #define ACPIIO_ACKSLPSTATE      _IOW('P', 5, int)
   43 
   44 struct acpi_battinfo {
   45     int  cap;                           /* percent */
   46     int  min;                           /* remaining time (in minutes) */
   47     int  state;                         /* battery state */
   48     int  rate;                          /* emptying rate */
   49 };
   50 
   51 /*
   52  * Battery Information object.  Note that this object is deprecated in
   53  * ACPI 4.0
   54  */
   55 #define ACPI_CMBAT_MAXSTRLEN 32
   56 struct acpi_bif {
   57     uint32_t units;                     /* Power Unit (mW or mA). */
   58 #define ACPI_BIF_UNITS_MW       0       /* Capacity in mWh, rate in mW. */
   59 #define ACPI_BIF_UNITS_MA       1       /* Capacity in mAh, rate in mA. */
   60     uint32_t dcap;                      /* Design Capacity */
   61     uint32_t lfcap;                     /* Last Full capacity */
   62     uint32_t btech;                     /* Battery Technology */
   63     uint32_t dvol;                      /* Design voltage (mV) */
   64     uint32_t wcap;                      /* WARN capacity */
   65     uint32_t lcap;                      /* Low capacity */
   66     uint32_t gra1;                      /* Granularity 1 (Warn to Low) */
   67     uint32_t gra2;                      /* Granularity 2 (Full to Warn) */
   68     char model[ACPI_CMBAT_MAXSTRLEN];   /* model identifier */
   69     char serial[ACPI_CMBAT_MAXSTRLEN];  /* Serial number */
   70     char type[ACPI_CMBAT_MAXSTRLEN];    /* Type */
   71     char oeminfo[ACPI_CMBAT_MAXSTRLEN]; /* OEM information */
   72 };
   73 
   74 /*
   75  * Members in acpi_bix are reordered so that the first part is compatible
   76  * with acpi_bif.
   77  */
   78 struct acpi_bix {
   79 /* _BIF-compatible */
   80     uint32_t units;                     /* Power Unit (mW or mA). */
   81 #define ACPI_BIX_UNITS_MW       0       /* Capacity in mWh, rate in mW. */
   82 #define ACPI_BIX_UNITS_MA       1       /* Capacity in mAh, rate in mA. */
   83     uint32_t dcap;                      /* Design Capacity */
   84     uint32_t lfcap;                     /* Last Full capacity */
   85     uint32_t btech;                     /* Battery Technology */
   86     uint32_t dvol;                      /* Design voltage (mV) */
   87     uint32_t wcap;                      /* WARN capacity */
   88     uint32_t lcap;                      /* Low capacity */
   89     uint32_t gra1;                      /* Granularity 1 (Warn to Low) */
   90     uint32_t gra2;                      /* Granularity 2 (Full to Warn) */
   91     char model[ACPI_CMBAT_MAXSTRLEN];   /* model identifier */
   92     char serial[ACPI_CMBAT_MAXSTRLEN];  /* Serial number */
   93     char type[ACPI_CMBAT_MAXSTRLEN];    /* Type */
   94     char oeminfo[ACPI_CMBAT_MAXSTRLEN]; /* OEM information */
   95     /* ACPI 4.0 or later */
   96     uint16_t rev;                       /* Revision */
   97 #define ACPI_BIX_REV_0          0       /* ACPI 4.0 _BIX */
   98 #define ACPI_BIX_REV_1          1       /* ACPI 6.0 _BIX */
   99 #define ACPI_BIX_REV_BIF        0xffff  /* _BIF */
  100 #define ACPI_BIX_REV_MIN_CHECK(x, min)  \
  101         (((min) == ACPI_BIX_REV_BIF) ? ((x) == ACPI_BIX_REV_BIF) : \
  102             (((x) == ACPI_BIX_REV_BIF) ? 0 : ((x) >= (min))))
  103     uint32_t cycles;                    /* Cycle Count */
  104     uint32_t accuracy;                  /* Measurement Accuracy */
  105     uint32_t stmax;                     /* Max Sampling Time */
  106     uint32_t stmin;                     /* Min Sampling Time */
  107     uint32_t aimax;                     /* Max Average Interval */
  108     uint32_t aimin;                     /* Min Average Interval */
  109     /* ACPI 6.0 or later */
  110     uint32_t scap;                      /* Battery Swapping Capability */
  111 #define ACPI_BIX_SCAP_NO        0x00000000
  112 #define ACPI_BIX_SCAP_COLD      0x00000001
  113 #define ACPI_BIX_SCAP_HOT       0x00000010
  114     uint8_t bix_reserved[58];           /* padding */
  115 };
  116 
  117 #if 0
  118 /* acpi_bix in the original order just for reference */
  119 struct acpi_bix {
  120     uint16_t rev;                       /* Revision */
  121     uint32_t units;                     /* Power Unit (mW or mA). */
  122     uint32_t dcap;                      /* Design Capacity */
  123     uint32_t lfcap;                     /* Last Full capacity */
  124     uint32_t btech;                     /* Battery Technology */
  125     uint32_t dvol;                      /* Design voltage (mV) */
  126     uint32_t wcap;                      /* Design Capacity of Warning */
  127     uint32_t lcap;                      /* Design Capacity of Low */
  128     uint32_t cycles;                    /* Cycle Count */
  129     uint32_t accuracy;                  /* Measurement Accuracy */
  130     uint32_t stmax;                     /* Max Sampling Time */
  131     uint32_t stmin;                     /* Min Sampling Time */
  132     uint32_t aimax;                     /* Max Average Interval */
  133     uint32_t aimin;                     /* Min Average Interval */
  134     uint32_t gra1;                      /* Granularity 1 (Warn to Low) */
  135     uint32_t gra2;                      /* Granularity 2 (Full to Warn) */
  136     char model[ACPI_CMBAT_MAXSTRLEN];   /* model identifier */
  137     char serial[ACPI_CMBAT_MAXSTRLEN];  /* Serial number */
  138     char type[ACPI_CMBAT_MAXSTRLEN];    /* Type */
  139     char oeminfo[ACPI_CMBAT_MAXSTRLEN]; /* OEM information */
  140     uint32_t scap;                      /* Battery Swapping Capability */
  141 };
  142 #endif
  143 
  144 struct acpi_bst {
  145     uint32_t state;                     /* Battery State */
  146     uint32_t rate;                      /* Present Rate */
  147     uint32_t cap;                       /* Remaining Capacity */
  148     uint32_t volt;                      /* Present Voltage */
  149 };
  150 
  151 /*
  152  * Note that the following definitions represent status bits for internal
  153  * driver state.  The first three of them (charging, discharging and critical)
  154  * conveninetly conform to ACPI specification of status returned by _BST
  155  * method.  Other definitions (not present, etc) are synthetic.
  156  * Also note that according to the specification the charging and discharging
  157  * status bits must not be set at the same time.
  158  */
  159 #define ACPI_BATT_STAT_DISCHARG         0x0001
  160 #define ACPI_BATT_STAT_CHARGING         0x0002
  161 #define ACPI_BATT_STAT_CRITICAL         0x0004
  162 #define ACPI_BATT_STAT_INVALID                                  \
  163     (ACPI_BATT_STAT_DISCHARG | ACPI_BATT_STAT_CHARGING)
  164 #define ACPI_BATT_STAT_BST_MASK                                 \
  165     (ACPI_BATT_STAT_INVALID | ACPI_BATT_STAT_CRITICAL)
  166 #define ACPI_BATT_STAT_NOT_PRESENT      ACPI_BATT_STAT_BST_MASK
  167 
  168 /* For backward compatibility */
  169 union acpi_battery_ioctl_arg_v1 {
  170     int                  unit;  /* Device unit or ACPI_BATTERY_ALL_UNITS. */
  171 
  172     struct acpi_battinfo battinfo;
  173 
  174     struct acpi_bif      bif;
  175     struct acpi_bst      bst;
  176 };
  177 union acpi_battery_ioctl_arg {
  178     int                  unit;  /* Device unit or ACPI_BATTERY_ALL_UNITS. */
  179 
  180     struct acpi_battinfo battinfo;
  181 
  182     struct acpi_bix      bix;
  183     struct acpi_bif      bif;
  184     struct acpi_bst      bst;
  185 };
  186 
  187 #define ACPI_BATTERY_ALL_UNITS  (-1)
  188 #define ACPI_BATT_UNKNOWN       0xffffffff /* _BST or _BI[FX] value unknown. */
  189 
  190 /* Common battery ioctls */
  191 #define ACPIIO_BATT_GET_UNITS     _IOR('B', 0x01, int)
  192 #define ACPIIO_BATT_GET_BATTINFO _IOWR('B', 0x03, union acpi_battery_ioctl_arg)
  193 #define ACPIIO_BATT_GET_BATTINFO_V1 _IOWR('B', 0x03, union acpi_battery_ioctl_arg_v1)
  194 #define ACPIIO_BATT_GET_BIF      _IOWR('B', 0x10, union acpi_battery_ioctl_arg_v1)
  195 #define ACPIIO_BATT_GET_BIX      _IOWR('B', 0x10, union acpi_battery_ioctl_arg)
  196 #define ACPIIO_BATT_GET_BST      _IOWR('B', 0x11, union acpi_battery_ioctl_arg)
  197 #define ACPIIO_BATT_GET_BST_V1   _IOWR('B', 0x11, union acpi_battery_ioctl_arg_v1)
  198 
  199 /* Control Method battery ioctls (deprecated) */
  200 #define ACPIIO_CMBAT_GET_BIF     ACPIIO_BATT_GET_BIF
  201 #define ACPIIO_CMBAT_GET_BST     ACPIIO_BATT_GET_BST
  202 
  203 /* Get AC adapter status. */
  204 #define ACPIIO_ACAD_GET_STATUS    _IOR('A', 1, int)
  205 
  206 #ifdef _KERNEL
  207 typedef int     (*acpi_ioctl_fn)(u_long cmd, caddr_t addr, void *arg);
  208 extern int      acpi_register_ioctl(u_long cmd, acpi_ioctl_fn fn, void *arg);
  209 extern void     acpi_deregister_ioctl(u_long cmd, acpi_ioctl_fn fn);
  210 #endif
  211 
  212 #endif /* !_ACPIIO_H_ */

Cache object: 386713df489dbae6393cf413498e889b


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.