bn.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:3k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /******************************************************************************
  2.  *
  3.  * Module Name: bn.h
  4.  *   $Revision: 12 $
  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 __BN_H__
  25. #define __BN_H__
  26. #include <actypes.h>
  27. #include <acexcep.h>
  28. #include <bm.h>
  29. /*****************************************************************************
  30.  *                            Types & Other Defines
  31.  *****************************************************************************/
  32. /*
  33.  * Notifications:
  34.  * ---------------------
  35.  */
  36. #define BN_NOTIFY_STATUS_CHANGE ((BM_NOTIFY) 0x80)
  37. /*
  38.  * Types:
  39.  * ------
  40.  */
  41. #define BN_TYPE_POWER_BUTTON 0x01
  42. #define BN_TYPE_POWER_BUTTON_FIXED 0x02
  43. #define BN_TYPE_SLEEP_BUTTON 0x03
  44. #define BN_TYPE_SLEEP_BUTTON_FIXED 0x04
  45. #define BN_TYPE_LID_SWITCH 0x05
  46. /*
  47.  * Hardware IDs:
  48.  * -------------
  49.  * TBD: Power and Sleep button HIDs also exist in <bm.h>.  Should all
  50.  *      HIDs (ACPI well-known devices) exist in one place (e.g.
  51.  *      acpi_hid.h)?
  52.  */
  53. #define BN_HID_POWER_BUTTON "PNP0C0C"
  54. #define BN_HID_SLEEP_BUTTON "PNP0C0E"
  55. #define BN_HID_LID_SWITCH "PNP0C0D"
  56. /*
  57.  * Device Context:
  58.  * ---------------
  59.  */
  60. typedef struct
  61. {
  62. BM_HANDLE device_handle;
  63. acpi_handle acpi_handle;
  64. u32 type;
  65. } BN_CONTEXT;
  66. /******************************************************************************
  67.  *                              Function Prototypes
  68.  *****************************************************************************/
  69. acpi_status
  70. bn_initialize (void);
  71. acpi_status
  72. bn_terminate (void);
  73. acpi_status
  74. bn_notify_fixed (
  75. void *context);
  76. acpi_status
  77. bn_notify (
  78. u32 notify_type,
  79. u32 device,
  80. void **context);
  81. acpi_status
  82. bn_request(
  83. BM_REQUEST *request_info,
  84. void *context);
  85. /* Button OSL */
  86. acpi_status
  87. bn_osl_add_device (
  88. BN_CONTEXT *button);
  89. acpi_status
  90. bn_osl_remove_device (
  91. BN_CONTEXT *button);
  92. acpi_status
  93. bn_osl_generate_event (
  94. u32 event,
  95. BN_CONTEXT *button);
  96. #endif /* __BN_H__ */