aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/acpi.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/acpi.h')
-rw-r--r--include/linux/acpi.h106
1 files changed, 3 insertions, 103 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 5a2b3633220e..fac7a7b1f5f9 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -58,106 +58,6 @@ typedef struct {
58 u8 length; 58 u8 length;
59} __attribute__ ((packed)) acpi_table_entry_header; 59} __attribute__ ((packed)) acpi_table_entry_header;
60 60
61/* Multiple APIC Description Table (MADT) */
62
63enum acpi_madt_entry_id {
64 ACPI_MADT_LAPIC = 0,
65 ACPI_MADT_IOAPIC,
66 ACPI_MADT_INT_SRC_OVR,
67 ACPI_MADT_NMI_SRC,
68 ACPI_MADT_LAPIC_NMI,
69 ACPI_MADT_LAPIC_ADDR_OVR,
70 ACPI_MADT_IOSAPIC,
71 ACPI_MADT_LSAPIC,
72 ACPI_MADT_PLAT_INT_SRC,
73 ACPI_MADT_ENTRY_COUNT
74};
75
76typedef struct {
77 u16 polarity:2;
78 u16 trigger:2;
79 u16 reserved:12;
80} __attribute__ ((packed)) acpi_interrupt_flags;
81
82struct acpi_table_lapic {
83 acpi_table_entry_header header;
84 u8 acpi_id;
85 u8 id;
86 struct {
87 u32 enabled:1;
88 u32 reserved:31;
89 } flags;
90} __attribute__ ((packed));
91
92struct acpi_table_ioapic {
93 acpi_table_entry_header header;
94 u8 id;
95 u8 reserved;
96 u32 address;
97 u32 global_irq_base;
98} __attribute__ ((packed));
99
100struct acpi_table_int_src_ovr {
101 acpi_table_entry_header header;
102 u8 bus;
103 u8 bus_irq;
104 u32 global_irq;
105 acpi_interrupt_flags flags;
106} __attribute__ ((packed));
107
108struct acpi_table_nmi_src {
109 acpi_table_entry_header header;
110 acpi_interrupt_flags flags;
111 u32 global_irq;
112} __attribute__ ((packed));
113
114struct acpi_table_lapic_nmi {
115 acpi_table_entry_header header;
116 u8 acpi_id;
117 acpi_interrupt_flags flags;
118 u8 lint;
119} __attribute__ ((packed));
120
121struct acpi_table_lapic_addr_ovr {
122 acpi_table_entry_header header;
123 u8 reserved[2];
124 u64 address;
125} __attribute__ ((packed));
126
127struct acpi_table_iosapic {
128 acpi_table_entry_header header;
129 u8 id;
130 u8 reserved;
131 u32 global_irq_base;
132 u64 address;
133} __attribute__ ((packed));
134
135struct acpi_table_lsapic {
136 acpi_table_entry_header header;
137 u8 acpi_id;
138 u8 id;
139 u8 eid;
140 u8 reserved[3];
141 struct {
142 u32 enabled:1;
143 u32 reserved:31;
144 } flags;
145} __attribute__ ((packed));
146
147struct acpi_table_plat_int_src {
148 acpi_table_entry_header header;
149 acpi_interrupt_flags flags;
150 u8 type; /* See acpi_interrupt_type */
151 u8 id;
152 u8 eid;
153 u8 iosapic_vector;
154 u32 global_irq;
155 struct {
156 u32 cpei_override_flag:1;
157 u32 reserved:31;
158 } plint_flags;
159} __attribute__ ((packed));
160
161enum acpi_interrupt_id { 61enum acpi_interrupt_id {
162 ACPI_INTERRUPT_PMI = 1, 62 ACPI_INTERRUPT_PMI = 1,
163 ACPI_INTERRUPT_INIT, 63 ACPI_INTERRUPT_INIT,
@@ -285,7 +185,7 @@ typedef int (*acpi_table_handler) (struct acpi_table_header *header);
285 185
286extern acpi_table_handler acpi_table_ops[ACPI_TABLE_COUNT]; 186extern acpi_table_handler acpi_table_ops[ACPI_TABLE_COUNT];
287 187
288typedef int (*acpi_madt_entry_handler) (acpi_table_entry_header *header, const unsigned long end); 188typedef int (*acpi_madt_entry_handler) (struct acpi_subtable_header *header, const unsigned long end);
289 189
290char * __acpi_map_table (unsigned long phys_addr, unsigned long size); 190char * __acpi_map_table (unsigned long phys_addr, unsigned long size);
291unsigned long acpi_find_rsdp (void); 191unsigned long acpi_find_rsdp (void);
@@ -295,11 +195,11 @@ int acpi_numa_init (void);
295 195
296int acpi_table_init (void); 196int acpi_table_init (void);
297int acpi_table_parse (char *id, acpi_table_handler handler); 197int acpi_table_parse (char *id, acpi_table_handler handler);
298int acpi_table_parse_madt (enum acpi_madt_entry_id id, acpi_madt_entry_handler handler, unsigned int max_entries); 198int acpi_table_parse_madt (enum acpi_madt_type id, acpi_madt_entry_handler handler, unsigned int max_entries);
299int acpi_table_parse_srat (enum acpi_srat_entry_id id, acpi_madt_entry_handler handler, unsigned int max_entries); 199int acpi_table_parse_srat (enum acpi_srat_entry_id id, acpi_madt_entry_handler handler, unsigned int max_entries);
300int acpi_parse_mcfg (struct acpi_table_header *header); 200int acpi_parse_mcfg (struct acpi_table_header *header);
301void acpi_table_print (struct acpi_table_header *header, unsigned long phys_addr); 201void acpi_table_print (struct acpi_table_header *header, unsigned long phys_addr);
302void acpi_table_print_madt_entry (acpi_table_entry_header *madt); 202void acpi_table_print_madt_entry (struct acpi_subtable_header *madt);
303void acpi_table_print_srat_entry (acpi_table_entry_header *srat); 203void acpi_table_print_srat_entry (acpi_table_entry_header *srat);
304 204
305/* the following four functions are architecture-dependent */ 205/* the following four functions are architecture-dependent */