bt.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:4k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /******************************************************************************
  2.  *
  3.  * Module Name: bt.h
  4.  *   $Revision: 18 $
  5.  *
  6.  *****************************************************************************/
  7. /*
  8.  *  Copyright (C) 2000, 2001 Andrew Grover
  9.  *
  10.  *  This program is free software; you can redistribute it and/or modify
  11.  *  it under the terms of the GNU General Public License as published by
  12.  *  the Free Software Foundation; either version 2 of the License, or
  13.  *  (at your option) any later version.
  14.  *
  15.  *  This program is distributed in the hope that it will be useful,
  16.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  *  GNU General Public License for more details.
  19.  *
  20.  *  You should have received a copy of the GNU General Public License
  21.  *  along with this program; if not, write to the Free Software
  22.  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  23.  */
  24. #ifndef __BT_H__
  25. #define __BT_H__
  26. #include <actypes.h>
  27. #include <acexcep.h>
  28. #include <bm.h>
  29. /*****************************************************************************
  30.  *                Types & Other Defines
  31.  *****************************************************************************/
  32. /*! [Begin] no source code translation */
  33. #define BT_UNKNOWN 0xFFFFFFFF
  34. #define BT_POWER_UNITS_DEFAULT  "?"
  35. #define BT_POWER_UNITS_WATTS    "mW"
  36. #define BT_POWER_UNITS_AMPS "mA"
  37. /*! [End] no source code translation !*/
  38. /*
  39.  * Battery Notifications:
  40.  * ----------------------
  41.  */
  42. #define BT_NOTIFY_STATUS_CHANGE ((BM_NOTIFY) 0x80)
  43. #define BT_NOTIFY_INFORMATION_CHANGE ((BM_NOTIFY) 0x81)
  44. /*
  45.  * Hardware IDs:
  46.  * -------------
  47.  */
  48. #define BT_HID_CM_BATTERY   "PNP0C0A"
  49. /*
  50.  * BT_CM_BATTERY_INFO:
  51.  * -------------------
  52.  */
  53. typedef struct
  54. {
  55. acpi_integer    power_unit;
  56. acpi_integer    design_capacity;
  57. acpi_integer    last_full_capacity;
  58. acpi_integer    battery_technology;
  59. acpi_integer    design_voltage;
  60. acpi_integer    design_capacity_warning;
  61. acpi_integer    design_capacity_low;
  62. acpi_integer    battery_capacity_granularity_1;
  63. acpi_integer    battery_capacity_granularity_2;
  64. acpi_string     model_number;
  65. acpi_string     serial_number;
  66. acpi_string     battery_type;
  67. acpi_string     oem_info;
  68. } BT_BATTERY_INFO;
  69. /*
  70.  * BT_CM_BATTERY_STATUS:
  71.  * ---------------------
  72.  */
  73. typedef struct
  74. {
  75. acpi_integer    state;
  76. acpi_integer    present_rate;
  77. acpi_integer    remaining_capacity;
  78. acpi_integer    present_voltage;
  79. } BT_BATTERY_STATUS;
  80. /*
  81.  * BT_CONTEXT:
  82.  * -----------
  83.  */
  84. typedef struct
  85. {
  86. BM_HANDLE       device_handle;
  87. acpi_handle     acpi_handle;
  88. char            uid[9];
  89. acpi_string     power_units;
  90. u8              is_present;
  91. } BT_CONTEXT;
  92. /*****************************************************************************
  93.  *              Function Prototypes
  94.  *****************************************************************************/
  95. /* bt.c */
  96. acpi_status
  97. bt_initialize (void);
  98. acpi_status
  99. bt_terminate (void);
  100. acpi_status
  101. bt_notify (
  102. u32         notify_type,
  103. u32         device,
  104. void        **context);
  105. acpi_status
  106. bt_request(
  107. BM_REQUEST  *request_info,
  108. void        *context);
  109. acpi_status
  110. bt_get_status (
  111. BT_CONTEXT *battery,
  112. BT_BATTERY_STATUS   **battery_status);
  113. acpi_status
  114. bt_get_info (
  115. BT_CONTEXT      *battery,
  116. BT_BATTERY_INFO **battery_info);
  117. /* Battery OSL */
  118. acpi_status
  119. bt_osl_add_device (
  120. BT_CONTEXT      *battery);
  121. acpi_status
  122. bt_osl_remove_device (
  123. BT_CONTEXT      *battery);
  124. acpi_status
  125. bt_osl_generate_event (
  126. u32         event,
  127. BT_CONTEXT      *battery);
  128. #endif  /* __BT_H__ */