blob: 442043a4fbd72ac4f9fea839ebbb56db48632c26 [file] [log] [blame]
Frank Vibrans2b4c8312011-02-14 18:30:54 +00001/*
2 *****************************************************************************
3 *
4 * Copyright (c) 2011, Advanced Micro Devices, Inc.
5 * All rights reserved.
Edward O'Callaghanb9a67002014-07-06 19:29:03 +10006 *
Frank Vibrans2b4c8312011-02-14 18:30:54 +00007 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are met:
9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * * Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
Edward O'Callaghanb9a67002014-07-06 19:29:03 +100014 * * Neither the name of Advanced Micro Devices, Inc. nor the names of
15 * its contributors may be used to endorse or promote products derived
Frank Vibrans2b4c8312011-02-14 18:30:54 +000016 * from this software without specific prior written permission.
Edward O'Callaghanb9a67002014-07-06 19:29:03 +100017 *
Frank Vibrans2b4c8312011-02-14 18:30:54 +000018 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
22 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Edward O'Callaghanb9a67002014-07-06 19:29:03 +100028 *
Frank Vibrans2b4c8312011-02-14 18:30:54 +000029 * ***************************************************************************
30 *
31 */
32
33/**
34 * RSDP - ACPI 2.0 table RSDP
35 */
36typedef struct _RSDP
37{
38 unsigned long long Signature; /* RSDP signature "RSD PTR" */
39 unsigned char Checksum; /* checksum of the first 20 bytes */
40 unsigned char OEMID[6]; /* OEM ID, "LXBIOS" */
41 unsigned char Revision; /* 0 for APCI 1.0, 2 for ACPI 2.0 */
42 unsigned int RsdtAddress; /* physical address of RSDT */
43 unsigned int Length; /* total length of RSDP (including extended part) */
44 unsigned long long XsdtAddress; /* physical address of XSDT */
45 unsigned char ExtendedChecksum; /* chechsum of whole table */
46 unsigned char Reserved[3];
Marc Jonesf2592f92018-08-23 10:33:29 -060047} RSDP_HEADER;
Frank Vibrans2b4c8312011-02-14 18:30:54 +000048
49
50/**
51 * DESCRIPTION_HEADER - ACPI common table header
52 */
53typedef struct _DESCRIPTION_HEADER
54{
55 unsigned int Signature; /* ACPI signature (4 ASCII characters) */
56 unsigned int Length; /* Length of table, in bytes, including header */
57 unsigned char Revision; /* ACPI Specification minor version # */
58 unsigned char Checksum; /* To make sum of entire table == 0 */
59 unsigned char OEMID[6]; /* OEM identification */
60 unsigned char OEMTableID[8]; /* OEM table identification */
61 unsigned int OEMRevision; /* OEM revision number */
62 unsigned int CreatorID; /* ASL compiler vendor ID */
63 unsigned int CreatorRevision; /* ASL compiler revision number */
64} DESCRIPTION_HEADER;
65
66void* ACPI_LocateTable (IN unsigned int Signature);
67void ACPI_SetTableChecksum (IN void* TablePtr);
68unsigned char ACPI_GetTableChecksum (IN void* TablePtr);
69unsigned char GetByteSum (IN void* pData, IN unsigned int Length);