Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Do not make oldconfig when building kitten
[palacios-OLD.git] / kitten / include / acpi / actables.h
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_sum_table(void *buffer, u32 length);
140
141 u8 acpi_tb_generate_checksum(struct acpi_table_header *table);
142
143 void acpi_tb_set_checksum(struct acpi_table_header *table);
144
145 acpi_status
146 acpi_tb_validate_table_header(struct acpi_table_header *table_header);
147
148 #endif                          /* __ACTABLES_H__ */