diff options
Diffstat (limited to 'include/acpi/acdisasm.h')
-rw-r--r-- | include/acpi/acdisasm.h | 445 |
1 files changed, 0 insertions, 445 deletions
diff --git a/include/acpi/acdisasm.h b/include/acpi/acdisasm.h deleted file mode 100644 index 0c1ed387073c..000000000000 --- a/include/acpi/acdisasm.h +++ /dev/null | |||
@@ -1,445 +0,0 @@ | |||
1 | /****************************************************************************** | ||
2 | * | ||
3 | * Name: acdisasm.h - AML disassembler | ||
4 | * | ||
5 | *****************************************************************************/ | ||
6 | |||
7 | /* | ||
8 | * Copyright (C) 2000 - 2008, Intel Corp. | ||
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 __ACDISASM_H__ | ||
45 | #define __ACDISASM_H__ | ||
46 | |||
47 | #include "amlresrc.h" | ||
48 | |||
49 | #define BLOCK_NONE 0 | ||
50 | #define BLOCK_PAREN 1 | ||
51 | #define BLOCK_BRACE 2 | ||
52 | #define BLOCK_COMMA_LIST 4 | ||
53 | #define ACPI_DEFAULT_RESNAME *(u32 *) "__RD" | ||
54 | |||
55 | struct acpi_external_list { | ||
56 | char *path; | ||
57 | char *internal_path; | ||
58 | struct acpi_external_list *next; | ||
59 | u32 value; | ||
60 | u16 length; | ||
61 | u8 type; | ||
62 | }; | ||
63 | |||
64 | extern struct acpi_external_list *acpi_gbl_external_list; | ||
65 | |||
66 | typedef const struct acpi_dmtable_info { | ||
67 | u8 opcode; | ||
68 | u8 offset; | ||
69 | char *name; | ||
70 | |||
71 | } acpi_dmtable_info; | ||
72 | |||
73 | /* | ||
74 | * Values for Opcode above. | ||
75 | * Note: 0-7 must not change, used as a flag shift value | ||
76 | */ | ||
77 | #define ACPI_DMT_FLAG0 0 | ||
78 | #define ACPI_DMT_FLAG1 1 | ||
79 | #define ACPI_DMT_FLAG2 2 | ||
80 | #define ACPI_DMT_FLAG3 3 | ||
81 | #define ACPI_DMT_FLAG4 4 | ||
82 | #define ACPI_DMT_FLAG5 5 | ||
83 | #define ACPI_DMT_FLAG6 6 | ||
84 | #define ACPI_DMT_FLAG7 7 | ||
85 | #define ACPI_DMT_FLAGS0 8 | ||
86 | #define ACPI_DMT_FLAGS2 9 | ||
87 | #define ACPI_DMT_UINT8 10 | ||
88 | #define ACPI_DMT_UINT16 11 | ||
89 | #define ACPI_DMT_UINT24 12 | ||
90 | #define ACPI_DMT_UINT32 13 | ||
91 | #define ACPI_DMT_UINT56 14 | ||
92 | #define ACPI_DMT_UINT64 15 | ||
93 | #define ACPI_DMT_STRING 16 | ||
94 | #define ACPI_DMT_NAME4 17 | ||
95 | #define ACPI_DMT_NAME6 18 | ||
96 | #define ACPI_DMT_NAME8 19 | ||
97 | #define ACPI_DMT_CHKSUM 20 | ||
98 | #define ACPI_DMT_SPACEID 21 | ||
99 | #define ACPI_DMT_GAS 22 | ||
100 | #define ACPI_DMT_ASF 23 | ||
101 | #define ACPI_DMT_DMAR 24 | ||
102 | #define ACPI_DMT_HEST 25 | ||
103 | #define ACPI_DMT_HESTNTFY 26 | ||
104 | #define ACPI_DMT_HESTNTYP 27 | ||
105 | #define ACPI_DMT_MADT 28 | ||
106 | #define ACPI_DMT_SRAT 29 | ||
107 | #define ACPI_DMT_EXIT 30 | ||
108 | #define ACPI_DMT_SIG 31 | ||
109 | |||
110 | typedef | ||
111 | void (*acpi_dmtable_handler) (struct acpi_table_header * table); | ||
112 | |||
113 | struct acpi_dmtable_data { | ||
114 | char *signature; | ||
115 | struct acpi_dmtable_info *table_info; | ||
116 | acpi_dmtable_handler table_handler; | ||
117 | char *name; | ||
118 | }; | ||
119 | |||
120 | struct acpi_op_walk_info { | ||
121 | u32 level; | ||
122 | u32 last_level; | ||
123 | u32 count; | ||
124 | u32 bit_offset; | ||
125 | u32 flags; | ||
126 | struct acpi_walk_state *walk_state; | ||
127 | }; | ||
128 | |||
129 | typedef | ||
130 | acpi_status(*asl_walk_callback) (union acpi_parse_object * op, | ||
131 | u32 level, void *context); | ||
132 | |||
133 | struct acpi_resource_tag { | ||
134 | u32 bit_index; | ||
135 | char *tag; | ||
136 | }; | ||
137 | |||
138 | /* Strings used for decoding flags to ASL keywords */ | ||
139 | |||
140 | extern const char *acpi_gbl_word_decode[]; | ||
141 | extern const char *acpi_gbl_irq_decode[]; | ||
142 | extern const char *acpi_gbl_lock_rule[]; | ||
143 | extern const char *acpi_gbl_access_types[]; | ||
144 | extern const char *acpi_gbl_update_rules[]; | ||
145 | extern const char *acpi_gbl_match_ops[]; | ||
146 | |||
147 | extern struct acpi_dmtable_info acpi_dm_table_info_asf0[]; | ||
148 | extern struct acpi_dmtable_info acpi_dm_table_info_asf1[]; | ||
149 | extern struct acpi_dmtable_info acpi_dm_table_info_asf1a[]; | ||
150 | extern struct acpi_dmtable_info acpi_dm_table_info_asf2[]; | ||
151 | extern struct acpi_dmtable_info acpi_dm_table_info_asf2a[]; | ||
152 | extern struct acpi_dmtable_info acpi_dm_table_info_asf3[]; | ||
153 | extern struct acpi_dmtable_info acpi_dm_table_info_asf4[]; | ||
154 | extern struct acpi_dmtable_info acpi_dm_table_info_asf_hdr[]; | ||
155 | extern struct acpi_dmtable_info acpi_dm_table_info_boot[]; | ||
156 | extern struct acpi_dmtable_info acpi_dm_table_info_bert[]; | ||
157 | extern struct acpi_dmtable_info acpi_dm_table_info_cpep[]; | ||
158 | extern struct acpi_dmtable_info acpi_dm_table_info_cpep0[]; | ||
159 | extern struct acpi_dmtable_info acpi_dm_table_info_dbgp[]; | ||
160 | extern struct acpi_dmtable_info acpi_dm_table_info_dmar[]; | ||
161 | extern struct acpi_dmtable_info acpi_dm_table_info_dmar_hdr[]; | ||
162 | extern struct acpi_dmtable_info acpi_dm_table_info_dmar_scope[]; | ||
163 | extern struct acpi_dmtable_info acpi_dm_table_info_dmar0[]; | ||
164 | extern struct acpi_dmtable_info acpi_dm_table_info_dmar1[]; | ||
165 | extern struct acpi_dmtable_info acpi_dm_table_info_dmar2[]; | ||
166 | extern struct acpi_dmtable_info acpi_dm_table_info_ecdt[]; | ||
167 | extern struct acpi_dmtable_info acpi_dm_table_info_einj[]; | ||
168 | extern struct acpi_dmtable_info acpi_dm_table_info_einj0[]; | ||
169 | extern struct acpi_dmtable_info acpi_dm_table_info_erst[]; | ||
170 | extern struct acpi_dmtable_info acpi_dm_table_info_facs[]; | ||
171 | extern struct acpi_dmtable_info acpi_dm_table_info_fadt1[]; | ||
172 | extern struct acpi_dmtable_info acpi_dm_table_info_fadt2[]; | ||
173 | extern struct acpi_dmtable_info acpi_dm_table_info_gas[]; | ||
174 | extern struct acpi_dmtable_info acpi_dm_table_info_header[]; | ||
175 | extern struct acpi_dmtable_info acpi_dm_table_info_hest[]; | ||
176 | extern struct acpi_dmtable_info acpi_dm_table_info_hest9[]; | ||
177 | extern struct acpi_dmtable_info acpi_dm_table_info_hest_notify[]; | ||
178 | extern struct acpi_dmtable_info acpi_dm_table_info_hpet[]; | ||
179 | extern struct acpi_dmtable_info acpi_dm_table_info_madt[]; | ||
180 | extern struct acpi_dmtable_info acpi_dm_table_info_madt0[]; | ||
181 | extern struct acpi_dmtable_info acpi_dm_table_info_madt1[]; | ||
182 | extern struct acpi_dmtable_info acpi_dm_table_info_madt2[]; | ||
183 | extern struct acpi_dmtable_info acpi_dm_table_info_madt3[]; | ||
184 | extern struct acpi_dmtable_info acpi_dm_table_info_madt4[]; | ||
185 | extern struct acpi_dmtable_info acpi_dm_table_info_madt5[]; | ||
186 | extern struct acpi_dmtable_info acpi_dm_table_info_madt6[]; | ||
187 | extern struct acpi_dmtable_info acpi_dm_table_info_madt7[]; | ||
188 | extern struct acpi_dmtable_info acpi_dm_table_info_madt8[]; | ||
189 | extern struct acpi_dmtable_info acpi_dm_table_info_madt9[]; | ||
190 | extern struct acpi_dmtable_info acpi_dm_table_info_madt10[]; | ||
191 | extern struct acpi_dmtable_info acpi_dm_table_info_madt_hdr[]; | ||
192 | extern struct acpi_dmtable_info acpi_dm_table_info_mcfg[]; | ||
193 | extern struct acpi_dmtable_info acpi_dm_table_info_mcfg0[]; | ||
194 | extern struct acpi_dmtable_info acpi_dm_table_info_rsdp1[]; | ||
195 | extern struct acpi_dmtable_info acpi_dm_table_info_rsdp2[]; | ||
196 | extern struct acpi_dmtable_info acpi_dm_table_info_sbst[]; | ||
197 | extern struct acpi_dmtable_info acpi_dm_table_info_slic[]; | ||
198 | extern struct acpi_dmtable_info acpi_dm_table_info_slit[]; | ||
199 | extern struct acpi_dmtable_info acpi_dm_table_info_spcr[]; | ||
200 | extern struct acpi_dmtable_info acpi_dm_table_info_spmi[]; | ||
201 | extern struct acpi_dmtable_info acpi_dm_table_info_srat[]; | ||
202 | extern struct acpi_dmtable_info acpi_dm_table_info_srat_hdr[]; | ||
203 | extern struct acpi_dmtable_info acpi_dm_table_info_srat0[]; | ||
204 | extern struct acpi_dmtable_info acpi_dm_table_info_srat1[]; | ||
205 | extern struct acpi_dmtable_info acpi_dm_table_info_srat2[]; | ||
206 | extern struct acpi_dmtable_info acpi_dm_table_info_tcpa[]; | ||
207 | extern struct acpi_dmtable_info acpi_dm_table_info_wdrt[]; | ||
208 | |||
209 | /* | ||
210 | * dmtable | ||
211 | */ | ||
212 | void acpi_dm_dump_data_table(struct acpi_table_header *table); | ||
213 | |||
214 | acpi_status | ||
215 | acpi_dm_dump_table(u32 table_length, | ||
216 | u32 table_offset, | ||
217 | void *table, | ||
218 | u32 sub_table_length, struct acpi_dmtable_info *info); | ||
219 | |||
220 | void acpi_dm_line_header(u32 offset, u32 byte_length, char *name); | ||
221 | |||
222 | void acpi_dm_line_header2(u32 offset, u32 byte_length, char *name, u32 value); | ||
223 | |||
224 | /* | ||
225 | * dmtbdump | ||
226 | */ | ||
227 | void acpi_dm_dump_asf(struct acpi_table_header *table); | ||
228 | |||
229 | void acpi_dm_dump_cpep(struct acpi_table_header *table); | ||
230 | |||
231 | void acpi_dm_dump_dmar(struct acpi_table_header *table); | ||
232 | |||
233 | void acpi_dm_dump_einj(struct acpi_table_header *table); | ||
234 | |||
235 | void acpi_dm_dump_erst(struct acpi_table_header *table); | ||
236 | |||
237 | void acpi_dm_dump_fadt(struct acpi_table_header *table); | ||
238 | |||
239 | void acpi_dm_dump_hest(struct acpi_table_header *table); | ||
240 | |||
241 | void acpi_dm_dump_mcfg(struct acpi_table_header *table); | ||
242 | |||
243 | void acpi_dm_dump_madt(struct acpi_table_header *table); | ||
244 | |||
245 | u32 acpi_dm_dump_rsdp(struct acpi_table_header *table); | ||
246 | |||
247 | void acpi_dm_dump_rsdt(struct acpi_table_header *table); | ||
248 | |||
249 | void acpi_dm_dump_slit(struct acpi_table_header *table); | ||
250 | |||
251 | void acpi_dm_dump_srat(struct acpi_table_header *table); | ||
252 | |||
253 | void acpi_dm_dump_xsdt(struct acpi_table_header *table); | ||
254 | |||
255 | /* | ||
256 | * dmwalk | ||
257 | */ | ||
258 | void | ||
259 | acpi_dm_disassemble(struct acpi_walk_state *walk_state, | ||
260 | union acpi_parse_object *origin, u32 num_opcodes); | ||
261 | |||
262 | void | ||
263 | acpi_dm_walk_parse_tree(union acpi_parse_object *op, | ||
264 | asl_walk_callback descending_callback, | ||
265 | asl_walk_callback ascending_callback, void *context); | ||
266 | |||
267 | /* | ||
268 | * dmopcode | ||
269 | */ | ||
270 | void | ||
271 | acpi_dm_disassemble_one_op(struct acpi_walk_state *walk_state, | ||
272 | struct acpi_op_walk_info *info, | ||
273 | union acpi_parse_object *op); | ||
274 | |||
275 | void acpi_dm_decode_internal_object(union acpi_operand_object *obj_desc); | ||
276 | |||
277 | u32 acpi_dm_list_type(union acpi_parse_object *op); | ||
278 | |||
279 | void acpi_dm_method_flags(union acpi_parse_object *op); | ||
280 | |||
281 | void acpi_dm_field_flags(union acpi_parse_object *op); | ||
282 | |||
283 | void acpi_dm_address_space(u8 space_id); | ||
284 | |||
285 | void acpi_dm_region_flags(union acpi_parse_object *op); | ||
286 | |||
287 | void acpi_dm_match_op(union acpi_parse_object *op); | ||
288 | |||
289 | u8 acpi_dm_comma_if_list_member(union acpi_parse_object *op); | ||
290 | |||
291 | void acpi_dm_comma_if_field_member(union acpi_parse_object *op); | ||
292 | |||
293 | /* | ||
294 | * dmnames | ||
295 | */ | ||
296 | u32 acpi_dm_dump_name(char *name); | ||
297 | |||
298 | acpi_status | ||
299 | acpi_ps_display_object_pathname(struct acpi_walk_state *walk_state, | ||
300 | union acpi_parse_object *op); | ||
301 | |||
302 | void acpi_dm_namestring(char *name); | ||
303 | |||
304 | /* | ||
305 | * dmobject | ||
306 | */ | ||
307 | void | ||
308 | acpi_dm_display_internal_object(union acpi_operand_object *obj_desc, | ||
309 | struct acpi_walk_state *walk_state); | ||
310 | |||
311 | void acpi_dm_display_arguments(struct acpi_walk_state *walk_state); | ||
312 | |||
313 | void acpi_dm_display_locals(struct acpi_walk_state *walk_state); | ||
314 | |||
315 | void | ||
316 | acpi_dm_dump_method_info(acpi_status status, | ||
317 | struct acpi_walk_state *walk_state, | ||
318 | union acpi_parse_object *op); | ||
319 | |||
320 | /* | ||
321 | * dmbuffer | ||
322 | */ | ||
323 | void acpi_dm_disasm_byte_list(u32 level, u8 * byte_data, u32 byte_count); | ||
324 | |||
325 | void | ||
326 | acpi_dm_byte_list(struct acpi_op_walk_info *info, union acpi_parse_object *op); | ||
327 | |||
328 | void acpi_dm_is_eisa_id(union acpi_parse_object *op); | ||
329 | |||
330 | void acpi_dm_eisa_id(u32 encoded_id); | ||
331 | |||
332 | u8 acpi_dm_is_unicode_buffer(union acpi_parse_object *op); | ||
333 | |||
334 | u8 acpi_dm_is_string_buffer(union acpi_parse_object *op); | ||
335 | |||
336 | /* | ||
337 | * dmresrc | ||
338 | */ | ||
339 | void acpi_dm_dump_integer8(u8 value, char *name); | ||
340 | |||
341 | void acpi_dm_dump_integer16(u16 value, char *name); | ||
342 | |||
343 | void acpi_dm_dump_integer32(u32 value, char *name); | ||
344 | |||
345 | void acpi_dm_dump_integer64(u64 value, char *name); | ||
346 | |||
347 | void | ||
348 | acpi_dm_resource_template(struct acpi_op_walk_info *info, | ||
349 | union acpi_parse_object *op, | ||
350 | u8 * byte_data, u32 byte_count); | ||
351 | |||
352 | acpi_status acpi_dm_is_resource_template(union acpi_parse_object *op); | ||
353 | |||
354 | void acpi_dm_indent(u32 level); | ||
355 | |||
356 | void acpi_dm_bit_list(u16 mask); | ||
357 | |||
358 | void acpi_dm_decode_attribute(u8 attribute); | ||
359 | |||
360 | void acpi_dm_descriptor_name(void); | ||
361 | |||
362 | /* | ||
363 | * dmresrcl | ||
364 | */ | ||
365 | void | ||
366 | acpi_dm_word_descriptor(union aml_resource *resource, u32 length, u32 level); | ||
367 | |||
368 | void | ||
369 | acpi_dm_dword_descriptor(union aml_resource *resource, u32 length, u32 level); | ||
370 | |||
371 | void | ||
372 | acpi_dm_extended_descriptor(union aml_resource *resource, | ||
373 | u32 length, u32 level); | ||
374 | |||
375 | void | ||
376 | acpi_dm_qword_descriptor(union aml_resource *resource, u32 length, u32 level); | ||
377 | |||
378 | void | ||
379 | acpi_dm_memory24_descriptor(union aml_resource *resource, | ||
380 | u32 length, u32 level); | ||
381 | |||
382 | void | ||
383 | acpi_dm_memory32_descriptor(union aml_resource *resource, | ||
384 | u32 length, u32 level); | ||
385 | |||
386 | void | ||
387 | acpi_dm_fixed_memory32_descriptor(union aml_resource *resource, | ||
388 | u32 length, u32 level); | ||
389 | |||
390 | void | ||
391 | acpi_dm_generic_register_descriptor(union aml_resource *resource, | ||
392 | u32 length, u32 level); | ||
393 | |||
394 | void | ||
395 | acpi_dm_interrupt_descriptor(union aml_resource *resource, | ||
396 | u32 length, u32 level); | ||
397 | |||
398 | void | ||
399 | acpi_dm_vendor_large_descriptor(union aml_resource *resource, | ||
400 | u32 length, u32 level); | ||
401 | |||
402 | void acpi_dm_vendor_common(char *name, u8 * byte_data, u32 length, u32 level); | ||
403 | |||
404 | /* | ||
405 | * dmresrcs | ||
406 | */ | ||
407 | void | ||
408 | acpi_dm_irq_descriptor(union aml_resource *resource, u32 length, u32 level); | ||
409 | |||
410 | void | ||
411 | acpi_dm_dma_descriptor(union aml_resource *resource, u32 length, u32 level); | ||
412 | |||
413 | void acpi_dm_io_descriptor(union aml_resource *resource, u32 length, u32 level); | ||
414 | |||
415 | void | ||
416 | acpi_dm_fixed_io_descriptor(union aml_resource *resource, | ||
417 | u32 length, u32 level); | ||
418 | |||
419 | void | ||
420 | acpi_dm_start_dependent_descriptor(union aml_resource *resource, | ||
421 | u32 length, u32 level); | ||
422 | |||
423 | void | ||
424 | acpi_dm_end_dependent_descriptor(union aml_resource *resource, | ||
425 | u32 length, u32 level); | ||
426 | |||
427 | void | ||
428 | acpi_dm_vendor_small_descriptor(union aml_resource *resource, | ||
429 | u32 length, u32 level); | ||
430 | |||
431 | /* | ||
432 | * dmutils | ||
433 | */ | ||
434 | void acpi_dm_add_to_external_list(char *path, u8 type, u32 value); | ||
435 | |||
436 | /* | ||
437 | * dmrestag | ||
438 | */ | ||
439 | void acpi_dm_find_resources(union acpi_parse_object *root); | ||
440 | |||
441 | void | ||
442 | acpi_dm_check_resource_reference(union acpi_parse_object *op, | ||
443 | struct acpi_walk_state *walk_state); | ||
444 | |||
445 | #endif /* __ACDISASM_H__ */ | ||