at v2.6.13-rc7 189 lines 5.1 kB view raw
1/****************************************************************************** 2 * 3 * Name: actables.h - ACPI table management 4 * 5 *****************************************************************************/ 6 7/* 8 * Copyright (C) 2000 - 2005, 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 48/* Used in acpi_tb_map_acpi_table for size parameter if table header is to be used */ 49 50#define SIZE_IN_HEADER 0 51 52 53/* 54 * tbconvrt - Table conversion routines 55 */ 56acpi_status 57acpi_tb_convert_to_xsdt ( 58 struct acpi_table_desc *table_info); 59 60acpi_status 61acpi_tb_convert_table_fadt ( 62 void); 63 64acpi_status 65acpi_tb_build_common_facs ( 66 struct acpi_table_desc *table_info); 67 68u32 69acpi_tb_get_table_count ( 70 struct rsdp_descriptor *RSDP, 71 struct acpi_table_header *RSDT); 72 73 74/* 75 * tbget - Table "get" routines 76 */ 77acpi_status 78acpi_tb_get_table ( 79 struct acpi_pointer *address, 80 struct acpi_table_desc *table_info); 81 82acpi_status 83acpi_tb_get_table_header ( 84 struct acpi_pointer *address, 85 struct acpi_table_header *return_header); 86 87acpi_status 88acpi_tb_get_table_body ( 89 struct acpi_pointer *address, 90 struct acpi_table_header *header, 91 struct acpi_table_desc *table_info); 92 93acpi_status 94acpi_tb_get_table_ptr ( 95 acpi_table_type table_type, 96 u32 instance, 97 struct acpi_table_header **table_ptr_loc); 98 99acpi_status 100acpi_tb_verify_rsdp ( 101 struct acpi_pointer *address); 102 103void 104acpi_tb_get_rsdt_address ( 105 struct acpi_pointer *out_address); 106 107acpi_status 108acpi_tb_validate_rsdt ( 109 struct acpi_table_header *table_ptr); 110 111 112/* 113 * tbgetall - get multiple required tables 114 */ 115acpi_status 116acpi_tb_get_required_tables ( 117 void); 118 119 120/* 121 * tbinstall - Table installation 122 */ 123acpi_status 124acpi_tb_install_table ( 125 struct acpi_table_desc *table_info); 126 127acpi_status 128acpi_tb_recognize_table ( 129 struct acpi_table_desc *table_info, 130 u8 search_type); 131 132acpi_status 133acpi_tb_init_table_descriptor ( 134 acpi_table_type table_type, 135 struct acpi_table_desc *table_info); 136 137 138/* 139 * tbremove - Table removal and deletion 140 */ 141void 142acpi_tb_delete_all_tables ( 143 void); 144 145void 146acpi_tb_delete_tables_by_type ( 147 acpi_table_type type); 148 149void 150acpi_tb_delete_single_table ( 151 struct acpi_table_desc *table_desc); 152 153struct acpi_table_desc * 154acpi_tb_uninstall_table ( 155 struct acpi_table_desc *table_desc); 156 157 158/* 159 * tbxfroot - RSDP, RSDT utilities 160 */ 161acpi_status 162acpi_tb_find_table ( 163 char *signature, 164 char *oem_id, 165 char *oem_table_id, 166 struct acpi_table_header **table_ptr); 167 168acpi_status 169acpi_tb_get_table_rsdt ( 170 void); 171 172 173/* 174 * tbutils - common table utilities 175 */ 176acpi_status 177acpi_tb_verify_table_checksum ( 178 struct acpi_table_header *table_header); 179 180u8 181acpi_tb_checksum ( 182 void *buffer, 183 u32 length); 184 185acpi_status 186acpi_tb_validate_table_header ( 187 struct acpi_table_header *table_header); 188 189#endif /* __ACTABLES_H__ */