/******************************************************************************1*2* Name: actables.h - ACPI table management3*4*****************************************************************************/56/*7* Copyright (C) 2000 - 2011, Intel Corp.8* All rights reserved.9*10* Redistribution and use in source and binary forms, with or without11* modification, are permitted provided that the following conditions12* are met:13* 1. Redistributions of source code must retain the above copyright14* notice, this list of conditions, and the following disclaimer,15* without modification.16* 2. Redistributions in binary form must reproduce at minimum a disclaimer17* substantially similar to the "NO WARRANTY" disclaimer below18* ("Disclaimer") and any redistribution must be conditioned upon19* including a substantially similar Disclaimer requirement for further20* binary redistribution.21* 3. Neither the names of the above-listed copyright holders nor the names22* of any contributors may be used to endorse or promote products derived23* from this software without specific prior written permission.24*25* Alternatively, this software may be distributed under the terms of the26* GNU General Public License ("GPL") version 2 as published by the Free27* Software Foundation.28*29* NO WARRANTY30* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS31* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT32* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR33* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT34* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL35* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS36* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)37* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,38* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING39* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE40* POSSIBILITY OF SUCH DAMAGES.41*/4243#ifndef __ACTABLES_H__44#define __ACTABLES_H__4546acpi_status acpi_allocate_root_table(u32 initial_table_count);4748/*49* tbfadt - FADT parse/convert/validate50*/51void acpi_tb_parse_fadt(u32 table_index);5253void acpi_tb_create_local_fadt(struct acpi_table_header *table, u32 length);5455/*56* tbfind - find ACPI table57*/58acpi_status59acpi_tb_find_table(char *signature,60char *oem_id, char *oem_table_id, u32 *table_index);6162/*63* tbinstal - Table removal and deletion64*/65acpi_status acpi_tb_resize_root_table_list(void);6667acpi_status acpi_tb_verify_table(struct acpi_table_desc *table_desc);6869acpi_status70acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index);7172acpi_status73acpi_tb_store_table(acpi_physical_address address,74struct acpi_table_header *table,75u32 length, u8 flags, u32 *table_index);7677void acpi_tb_delete_table(struct acpi_table_desc *table_desc);7879void acpi_tb_terminate(void);8081acpi_status acpi_tb_delete_namespace_by_owner(u32 table_index);8283acpi_status acpi_tb_allocate_owner_id(u32 table_index);8485acpi_status acpi_tb_release_owner_id(u32 table_index);8687acpi_status acpi_tb_get_owner_id(u32 table_index, acpi_owner_id *owner_id);8889u8 acpi_tb_is_table_loaded(u32 table_index);9091void acpi_tb_set_table_loaded_flag(u32 table_index, u8 is_loaded);9293/*94* tbutils - table manager utilities95*/96acpi_status acpi_tb_initialize_facs(void);9798u8 acpi_tb_tables_loaded(void);99100void101acpi_tb_print_table_header(acpi_physical_address address,102struct acpi_table_header *header);103104u8 acpi_tb_checksum(u8 *buffer, u32 length);105106acpi_status107acpi_tb_verify_checksum(struct acpi_table_header *table, u32 length);108109void acpi_tb_check_dsdt_header(void);110111struct acpi_table_header *acpi_tb_copy_dsdt(u32 table_index);112113void114acpi_tb_install_table(acpi_physical_address address,115char *signature, u32 table_index);116117acpi_status acpi_tb_parse_root_table(acpi_physical_address rsdp_address);118119#endif /* __ACTABLES_H__ */120121122