/root/src/xen/xen/include/xen/acpi.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * acpi.h - ACPI Interface |
3 | | * |
4 | | * Copyright (C) 2001 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com> |
5 | | * |
6 | | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
7 | | * |
8 | | * This program is free software; you can redistribute it and/or modify |
9 | | * it under the terms of the GNU General Public License as published by |
10 | | * the Free Software Foundation; either version 2 of the License, or |
11 | | * (at your option) any later version. |
12 | | * |
13 | | * This program is distributed in the hope that it will be useful, |
14 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | | * GNU General Public License for more details. |
17 | | * |
18 | | * You should have received a copy of the GNU General Public License |
19 | | * along with this program; If not, see <http://www.gnu.org/licenses/>. |
20 | | * |
21 | | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
22 | | */ |
23 | | |
24 | | #ifndef _LINUX_ACPI_H |
25 | | #define _LINUX_ACPI_H |
26 | | |
27 | | #ifndef _LINUX |
28 | | #define _LINUX |
29 | | #endif |
30 | | |
31 | | #include <xen/list.h> |
32 | | |
33 | | #include <acpi/acpi.h> |
34 | | #include <asm/acpi.h> |
35 | | |
36 | | #define ACPI_MADT_GET_(fld, x) (((x) & ACPI_MADT_##fld##_MASK) / \ |
37 | | (ACPI_MADT_##fld##_MASK & -ACPI_MADT_##fld##_MASK)) |
38 | | |
39 | | #define ACPI_MADT_GET_POLARITY(inti) ACPI_MADT_GET_(POLARITY, inti) |
40 | | #define ACPI_MADT_GET_TRIGGER(inti) ACPI_MADT_GET_(TRIGGER, inti) |
41 | | |
42 | | /* |
43 | | * Fixmap pages to reserve for ACPI boot-time tables (see asm-x86/fixmap.h or |
44 | | * asm-arm/config.h, 64 pages(256KB) is large enough for most cases.) |
45 | | */ |
46 | | #define NUM_FIXMAP_ACPI_PAGES 64 |
47 | | |
48 | | #define BAD_MADT_ENTRY(entry, end) ( \ |
49 | | (!(entry)) || (unsigned long)(entry) + sizeof(*(entry)) > (end) || \ |
50 | | (entry)->header.length < sizeof(*(entry))) |
51 | | |
52 | | #ifdef CONFIG_ACPI |
53 | | |
54 | | enum acpi_interrupt_id { |
55 | | ACPI_INTERRUPT_PMI = 1, |
56 | | ACPI_INTERRUPT_INIT, |
57 | | ACPI_INTERRUPT_CPEI, |
58 | | ACPI_INTERRUPT_COUNT |
59 | | }; |
60 | | |
61 | | typedef int (*acpi_madt_entry_handler) (struct acpi_subtable_header *header, const unsigned long end); |
62 | | |
63 | | typedef int (*acpi_table_handler) (struct acpi_table_header *table); |
64 | | |
65 | | typedef int (*acpi_table_entry_handler) (struct acpi_subtable_header *header, const unsigned long end); |
66 | | |
67 | | unsigned int acpi_get_processor_id (unsigned int cpu); |
68 | | char * __acpi_map_table (paddr_t phys_addr, unsigned long size); |
69 | | int acpi_boot_init (void); |
70 | | int acpi_boot_table_init (void); |
71 | | int acpi_numa_init (void); |
72 | | int erst_init(void); |
73 | | void acpi_hest_init(void); |
74 | | |
75 | | int acpi_table_init (void); |
76 | | int acpi_table_parse(char *id, acpi_table_handler handler); |
77 | | int acpi_parse_entries(char *id, unsigned long table_size, |
78 | | acpi_table_entry_handler handler, |
79 | | struct acpi_table_header *table_header, |
80 | | int entry_id, unsigned int max_entries); |
81 | | int acpi_table_parse_entries(char *id, unsigned long table_size, |
82 | | int entry_id, acpi_table_entry_handler handler, unsigned int max_entries); |
83 | | struct acpi_subtable_header *acpi_table_get_entry_madt(enum acpi_madt_type id, |
84 | | unsigned int entry_index); |
85 | | int acpi_table_parse_madt(enum acpi_madt_type id, acpi_table_entry_handler handler, unsigned int max_entries); |
86 | | int acpi_table_parse_srat(int id, acpi_madt_entry_handler handler, |
87 | | unsigned int max_entries); |
88 | | int acpi_parse_srat(struct acpi_table_header *); |
89 | | void acpi_table_print (struct acpi_table_header *header, unsigned long phys_addr); |
90 | | void acpi_table_print_madt_entry (struct acpi_subtable_header *madt); |
91 | | void acpi_table_print_srat_entry (struct acpi_subtable_header *srat); |
92 | | |
93 | | /* the following four functions are architecture-dependent */ |
94 | | void acpi_numa_slit_init (struct acpi_table_slit *slit); |
95 | | void acpi_numa_processor_affinity_init(const struct acpi_srat_cpu_affinity *); |
96 | | void acpi_numa_x2apic_affinity_init(const struct acpi_srat_x2apic_cpu_affinity *); |
97 | | void acpi_numa_memory_affinity_init(const struct acpi_srat_mem_affinity *); |
98 | | void acpi_numa_arch_fixup(void); |
99 | | |
100 | | #ifdef CONFIG_ACPI_HOTPLUG_CPU |
101 | | /* Arch dependent functions for cpu hotplug support */ |
102 | | int acpi_map_lsapic(acpi_handle handle, int *pcpu); |
103 | | int acpi_unmap_lsapic(int cpu); |
104 | | #endif /* CONFIG_ACPI_HOTPLUG_CPU */ |
105 | | |
106 | | extern int acpi_mp_config; |
107 | | |
108 | | extern u32 pci_mmcfg_base_addr; |
109 | | |
110 | | #else /*!CONFIG_ACPI*/ |
111 | | |
112 | | #define acpi_mp_config 0 |
113 | | |
114 | | static inline int acpi_boot_init(void) |
115 | | { |
116 | | return 0; |
117 | | } |
118 | | |
119 | | static inline int acpi_boot_table_init(void) |
120 | | { |
121 | | return 0; |
122 | | } |
123 | | |
124 | | #endif /*!CONFIG_ACPI*/ |
125 | | |
126 | | int get_cpu_id(u32 acpi_id); |
127 | | |
128 | | unsigned int acpi_register_gsi (u32 gsi, int edge_level, int active_high_low); |
129 | | int acpi_gsi_to_irq (u32 gsi, unsigned int *irq); |
130 | | |
131 | | /* |
132 | | * This function undoes the effect of one call to acpi_register_gsi(). |
133 | | * If this matches the last registration, any IRQ resources for gsi |
134 | | * are freed. |
135 | | */ |
136 | | #ifdef CONFIG_ACPI_DEALLOCATE_IRQ |
137 | | void acpi_unregister_gsi (u32 gsi); |
138 | | #endif |
139 | | |
140 | | #ifdef CONFIG_ACPI_CSTATE |
141 | | /* |
142 | | * Set highest legal C-state |
143 | | * 0: C0 okay, but not C1 |
144 | | * 1: C1 okay, but not C2 |
145 | | * 2: C2 okay, but not C3 etc. |
146 | | */ |
147 | | |
148 | | extern unsigned int max_cstate; |
149 | | |
150 | | static inline unsigned int acpi_get_cstate_limit(void) |
151 | 0 | { |
152 | 0 | return max_cstate; |
153 | 0 | } Unexecuted instantiation: kexec.c:acpi_get_cstate_limit Unexecuted instantiation: mmconfig_64.c:acpi_get_cstate_limit Unexecuted instantiation: mmconf-fam10h.c:acpi_get_cstate_limit Unexecuted instantiation: acpi_mmcfg.c:acpi_get_cstate_limit Unexecuted instantiation: emul-priv-op.c:acpi_get_cstate_limit Unexecuted instantiation: emul-inv-op.c:acpi_get_cstate_limit Unexecuted instantiation: emul-gate-op.c:acpi_get_cstate_limit Unexecuted instantiation: op_model_athlon.c:acpi_get_cstate_limit Unexecuted instantiation: op_model_ppro.c:acpi_get_cstate_limit Unexecuted instantiation: op_model_p4.c:acpi_get_cstate_limit Unexecuted instantiation: nmi_int.c:acpi_get_cstate_limit Unexecuted instantiation: vmx.c:acpi_get_cstate_limit Unexecuted instantiation: vmcs.c:acpi_get_cstate_limit Unexecuted instantiation: svm.c:acpi_get_cstate_limit Unexecuted instantiation: vpt.c:acpi_get_cstate_limit Unexecuted instantiation: vmsi.c:acpi_get_cstate_limit Unexecuted instantiation: vlapic.c:acpi_get_cstate_limit Unexecuted instantiation: viridian.c:acpi_get_cstate_limit Unexecuted instantiation: vioapic.c:acpi_get_cstate_limit Unexecuted instantiation: hvm.c:acpi_get_cstate_limit Unexecuted instantiation: probe.c:acpi_get_cstate_limit Unexecuted instantiation: delivery.c:acpi_get_cstate_limit Unexecuted instantiation: default.c:acpi_get_cstate_limit Unexecuted instantiation: x2apic.c:acpi_get_cstate_limit Unexecuted instantiation: bigsmp.c:acpi_get_cstate_limit Unexecuted instantiation: mce_intel.c:acpi_get_cstate_limit Unexecuted instantiation: mce-apei.c:acpi_get_cstate_limit Unexecuted instantiation: mce.c:acpi_get_cstate_limit Unexecuted instantiation: vpmu_intel.c:acpi_get_cstate_limit Unexecuted instantiation: vpmu_amd.c:acpi_get_cstate_limit Unexecuted instantiation: vpmu.c:acpi_get_cstate_limit Unexecuted instantiation: mwait-idle.c:acpi_get_cstate_limit Unexecuted instantiation: intel.c:acpi_get_cstate_limit Unexecuted instantiation: common.c:acpi_get_cstate_limit Unexecuted instantiation: amd.c:acpi_get_cstate_limit Unexecuted instantiation: powernow.c:acpi_get_cstate_limit Unexecuted instantiation: cpuidle_menu.c:acpi_get_cstate_limit Unexecuted instantiation: cpu_idle.c:acpi_get_cstate_limit Unexecuted instantiation: suspend.c:acpi_get_cstate_limit Unexecuted instantiation: power.c:acpi_get_cstate_limit Unexecuted instantiation: lib.c:acpi_get_cstate_limit Unexecuted instantiation: hpet.c:acpi_get_cstate_limit Unexecuted instantiation: tboot.c:acpi_get_cstate_limit Unexecuted instantiation: traps.c:acpi_get_cstate_limit Unexecuted instantiation: time.c:acpi_get_cstate_limit Unexecuted instantiation: srat.c:acpi_get_cstate_limit Unexecuted instantiation: smpboot.c:acpi_get_cstate_limit Unexecuted instantiation: smp.c:acpi_get_cstate_limit Unexecuted instantiation: shutdown.c:acpi_get_cstate_limit Unexecuted instantiation: setup.c:acpi_get_cstate_limit Unexecuted instantiation: platform_hypercall.c:acpi_get_cstate_limit Unexecuted instantiation: physdev.c:acpi_get_cstate_limit Unexecuted instantiation: nmi.c:acpi_get_cstate_limit Unexecuted instantiation: mpparse.c:acpi_get_cstate_limit Unexecuted instantiation: mm.c:acpi_get_cstate_limit Unexecuted instantiation: machine_kexec.c:acpi_get_cstate_limit Unexecuted instantiation: irq.c:acpi_get_cstate_limit Unexecuted instantiation: msi.c:acpi_get_cstate_limit Unexecuted instantiation: io_apic.c:acpi_get_cstate_limit Unexecuted instantiation: i8259.c:acpi_get_cstate_limit Unexecuted instantiation: domain.c:acpi_get_cstate_limit Unexecuted instantiation: crash.c:acpi_get_cstate_limit Unexecuted instantiation: apic.c:acpi_get_cstate_limit Unexecuted instantiation: apei-io.c:acpi_get_cstate_limit Unexecuted instantiation: apei-base.c:acpi_get_cstate_limit Unexecuted instantiation: hest.c:acpi_get_cstate_limit Unexecuted instantiation: erst.c:acpi_get_cstate_limit Unexecuted instantiation: reboot.c:acpi_get_cstate_limit Unexecuted instantiation: pmstat.c:acpi_get_cstate_limit Unexecuted instantiation: osl.c:acpi_get_cstate_limit Unexecuted instantiation: numa.c:acpi_get_cstate_limit Unexecuted instantiation: iommu_intr.c:acpi_get_cstate_limit Unexecuted instantiation: pci_amd_iommu.c:acpi_get_cstate_limit Unexecuted instantiation: iommu_map.c:acpi_get_cstate_limit Unexecuted instantiation: iommu_init.c:acpi_get_cstate_limit Unexecuted instantiation: vtd.c:acpi_get_cstate_limit Unexecuted instantiation: quirks.c:acpi_get_cstate_limit Unexecuted instantiation: intremap.c:acpi_get_cstate_limit Unexecuted instantiation: utils.c:acpi_get_cstate_limit Unexecuted instantiation: dmar.c:acpi_get_cstate_limit Unexecuted instantiation: iommu.c:acpi_get_cstate_limit Unexecuted instantiation: pci.c:acpi_get_cstate_limit Unexecuted instantiation: io.c:acpi_get_cstate_limit Unexecuted instantiation: utility.c:acpi_get_cstate_limit Unexecuted instantiation: cpufreq_misc_governors.c:acpi_get_cstate_limit Unexecuted instantiation: cpufreq_ondemand.c:acpi_get_cstate_limit Unexecuted instantiation: cpufreq.c:acpi_get_cstate_limit Unexecuted instantiation: ehci-dbgp.c:acpi_get_cstate_limit Unexecuted instantiation: ns16550.c:acpi_get_cstate_limit Unexecuted instantiation: mmconfig-shared.c:acpi_get_cstate_limit |
154 | | static inline void acpi_set_cstate_limit(unsigned int new_limit) |
155 | 0 | { |
156 | 0 | max_cstate = new_limit; |
157 | 0 | return; |
158 | 0 | } Unexecuted instantiation: mmconfig-shared.c:acpi_set_cstate_limit Unexecuted instantiation: mmconfig_64.c:acpi_set_cstate_limit Unexecuted instantiation: mmconf-fam10h.c:acpi_set_cstate_limit Unexecuted instantiation: acpi_mmcfg.c:acpi_set_cstate_limit Unexecuted instantiation: emul-priv-op.c:acpi_set_cstate_limit Unexecuted instantiation: emul-inv-op.c:acpi_set_cstate_limit Unexecuted instantiation: emul-gate-op.c:acpi_set_cstate_limit Unexecuted instantiation: op_model_athlon.c:acpi_set_cstate_limit Unexecuted instantiation: op_model_ppro.c:acpi_set_cstate_limit Unexecuted instantiation: op_model_p4.c:acpi_set_cstate_limit Unexecuted instantiation: nmi_int.c:acpi_set_cstate_limit Unexecuted instantiation: vmx.c:acpi_set_cstate_limit Unexecuted instantiation: vmcs.c:acpi_set_cstate_limit Unexecuted instantiation: svm.c:acpi_set_cstate_limit Unexecuted instantiation: vpt.c:acpi_set_cstate_limit Unexecuted instantiation: vmsi.c:acpi_set_cstate_limit Unexecuted instantiation: vlapic.c:acpi_set_cstate_limit Unexecuted instantiation: viridian.c:acpi_set_cstate_limit Unexecuted instantiation: vioapic.c:acpi_set_cstate_limit Unexecuted instantiation: hvm.c:acpi_set_cstate_limit Unexecuted instantiation: probe.c:acpi_set_cstate_limit Unexecuted instantiation: delivery.c:acpi_set_cstate_limit Unexecuted instantiation: default.c:acpi_set_cstate_limit Unexecuted instantiation: x2apic.c:acpi_set_cstate_limit Unexecuted instantiation: bigsmp.c:acpi_set_cstate_limit Unexecuted instantiation: mce_intel.c:acpi_set_cstate_limit Unexecuted instantiation: mce-apei.c:acpi_set_cstate_limit Unexecuted instantiation: mce.c:acpi_set_cstate_limit Unexecuted instantiation: vpmu_intel.c:acpi_set_cstate_limit Unexecuted instantiation: vpmu_amd.c:acpi_set_cstate_limit Unexecuted instantiation: vpmu.c:acpi_set_cstate_limit Unexecuted instantiation: mwait-idle.c:acpi_set_cstate_limit Unexecuted instantiation: intel.c:acpi_set_cstate_limit Unexecuted instantiation: common.c:acpi_set_cstate_limit Unexecuted instantiation: amd.c:acpi_set_cstate_limit Unexecuted instantiation: powernow.c:acpi_set_cstate_limit Unexecuted instantiation: cpuidle_menu.c:acpi_set_cstate_limit Unexecuted instantiation: cpu_idle.c:acpi_set_cstate_limit Unexecuted instantiation: suspend.c:acpi_set_cstate_limit Unexecuted instantiation: power.c:acpi_set_cstate_limit Unexecuted instantiation: lib.c:acpi_set_cstate_limit Unexecuted instantiation: hpet.c:acpi_set_cstate_limit Unexecuted instantiation: tboot.c:acpi_set_cstate_limit Unexecuted instantiation: traps.c:acpi_set_cstate_limit Unexecuted instantiation: time.c:acpi_set_cstate_limit Unexecuted instantiation: srat.c:acpi_set_cstate_limit Unexecuted instantiation: smpboot.c:acpi_set_cstate_limit Unexecuted instantiation: smp.c:acpi_set_cstate_limit Unexecuted instantiation: shutdown.c:acpi_set_cstate_limit Unexecuted instantiation: setup.c:acpi_set_cstate_limit Unexecuted instantiation: platform_hypercall.c:acpi_set_cstate_limit Unexecuted instantiation: physdev.c:acpi_set_cstate_limit Unexecuted instantiation: nmi.c:acpi_set_cstate_limit Unexecuted instantiation: mpparse.c:acpi_set_cstate_limit Unexecuted instantiation: mm.c:acpi_set_cstate_limit Unexecuted instantiation: machine_kexec.c:acpi_set_cstate_limit Unexecuted instantiation: irq.c:acpi_set_cstate_limit Unexecuted instantiation: msi.c:acpi_set_cstate_limit Unexecuted instantiation: io_apic.c:acpi_set_cstate_limit Unexecuted instantiation: i8259.c:acpi_set_cstate_limit Unexecuted instantiation: domain.c:acpi_set_cstate_limit Unexecuted instantiation: crash.c:acpi_set_cstate_limit Unexecuted instantiation: apic.c:acpi_set_cstate_limit Unexecuted instantiation: apei-io.c:acpi_set_cstate_limit Unexecuted instantiation: apei-base.c:acpi_set_cstate_limit Unexecuted instantiation: hest.c:acpi_set_cstate_limit Unexecuted instantiation: erst.c:acpi_set_cstate_limit Unexecuted instantiation: reboot.c:acpi_set_cstate_limit Unexecuted instantiation: pmstat.c:acpi_set_cstate_limit Unexecuted instantiation: osl.c:acpi_set_cstate_limit Unexecuted instantiation: numa.c:acpi_set_cstate_limit Unexecuted instantiation: iommu_intr.c:acpi_set_cstate_limit Unexecuted instantiation: pci_amd_iommu.c:acpi_set_cstate_limit Unexecuted instantiation: iommu_map.c:acpi_set_cstate_limit Unexecuted instantiation: iommu_init.c:acpi_set_cstate_limit Unexecuted instantiation: vtd.c:acpi_set_cstate_limit Unexecuted instantiation: quirks.c:acpi_set_cstate_limit Unexecuted instantiation: intremap.c:acpi_set_cstate_limit Unexecuted instantiation: utils.c:acpi_set_cstate_limit Unexecuted instantiation: dmar.c:acpi_set_cstate_limit Unexecuted instantiation: iommu.c:acpi_set_cstate_limit Unexecuted instantiation: pci.c:acpi_set_cstate_limit Unexecuted instantiation: io.c:acpi_set_cstate_limit Unexecuted instantiation: utility.c:acpi_set_cstate_limit Unexecuted instantiation: cpufreq_misc_governors.c:acpi_set_cstate_limit Unexecuted instantiation: cpufreq_ondemand.c:acpi_set_cstate_limit Unexecuted instantiation: cpufreq.c:acpi_set_cstate_limit Unexecuted instantiation: ehci-dbgp.c:acpi_set_cstate_limit Unexecuted instantiation: ns16550.c:acpi_set_cstate_limit Unexecuted instantiation: kexec.c:acpi_set_cstate_limit |
159 | | #else |
160 | | static inline unsigned int acpi_get_cstate_limit(void) { return 0; } |
161 | | static inline void acpi_set_cstate_limit(unsigned int new_limit) { return; } |
162 | | #endif |
163 | | |
164 | | #ifdef XEN_GUEST_HANDLE_PARAM |
165 | | int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE_PARAM(uint32)); |
166 | | #endif |
167 | | int arch_acpi_set_pdc_bits(u32 acpi_id, u32 *, u32 mask); |
168 | | |
169 | | #ifdef CONFIG_ACPI_NUMA |
170 | | int acpi_get_pxm(acpi_handle handle); |
171 | | #else |
172 | | static inline int acpi_get_pxm(acpi_handle handle) |
173 | | { |
174 | | return 0; |
175 | | } |
176 | | #endif |
177 | | |
178 | | void acpi_reboot(void); |
179 | | |
180 | | void acpi_dmar_zap(void); |
181 | | void acpi_dmar_reinstate(void); |
182 | | |
183 | | #endif /*_LINUX_ACPI_H*/ |