Chameleon

Chameleon Svn Source Tree

Root/branches/andyvand/i386/libsaio/acpi.h

1#ifndef __LIBSAIO_ACPI_H
2#define __LIBSAIO_ACPI_H
3
4#define ACPI_RANGE_START (0x0E0000)
5#define ACPI_RANGE_END (0x0FFFFF)
6
7#define UINT64_LE_FROM_CHARS(a,b,c,d,e,f,g,h) \
8( ((uint64_t)h << 56) \
9| ((uint64_t)g << 48) \
10| ((uint64_t)f << 40) \
11| ((uint64_t)e << 32) \
12| ((uint64_t)d << 24) \
13| ((uint64_t)c << 16) \
14| ((uint64_t)b << 8) \
15| ((uint64_t)a << 0) \
16)
17
18#define ACPI_SIGNATURE_UINT64_LE UINT64_LE_FROM_CHARS('R','S','D',' ','P','T','R',' ')
19
20/* Per ACPI 3.0a spec */
21
22// TODO Migrate
23struct acpi_2_rsdp {
24 char Signature[8];
25 uint8_t Checksum;
26 char OEMID[6];
27 uint8_t Revision;
28 uint32_t RsdtAddress;
29 uint32_t Length;
30 uint64_t XsdtAddress;
31 uint8_t ExtendedChecksum;
32 char Reserved[3];
33} __attribute__((packed));
34
35// TODO Migrate
36struct acpi_2_rsdt {
37char Signature[4];
38uint32_t Length;
39uint8_t Revision;
40uint8_t Checksum;
41char OEMID[6];
42char OEMTableId[8];
43uint32_t OEMRevision;
44uint32_t CreatorId;
45uint32_t CreatorRevision;
46} __attribute__((packed));
47
48// TODO Migrate
49struct acpi_2_xsdt {
50char Signature[4];
51uint32_t Length;
52uint8_t Revision;
53uint8_t Checksum;
54char OEMID[6];
55char OEMTableId[8];
56uint32_t OEMRevision;
57uint32_t CreatorId;
58uint32_t CreatorRevision;
59} __attribute__((packed));
60
61// TODO Migrate
62struct acpi_2_gas {
63uint8_tAddress_Space_ID;
64uint8_tRegister_Bit_Width;
65uint8_tRegister_Bit_Offset;
66uint8_tAccess_Size;
67uint64_tAddress;
68} __attribute__((packed));
69
70// TODO Migrate
71struct acpi_2_fadt {
72charSignature[4];
73uint32_tLength;
74uint8_tRevision;
75uint8_tChecksum;
76charOEMID[6];
77charOEMTableId[8];
78uint32_tOEMRevision;
79uint32_tCreatorId;
80uint32_tCreatorRevision;
81uint32_tFIRMWARE_CTRL;
82uint32_tDSDT;
83uint8_tINT_MODEL; // JrCs
84uint8_tPreferred_PM_Profile; // JrCs
85uint16_tSCI_INT;
86uint32_tSMI_CMD;
87uint8_tACPI_ENABLE;
88uint8_tACPI_DISABLE;
89uint8_tS4BIOS_REQ;
90uint8_tPSTATE_CNT;
91uint32_tPM1a_EVT_BLK;
92uint32_tPM1b_EVT_BLK;
93uint32_tPM1a_CNT_BLK;
94uint32_tPM1b_CNT_BLK;
95uint32_tPM2_CNT_BLK;
96uint32_tPM_TMR_BLK;
97uint32_tGPE0_BLK;
98uint32_tGPE1_BLK;
99uint8_tPM1_EVT_LEN;
100uint8_tPM1_CNT_LEN;
101uint8_tPM2_CNT_LEN;
102uint8_tPM_TMR_LEN;
103uint8_tGPE0_BLK_LEN;
104uint8_tGPE1_BLK_LEN;
105uint8_tGPE1_BASE;
106uint8_tCST_CNT;
107uint16_tP_LVL2_LAT;
108uint16_tP_LVL3_LAT;
109uint16_tFLUSH_SIZE;
110uint16_tFLUSH_STRIDE;
111uint8_tDUTY_OFFSET;
112uint8_tDUTY_WIDTH;
113uint8_tDAY_ALRM;
114uint8_tMON_ALRM;
115uint8_tCENTURY;
116uint16_tIAPC_BOOT_ARCH;
117uint8_tReserved1;
118uint32_tFlags;
119struct acpi_2_gasRESET_REG;
120uint8_tRESET_VALUE;
121uint8_tReserved2[3];
122uint64_tX_FIRMWARE_CTRL;
123uint64_tX_DSDT;
124struct acpi_2_gasX_PM1a_EVT_BLK;
125struct acpi_2_gasX_PM1b_EVT_BLK;
126struct acpi_2_gasX_PM1a_CNT_BLK;
127struct acpi_2_gasX_PM1b_CNT_BLK;
128struct acpi_2_gasX_PM2_CNT_BLK;
129struct acpi_2_gasX_PM_TMR_BLK;
130struct acpi_2_gasX_GPE0_BLK;
131struct acpi_2_gasX_GPE1_BLK;
132} __attribute__((packed));
133
134#endif /* !__LIBSAIO_ACPI_H */
135

Archive Download this file

Revision: 69