Chameleon

Chameleon Svn Source Tree

Root/trunk/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_ssdt {
63char Signature[4];
64uint32_t Length;
65uint8_t Revision;
66uint8_t Checksum;
67char OEMID[6];
68char OEMTableId[8];
69uint32_t OEMRevision;
70uint32_t CreatorId;
71uint32_t CreatorRevision;
72} __attribute__((packed));
73
74// TODO Migrate
75struct acpi_2_dsdt {
76char Signature[4];
77uint32_t Length;
78uint8_t Revision;
79uint8_t Checksum;
80char OEMID[6];
81char OEMTableId[8];
82uint32_t OEMRevision;
83uint32_t CreatorId;
84uint32_t CreatorRevision;
85} __attribute__((packed));
86
87// TODO Migrate
88struct acpi_2_fadt {
89char Signature[4];
90uint32_t Length;
91uint8_t Revision;
92uint8_t Checksum;
93char OEMID[6];
94char OEMTableId[8];
95uint32_t OEMRevision;
96uint32_t CreatorId;
97uint32_t CreatorRevision;
98uint32_t FIRMWARE_CTRL;
99uint32_t DSDT;
100uint8_t Model;// JrCs
101uint8_t PM_Profile;// JrCs
102uint16_tSCI_Interrupt;
103uint32_tSMI_Command_Port;
104uint8_tACPI_Enable;
105uint8_tACPI_Disable;
106uint8_tS4BIOS_Command;
107uint8_tPState_Control;
108uint32_tPM1A_Event_Block_Address;
109uint32_tPM1B_Event_Block_Address;
110uint32_tPM1A_Control_Block_Address;
111uint32_tPM1B_Control_Block_Address;
112uint32_tPM2_Control_Block_Address;
113uint32_tPM_Timer_Block_Address;
114uint32_tGPE0_Block_Address;
115uint32_tGPE1_Block_Address;
116uint8_tPM1_Event_Block_Length;
117uint8_tPM1_Control_Block_Length;
118uint8_tPM2_Control_Block_Length;
119uint8_tPM_Timer_Block_Length;
120uint8_tGPE0_Block_Length;
121uint8_tGPE1_Block_Length;
122uint8_tGPE1_Base_Offset;
123uint8_tCST_Support;
124uint16_tC2_Latency;
125uint16_tC3_Latency;
126uint16_tCPU_Cache_Size;
127uint16_tCache_Flush_Stride;
128uint8_tDuty_Cycle_Offset;
129uint8_tDuty_Cycle_Width;
130uint8_tRTC_Day_Alarm_Index;
131uint8_tRTC_Month_Alarm_Index;
132uint8_tRTC_Century_Index;
133uint16_tBoot_Flags;
134uint8_tReserved0;
135/* Begin Asere */
136//Reset Fix
137uint32_t Flags;
138uint8_t Reset_SpaceID;
139uint8_t Reset_BitWidth;
140uint8_t Reset_BitOffset;
141uint8_t Reset_AccessWidth;
142uint64_t Reset_Address;
143uint8_t Reset_Value;
144uint8_t Reserved[3];
145
146uint64_t X_FIRMWARE_CTRL;
147uint64_t X_DSDT;
148/* End Asere */
149/*We absolutely don't care about theese fields*/
150uint8_tnotimp2[96];
151} __attribute__((packed));
152
153#endif /* !__LIBSAIO_ACPI_H */
154

Archive Download this file

Revision: 1176