Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/include/asm/acpi.h
Line
Count
Source (jump to first uncovered line)
1
#ifndef _ASM_X86_ACPI_H
2
#define _ASM_X86_ACPI_H
3
4
/*
5
 *  Copyright (C) 2001 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
6
 *  Copyright (C) 2001 Patrick Mochel <mochel@osdl.org>
7
 *
8
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9
 *
10
 *  This program is free software; you can redistribute it and/or modify
11
 *  it under the terms of the GNU General Public License as published by
12
 *  the Free Software Foundation; either version 2 of the License, or
13
 *  (at your option) any later version.
14
 *
15
 *  This program is distributed in the hope that it will be useful,
16
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
 *  GNU General Public License for more details.
19
 *
20
 *  You should have received a copy of the GNU General Public License
21
 *  along with this program; If not, see <http://www.gnu.org/licenses/>.
22
 *
23
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
24
 */
25
26
#include <acpi/pdc_intel.h>
27
#include <acpi/acconfig.h>
28
#include <acpi/actbl.h>
29
30
#define COMPILER_DEPENDENT_INT64   long long
31
#define COMPILER_DEPENDENT_UINT64  unsigned long long
32
33
/*
34
 * Calling conventions:
35
 *
36
 * ACPI_SYSTEM_XFACE        - Interfaces to host OS (handlers, threads)
37
 * ACPI_EXTERNAL_XFACE      - External ACPI interfaces
38
 * ACPI_INTERNAL_XFACE      - Internal ACPI interfaces
39
 * ACPI_INTERNAL_VAR_XFACE  - Internal variable-parameter list interfaces
40
 */
41
#define ACPI_SYSTEM_XFACE
42
#define ACPI_EXTERNAL_XFACE
43
#define ACPI_INTERNAL_XFACE
44
#define ACPI_INTERNAL_VAR_XFACE
45
46
/* Asm macros */
47
48
#define ACPI_ASM_MACROS
49
#define BREAKPOINT3
50
#define ACPI_DISABLE_IRQS() local_irq_disable()
51
#define ACPI_ENABLE_IRQS()  local_irq_enable()
52
0
#define ACPI_FLUSH_CPU_CACHE()  wbinvd()
53
54
int __acpi_acquire_global_lock(unsigned int *lock);
55
int __acpi_release_global_lock(unsigned int *lock);
56
57
#define ACPI_ACQUIRE_GLOBAL_LOCK(facs, Acq) \
58
  ((Acq) = __acpi_acquire_global_lock(&facs->global_lock))
59
60
#define ACPI_RELEASE_GLOBAL_LOCK(facs, Acq) \
61
  ((Acq) = __acpi_release_global_lock(&facs->global_lock))
62
63
/*
64
 * Math helper asm macros
65
 */
66
#define ACPI_DIV_64_BY_32(n_hi, n_lo, d32, q32, r32) \
67
  asm("divl %2;"             \
68
      :"=a"(q32), "=d"(r32)        \
69
      :"r"(d32),             \
70
       "0"(n_lo), "1"(n_hi))
71
72
73
#define ACPI_SHIFT_RIGHT_64(n_hi, n_lo) \
74
  asm("shrl   $1,%2 ;"  \
75
      "rcrl   $1,%3;"   \
76
      :"=r"(n_hi), "=r"(n_lo) \
77
      :"0"(n_hi), "1"(n_lo))
78
79
extern bool acpi_lapic, acpi_ioapic, acpi_noirq;
80
extern bool acpi_force, acpi_ht, acpi_disabled;
81
extern u32 acpi_smi_cmd;
82
extern u8 acpi_enable_value, acpi_disable_value;
83
void acpi_pic_sci_set_trigger(unsigned int, u16);
84
85
static inline void disable_acpi(void)
86
0
{
87
0
  acpi_disabled = 1;
88
0
  acpi_ht = 0;
89
0
  acpi_noirq = 1;
90
0
}
Unexecuted instantiation: kexec.c:disable_acpi
Unexecuted instantiation: ns16550.c:disable_acpi
Unexecuted instantiation: ehci-dbgp.c:disable_acpi
Unexecuted instantiation: cpufreq.c:disable_acpi
Unexecuted instantiation: cpufreq_ondemand.c:disable_acpi
Unexecuted instantiation: cpufreq_misc_governors.c:disable_acpi
Unexecuted instantiation: utility.c:disable_acpi
Unexecuted instantiation: io.c:disable_acpi
Unexecuted instantiation: pci.c:disable_acpi
Unexecuted instantiation: iommu.c:disable_acpi
Unexecuted instantiation: dmar.c:disable_acpi
Unexecuted instantiation: utils.c:disable_acpi
Unexecuted instantiation: intremap.c:disable_acpi
Unexecuted instantiation: quirks.c:disable_acpi
Unexecuted instantiation: vtd.c:disable_acpi
Unexecuted instantiation: iommu_init.c:disable_acpi
Unexecuted instantiation: iommu_map.c:disable_acpi
Unexecuted instantiation: pci_amd_iommu.c:disable_acpi
Unexecuted instantiation: iommu_intr.c:disable_acpi
Unexecuted instantiation: numa.c:disable_acpi
Unexecuted instantiation: osl.c:disable_acpi
Unexecuted instantiation: pmstat.c:disable_acpi
Unexecuted instantiation: hwregs.c:disable_acpi
Unexecuted instantiation: reboot.c:disable_acpi
Unexecuted instantiation: tbutils.c:disable_acpi
Unexecuted instantiation: utglobal.c:disable_acpi
Unexecuted instantiation: erst.c:disable_acpi
Unexecuted instantiation: hest.c:disable_acpi
Unexecuted instantiation: apei-base.c:disable_acpi
Unexecuted instantiation: apei-io.c:disable_acpi
Unexecuted instantiation: apic.c:disable_acpi
Unexecuted instantiation: crash.c:disable_acpi
Unexecuted instantiation: domctl.c:disable_acpi
Unexecuted instantiation: domain.c:disable_acpi
Unexecuted instantiation: i8259.c:disable_acpi
Unexecuted instantiation: io_apic.c:disable_acpi
Unexecuted instantiation: msi.c:disable_acpi
Unexecuted instantiation: irq.c:disable_acpi
Unexecuted instantiation: machine_kexec.c:disable_acpi
Unexecuted instantiation: mm.c:disable_acpi
Unexecuted instantiation: mpparse.c:disable_acpi
Unexecuted instantiation: nmi.c:disable_acpi
Unexecuted instantiation: physdev.c:disable_acpi
Unexecuted instantiation: platform_hypercall.c:disable_acpi
Unexecuted instantiation: setup.c:disable_acpi
Unexecuted instantiation: shutdown.c:disable_acpi
Unexecuted instantiation: smp.c:disable_acpi
Unexecuted instantiation: smpboot.c:disable_acpi
Unexecuted instantiation: srat.c:disable_acpi
Unexecuted instantiation: time.c:disable_acpi
Unexecuted instantiation: traps.c:disable_acpi
Unexecuted instantiation: tboot.c:disable_acpi
Unexecuted instantiation: hpet.c:disable_acpi
Unexecuted instantiation: lib.c:disable_acpi
Unexecuted instantiation: power.c:disable_acpi
Unexecuted instantiation: suspend.c:disable_acpi
Unexecuted instantiation: cpu_idle.c:disable_acpi
Unexecuted instantiation: cpuidle_menu.c:disable_acpi
Unexecuted instantiation: powernow.c:disable_acpi
Unexecuted instantiation: amd.c:disable_acpi
Unexecuted instantiation: common.c:disable_acpi
Unexecuted instantiation: intel.c:disable_acpi
Unexecuted instantiation: mwait-idle.c:disable_acpi
Unexecuted instantiation: vpmu.c:disable_acpi
Unexecuted instantiation: vpmu_amd.c:disable_acpi
Unexecuted instantiation: vpmu_intel.c:disable_acpi
Unexecuted instantiation: mce.c:disable_acpi
Unexecuted instantiation: mce-apei.c:disable_acpi
Unexecuted instantiation: mce_intel.c:disable_acpi
Unexecuted instantiation: bigsmp.c:disable_acpi
Unexecuted instantiation: x2apic.c:disable_acpi
Unexecuted instantiation: default.c:disable_acpi
Unexecuted instantiation: delivery.c:disable_acpi
Unexecuted instantiation: probe.c:disable_acpi
Unexecuted instantiation: hvm.c:disable_acpi
Unexecuted instantiation: pmtimer.c:disable_acpi
Unexecuted instantiation: vioapic.c:disable_acpi
Unexecuted instantiation: viridian.c:disable_acpi
Unexecuted instantiation: vlapic.c:disable_acpi
Unexecuted instantiation: vmsi.c:disable_acpi
Unexecuted instantiation: vpt.c:disable_acpi
Unexecuted instantiation: svm.c:disable_acpi
Unexecuted instantiation: vmcs.c:disable_acpi
Unexecuted instantiation: vmx.c:disable_acpi
Unexecuted instantiation: nmi_int.c:disable_acpi
Unexecuted instantiation: op_model_p4.c:disable_acpi
Unexecuted instantiation: op_model_ppro.c:disable_acpi
Unexecuted instantiation: op_model_athlon.c:disable_acpi
Unexecuted instantiation: emul-gate-op.c:disable_acpi
Unexecuted instantiation: emul-inv-op.c:disable_acpi
Unexecuted instantiation: emul-priv-op.c:disable_acpi
Unexecuted instantiation: acpi_mmcfg.c:disable_acpi
Unexecuted instantiation: mmconf-fam10h.c:disable_acpi
Unexecuted instantiation: mmconfig_64.c:disable_acpi
Unexecuted instantiation: mmconfig-shared.c:disable_acpi
91
92
0
static inline void acpi_noirq_set(void) { acpi_noirq = 1; }
Unexecuted instantiation: kexec.c:acpi_noirq_set
Unexecuted instantiation: ns16550.c:acpi_noirq_set
Unexecuted instantiation: ehci-dbgp.c:acpi_noirq_set
Unexecuted instantiation: cpufreq.c:acpi_noirq_set
Unexecuted instantiation: cpufreq_ondemand.c:acpi_noirq_set
Unexecuted instantiation: cpufreq_misc_governors.c:acpi_noirq_set
Unexecuted instantiation: utility.c:acpi_noirq_set
Unexecuted instantiation: io.c:acpi_noirq_set
Unexecuted instantiation: pci.c:acpi_noirq_set
Unexecuted instantiation: iommu.c:acpi_noirq_set
Unexecuted instantiation: dmar.c:acpi_noirq_set
Unexecuted instantiation: utils.c:acpi_noirq_set
Unexecuted instantiation: intremap.c:acpi_noirq_set
Unexecuted instantiation: quirks.c:acpi_noirq_set
Unexecuted instantiation: vtd.c:acpi_noirq_set
Unexecuted instantiation: iommu_init.c:acpi_noirq_set
Unexecuted instantiation: iommu_map.c:acpi_noirq_set
Unexecuted instantiation: pci_amd_iommu.c:acpi_noirq_set
Unexecuted instantiation: iommu_intr.c:acpi_noirq_set
Unexecuted instantiation: numa.c:acpi_noirq_set
Unexecuted instantiation: osl.c:acpi_noirq_set
Unexecuted instantiation: pmstat.c:acpi_noirq_set
Unexecuted instantiation: hwregs.c:acpi_noirq_set
Unexecuted instantiation: reboot.c:acpi_noirq_set
Unexecuted instantiation: tbutils.c:acpi_noirq_set
Unexecuted instantiation: utglobal.c:acpi_noirq_set
Unexecuted instantiation: erst.c:acpi_noirq_set
Unexecuted instantiation: hest.c:acpi_noirq_set
Unexecuted instantiation: apei-base.c:acpi_noirq_set
Unexecuted instantiation: apei-io.c:acpi_noirq_set
Unexecuted instantiation: apic.c:acpi_noirq_set
Unexecuted instantiation: crash.c:acpi_noirq_set
Unexecuted instantiation: domctl.c:acpi_noirq_set
Unexecuted instantiation: domain.c:acpi_noirq_set
Unexecuted instantiation: i8259.c:acpi_noirq_set
Unexecuted instantiation: io_apic.c:acpi_noirq_set
Unexecuted instantiation: msi.c:acpi_noirq_set
Unexecuted instantiation: irq.c:acpi_noirq_set
Unexecuted instantiation: machine_kexec.c:acpi_noirq_set
Unexecuted instantiation: mm.c:acpi_noirq_set
Unexecuted instantiation: mpparse.c:acpi_noirq_set
Unexecuted instantiation: nmi.c:acpi_noirq_set
Unexecuted instantiation: physdev.c:acpi_noirq_set
Unexecuted instantiation: platform_hypercall.c:acpi_noirq_set
Unexecuted instantiation: setup.c:acpi_noirq_set
Unexecuted instantiation: shutdown.c:acpi_noirq_set
Unexecuted instantiation: smp.c:acpi_noirq_set
Unexecuted instantiation: smpboot.c:acpi_noirq_set
Unexecuted instantiation: srat.c:acpi_noirq_set
Unexecuted instantiation: time.c:acpi_noirq_set
Unexecuted instantiation: traps.c:acpi_noirq_set
Unexecuted instantiation: tboot.c:acpi_noirq_set
Unexecuted instantiation: hpet.c:acpi_noirq_set
Unexecuted instantiation: lib.c:acpi_noirq_set
Unexecuted instantiation: power.c:acpi_noirq_set
Unexecuted instantiation: suspend.c:acpi_noirq_set
Unexecuted instantiation: cpu_idle.c:acpi_noirq_set
Unexecuted instantiation: cpuidle_menu.c:acpi_noirq_set
Unexecuted instantiation: powernow.c:acpi_noirq_set
Unexecuted instantiation: amd.c:acpi_noirq_set
Unexecuted instantiation: common.c:acpi_noirq_set
Unexecuted instantiation: intel.c:acpi_noirq_set
Unexecuted instantiation: mwait-idle.c:acpi_noirq_set
Unexecuted instantiation: vpmu.c:acpi_noirq_set
Unexecuted instantiation: vpmu_amd.c:acpi_noirq_set
Unexecuted instantiation: vpmu_intel.c:acpi_noirq_set
Unexecuted instantiation: mce.c:acpi_noirq_set
Unexecuted instantiation: mce-apei.c:acpi_noirq_set
Unexecuted instantiation: mce_intel.c:acpi_noirq_set
Unexecuted instantiation: bigsmp.c:acpi_noirq_set
Unexecuted instantiation: x2apic.c:acpi_noirq_set
Unexecuted instantiation: default.c:acpi_noirq_set
Unexecuted instantiation: delivery.c:acpi_noirq_set
Unexecuted instantiation: probe.c:acpi_noirq_set
Unexecuted instantiation: hvm.c:acpi_noirq_set
Unexecuted instantiation: pmtimer.c:acpi_noirq_set
Unexecuted instantiation: vioapic.c:acpi_noirq_set
Unexecuted instantiation: viridian.c:acpi_noirq_set
Unexecuted instantiation: vlapic.c:acpi_noirq_set
Unexecuted instantiation: vmsi.c:acpi_noirq_set
Unexecuted instantiation: vpt.c:acpi_noirq_set
Unexecuted instantiation: svm.c:acpi_noirq_set
Unexecuted instantiation: vmcs.c:acpi_noirq_set
Unexecuted instantiation: vmx.c:acpi_noirq_set
Unexecuted instantiation: nmi_int.c:acpi_noirq_set
Unexecuted instantiation: op_model_p4.c:acpi_noirq_set
Unexecuted instantiation: op_model_ppro.c:acpi_noirq_set
Unexecuted instantiation: op_model_athlon.c:acpi_noirq_set
Unexecuted instantiation: emul-gate-op.c:acpi_noirq_set
Unexecuted instantiation: emul-inv-op.c:acpi_noirq_set
Unexecuted instantiation: emul-priv-op.c:acpi_noirq_set
Unexecuted instantiation: acpi_mmcfg.c:acpi_noirq_set
Unexecuted instantiation: mmconf-fam10h.c:acpi_noirq_set
Unexecuted instantiation: mmconfig_64.c:acpi_noirq_set
Unexecuted instantiation: mmconfig-shared.c:acpi_noirq_set
93
94
/* routines for saving/restoring kernel state */
95
extern int acpi_save_state_mem(void);
96
extern int acpi_save_state_disk(void);
97
extern void acpi_restore_state_mem(void);
98
99
extern unsigned long acpi_wakeup_address;
100
101
/* early initialization routine */
102
extern void acpi_reserve_bootmem(void);
103
104
#define ARCH_HAS_POWER_INIT 1
105
106
extern s8 acpi_numa;
107
extern int acpi_scan_nodes(u64 start, u64 end);
108
0
#define NR_NODE_MEMBLKS (MAX_NUMNODES*2)
109
110
#ifdef CONFIG_ACPI_SLEEP
111
112
extern struct acpi_sleep_info acpi_sinfo;
113
0
#define acpi_video_flags bootsym(video_flags)
114
struct xenpf_enter_acpi_sleep;
115
extern int acpi_enter_sleep(struct xenpf_enter_acpi_sleep *sleep);
116
extern int acpi_enter_state(u32 state);
117
118
struct acpi_sleep_info {
119
    struct acpi_generic_address pm1a_cnt_blk;
120
    struct acpi_generic_address pm1b_cnt_blk;
121
    struct acpi_generic_address pm1a_evt_blk;
122
    struct acpi_generic_address pm1b_evt_blk;
123
    struct acpi_generic_address sleep_control;
124
    struct acpi_generic_address sleep_status;
125
    union {
126
        uint16_t pm1a_cnt_val;
127
        uint8_t sleep_type_a;
128
    };
129
    union {
130
        uint16_t pm1b_cnt_val;
131
        uint8_t sleep_type_b;
132
    };
133
    uint32_t sleep_state;
134
    uint64_t wakeup_vector;
135
    uint32_t vector_width;
136
    bool_t sleep_extended;
137
};
138
139
#endif /* CONFIG_ACPI_SLEEP */
140
141
0
#define MAX_MADT_ENTRIES  MAX(256, 2 * NR_CPUS)
142
extern u32 x86_acpiid_to_apicid[];
143
24
#define MAX_LOCAL_APIC    MAX(256, 4 * NR_CPUS)
144
145
0
#define INVALID_ACPIID    (-1U)
146
147
extern u32 pmtmr_ioport;
148
extern unsigned int pmtmr_width;
149
150
int acpi_dmar_init(void);
151
void acpi_mmcfg_init(void);
152
153
/* Incremented whenever we transition through S3. Value is 1 during boot. */
154
extern uint32_t system_reset_counter;
155
156
void hvm_acpi_power_button(struct domain *d);
157
void hvm_acpi_sleep_button(struct domain *d);
158
159
/* suspend/resume */
160
void save_rest_processor_state(void);
161
void restore_rest_processor_state(void);
162
163
22
#define ACPI_MAP_MEM_ATTR PAGE_HYPERVISOR_UCMINUS
164
165
#endif /*__X86_ASM_ACPI_H*/