Scan for and relocate mptable when using coreboot.
[seabios.git] / src / acpi.h
1 #ifndef __ACPI_H
2 #define __ACPI_H
3
4 #include "types.h" // u32
5
6 void acpi_bios_init(void);
7
8 // XXX - move to better header.
9 extern int smp_cpus;
10
11 #define RSDP_SIGNATURE 0x2052545020445352LL // "RSD PTR "
12
13 struct rsdp_descriptor         /* Root System Descriptor Pointer */
14 {
15         u8                            signature [8];          /* ACPI signature, contains "RSD PTR " */
16         u8                              checksum;               /* To make sum of struct == 0 */
17         u8                            oem_id [6];             /* OEM identification */
18         u8                              revision;               /* Must be 0 for 1.0, 2 for 2.0 */
19         u32                             rsdt_physical_address;  /* 32-bit physical address of RSDT */
20         u32                             length;                 /* XSDT Length in bytes including hdr */
21         u64                             xsdt_physical_address;  /* 64-bit physical address of XSDT */
22         u8                              extended_checksum;      /* Checksum of entire table */
23         u8                            reserved [3];           /* Reserved field must be 0 */
24 };
25
26 // XXX - not really part of acpi.
27 struct mptable_floating_s {
28     u32 signature;
29     u32 physaddr;
30     u8 length;
31     u8 spec_rev;
32     u8 checksum;
33     u8 feature1;
34     u8 feature2;
35     u8 reserved[3];
36 };
37
38 #define MPTABLE_SIGNAURE 0x5f504d5f  // "_MP_"
39
40 #endif // acpi.h