Chameleon

Chameleon Svn Source Tree

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

Archive Download this file

Revision: 2392