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

Linux/Unix编程

开发平台:

Unix_Linux

  1. /******************************************************************************
  2.  *
  3.  * Name: actbl2.h - ACPI Specification Revision 2.0 Tables
  4.  *       $Revision: 24 $
  5.  *
  6.  *****************************************************************************/
  7. /*
  8.  *  Copyright (C) 2000, 2001 R. Byron Moore
  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 __ACTBL2_H__
  25. #define __ACTBL2_H__
  26. /*
  27.  * Prefered Power Management Profiles
  28.  */
  29. #define PM_UNSPECIFIED                  0
  30. #define PM_DESKTOP                      1
  31. #define PM_MOBILE                       2
  32. #define PM_WORKSTATION                  3
  33. #define PM_ENTERPRISE_SERVER            4
  34. #define PM_SOHO_SERVER                  5
  35. #define PM_APPLIANCE_PC                 6
  36. /*
  37.  * ACPI Boot Arch Flags
  38.  */
  39. #define BAF_LEGACY_DEVICES              0x0001
  40. #define BAF_8042_KEYBOARD_CONTROLLER    0x0002
  41. #define FADT2_REVISION_ID               3
  42. #pragma pack(1)
  43. /*
  44.  * ACPI Specification Rev 2.0 for the Root System Description Table
  45.  */
  46. typedef struct
  47. {
  48. acpi_table_header       header;                 /* Table header */
  49. u32                     table_offset_entry [1]; /* Array of pointers to  */
  50.  /* other tables' headers */
  51. } RSDT_DESCRIPTOR_REV2;
  52. /*
  53.  * ACPI Specification Rev 2.0 for the Extended System Description Table (XSDT)
  54.  */
  55. typedef struct
  56. {
  57. acpi_table_header       header;                 /* Table header */
  58. u64                     table_offset_entry [1]; /* Array of pointers to  */
  59.  /* other tables' headers */
  60. } XSDT_DESCRIPTOR_REV2;
  61. /*
  62.  * ACPI Specification Rev 2.0 for the Firmware ACPI Control Structure
  63.  */
  64. typedef struct
  65. {
  66. NATIVE_CHAR             signature[4];           /* signature "FACS" */
  67. u32                     length;                 /* length of structure, in bytes */
  68. u32                     hardware_signature;     /* hardware configuration signature */
  69. u32                     firmware_waking_vector; /* 32bit physical address of the Firmware Waking Vector. */
  70. u32                     global_lock;            /* Global Lock used to synchronize access to shared hardware resources */
  71. u32                     S4bios_f        : 1;    /* Indicates if S4BIOS support is present */
  72. u32                     reserved1       : 31;   /* must be 0 */
  73. u64                     Xfirmware_waking_vector; /* 64bit physical address of the Firmware Waking Vector. */
  74. u8                      version;                /* Version of this table */
  75. u8                      reserved3 [31];         /* reserved - must be zero */
  76. } facs_descriptor_rev2;
  77. /*
  78.  * ACPI Specification Rev 2.0 for the Generic Address Structure (GAS)
  79.  */
  80. typedef struct
  81. {
  82. u8                      address_space_id;       /* Address space where struct or register exists. */
  83. u8                      register_bit_width;     /* Size in bits of given register */
  84. u8                      register_bit_offset;    /* Bit offset within the register */
  85. u8                      reserved;               /* Must be 0 */
  86. u64                     address;                /* 64-bit address of struct or register */
  87. } acpi_generic_address;
  88. /*
  89.  * ACPI Specification Rev 2.0 for the Fixed ACPI Description Table
  90.  */
  91. typedef struct
  92. {
  93. acpi_table_header       header;             /* table header */
  94. u32                     V1_firmware_ctrl;   /* 32-bit physical address of FACS */
  95. u32                     V1_dsdt;            /* 32-bit physical address of DSDT */
  96. u8                      reserved1;          /* System Interrupt Model isn't used in ACPI 2.0*/
  97. u8                      prefer_PM_profile;  /* Conveys preferred power management profile to OSPM. */
  98. u16                     sci_int;            /* System vector of SCI interrupt */
  99. u32                     smi_cmd;            /* Port address of SMI command port */
  100. u8                      acpi_enable;        /* value to write to smi_cmd to enable ACPI */
  101. u8                      acpi_disable;       /* value to write to smi_cmd to disable ACPI */
  102. u8                      S4bios_req;         /* Value to write to SMI CMD to enter S4BIOS state */
  103. u8                      pstate_cnt;         /* processor performance state control*/
  104. u32                     V1_pm1a_evt_blk;    /* Port address of Power Mgt 1a Acpi_event Reg Blk */
  105. u32                     V1_pm1b_evt_blk;    /* Port address of Power Mgt 1b Acpi_event Reg Blk */
  106. u32                     V1_pm1a_cnt_blk;    /* Port address of Power Mgt 1a Control Reg Blk */
  107. u32                     V1_pm1b_cnt_blk;    /* Port address of Power Mgt 1b Control Reg Blk */
  108. u32                     V1_pm2_cnt_blk;     /* Port address of Power Mgt 2 Control Reg Blk */
  109. u32                     V1_pm_tmr_blk;      /* Port address of Power Mgt Timer Ctrl Reg Blk */
  110. u32                     V1_gpe0blk;         /* Port addr of General Purpose Acpi_event 0 Reg Blk */
  111. u32                     V1_gpe1_blk;        /* Port addr of General Purpose Acpi_event 1 Reg Blk */
  112. u8                      pm1_evt_len;        /* Byte Length of ports at pm1_x_evt_blk */
  113. u8                      pm1_cnt_len;        /* Byte Length of ports at pm1_x_cnt_blk */
  114. u8                      pm2_cnt_len;        /* Byte Length of ports at pm2_cnt_blk */
  115. u8                      pm_tm_len;          /* Byte Length of ports at pm_tm_blk */
  116. u8                      gpe0blk_len;        /* Byte Length of ports at gpe0_blk */
  117. u8                      gpe1_blk_len;       /* Byte Length of ports at gpe1_blk */
  118. u8                      gpe1_base;          /* offset in gpe model where gpe1 events start */
  119. u8                      cst_cnt;            /* Support for the _CST object and C States change notification.*/
  120. u16                     plvl2_lat;          /* worst case HW latency to enter/exit C2 state */
  121. u16                     plvl3_lat;          /* worst case HW latency to enter/exit C3 state */
  122. u16                     flush_size;         /* number of flush strides that need to be read */
  123. u16                     flush_stride;       /* Processor's memory cache line width, in bytes */
  124. u8                      duty_offset;        /* Processor_抯 duty cycle index in processor's P_CNT reg*/
  125. u8                      duty_width;         /* Processor_抯 duty cycle value bit width in P_CNT register.*/
  126. u8                      day_alrm;           /* index to day-of-month alarm in RTC CMOS RAM */
  127. u8                      mon_alrm;           /* index to month-of-year alarm in RTC CMOS RAM */
  128. u8                      century;            /* index to century in RTC CMOS RAM */
  129. u16                     iapc_boot_arch;     /* IA-PC Boot Architecture Flags. See Table 5-10 for description*/
  130. u8                      reserved2;          /* reserved */
  131. u32                     wb_invd     : 1;    /* wbinvd instruction works properly */
  132. u32                     wb_invd_flush : 1;  /* wbinvd flushes but does not invalidate */
  133. u32                     proc_c1     : 1;    /* all processors support C1 state */
  134. u32                     plvl2_up    : 1;    /* C2 state works on MP system */
  135. u32                     pwr_button  : 1;    /* Power button is handled as a generic feature */
  136. u32                     sleep_button : 1;   /* Sleep button is handled as a generic feature, or not present */
  137. u32                     fixed_rTC   : 1;    /* RTC wakeup stat not in fixed register space */
  138. u32                     rtcs4       : 1;    /* RTC wakeup stat not possible from S4 */
  139. u32                     tmr_val_ext : 1;    /* tmr_val is 32 bits */
  140. u32                     dock_cap    : 1;    /* Supports Docking */
  141. u32                     reset_reg_sup : 1;  /* Indicates system supports system reset via the FADT RESET_REG*/
  142. u32                     sealed_case : 1;    /* Indicates system has no internal expansion capabilities and case is sealed. */
  143. u32                     headless    : 1;    /* Indicates system does not have local video capabilities or local input devices.*/
  144. u32                     cpu_sw_sleep : 1;   /* Indicates to OSPM that a processor native instruction */
  145.    /* must be executed after writing the SLP_TYPx register. */
  146. u32                     reserved6   : 18;   /* reserved - must be zero */
  147. acpi_generic_address    reset_register;     /* Reset register address in GAS format */
  148. u8                      reset_value;        /* Value to write to the Reset_register port to reset the system. */
  149. u8                      reserved7[3];       /* These three bytes must be zero */
  150. u64                     Xfirmware_ctrl;     /* 64-bit physical address of FACS */
  151. u64                     Xdsdt;              /* 64-bit physical address of DSDT */
  152. acpi_generic_address    Xpm1a_evt_blk;      /* Extended Power Mgt 1a Acpi_event Reg Blk address */
  153. acpi_generic_address    Xpm1b_evt_blk;      /* Extended Power Mgt 1b Acpi_event Reg Blk address */
  154. acpi_generic_address    Xpm1a_cnt_blk;      /* Extended Power Mgt 1a Control Reg Blk address */
  155. acpi_generic_address    Xpm1b_cnt_blk;      /* Extended Power Mgt 1b Control Reg Blk address */
  156. acpi_generic_address    Xpm2_cnt_blk;       /* Extended Power Mgt 2 Control Reg Blk address */
  157. acpi_generic_address    Xpm_tmr_blk;        /* Extended Power Mgt Timer Ctrl Reg Blk address */
  158. acpi_generic_address    Xgpe0blk;           /* Extended General Purpose Acpi_event 0 Reg Blk address */
  159. acpi_generic_address    Xgpe1_blk;          /* Extended General Purpose Acpi_event 1 Reg Blk address */
  160. }  fadt_descriptor_rev2;
  161. #pragma pack()
  162. #endif /* __ACTBL2_H__ */