]>
Commit | Line | Data |
---|---|---|
a6eaba4d | 1 | /** @file\r |
ee4dc24f RN |
2 | Header file for ACPI parser\r |
3 | \r | |
558b37b4 | 4 | Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.\r |
d4633b36 | 5 | Copyright (c) 2016 - 2020, Arm Limited. All rights reserved.\r |
691b1786 | 6 | Copyright (c) 2022, AMD Incorporated. All rights reserved.\r |
56ba3746 | 7 | SPDX-License-Identifier: BSD-2-Clause-Patent\r |
ee4dc24f RN |
8 | **/\r |
9 | \r | |
10 | #ifndef ACPIPARSER_H_\r | |
11 | #define ACPIPARSER_H_\r | |
12 | \r | |
13 | #define OUTPUT_FIELD_COLUMN_WIDTH 36\r | |
14 | \r | |
15 | /// The RSDP table signature is "RSD PTR " (8 bytes)\r | |
16 | /// However The signature for ACPI tables is 4 bytes.\r | |
17 | /// To work around this oddity define a signature type\r | |
18 | /// that allows us to process the log options.\r | |
19 | #define RSDP_TABLE_INFO SIGNATURE_32('R', 'S', 'D', 'P')\r | |
20 | \r | |
a6eaba4d DB |
21 | /**\r |
22 | This function increments the ACPI table error counter.\r | |
23 | **/\r | |
ee4dc24f RN |
24 | VOID\r |
25 | EFIAPI\r | |
26 | IncrementErrorCount (\r | |
27 | VOID\r | |
28 | );\r | |
29 | \r | |
a6eaba4d DB |
30 | /**\r |
31 | This function increments the ACPI table warning counter.\r | |
32 | **/\r | |
ee4dc24f RN |
33 | VOID\r |
34 | EFIAPI\r | |
35 | IncrementWarningCount (\r | |
36 | VOID\r | |
37 | );\r | |
38 | \r | |
a6eaba4d DB |
39 | /**\r |
40 | This function verifies the ACPI table checksum.\r | |
ee4dc24f RN |
41 | \r |
42 | This function verifies the checksum for the ACPI table and optionally\r | |
43 | prints the status.\r | |
44 | \r | |
45 | @param [in] Log If TRUE log the status of the checksum.\r | |
46 | @param [in] Ptr Pointer to the start of the table buffer.\r | |
47 | @param [in] Length The length of the buffer.\r | |
48 | \r | |
49 | @retval TRUE The checksum is OK.\r | |
50 | @retval FALSE The checksum failed.\r | |
a6eaba4d | 51 | **/\r |
ee4dc24f RN |
52 | BOOLEAN\r |
53 | EFIAPI\r | |
54 | VerifyChecksum (\r | |
47d20b54 MK |
55 | IN BOOLEAN Log,\r |
56 | IN UINT8 *Ptr,\r | |
57 | IN UINT32 Length\r | |
ee4dc24f RN |
58 | );\r |
59 | \r | |
a6eaba4d DB |
60 | /**\r |
61 | This function performs a raw data dump of the ACPI table.\r | |
ee4dc24f RN |
62 | \r |
63 | @param [in] Ptr Pointer to the start of the table buffer.\r | |
64 | @param [in] Length The length of the buffer.\r | |
a6eaba4d | 65 | **/\r |
ee4dc24f RN |
66 | VOID\r |
67 | EFIAPI\r | |
68 | DumpRaw (\r | |
47d20b54 MK |
69 | IN UINT8 *Ptr,\r |
70 | IN UINT32 Length\r | |
ee4dc24f RN |
71 | );\r |
72 | \r | |
a6eaba4d DB |
73 | /**\r |
74 | This function traces 1 byte of datum as specified in the format string.\r | |
ee4dc24f RN |
75 | \r |
76 | @param [in] Format The format string for tracing the data.\r | |
77 | @param [in] Ptr Pointer to the start of the buffer.\r | |
a6eaba4d | 78 | **/\r |
ee4dc24f RN |
79 | VOID\r |
80 | EFIAPI\r | |
81 | DumpUint8 (\r | |
47d20b54 MK |
82 | IN CONST CHAR16 *Format,\r |
83 | IN UINT8 *Ptr\r | |
ee4dc24f RN |
84 | );\r |
85 | \r | |
a6eaba4d DB |
86 | /**\r |
87 | This function traces 2 bytes of data as specified in the format string.\r | |
ee4dc24f RN |
88 | \r |
89 | @param [in] Format The format string for tracing the data.\r | |
90 | @param [in] Ptr Pointer to the start of the buffer.\r | |
a6eaba4d | 91 | **/\r |
ee4dc24f RN |
92 | VOID\r |
93 | EFIAPI\r | |
94 | DumpUint16 (\r | |
47d20b54 MK |
95 | IN CONST CHAR16 *Format,\r |
96 | IN UINT8 *Ptr\r | |
ee4dc24f RN |
97 | );\r |
98 | \r | |
a6eaba4d DB |
99 | /**\r |
100 | This function traces 4 bytes of data as specified in the format string.\r | |
ee4dc24f RN |
101 | \r |
102 | @param [in] Format The format string for tracing the data.\r | |
103 | @param [in] Ptr Pointer to the start of the buffer.\r | |
a6eaba4d | 104 | **/\r |
ee4dc24f RN |
105 | VOID\r |
106 | EFIAPI\r | |
107 | DumpUint32 (\r | |
47d20b54 MK |
108 | IN CONST CHAR16 *Format,\r |
109 | IN UINT8 *Ptr\r | |
ee4dc24f RN |
110 | );\r |
111 | \r | |
a6eaba4d DB |
112 | /**\r |
113 | This function traces 8 bytes of data as specified by the format string.\r | |
ee4dc24f RN |
114 | \r |
115 | @param [in] Format The format string for tracing the data.\r | |
116 | @param [in] Ptr Pointer to the start of the buffer.\r | |
a6eaba4d | 117 | **/\r |
ee4dc24f RN |
118 | VOID\r |
119 | EFIAPI\r | |
120 | DumpUint64 (\r | |
47d20b54 MK |
121 | IN CONST CHAR16 *Format,\r |
122 | IN UINT8 *Ptr\r | |
ee4dc24f RN |
123 | );\r |
124 | \r | |
a6eaba4d DB |
125 | /**\r |
126 | This function traces 3 characters which can be optionally\r | |
127 | formated using the format string if specified.\r | |
ee4dc24f RN |
128 | \r |
129 | If no format string is specified the Format must be NULL.\r | |
130 | \r | |
131 | @param [in] Format Optional format string for tracing the data.\r | |
132 | @param [in] Ptr Pointer to the start of the buffer.\r | |
a6eaba4d | 133 | **/\r |
ee4dc24f RN |
134 | VOID\r |
135 | EFIAPI\r | |
136 | Dump3Chars (\r | |
47d20b54 MK |
137 | IN CONST CHAR16 *Format OPTIONAL,\r |
138 | IN UINT8 *Ptr\r | |
ee4dc24f RN |
139 | );\r |
140 | \r | |
a6eaba4d DB |
141 | /**\r |
142 | This function traces 4 characters which can be optionally\r | |
143 | formated using the format string if specified.\r | |
ee4dc24f RN |
144 | \r |
145 | If no format string is specified the Format must be NULL.\r | |
146 | \r | |
147 | @param [in] Format Optional format string for tracing the data.\r | |
148 | @param [in] Ptr Pointer to the start of the buffer.\r | |
a6eaba4d | 149 | **/\r |
ee4dc24f RN |
150 | VOID\r |
151 | EFIAPI\r | |
152 | Dump4Chars (\r | |
47d20b54 MK |
153 | IN CONST CHAR16 *Format OPTIONAL,\r |
154 | IN UINT8 *Ptr\r | |
ee4dc24f RN |
155 | );\r |
156 | \r | |
a6eaba4d DB |
157 | /**\r |
158 | This function traces 6 characters which can be optionally\r | |
159 | formated using the format string if specified.\r | |
ee4dc24f RN |
160 | \r |
161 | If no format string is specified the Format must be NULL.\r | |
162 | \r | |
163 | @param [in] Format Optional format string for tracing the data.\r | |
164 | @param [in] Ptr Pointer to the start of the buffer.\r | |
a6eaba4d | 165 | **/\r |
ee4dc24f RN |
166 | VOID\r |
167 | EFIAPI\r | |
168 | Dump6Chars (\r | |
47d20b54 MK |
169 | IN CONST CHAR16 *Format OPTIONAL,\r |
170 | IN UINT8 *Ptr\r | |
ee4dc24f RN |
171 | );\r |
172 | \r | |
a6eaba4d DB |
173 | /**\r |
174 | This function traces 8 characters which can be optionally\r | |
175 | formated using the format string if specified.\r | |
ee4dc24f RN |
176 | \r |
177 | If no format string is specified the Format must be NULL.\r | |
178 | \r | |
179 | @param [in] Format Optional format string for tracing the data.\r | |
180 | @param [in] Ptr Pointer to the start of the buffer.\r | |
a6eaba4d | 181 | **/\r |
ee4dc24f RN |
182 | VOID\r |
183 | EFIAPI\r | |
184 | Dump8Chars (\r | |
47d20b54 MK |
185 | IN CONST CHAR16 *Format OPTIONAL,\r |
186 | IN UINT8 *Ptr\r | |
ee4dc24f RN |
187 | );\r |
188 | \r | |
710ff749 KK |
189 | /**\r |
190 | This function traces 12 characters which can be optionally\r | |
191 | formated using the format string if specified.\r | |
192 | \r | |
193 | If no format string is specified the Format must be NULL.\r | |
194 | \r | |
195 | @param [in] Format Optional format string for tracing the data.\r | |
196 | @param [in] Ptr Pointer to the start of the buffer.\r | |
197 | **/\r | |
198 | VOID\r | |
199 | EFIAPI\r | |
200 | Dump12Chars (\r | |
47d20b54 MK |
201 | IN CONST CHAR16 *Format OPTIONAL,\r |
202 | IN UINT8 *Ptr\r | |
710ff749 KK |
203 | );\r |
204 | \r | |
a6eaba4d DB |
205 | /**\r |
206 | This function indents and prints the ACPI table Field Name.\r | |
ee4dc24f RN |
207 | \r |
208 | @param [in] Indent Number of spaces to add to the global table\r | |
209 | indent. The global table indent is 0 by default;\r | |
210 | however this value is updated on entry to the\r | |
211 | ParseAcpi() by adding the indent value provided to\r | |
212 | ParseAcpi() and restored back on exit. Therefore\r | |
213 | the total indent in the output is dependent on from\r | |
214 | where this function is called.\r | |
215 | @param [in] FieldName Pointer to the Field Name.\r | |
a6eaba4d | 216 | **/\r |
ee4dc24f RN |
217 | VOID\r |
218 | EFIAPI\r | |
219 | PrintFieldName (\r | |
47d20b54 MK |
220 | IN UINT32 Indent,\r |
221 | IN CONST CHAR16 *FieldName\r | |
a6eaba4d | 222 | );\r |
ee4dc24f | 223 | \r |
a6eaba4d DB |
224 | /**\r |
225 | This function pointer is the template for customizing the trace output\r | |
ee4dc24f RN |
226 | \r |
227 | @param [in] Format Format string for tracing the data as specified by\r | |
228 | the 'Format' member of ACPI_PARSER.\r | |
229 | @param [in] Ptr Pointer to the start of the buffer.\r | |
a6eaba4d | 230 | **/\r |
47d20b54 | 231 | typedef VOID (EFIAPI *FNPTR_PRINT_FORMATTER)(CONST CHAR16 *Format, UINT8 *Ptr);\r |
ee4dc24f | 232 | \r |
a6eaba4d DB |
233 | /**\r |
234 | This function pointer is the template for validating an ACPI table field.\r | |
ee4dc24f RN |
235 | \r |
236 | @param [in] Ptr Pointer to the start of the field data.\r | |
237 | @param [in] Context Pointer to context specific information as specified by\r | |
238 | the 'Context' member of the ACPI_PARSER.\r | |
239 | e.g. this could be a pointer to the ACPI table header.\r | |
a6eaba4d | 240 | **/\r |
47d20b54 | 241 | typedef VOID (EFIAPI *FNPTR_FIELD_VALIDATOR)(UINT8 *Ptr, VOID *Context);\r |
ee4dc24f | 242 | \r |
a6eaba4d DB |
243 | /**\r |
244 | The ACPI_PARSER structure describes the fields of an ACPI table and\r | |
245 | provides means for the parser to interpret and trace appropriately.\r | |
ee4dc24f RN |
246 | \r |
247 | The first three members are populated based on information present in\r | |
248 | in the ACPI table specifications. The remaining members describe how\r | |
249 | the parser should report the field information, validate the field data\r | |
250 | and/or update an external pointer to the field (ItemPtr).\r | |
251 | \r | |
252 | ParseAcpi() uses the format string specified by 'Format' for tracing\r | |
253 | the field data. If the field is more complex and requires additional\r | |
254 | processing for formatting and representation a print formatter function\r | |
255 | can be specified in 'PrintFormatter'.\r | |
691b1786 ALA |
256 | \r |
257 | ParseAcpiBitFields() uses AcpiParser structure to parse the bit fields.\r | |
258 | It considers Length as a number of bits that need to be parsed.\r | |
259 | Also, the Offset field will be considered as starting offset of the bitfield.\r | |
260 | \r | |
ee4dc24f RN |
261 | The PrintFormatter function may choose to use the format string\r |
262 | specified by 'Format' or use its own internal format string.\r | |
263 | \r | |
264 | The 'Format' and 'PrintFormatter' members allow flexibility for\r | |
265 | representing the field data.\r | |
a6eaba4d | 266 | **/\r |
ee4dc24f | 267 | typedef struct AcpiParser {\r |
ee4dc24f RN |
268 | /// String describing the ACPI table field\r |
269 | /// (Field column from ACPI table spec)\r | |
47d20b54 | 270 | CONST CHAR16 *NameStr;\r |
ee4dc24f RN |
271 | \r |
272 | /// The length of the field.\r | |
273 | /// (Byte Length column from ACPI table spec)\r | |
691b1786 | 274 | /// Length(in bits) of the bitfield if used with ParseAcpiBitFields().\r |
47d20b54 | 275 | UINT32 Length;\r |
ee4dc24f RN |
276 | \r |
277 | /// The offset of the field from the start of the table.\r | |
278 | /// (Byte Offset column from ACPI table spec)\r | |
691b1786 | 279 | /// The Bit offset of the field if used with ParseAcpiBitFields().\r |
47d20b54 | 280 | UINT32 Offset;\r |
ee4dc24f RN |
281 | \r |
282 | /// Optional Print() style format string for tracing the data. If not\r | |
283 | /// used this must be set to NULL.\r | |
47d20b54 | 284 | CONST CHAR16 *Format;\r |
ee4dc24f RN |
285 | \r |
286 | /// Optional pointer to a print formatter function which\r | |
287 | /// is typically used to trace complex field information.\r | |
288 | /// If not used this must be set to NULL.\r | |
289 | /// The Format string is passed to the PrintFormatter function\r | |
290 | /// but may be ignored by the implementation code.\r | |
47d20b54 | 291 | FNPTR_PRINT_FORMATTER PrintFormatter;\r |
ee4dc24f RN |
292 | \r |
293 | /// Optional pointer which may be set to request the parser to update\r | |
8c1b1fe6 CJ |
294 | /// a pointer to the field data. This value is set after the FieldValidator\r |
295 | /// has been called and therefore should not be used by the FieldValidator.\r | |
296 | /// If unused this must be set to NULL.\r | |
691b1786 | 297 | /// ItemPtr is not supported with ParseAcpiBitFields().\r |
47d20b54 | 298 | VOID **ItemPtr;\r |
ee4dc24f RN |
299 | \r |
300 | /// Optional pointer to a field validator function.\r | |
301 | /// The function should directly report any appropriate error or warning\r | |
302 | /// and invoke the appropriate counter update function.\r | |
303 | /// If not used this parameter must be set to NULL.\r | |
47d20b54 | 304 | FNPTR_FIELD_VALIDATOR FieldValidator;\r |
ee4dc24f RN |
305 | \r |
306 | /// Optional pointer to context specific information,\r | |
307 | /// which the Field Validator function can use to determine\r | |
308 | /// additional information about the ACPI table and make\r | |
309 | /// decisions about the field being validated.\r | |
310 | /// e.g. this could be a pointer to the ACPI table header\r | |
47d20b54 | 311 | VOID *Context;\r |
ee4dc24f RN |
312 | } ACPI_PARSER;\r |
313 | \r | |
a6eaba4d DB |
314 | /**\r |
315 | A structure used to store the pointers to the members of the\r | |
316 | ACPI description header structure that was parsed.\r | |
317 | **/\r | |
ee4dc24f RN |
318 | typedef struct AcpiDescriptionHeaderInfo {\r |
319 | /// ACPI table signature\r | |
47d20b54 | 320 | UINT32 *Signature;\r |
ee4dc24f | 321 | /// Length of the ACPI table\r |
47d20b54 | 322 | UINT32 *Length;\r |
ee4dc24f | 323 | /// Revision\r |
47d20b54 | 324 | UINT8 *Revision;\r |
ee4dc24f | 325 | /// Checksum\r |
47d20b54 | 326 | UINT8 *Checksum;\r |
ee4dc24f | 327 | /// OEM Id - length is 6 bytes\r |
47d20b54 | 328 | UINT8 *OemId;\r |
ee4dc24f | 329 | /// OEM table Id\r |
47d20b54 | 330 | UINT64 *OemTableId;\r |
ee4dc24f | 331 | /// OEM revision Id\r |
47d20b54 | 332 | UINT32 *OemRevision;\r |
ee4dc24f | 333 | /// Creator Id\r |
47d20b54 | 334 | UINT32 *CreatorId;\r |
ee4dc24f | 335 | /// Creator revision\r |
47d20b54 | 336 | UINT32 *CreatorRevision;\r |
ee4dc24f RN |
337 | } ACPI_DESCRIPTION_HEADER_INFO;\r |
338 | \r | |
a6eaba4d DB |
339 | /**\r |
340 | This function is used to parse an ACPI table buffer.\r | |
ee4dc24f RN |
341 | \r |
342 | The ACPI table buffer is parsed using the ACPI table parser information\r | |
343 | specified by a pointer to an array of ACPI_PARSER elements. This parser\r | |
344 | function iterates through each item on the ACPI_PARSER array and logs the\r | |
345 | ACPI table fields.\r | |
346 | \r | |
347 | This function can optionally be used to parse ACPI tables and fetch specific\r | |
348 | field values. The ItemPtr member of the ACPI_PARSER structure (where used)\r | |
349 | is updated by this parser function to point to the selected field data\r | |
350 | (e.g. useful for variable length nested fields).\r | |
351 | \r | |
352 | @param [in] Trace Trace the ACPI fields TRUE else only parse the\r | |
353 | table.\r | |
354 | @param [in] Indent Number of spaces to indent the output.\r | |
355 | @param [in] AsciiName Optional pointer to an ASCII string that describes\r | |
356 | the table being parsed.\r | |
357 | @param [in] Ptr Pointer to the start of the buffer.\r | |
358 | @param [in] Length Length of the buffer pointed by Ptr.\r | |
359 | @param [in] Parser Pointer to an array of ACPI_PARSER structure that\r | |
360 | describes the table being parsed.\r | |
361 | @param [in] ParserItems Number of items in the ACPI_PARSER array.\r | |
362 | \r | |
363 | @retval Number of bytes parsed.\r | |
a6eaba4d | 364 | **/\r |
ee4dc24f RN |
365 | UINT32\r |
366 | EFIAPI\r | |
367 | ParseAcpi (\r | |
368 | IN BOOLEAN Trace,\r | |
691b1786 ALA |
369 | IN UINT32 Indent,\r |
370 | IN CONST CHAR8 *AsciiName OPTIONAL,\r | |
371 | IN UINT8 *Ptr,\r | |
372 | IN UINT32 Length,\r | |
373 | IN CONST ACPI_PARSER *Parser,\r | |
374 | IN UINT32 ParserItems\r | |
375 | );\r | |
376 | \r | |
377 | /**\r | |
378 | This function is used to parse an ACPI table bitfield buffer.\r | |
379 | \r | |
380 | The ACPI table buffer is parsed using the ACPI table parser information\r | |
381 | specified by a pointer to an array of ACPI_PARSER elements. This parser\r | |
382 | function iterates through each item on the ACPI_PARSER array and logs the ACPI table bitfields.\r | |
383 | \r | |
384 | This function can optionally be used to parse ACPI tables and fetch specific\r | |
385 | field values. The ItemPtr member of the ACPI_PARSER structure (where used)\r | |
386 | is updated by this parser function to point to the selected field data\r | |
387 | (e.g. useful for variable length nested fields).\r | |
388 | \r | |
389 | ItemPtr member of ACPI_PARSER is not supported with this function.\r | |
390 | \r | |
391 | @param [in] Trace Trace the ACPI fields TRUE else only parse the\r | |
392 | table.\r | |
393 | @param [in] Indent Number of spaces to indent the output.\r | |
394 | @param [in] AsciiName Optional pointer to an ASCII string that describes\r | |
395 | the table being parsed.\r | |
396 | @param [in] Ptr Pointer to the start of the buffer.\r | |
397 | @param [in] Length Length of the buffer pointed by Ptr.\r | |
398 | @param [in] Parser Pointer to an array of ACPI_PARSER structure that\r | |
399 | describes the table being parsed.\r | |
400 | @param [in] ParserItems Number of items in the ACPI_PARSER array.\r | |
401 | \r | |
402 | @retval Number of bits parsed.\r | |
403 | **/\r | |
404 | UINT32\r | |
405 | EFIAPI\r | |
406 | ParseAcpiBitFields (\r | |
407 | IN BOOLEAN Trace,\r | |
ee4dc24f | 408 | IN UINT32 Indent,\r |
47d20b54 MK |
409 | IN CONST CHAR8 *AsciiName OPTIONAL,\r |
410 | IN UINT8 *Ptr,\r | |
ee4dc24f | 411 | IN UINT32 Length,\r |
47d20b54 | 412 | IN CONST ACPI_PARSER *Parser,\r |
ee4dc24f | 413 | IN UINT32 ParserItems\r |
a6eaba4d | 414 | );\r |
ee4dc24f | 415 | \r |
a6eaba4d DB |
416 | /**\r |
417 | This is a helper macro to pass parameters to the Parser functions.\r | |
ee4dc24f RN |
418 | \r |
419 | @param [in] Parser The name of the ACPI_PARSER array describing the\r | |
420 | ACPI table fields.\r | |
a6eaba4d | 421 | **/\r |
47d20b54 | 422 | #define PARSER_PARAMS(Parser) Parser, sizeof (Parser) / sizeof (Parser[0])\r |
ee4dc24f | 423 | \r |
a6eaba4d DB |
424 | /**\r |
425 | This is a helper macro for describing the ACPI header fields.\r | |
ee4dc24f RN |
426 | \r |
427 | @param [out] Info Pointer to retrieve the ACPI table header information.\r | |
a6eaba4d | 428 | **/\r |
ee4dc24f RN |
429 | #define PARSE_ACPI_HEADER(Info) \\r |
430 | { L"Signature", 4, 0, NULL, Dump4Chars, \\r | |
431 | (VOID**)&(Info)->Signature , NULL, NULL }, \\r | |
432 | { L"Length", 4, 4, L"%d", NULL, \\r | |
433 | (VOID**)&(Info)->Length, NULL, NULL }, \\r | |
434 | { L"Revision", 1, 8, L"%d", NULL, \\r | |
435 | (VOID**)&(Info)->Revision, NULL, NULL }, \\r | |
436 | { L"Checksum", 1, 9, L"0x%X", NULL, \\r | |
437 | (VOID**)&(Info)->Checksum, NULL, NULL }, \\r | |
438 | { L"Oem ID", 6, 10, NULL, Dump6Chars, \\r | |
439 | (VOID**)&(Info)->OemId, NULL, NULL }, \\r | |
440 | { L"Oem Table ID", 8, 16, NULL, Dump8Chars, \\r | |
441 | (VOID**)&(Info)->OemTableId, NULL, NULL }, \\r | |
442 | { L"Oem Revision", 4, 24, L"0x%X", NULL, \\r | |
443 | (VOID**)&(Info)->OemRevision, NULL, NULL }, \\r | |
444 | { L"Creator ID", 4, 28, NULL, Dump4Chars, \\r | |
445 | (VOID**)&(Info)->CreatorId, NULL, NULL }, \\r | |
446 | { L"Creator Revision", 4, 32, L"0x%X", NULL, \\r | |
447 | (VOID**)&(Info)->CreatorRevision, NULL, NULL }\r | |
448 | \r | |
a6eaba4d DB |
449 | /**\r |
450 | This function indents and traces the GAS structure as described by the GasParser.\r | |
ee4dc24f RN |
451 | \r |
452 | @param [in] Ptr Pointer to the start of the buffer.\r | |
453 | @param [in] Indent Number of spaces to indent the output.\r | |
58cc0ffe KK |
454 | @param [in] Length Length of the GAS structure buffer.\r |
455 | \r | |
456 | @retval Number of bytes parsed.\r | |
a6eaba4d | 457 | **/\r |
58cc0ffe | 458 | UINT32\r |
ee4dc24f RN |
459 | EFIAPI\r |
460 | DumpGasStruct (\r | |
47d20b54 MK |
461 | IN UINT8 *Ptr,\r |
462 | IN UINT32 Indent,\r | |
463 | IN UINT32 Length\r | |
ee4dc24f RN |
464 | );\r |
465 | \r | |
a6eaba4d DB |
466 | /**\r |
467 | This function traces the GAS structure as described by the GasParser.\r | |
ee4dc24f RN |
468 | \r |
469 | @param [in] Format Optional format string for tracing the data.\r | |
470 | @param [in] Ptr Pointer to the start of the buffer.\r | |
a6eaba4d | 471 | **/\r |
ee4dc24f RN |
472 | VOID\r |
473 | EFIAPI\r | |
474 | DumpGas (\r | |
47d20b54 MK |
475 | IN CONST CHAR16 *Format OPTIONAL,\r |
476 | IN UINT8 *Ptr\r | |
ee4dc24f RN |
477 | );\r |
478 | \r | |
a6eaba4d DB |
479 | /**\r |
480 | This function traces the ACPI header as described by the AcpiHeaderParser.\r | |
ee4dc24f RN |
481 | \r |
482 | @param [in] Ptr Pointer to the start of the buffer.\r | |
483 | \r | |
484 | @retval Number of bytes parsed.\r | |
a6eaba4d | 485 | **/\r |
ee4dc24f RN |
486 | UINT32\r |
487 | EFIAPI\r | |
488 | DumpAcpiHeader (\r | |
47d20b54 | 489 | IN UINT8 *Ptr\r |
ee4dc24f RN |
490 | );\r |
491 | \r | |
a6eaba4d DB |
492 | /**\r |
493 | This function parses the ACPI header as described by the AcpiHeaderParser.\r | |
ee4dc24f RN |
494 | \r |
495 | This function optionally returns the Signature, Length and revision of the\r | |
496 | ACPI table.\r | |
497 | \r | |
498 | @param [in] Ptr Pointer to the start of the buffer.\r | |
499 | @param [out] Signature Gets location of the ACPI table signature.\r | |
500 | @param [out] Length Gets location of the length of the ACPI table.\r | |
501 | @param [out] Revision Gets location of the revision of the ACPI table.\r | |
502 | \r | |
503 | @retval Number of bytes parsed.\r | |
a6eaba4d | 504 | **/\r |
ee4dc24f RN |
505 | UINT32\r |
506 | EFIAPI\r | |
507 | ParseAcpiHeader (\r | |
47d20b54 MK |
508 | IN UINT8 *Ptr,\r |
509 | OUT CONST UINT32 **Signature,\r | |
510 | OUT CONST UINT32 **Length,\r | |
511 | OUT CONST UINT8 **Revision\r | |
ee4dc24f RN |
512 | );\r |
513 | \r | |
1d3d5e32 MMF |
514 | /**\r |
515 | This function parses the ACPI AEST table.\r | |
516 | When trace is enabled this function parses the AEST table and\r | |
517 | traces the ACPI table fields.\r | |
518 | \r | |
519 | This function also performs validation of the ACPI table fields.\r | |
520 | \r | |
521 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
522 | @param [in] Ptr Pointer to the start of the buffer.\r | |
523 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
524 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
525 | **/\r | |
526 | VOID\r | |
527 | EFIAPI\r | |
528 | ParseAcpiAest (\r | |
47d20b54 MK |
529 | IN BOOLEAN Trace,\r |
530 | IN UINT8 *Ptr,\r | |
531 | IN UINT32 AcpiTableLength,\r | |
532 | IN UINT8 AcpiTableRevision\r | |
1d3d5e32 MMF |
533 | );\r |
534 | \r | |
1fd8d089 JB |
535 | /**\r |
536 | This function parses the ACPI APMT table.\r | |
537 | When trace is enabled this function parses the APMT table and\r | |
538 | traces the ACPI table fields.\r | |
539 | \r | |
540 | This function also performs validation of the ACPI table fields.\r | |
541 | \r | |
542 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
543 | @param [in] Ptr Pointer to the start of the buffer.\r | |
544 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
545 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
546 | **/\r | |
547 | VOID\r | |
548 | EFIAPI\r | |
549 | ParseAcpiApmt (\r | |
550 | IN BOOLEAN Trace,\r | |
551 | IN UINT8 *Ptr,\r | |
552 | IN UINT32 AcpiTableLength,\r | |
553 | IN UINT8 AcpiTableRevision\r | |
554 | );\r | |
555 | \r | |
a6eaba4d DB |
556 | /**\r |
557 | This function parses the ACPI BGRT table.\r | |
ee4dc24f RN |
558 | When trace is enabled this function parses the BGRT table and\r |
559 | traces the ACPI table fields.\r | |
560 | \r | |
561 | This function also performs validation of the ACPI table fields.\r | |
562 | \r | |
563 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
564 | @param [in] Ptr Pointer to the start of the buffer.\r | |
565 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
566 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
a6eaba4d | 567 | **/\r |
ee4dc24f RN |
568 | VOID\r |
569 | EFIAPI\r | |
570 | ParseAcpiBgrt (\r | |
47d20b54 MK |
571 | IN BOOLEAN Trace,\r |
572 | IN UINT8 *Ptr,\r | |
573 | IN UINT32 AcpiTableLength,\r | |
574 | IN UINT8 AcpiTableRevision\r | |
ee4dc24f RN |
575 | );\r |
576 | \r | |
a6eaba4d DB |
577 | /**\r |
578 | This function parses the ACPI DBG2 table.\r | |
ee4dc24f RN |
579 | When trace is enabled this function parses the DBG2 table and\r |
580 | traces the ACPI table fields.\r | |
581 | \r | |
582 | This function also performs validation of the ACPI table fields.\r | |
583 | \r | |
584 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
585 | @param [in] Ptr Pointer to the start of the buffer.\r | |
586 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
587 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
a6eaba4d | 588 | **/\r |
ee4dc24f RN |
589 | VOID\r |
590 | EFIAPI\r | |
591 | ParseAcpiDbg2 (\r | |
47d20b54 MK |
592 | IN BOOLEAN Trace,\r |
593 | IN UINT8 *Ptr,\r | |
594 | IN UINT32 AcpiTableLength,\r | |
595 | IN UINT8 AcpiTableRevision\r | |
ee4dc24f RN |
596 | );\r |
597 | \r | |
a6eaba4d DB |
598 | /**\r |
599 | This function parses the ACPI DSDT table.\r | |
ee4dc24f RN |
600 | When trace is enabled this function parses the DSDT table and\r |
601 | traces the ACPI table fields.\r | |
602 | For the DSDT table only the ACPI header fields are parsed and\r | |
603 | traced.\r | |
604 | \r | |
605 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
606 | @param [in] Ptr Pointer to the start of the buffer.\r | |
607 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
608 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
a6eaba4d | 609 | **/\r |
ee4dc24f RN |
610 | VOID\r |
611 | EFIAPI\r | |
612 | ParseAcpiDsdt (\r | |
47d20b54 MK |
613 | IN BOOLEAN Trace,\r |
614 | IN UINT8 *Ptr,\r | |
615 | IN UINT32 AcpiTableLength,\r | |
616 | IN UINT8 AcpiTableRevision\r | |
ee4dc24f RN |
617 | );\r |
618 | \r | |
558b37b4 JS |
619 | /**\r |
620 | This function parses the ACPI ERST table.\r | |
621 | When trace is enabled this function parses the ERST table and\r | |
622 | traces the ACPI table fields.\r | |
623 | \r | |
624 | This function also performs validation of the ACPI table fields.\r | |
625 | \r | |
626 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
627 | @param [in] Ptr Pointer to the start of the buffer.\r | |
628 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
629 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
630 | **/\r | |
631 | VOID\r | |
632 | EFIAPI\r | |
633 | ParseAcpiErst (\r | |
634 | IN BOOLEAN Trace,\r | |
635 | IN UINT8 *Ptr,\r | |
636 | IN UINT32 AcpiTableLength,\r | |
637 | IN UINT8 AcpiTableRevision\r | |
638 | );\r | |
639 | \r | |
d5cf0fba SM |
640 | /**\r |
641 | This function parses the ACPI FACS table.\r | |
642 | When trace is enabled this function parses the FACS table and\r | |
643 | traces the ACPI table fields.\r | |
644 | \r | |
645 | This function also performs validation of the ACPI table fields.\r | |
646 | \r | |
647 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
648 | @param [in] Ptr Pointer to the start of the buffer.\r | |
649 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
650 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
651 | **/\r | |
652 | VOID\r | |
653 | EFIAPI\r | |
654 | ParseAcpiFacs (\r | |
47d20b54 MK |
655 | IN BOOLEAN Trace,\r |
656 | IN UINT8 *Ptr,\r | |
657 | IN UINT32 AcpiTableLength,\r | |
658 | IN UINT8 AcpiTableRevision\r | |
d5cf0fba SM |
659 | );\r |
660 | \r | |
a6eaba4d DB |
661 | /**\r |
662 | This function parses the ACPI FADT table.\r | |
ee4dc24f RN |
663 | This function parses the FADT table and optionally traces the ACPI\r |
664 | table fields.\r | |
665 | \r | |
666 | This function also performs validation of the ACPI table fields.\r | |
667 | \r | |
668 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
669 | @param [in] Ptr Pointer to the start of the buffer.\r | |
670 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
671 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
a6eaba4d | 672 | **/\r |
ee4dc24f RN |
673 | VOID\r |
674 | EFIAPI\r | |
675 | ParseAcpiFadt (\r | |
47d20b54 MK |
676 | IN BOOLEAN Trace,\r |
677 | IN UINT8 *Ptr,\r | |
678 | IN UINT32 AcpiTableLength,\r | |
679 | IN UINT8 AcpiTableRevision\r | |
ee4dc24f RN |
680 | );\r |
681 | \r | |
a6eaba4d DB |
682 | /**\r |
683 | This function parses the ACPI GTDT table.\r | |
ee4dc24f RN |
684 | When trace is enabled this function parses the GTDT table and\r |
685 | traces the ACPI table fields.\r | |
686 | \r | |
687 | This function also parses the following platform timer structures:\r | |
688 | - GT Block timer\r | |
689 | - Watchdog timer\r | |
690 | \r | |
691 | This function also performs validation of the ACPI table fields.\r | |
692 | \r | |
693 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
694 | @param [in] Ptr Pointer to the start of the buffer.\r | |
695 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
696 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
a6eaba4d | 697 | **/\r |
ee4dc24f RN |
698 | VOID\r |
699 | EFIAPI\r | |
700 | ParseAcpiGtdt (\r | |
47d20b54 MK |
701 | IN BOOLEAN Trace,\r |
702 | IN UINT8 *Ptr,\r | |
703 | IN UINT32 AcpiTableLength,\r | |
704 | IN UINT8 AcpiTableRevision\r | |
ee4dc24f RN |
705 | );\r |
706 | \r | |
618e6a1f MMF |
707 | /**\r |
708 | This function parses the ACPI HMAT table.\r | |
709 | When trace is enabled this function parses the HMAT table and\r | |
710 | traces the ACPI table fields.\r | |
711 | \r | |
712 | This function parses the following HMAT structures:\r | |
713 | - Memory Proximity Domain Attributes Structure (Type 0)\r | |
714 | - System Locality Latency and Bandwidth Info Structure (Type 1)\r | |
715 | - Memory Side Cache Info structure (Type 2)\r | |
716 | \r | |
717 | This function also performs validation of the ACPI table fields.\r | |
718 | \r | |
719 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
720 | @param [in] Ptr Pointer to the start of the buffer.\r | |
721 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
722 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
723 | **/\r | |
724 | VOID\r | |
725 | EFIAPI\r | |
726 | ParseAcpiHmat (\r | |
47d20b54 MK |
727 | IN BOOLEAN Trace,\r |
728 | IN UINT8 *Ptr,\r | |
729 | IN UINT32 AcpiTableLength,\r | |
730 | IN UINT8 AcpiTableRevision\r | |
618e6a1f MMF |
731 | );\r |
732 | \r | |
a6eaba4d DB |
733 | /**\r |
734 | This function parses the ACPI IORT table.\r | |
ee4dc24f RN |
735 | When trace is enabled this function parses the IORT table and\r |
736 | traces the ACPI fields.\r | |
737 | \r | |
738 | This function also parses the following nodes:\r | |
739 | - ITS Group\r | |
740 | - Named Component\r | |
741 | - Root Complex\r | |
742 | - SMMUv1/2\r | |
743 | - SMMUv3\r | |
744 | - PMCG\r | |
745 | \r | |
746 | This function also performs validation of the ACPI table fields.\r | |
747 | \r | |
748 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
749 | @param [in] Ptr Pointer to the start of the buffer.\r | |
750 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
751 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
a6eaba4d | 752 | **/\r |
ee4dc24f RN |
753 | VOID\r |
754 | EFIAPI\r | |
755 | ParseAcpiIort (\r | |
47d20b54 MK |
756 | IN BOOLEAN Trace,\r |
757 | IN UINT8 *Ptr,\r | |
758 | IN UINT32 AcpiTableLength,\r | |
759 | IN UINT8 AcpiTableRevision\r | |
ee4dc24f RN |
760 | );\r |
761 | \r | |
a6eaba4d DB |
762 | /**\r |
763 | This function parses the ACPI MADT table.\r | |
ee4dc24f RN |
764 | When trace is enabled this function parses the MADT table and\r |
765 | traces the ACPI table fields.\r | |
766 | \r | |
767 | This function currently parses the following Interrupt Controller\r | |
768 | Structures:\r | |
769 | - GICC\r | |
770 | - GICD\r | |
771 | - GIC MSI Frame\r | |
772 | - GICR\r | |
773 | - GIC ITS\r | |
774 | \r | |
775 | This function also performs validation of the ACPI table fields.\r | |
776 | \r | |
777 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
778 | @param [in] Ptr Pointer to the start of the buffer.\r | |
779 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
780 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
a6eaba4d | 781 | **/\r |
ee4dc24f RN |
782 | VOID\r |
783 | EFIAPI\r | |
784 | ParseAcpiMadt (\r | |
47d20b54 MK |
785 | IN BOOLEAN Trace,\r |
786 | IN UINT8 *Ptr,\r | |
787 | IN UINT32 AcpiTableLength,\r | |
788 | IN UINT8 AcpiTableRevision\r | |
ee4dc24f RN |
789 | );\r |
790 | \r | |
a6eaba4d DB |
791 | /**\r |
792 | This function parses the ACPI MCFG table.\r | |
ee4dc24f RN |
793 | When trace is enabled this function parses the MCFG table and\r |
794 | traces the ACPI table fields.\r | |
795 | \r | |
796 | This function also performs validation of the ACPI table fields.\r | |
797 | \r | |
798 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
799 | @param [in] Ptr Pointer to the start of the buffer.\r | |
800 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
801 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
a6eaba4d | 802 | **/\r |
ee4dc24f RN |
803 | VOID\r |
804 | EFIAPI\r | |
805 | ParseAcpiMcfg (\r | |
47d20b54 MK |
806 | IN BOOLEAN Trace,\r |
807 | IN UINT8 *Ptr,\r | |
808 | IN UINT32 AcpiTableLength,\r | |
809 | IN UINT8 AcpiTableRevision\r | |
ee4dc24f RN |
810 | );\r |
811 | \r | |
d4633b36 MMF |
812 | /**\r |
813 | This function parses the ACPI PCCT table including its sub-structures\r | |
814 | of type 0 through 4.\r | |
815 | When trace is enabled this function parses the PCCT table and\r | |
816 | traces the ACPI table fields.\r | |
817 | \r | |
818 | This function also performs validation of the ACPI table fields.\r | |
819 | \r | |
820 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
821 | @param [in] Ptr Pointer to the start of the buffer.\r | |
822 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
823 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
824 | **/\r | |
825 | VOID\r | |
826 | EFIAPI\r | |
827 | ParseAcpiPcct (\r | |
47d20b54 MK |
828 | IN BOOLEAN Trace,\r |
829 | IN UINT8 *Ptr,\r | |
830 | IN UINT32 AcpiTableLength,\r | |
831 | IN UINT8 AcpiTableRevision\r | |
d4633b36 MMF |
832 | );\r |
833 | \r | |
d4d2fdf2 KK |
834 | /**\r |
835 | This function parses the ACPI PPTT table.\r | |
836 | When trace is enabled this function parses the PPTT table and\r | |
837 | traces the ACPI table fields.\r | |
838 | \r | |
839 | This function also performs validation of the ACPI table fields.\r | |
840 | \r | |
841 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
842 | @param [in] Ptr Pointer to the start of the buffer.\r | |
843 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
844 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
845 | **/\r | |
846 | VOID\r | |
847 | EFIAPI\r | |
848 | ParseAcpiPptt (\r | |
47d20b54 MK |
849 | IN BOOLEAN Trace,\r |
850 | IN UINT8 *Ptr,\r | |
851 | IN UINT32 AcpiTableLength,\r | |
852 | IN UINT8 AcpiTableRevision\r | |
d4d2fdf2 KK |
853 | );\r |
854 | \r | |
a6eaba4d DB |
855 | /**\r |
856 | This function parses the ACPI RSDP table.\r | |
ee4dc24f RN |
857 | \r |
858 | This function invokes the parser for the XSDT table.\r | |
859 | * Note - This function does not support parsing of RSDT table.\r | |
860 | \r | |
861 | This function also performs a RAW dump of the ACPI table and\r | |
862 | validates the checksum.\r | |
863 | \r | |
864 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
865 | @param [in] Ptr Pointer to the start of the buffer.\r | |
866 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
867 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
a6eaba4d | 868 | **/\r |
ee4dc24f RN |
869 | VOID\r |
870 | EFIAPI\r | |
871 | ParseAcpiRsdp (\r | |
47d20b54 MK |
872 | IN BOOLEAN Trace,\r |
873 | IN UINT8 *Ptr,\r | |
874 | IN UINT32 AcpiTableLength,\r | |
875 | IN UINT8 AcpiTableRevision\r | |
ee4dc24f RN |
876 | );\r |
877 | \r | |
a6eaba4d DB |
878 | /**\r |
879 | This function parses the ACPI SLIT table.\r | |
ee4dc24f RN |
880 | When trace is enabled this function parses the SLIT table and\r |
881 | traces the ACPI table fields.\r | |
882 | \r | |
883 | This function also validates System Localities for the following:\r | |
884 | - Diagonal elements have a normalized value of 10\r | |
885 | - Relative distance from System Locality at i*N+j is same as\r | |
886 | j*N+i\r | |
887 | \r | |
888 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
889 | @param [in] Ptr Pointer to the start of the buffer.\r | |
890 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
891 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
a6eaba4d | 892 | **/\r |
ee4dc24f RN |
893 | VOID\r |
894 | EFIAPI\r | |
895 | ParseAcpiSlit (\r | |
47d20b54 MK |
896 | IN BOOLEAN Trace,\r |
897 | IN UINT8 *Ptr,\r | |
898 | IN UINT32 AcpiTableLength,\r | |
899 | IN UINT8 AcpiTableRevision\r | |
ee4dc24f RN |
900 | );\r |
901 | \r | |
a6eaba4d DB |
902 | /**\r |
903 | This function parses the ACPI SPCR table.\r | |
ee4dc24f RN |
904 | When trace is enabled this function parses the SPCR table and\r |
905 | traces the ACPI table fields.\r | |
906 | \r | |
907 | This function also performs validations of the ACPI table fields.\r | |
908 | \r | |
909 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
910 | @param [in] Ptr Pointer to the start of the buffer.\r | |
911 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
912 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
a6eaba4d | 913 | **/\r |
ee4dc24f RN |
914 | VOID\r |
915 | EFIAPI\r | |
916 | ParseAcpiSpcr (\r | |
47d20b54 MK |
917 | IN BOOLEAN Trace,\r |
918 | IN UINT8 *Ptr,\r | |
919 | IN UINT32 AcpiTableLength,\r | |
920 | IN UINT8 AcpiTableRevision\r | |
ee4dc24f RN |
921 | );\r |
922 | \r | |
a6eaba4d DB |
923 | /**\r |
924 | This function parses the ACPI SRAT table.\r | |
ee4dc24f RN |
925 | When trace is enabled this function parses the SRAT table and\r |
926 | traces the ACPI table fields.\r | |
927 | \r | |
928 | This function parses the following Resource Allocation Structures:\r | |
929 | - Processor Local APIC/SAPIC Affinity Structure\r | |
930 | - Memory Affinity Structure\r | |
931 | - Processor Local x2APIC Affinity Structure\r | |
932 | - GICC Affinity Structure\r | |
933 | \r | |
934 | This function also performs validation of the ACPI table fields.\r | |
935 | \r | |
936 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
937 | @param [in] Ptr Pointer to the start of the buffer.\r | |
938 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
939 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
a6eaba4d | 940 | **/\r |
ee4dc24f RN |
941 | VOID\r |
942 | EFIAPI\r | |
943 | ParseAcpiSrat (\r | |
47d20b54 MK |
944 | IN BOOLEAN Trace,\r |
945 | IN UINT8 *Ptr,\r | |
946 | IN UINT32 AcpiTableLength,\r | |
947 | IN UINT8 AcpiTableRevision\r | |
ee4dc24f RN |
948 | );\r |
949 | \r | |
a6eaba4d DB |
950 | /**\r |
951 | This function parses the ACPI SSDT table.\r | |
ee4dc24f RN |
952 | When trace is enabled this function parses the SSDT table and\r |
953 | traces the ACPI table fields.\r | |
954 | For the SSDT table only the ACPI header fields are\r | |
955 | parsed and traced.\r | |
956 | \r | |
957 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
958 | @param [in] Ptr Pointer to the start of the buffer.\r | |
959 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
960 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
a6eaba4d | 961 | **/\r |
ee4dc24f RN |
962 | VOID\r |
963 | EFIAPI\r | |
964 | ParseAcpiSsdt (\r | |
47d20b54 MK |
965 | IN BOOLEAN Trace,\r |
966 | IN UINT8 *Ptr,\r | |
967 | IN UINT32 AcpiTableLength,\r | |
968 | IN UINT8 AcpiTableRevision\r | |
ee4dc24f RN |
969 | );\r |
970 | \r | |
a6eaba4d DB |
971 | /**\r |
972 | This function parses the ACPI XSDT table\r | |
ee4dc24f RN |
973 | and optionally traces the ACPI table fields.\r |
974 | \r | |
975 | This function also performs validation of the XSDT table.\r | |
976 | \r | |
977 | @param [in] Trace If TRUE, trace the ACPI fields.\r | |
978 | @param [in] Ptr Pointer to the start of the buffer.\r | |
979 | @param [in] AcpiTableLength Length of the ACPI table.\r | |
980 | @param [in] AcpiTableRevision Revision of the ACPI table.\r | |
a6eaba4d | 981 | **/\r |
ee4dc24f RN |
982 | VOID\r |
983 | EFIAPI\r | |
984 | ParseAcpiXsdt (\r | |
47d20b54 MK |
985 | IN BOOLEAN Trace,\r |
986 | IN UINT8 *Ptr,\r | |
987 | IN UINT32 AcpiTableLength,\r | |
988 | IN UINT8 AcpiTableRevision\r | |
ee4dc24f RN |
989 | );\r |
990 | \r | |
991 | #endif // ACPIPARSER_H_\r |