Chameleon

Chameleon Svn Source Tree

Root/branches/slice/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
21/* Per ACPI 3.0a spec */
22
23// TODO Migrate
24struct acpi_2_rsdp {
25 char Signature[8];
26 uint8_t Checksum;
27 char OEMID[6];
28 uint8_t Revision;
29 uint32_t RsdtAddress;
30 uint32_t Length;
31 uint64_t XsdtAddress;
32 uint8_t ExtendedChecksum;
33 char Reserved[3];
34} __attribute__((packed));
35
36// TODO Migrate
37struct acpi_2_rsdt {
38char Signature[4];
39uint32_t Length;
40uint8_t Revision;
41uint8_t Checksum;
42char OEMID[6];
43char OEMTableId[8];
44uint32_t OEMRevision;
45uint32_t CreatorId;
46uint32_t CreatorRevision;
47} __attribute__((packed));
48
49// TODO Migrate
50struct acpi_2_xsdt {
51char Signature[4];
52uint32_t Length;
53uint8_t Revision;
54uint8_t Checksum;
55char OEMID[6];
56char OEMTableId[8];
57uint32_t OEMRevision;
58uint32_t CreatorId;
59uint32_t CreatorRevision;
60} __attribute__((packed));
61
62// TODO Migrate
63struct acpi_2_ssdt {
64char Signature[4];
65uint32_t Length;
66uint8_t Revision;
67uint8_t Checksum;
68char OEMID[6];
69char OEMTableId[8];
70uint32_t OEMRevision;
71uint32_t CreatorId;
72uint32_t CreatorRevision;
73} __attribute__((packed));
74
75// TODO Migrate
76struct acpi_2_dsdt {
77char Signature[4];
78uint32_t Length;
79uint8_t Revision;
80uint8_t Checksum;
81char OEMID[6];
82char OEMTableId[8];
83uint32_t OEMRevision;
84uint32_t CreatorId;
85uint32_t CreatorRevision;
86} __attribute__((packed));
87
88// TODO Migrate
89struct acpi_2_fadt {
90char Signature[4];
91uint32_t Length;
92uint8_t Revision;
93uint8_t Checksum;
94char OEMID[6];
95char OEMTableId[8];
96uint32_t OEMRevision;
97uint32_t CreatorId;
98uint32_t CreatorRevision;
99uint32_t FIRMWARE_CTRL;
100uint32_t DSDT;
101uint8_t Model;// JrCs
102uint8_t PM_Profile;// JrCs
103uint16_tSCI_Interrupt;
104uint32_tSMI_Command_Port;
105uint8_tACPI_Enable;
106uint8_tACPI_Disable;
107uint8_tS4BIOS_Command;
108uint8_tPState_Control;
109uint32_tPM1A_Event_Block_Address;
110uint32_tPM1B_Event_Block_Address;
111uint32_tPM1A_Control_Block_Address;
112uint32_tPM1B_Control_Block_Address;
113uint32_tPM2_Control_Block_Address;
114uint32_tPM_Timer_Block_Address;
115uint32_tGPE0_Block_Address;
116uint32_tGPE1_Block_Address;
117uint8_tPM1_Event_Block_Length;
118uint8_tPM1_Control_Block_Length;
119uint8_tPM2_Control_Block_Length;
120uint8_tPM_Timer_Block_Length;
121uint8_tGPE0_Block_Length;
122uint8_tGPE1_Block_Length;
123uint8_tGPE1_Base_Offset;
124uint8_tCST_Support;
125uint16_tC2_Latency;
126uint16_tC3_Latency;
127uint16_tCPU_Cache_Size;
128uint16_tCache_Flush_Stride;
129uint8_tDuty_Cycle_Offset;
130uint8_tDuty_Cycle_Width;
131uint8_tRTC_Day_Alarm_Index;
132uint8_tRTC_Month_Alarm_Index;
133uint8_tRTC_Century_Index;
134uint16_tBoot_Flags;
135uint8_tReserved0;
136/* Begin Asere */
137//Reset Fix
138uint32_t Flags;
139uint8_t Reset_SpaceID;
140uint8_t Reset_BitWidth;
141uint8_t Reset_BitOffset;
142uint8_t Reset_AccessWidth;
143uint64_t Reset_Address;
144uint8_t Reset_Value;
145uint8_t Reserved[3];
146
147uint64_t X_FIRMWARE_CTRL;
148uint64_t X_DSDT;
149/* End Asere */
150/*We absolutely don't care about theese fields*/
151uint8_tnotimp2[96];
152} __attribute__((packed));
153
154#endif /* !__LIBSAIO_ACPI_H */
155

Archive Download this file

Revision: 711