diff options
author | Bob Moore <robert.moore@intel.com> | 2007-02-02 11:48:18 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-02-02 21:14:21 -0500 |
commit | f3d2e7865c816258c699ff965768e46b50d536d3 (patch) | |
tree | 83d21269e506109275b77d3ed161883bba8a39cf /include/acpi/actables.h | |
parent | 2e42005bcdb4f63bed1cea7f537a5534d4bd7a57 (diff) |
ACPICA: Implement simplified Table Manager
The Table Manager component has been completely
redesigned and reimplemented. The new design is much
simpler, and reduces the overall code and data size of
the kernel-resident ACPICA by approximately 5%. Also,
it is now possible to obtain the ACPI tables very early
during kernel initialization, even before dynamic memory
management is initialized.
Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include/acpi/actables.h')
-rw-r--r-- | include/acpi/actables.h | 103 |
1 files changed, 30 insertions, 73 deletions
diff --git a/include/acpi/actables.h b/include/acpi/actables.h index 4dbaf02fe526..1737a2f045f6 100644 --- a/include/acpi/actables.h +++ b/include/acpi/actables.h | |||
@@ -44,105 +44,62 @@ | |||
44 | #ifndef __ACTABLES_H__ | 44 | #ifndef __ACTABLES_H__ |
45 | #define __ACTABLES_H__ | 45 | #define __ACTABLES_H__ |
46 | 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 | /* | 47 | /* |
65 | * tbget - Table "get" routines | 48 | * tbfind - find ACPI table |
66 | */ | 49 | */ |
67 | acpi_status | 50 | acpi_status |
68 | acpi_tb_get_table(struct acpi_pointer *address, | 51 | acpi_tb_find_table(char *signature, |
69 | struct acpi_table_desc *table_info); | 52 | char *oem_id, |
70 | 53 | char *oem_table_id, acpi_native_uint * table_index); | |
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 | 54 | ||
90 | /* | 55 | /* |
91 | * tbgetall - get multiple required tables | 56 | * tbinstal - Table removal and deletion |
92 | */ | 57 | */ |
93 | acpi_status acpi_tb_get_required_tables(void); | 58 | acpi_status acpi_tb_resize_root_table_list(void); |
94 | 59 | ||
95 | /* | 60 | acpi_status acpi_tb_verify_table(struct acpi_table_desc *table_desc); |
96 | * tbinstall - Table installation | ||
97 | */ | ||
98 | acpi_status acpi_tb_install_table(struct acpi_table_desc *table_info); | ||
99 | 61 | ||
100 | acpi_status | 62 | acpi_status |
101 | acpi_tb_recognize_table(struct acpi_table_desc *table_info, u8 search_type); | 63 | acpi_tb_add_table(struct acpi_table_header *table, |
64 | acpi_native_uint * table_index); | ||
102 | 65 | ||
103 | acpi_status | 66 | acpi_status |
104 | acpi_tb_init_table_descriptor(acpi_table_type table_type, | 67 | acpi_tb_store_table(acpi_physical_address address, |
105 | struct acpi_table_desc *table_info); | 68 | struct acpi_table_header *table, |
69 | u32 length, u8 flags, acpi_native_uint * table_index); | ||
106 | 70 | ||
107 | /* | 71 | void acpi_tb_delete_table(acpi_native_uint table_index); |
108 | * tbremove - Table removal and deletion | ||
109 | */ | ||
110 | void acpi_tb_delete_all_tables(void); | ||
111 | 72 | ||
112 | void acpi_tb_delete_tables_by_type(acpi_table_type type); | 73 | void acpi_tb_terminate(void); |
113 | 74 | ||
114 | void acpi_tb_delete_single_table(struct acpi_table_desc *table_desc); | 75 | void acpi_tb_delete_namespace_by_owner(acpi_native_uint table_index); |
115 | 76 | ||
116 | struct acpi_table_desc *acpi_tb_uninstall_table(struct acpi_table_desc | 77 | acpi_status acpi_tb_allocate_owner_id(acpi_native_uint table_index); |
117 | *table_desc); | 78 | |
79 | acpi_status acpi_tb_release_owner_id(acpi_native_uint table_index); | ||
118 | 80 | ||
119 | /* | ||
120 | * tbxfroot - RSDP, RSDT utilities | ||
121 | */ | ||
122 | acpi_status | 81 | acpi_status |
123 | acpi_tb_find_table(char *signature, | 82 | acpi_tb_get_owner_id(acpi_native_uint table_index, acpi_owner_id * owner_id); |
124 | char *oem_id, | ||
125 | char *oem_table_id, struct acpi_table_header **table_ptr); | ||
126 | 83 | ||
127 | acpi_status acpi_tb_get_table_rsdt(void); | 84 | u8 acpi_tb_is_table_loaded(acpi_native_uint table_index); |
128 | 85 | ||
129 | acpi_status acpi_tb_validate_rsdp(struct rsdp_descriptor *rsdp); | 86 | void acpi_tb_set_table_loaded_flag(acpi_native_uint table_index, u8 is_loaded); |
130 | 87 | ||
131 | /* | 88 | /* |
132 | * tbutils - common table utilities | 89 | * tbutils - table manager utilities |
133 | */ | 90 | */ |
134 | acpi_status acpi_tb_is_table_installed(struct acpi_table_desc *new_table_desc); | 91 | void |
92 | acpi_tb_print_table_header(acpi_physical_address address, | ||
93 | struct acpi_table_header *header); | ||
135 | 94 | ||
136 | acpi_status | 95 | u8 acpi_tb_checksum(u8 * buffer, acpi_native_uint length); |
137 | acpi_tb_verify_table_checksum(struct acpi_table_header *table_header); | ||
138 | 96 | ||
139 | u8 acpi_tb_sum_table(void *buffer, u32 length); | 97 | void acpi_tb_convert_fadt(struct acpi_table_fadt *fadt); |
140 | 98 | ||
141 | u8 acpi_tb_generate_checksum(struct acpi_table_header *table); | 99 | acpi_status acpi_tb_parse_root_table(struct acpi_table_rsdp *rsdp, u8 flags); |
142 | 100 | ||
143 | void acpi_tb_set_checksum(struct acpi_table_header *table); | 101 | void *acpi_tb_map(acpi_physical_address address, u32 length, u32 flags); |
144 | 102 | ||
145 | acpi_status | 103 | void acpi_tb_unmap(void *pointer, u32 length, u32 flags); |
146 | acpi_tb_validate_table_header(struct acpi_table_header *table_header); | ||
147 | 104 | ||
148 | #endif /* __ACTABLES_H__ */ | 105 | #endif /* __ACTABLES_H__ */ |