home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / acpi / actables.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  4.6 KB  |  145 lines

  1. /******************************************************************************
  2.  *
  3.  * Name: actables.h - ACPI table management
  4.  *
  5.  *****************************************************************************/
  6.  
  7. /*
  8.  * Copyright (C) 2000 - 2006, R. Byron Moore
  9.  * All rights reserved.
  10.  *
  11.  * Redistribution and use in source and binary forms, with or without
  12.  * modification, are permitted provided that the following conditions
  13.  * are met:
  14.  * 1. Redistributions of source code must retain the above copyright
  15.  *    notice, this list of conditions, and the following disclaimer,
  16.  *    without modification.
  17.  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
  18.  *    substantially similar to the "NO WARRANTY" disclaimer below
  19.  *    ("Disclaimer") and any redistribution must be conditioned upon
  20.  *    including a substantially similar Disclaimer requirement for further
  21.  *    binary redistribution.
  22.  * 3. Neither the names of the above-listed copyright holders nor the names
  23.  *    of any contributors may be used to endorse or promote products derived
  24.  *    from this software without specific prior written permission.
  25.  *
  26.  * Alternatively, this software may be distributed under the terms of the
  27.  * GNU General Public License ("GPL") version 2 as published by the Free
  28.  * Software Foundation.
  29.  *
  30.  * NO WARRANTY
  31.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  32.  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  33.  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
  34.  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  35.  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  36.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  37.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  38.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
  39.  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  40.  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  41.  * POSSIBILITY OF SUCH DAMAGES.
  42.  */
  43.  
  44. #ifndef __ACTABLES_H__
  45. #define __ACTABLES_H__
  46.  
  47. /* Used in acpi_tb_map_acpi_table for size parameter if table header is to be used */
  48.  
  49. #define SIZE_IN_HEADER          0
  50.  
  51. /*
  52.  * tbconvrt - Table conversion routines
  53.  */
  54. acpi_status acpi_tb_convert_to_xsdt(struct acpi_table_desc *table_info);
  55.  
  56. acpi_status acpi_tb_convert_table_fadt(void);
  57.  
  58. acpi_status acpi_tb_build_common_facs(struct acpi_table_desc *table_info);
  59.  
  60. u32
  61. acpi_tb_get_table_count(struct rsdp_descriptor *RSDP,
  62.             struct acpi_table_header *RSDT);
  63.  
  64. /*
  65.  * tbget - Table "get" routines
  66.  */
  67. acpi_status
  68. acpi_tb_get_table(struct acpi_pointer *address,
  69.           struct acpi_table_desc *table_info);
  70.  
  71. acpi_status
  72. acpi_tb_get_table_header(struct acpi_pointer *address,
  73.              struct acpi_table_header *return_header);
  74.  
  75. acpi_status
  76. acpi_tb_get_table_body(struct acpi_pointer *address,
  77.                struct acpi_table_header *header,
  78.                struct acpi_table_desc *table_info);
  79.  
  80. acpi_status
  81. acpi_tb_get_table_ptr(acpi_table_type table_type,
  82.               u32 instance, struct acpi_table_header **table_ptr_loc);
  83.  
  84. acpi_status acpi_tb_verify_rsdp(struct acpi_pointer *address);
  85.  
  86. void acpi_tb_get_rsdt_address(struct acpi_pointer *out_address);
  87.  
  88. acpi_status acpi_tb_validate_rsdt(struct acpi_table_header *table_ptr);
  89.  
  90. /*
  91.  * tbgetall - get multiple required tables
  92.  */
  93. acpi_status acpi_tb_get_required_tables(void);
  94.  
  95. /*
  96.  * tbinstall - Table installation
  97.  */
  98. acpi_status acpi_tb_install_table(struct acpi_table_desc *table_info);
  99.  
  100. acpi_status
  101. acpi_tb_recognize_table(struct acpi_table_desc *table_info, u8 search_type);
  102.  
  103. acpi_status
  104. acpi_tb_init_table_descriptor(acpi_table_type table_type,
  105.                   struct acpi_table_desc *table_info);
  106.  
  107. /*
  108.  * tbremove - Table removal and deletion
  109.  */
  110. void acpi_tb_delete_all_tables(void);
  111.  
  112. void acpi_tb_delete_tables_by_type(acpi_table_type type);
  113.  
  114. void acpi_tb_delete_single_table(struct acpi_table_desc *table_desc);
  115.  
  116. struct acpi_table_desc *acpi_tb_uninstall_table(struct acpi_table_desc
  117.                         *table_desc);
  118.  
  119. /*
  120.  * tbxfroot - RSDP, RSDT utilities
  121.  */
  122. acpi_status
  123. acpi_tb_find_table(char *signature,
  124.            char *oem_id,
  125.            char *oem_table_id, struct acpi_table_header **table_ptr);
  126.  
  127. acpi_status acpi_tb_get_table_rsdt(void);
  128.  
  129. acpi_status acpi_tb_validate_rsdp(struct rsdp_descriptor *rsdp);
  130.  
  131. /*
  132.  * tbutils - common table utilities
  133.  */
  134. acpi_status acpi_tb_is_table_installed(struct acpi_table_desc *new_table_desc);
  135.  
  136. acpi_status
  137. acpi_tb_verify_table_checksum(struct acpi_table_header *table_header);
  138.  
  139. u8 acpi_tb_generate_checksum(void *buffer, u32 length);
  140.  
  141. acpi_status
  142. acpi_tb_validate_table_header(struct acpi_table_header *table_header);
  143.  
  144. #endif                /* __ACTABLES_H__ */
  145.