aboutsummaryrefslogtreecommitdiffstats
path: root/include/acpi/acdisasm.h
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2006-03-31 00:00:00 -0500
committerLen Brown <len.brown@intel.com>2006-06-14 02:04:16 -0400
commit793c2388cae3fd023b3b5166354931752d42353c (patch)
tree6859cde48677cf1e9b9766cd1d95081a863c060c /include/acpi/acdisasm.h
parent61686124f47d7c4b78610346c5f8f9d8a6d46bb5 (diff)
ACPI: ACPICA 20060331
Implemented header file support for the following additional ACPI tables: ASF!, BOOT, CPEP, DBGP, MCFG, SPCR, SPMI, TCPA, and WDRT. With this support, all current and known ACPI tables are now defined in the ACPICA headers and are available for use by device drivers and other software. Implemented support to allow tables that contain ACPI names with invalid characters to be loaded. Previously, this would cause the table load to fail, but since there are several known cases of such tables on existing machines, this change was made to enable ACPI support for them. Also, this matches the behavior of the Microsoft ACPI implementation. https://bugzilla.novell.com/show_bug.cgi?id=147621 Fixed a couple regressions introduced during the memory optimization in the 20060317 release. The namespace node definition required additional reorganization and an internal datatype that had been changed to 8-bit was restored to 32-bit. (Valery Podrezov) Fixed a problem where a null pointer passed to acpi_ut_delete_generic_state() could be passed through to acpi_os_release_object which is unexpected. Such null pointers are now trapped and ignored, matching the behavior of the previous implementation before the deployment of acpi_os_release_object(). (Valery Podrezov, Fiodor Suietov) Fixed a memory mapping leak during the deletion of a SystemMemory operation region where a cached memory mapping was not deleted. This became a noticeable problem for operation regions that are defined within frequently used control methods. (Dana Meyers) Reorganized the ACPI table header files into two main files: one for the ACPI tables consumed by the ACPICA core, and another for the miscellaneous ACPI tables that are consumed by the drivers and other software. The various FADT definitions were merged into one common section and three different tables (ACPI 1.0, 1.0+, and 2.0) Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include/acpi/acdisasm.h')
-rw-r--r--include/acpi/acdisasm.h141
1 files changed, 134 insertions, 7 deletions
diff --git a/include/acpi/acdisasm.h b/include/acpi/acdisasm.h
index f004461a7753..70b52ffa969e 100644
--- a/include/acpi/acdisasm.h
+++ b/include/acpi/acdisasm.h
@@ -59,14 +59,52 @@ struct acpi_external_list {
59 59
60extern struct acpi_external_list *acpi_gbl_external_list; 60extern struct acpi_external_list *acpi_gbl_external_list;
61 61
62/* Strings used for decoding flags to ASL keywords */ 62typedef const struct acpi_dmtable_info {
63 u8 opcode;
64 u8 offset;
65 char *name;
63 66
64extern const char *acpi_gbl_word_decode[4]; 67} acpi_dmtable_info;
65extern const char *acpi_gbl_irq_decode[2]; 68
66extern const char *acpi_gbl_lock_rule[ACPI_NUM_LOCK_RULES]; 69/*
67extern const char *acpi_gbl_access_types[ACPI_NUM_ACCESS_TYPES]; 70 * Values for Opcode above.
68extern const char *acpi_gbl_update_rules[ACPI_NUM_UPDATE_RULES]; 71 * Note: 0-7 must not change, used as a flag shift value
69extern const char *acpi_gbl_match_ops[ACPI_NUM_MATCH_OPS]; 72 */
73#define ACPI_DMT_FLAG0 0
74#define ACPI_DMT_FLAG1 1
75#define ACPI_DMT_FLAG2 2
76#define ACPI_DMT_FLAG3 3
77#define ACPI_DMT_FLAG4 4
78#define ACPI_DMT_FLAG5 5
79#define ACPI_DMT_FLAG6 6
80#define ACPI_DMT_FLAG7 7
81#define ACPI_DMT_FLAGS0 8
82#define ACPI_DMT_FLAGS2 9
83#define ACPI_DMT_UINT8 10
84#define ACPI_DMT_UINT16 11
85#define ACPI_DMT_UINT24 12
86#define ACPI_DMT_UINT32 13
87#define ACPI_DMT_UINT56 14
88#define ACPI_DMT_UINT64 15
89#define ACPI_DMT_STRING 16
90#define ACPI_DMT_NAME4 17
91#define ACPI_DMT_NAME6 18
92#define ACPI_DMT_NAME8 19
93#define ACPI_DMT_CHKSUM 20
94#define ACPI_DMT_SPACEID 21
95#define ACPI_DMT_GAS 22
96#define ACPI_DMT_MADT 23
97#define ACPI_DMT_SRAT 24
98#define ACPI_DMT_EXIT 25
99
100typedef
101void (*ACPI_TABLE_HANDLER) (struct acpi_table_header * table);
102
103struct acpi_dmtable_data {
104 char *signature;
105 struct acpi_dmtable_info *table_info;
106 ACPI_TABLE_HANDLER table_handler;
107};
70 108
71struct acpi_op_walk_info { 109struct acpi_op_walk_info {
72 u32 level; 110 u32 level;
@@ -84,6 +122,95 @@ struct acpi_resource_tag {
84 char *tag; 122 char *tag;
85}; 123};
86 124
125/* Strings used for decoding flags to ASL keywords */
126
127extern const char *acpi_gbl_word_decode[4];
128extern const char *acpi_gbl_irq_decode[2];
129extern const char *acpi_gbl_lock_rule[ACPI_NUM_LOCK_RULES];
130extern const char *acpi_gbl_access_types[ACPI_NUM_ACCESS_TYPES];
131extern const char *acpi_gbl_update_rules[ACPI_NUM_UPDATE_RULES];
132extern const char *acpi_gbl_match_ops[ACPI_NUM_MATCH_OPS];
133
134extern struct acpi_dmtable_info acpi_dm_table_info_asf0[];
135extern struct acpi_dmtable_info acpi_dm_table_info_asf1[];
136extern struct acpi_dmtable_info acpi_dm_table_info_asf2[];
137extern struct acpi_dmtable_info acpi_dm_table_info_asf3[];
138extern struct acpi_dmtable_info acpi_dm_table_info_asf4[];
139extern struct acpi_dmtable_info acpi_dm_table_info_asf_hdr[];
140extern struct acpi_dmtable_info acpi_dm_table_info_boot[];
141extern struct acpi_dmtable_info acpi_dm_table_info_cpep[];
142extern struct acpi_dmtable_info acpi_dm_table_info_cpep0[];
143extern struct acpi_dmtable_info acpi_dm_table_info_dbgp[];
144extern struct acpi_dmtable_info acpi_dm_table_info_ecdt[];
145extern struct acpi_dmtable_info acpi_dm_table_info_facs[];
146extern struct acpi_dmtable_info acpi_dm_table_info_fadt1[];
147extern struct acpi_dmtable_info acpi_dm_table_info_fadt2[];
148extern struct acpi_dmtable_info acpi_dm_table_info_gas[];
149extern struct acpi_dmtable_info acpi_dm_table_info_header[];
150extern struct acpi_dmtable_info acpi_dm_table_info_hpet[];
151extern struct acpi_dmtable_info acpi_dm_table_info_madt[];
152extern struct acpi_dmtable_info acpi_dm_table_info_madt0[];
153extern struct acpi_dmtable_info acpi_dm_table_info_madt1[];
154extern struct acpi_dmtable_info acpi_dm_table_info_madt2[];
155extern struct acpi_dmtable_info acpi_dm_table_info_madt3[];
156extern struct acpi_dmtable_info acpi_dm_table_info_madt4[];
157extern struct acpi_dmtable_info acpi_dm_table_info_madt5[];
158extern struct acpi_dmtable_info acpi_dm_table_info_madt6[];
159extern struct acpi_dmtable_info acpi_dm_table_info_madt7[];
160extern struct acpi_dmtable_info acpi_dm_table_info_madt8[];
161extern struct acpi_dmtable_info acpi_dm_table_info_madt_hdr[];
162extern struct acpi_dmtable_info acpi_dm_table_info_mcfg[];
163extern struct acpi_dmtable_info acpi_dm_table_info_mcfg0[];
164extern struct acpi_dmtable_info acpi_dm_table_info_rsdp1[];
165extern struct acpi_dmtable_info acpi_dm_table_info_rsdp2[];
166extern struct acpi_dmtable_info acpi_dm_table_info_sbst[];
167extern struct acpi_dmtable_info acpi_dm_table_info_slit[];
168extern struct acpi_dmtable_info acpi_dm_table_info_spcr[];
169extern struct acpi_dmtable_info acpi_dm_table_info_spmi[];
170extern struct acpi_dmtable_info acpi_dm_table_info_srat[];
171extern struct acpi_dmtable_info acpi_dm_table_info_srat0[];
172extern struct acpi_dmtable_info acpi_dm_table_info_srat1[];
173extern struct acpi_dmtable_info acpi_dm_table_info_tcpa[];
174extern struct acpi_dmtable_info acpi_dm_table_info_wdrt[];
175
176/*
177 * dmtable
178 */
179void acpi_dm_dump_data_table(struct acpi_table_header *table);
180
181void
182acpi_dm_dump_table(u32 table_length,
183 u32 table_offset,
184 void *table,
185 u32 sub_table_length, struct acpi_dmtable_info *info);
186
187void acpi_dm_line_header(u32 offset, u32 byte_length, char *name);
188
189void acpi_dm_line_header2(u32 offset, u32 byte_length, char *name, u32 value);
190
191/*
192 * dmtbdump
193 */
194void acpi_dm_dump_asf(struct acpi_table_header *table);
195
196void acpi_dm_dump_cpep(struct acpi_table_header *table);
197
198void acpi_dm_dump_fadt(struct acpi_table_header *table);
199
200void acpi_dm_dump_srat(struct acpi_table_header *table);
201
202void acpi_dm_dump_mcfg(struct acpi_table_header *table);
203
204void acpi_dm_dump_madt(struct acpi_table_header *table);
205
206u32 acpi_dm_dump_rsdp(struct acpi_table_header *table);
207
208void acpi_dm_dump_rsdt(struct acpi_table_header *table);
209
210void acpi_dm_dump_slit(struct acpi_table_header *table);
211
212void acpi_dm_dump_xsdt(struct acpi_table_header *table);
213
87/* 214/*
88 * dmwalk 215 * dmwalk
89 */ 216 */