1 | /*␊ |
2 | Copyright (c) 2010, Intel Corporation␊ |
3 | All rights reserved.␊ |
4 | ␊ |
5 | Redistribution and use in source and binary forms, with or without␊ |
6 | modification, are permitted provided that the following conditions are met:␊ |
7 | ␊ |
8 | * Redistributions of source code must retain the above copyright notice,␊ |
9 | this list of conditions and the following disclaimer.␊ |
10 | * Redistributions in binary form must reproduce the above copyright notice,␊ |
11 | this list of conditions and the following disclaimer in the documentation␊ |
12 | and/or other materials provided with the distribution.␊ |
13 | * Neither the name of Intel Corporation nor the names of its contributors␊ |
14 | may be used to endorse or promote products derived from this software␊ |
15 | without specific prior written permission.␊ |
16 | ␊ |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND␊ |
18 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED␊ |
19 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE␊ |
20 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR␊ |
21 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES␊ |
22 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;␊ |
23 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON␊ |
24 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT␊ |
25 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS␊ |
26 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.␊ |
27 | */␊ |
28 | ␊ |
29 | #ifndef ACPI_DECODE_H␊ |
30 | #define ACPI_DECODE_H␊ |
31 | ␊ |
32 | #include "acpi_tools.h"␊ |
33 | ␊ |
34 | /* acpidecode.h contains functions needed only for decoding ACPI to produce the␊ |
35 | * inputs to the PPM code, but not needed for encoding ACPI as done inside the␊ |
36 | * PPM code. */␊ |
37 | ␊ |
38 | #define ACPI_NAMESPACE_MAX_DEPTH 10␊ |
39 | ␊ |
40 | struct acpi_namespace {␊ |
41 | U32 nameseg[ACPI_NAMESPACE_MAX_DEPTH];␊ |
42 | U32 depth;␊ |
43 | };␊ |
44 | ␊ |
45 | void dprint_nameseg(U32 i);␊ |
46 | void *decodeTableHeader(void *current, ACPI_TABLE_HEADER ** tableHeader);␊ |
47 | void parse_acpi_termlist(const struct acpi_namespace *ns, U8 * current, U8 * end);␊ |
48 | ␊ |
49 | /* Globals used for retrieving ACPI processor structures from the DSDT */␊ |
50 | ␊ |
51 | #define CPU_MAP_LIMIT 256 /* Any bigger than 256 and we'd have to support the x2APIC structures, which we don't yet anyway. */␊ |
52 | ␊ |
53 | struct acpi_processor {␊ |
54 | struct acpi_namespace ns;␊ |
55 | U8 id;␊ |
56 | U32 pmbase;␊ |
57 | };␊ |
58 | ␊ |
59 | extern U32 acpi_processor_count;␊ |
60 | extern struct acpi_processor acpi_processors[CPU_MAP_LIMIT];␊ |
61 | ␊ |
62 | /* If 0, look for a processor namespace and set to 1 if found. */␊ |
63 | extern U32 acpi_ns_found;␊ |
64 | ␊ |
65 | extern U8* UIDPointer;␊ |
66 | ␊ |
67 | #endif /* ACPI_DECODE_H */␊ |
68 | |