Coverage Report

Created: 2017-10-25 09:10

/root/src/xen/xen/include/asm/desc.h
Line
Count
Source (jump to first uncovered line)
1
#ifndef __ARCH_DESC_H
2
#define __ARCH_DESC_H
3
4
/*
5
 * Xen reserves a memory page of GDT entries.
6
 * No guest GDT entries exist beyond the Xen reserved area.
7
 */
8
24
#define NR_RESERVED_GDT_PAGES   1
9
13
#define NR_RESERVED_GDT_BYTES   (NR_RESERVED_GDT_PAGES * PAGE_SIZE)
10
#define NR_RESERVED_GDT_ENTRIES (NR_RESERVED_GDT_BYTES / 8)
11
12
#define LAST_RESERVED_GDT_PAGE  \
13
    (FIRST_RESERVED_GDT_PAGE + NR_RESERVED_GDT_PAGES - 1)
14
#define LAST_RESERVED_GDT_BYTE  \
15
13
    (FIRST_RESERVED_GDT_BYTE + NR_RESERVED_GDT_BYTES - 1)
16
#define LAST_RESERVED_GDT_ENTRY \
17
    (FIRST_RESERVED_GDT_ENTRY + NR_RESERVED_GDT_ENTRIES - 1)
18
19
#define LDT_ENTRY_SIZE 8
20
21
0
#define FLAT_COMPAT_RING1_CS 0xe019  /* GDT index 259 */
22
#define FLAT_COMPAT_RING1_DS 0xe021  /* GDT index 260 */
23
0
#define FLAT_COMPAT_RING1_SS 0xe021  /* GDT index 260 */
24
#define FLAT_COMPAT_RING3_CS 0xe02b  /* GDT index 261 */
25
#define FLAT_COMPAT_RING3_DS 0xe033  /* GDT index 262 */
26
#define FLAT_COMPAT_RING3_SS 0xe033  /* GDT index 262 */
27
28
#define FLAT_COMPAT_KERNEL_DS FLAT_COMPAT_RING1_DS
29
0
#define FLAT_COMPAT_KERNEL_CS FLAT_COMPAT_RING1_CS
30
0
#define FLAT_COMPAT_KERNEL_SS FLAT_COMPAT_RING1_SS
31
#define FLAT_COMPAT_USER_DS   FLAT_COMPAT_RING3_DS
32
#define FLAT_COMPAT_USER_CS   FLAT_COMPAT_RING3_CS
33
#define FLAT_COMPAT_USER_SS   FLAT_COMPAT_RING3_SS
34
35
583
#define TSS_ENTRY (FIRST_RESERVED_GDT_ENTRY + 8)
36
22
#define LDT_ENTRY (TSS_ENTRY + 2)
37
22
#define PER_CPU_GDT_ENTRY (LDT_ENTRY + 2)
38
39
#ifndef __ASSEMBLY__
40
41
0
#define GUEST_KERNEL_RPL(d) (is_pv_32bit_domain(d) ? 1 : 3)
42
43
/* Fix up the RPL of a guest segment selector. */
44
0
#define __fixup_guest_selector(d, sel)                             \
45
0
({                                                                 \
46
0
    uint16_t _rpl = GUEST_KERNEL_RPL(d);                           \
47
0
    (sel) = (((sel) & 3) >= _rpl) ? (sel) : (((sel) & ~3) | _rpl); \
48
0
})
49
50
0
#define fixup_guest_stack_selector(d, ss) __fixup_guest_selector(d, ss)
51
0
#define fixup_guest_code_selector(d, cs)  __fixup_guest_selector(d, cs)
52
53
/*
54
 * We need this function because enforcing the correct guest kernel RPL is
55
 * unsufficient if the selector is poked into an interrupt, trap or call gate.
56
 * The selector RPL is ignored when a gate is accessed. We must therefore make
57
 * sure that the selector does not reference a Xen-private segment.
58
 * 
59
 * Note that selectors used only by IRET do not need to be checked. If the
60
 * descriptor DPL fiffers from CS RPL then we'll #GP.
61
 * 
62
 * Stack and data selectors do not need to be checked. If DS, ES, FS, GS are
63
 * DPL < CPL then they'll be cleared automatically. If SS RPL or DPL differs
64
 * from CS RPL then we'll #GP.
65
 */
66
#define guest_gate_selector_okay(d, sel)                                \
67
0
    ((((sel)>>3) < FIRST_RESERVED_GDT_ENTRY) || /* Guest seg? */        \
68
0
     ((sel) == (!is_pv_32bit_domain(d) ?                                \
69
0
                FLAT_KERNEL_CS :                /* Xen default seg? */  \
70
0
                FLAT_COMPAT_KERNEL_CS)) ||                              \
71
0
     ((sel) & 4))                               /* LDT seg? */
72
73
#endif /* __ASSEMBLY__ */
74
75
/* These are bitmasks for the high 32 bits of a descriptor table entry. */
76
0
#define _SEGMENT_TYPE    (15<< 8)
77
0
#define _SEGMENT_WR      ( 1<< 9) /* Writeable (data) or Readable (code)
78
                                     segment */
79
0
#define _SEGMENT_EC      ( 1<<10) /* Expand-down or Conforming segment */
80
0
#define _SEGMENT_CODE    ( 1<<11) /* Code (vs data) segment for non-system
81
                                     segments */
82
0
#define _SEGMENT_S       ( 1<<12) /* System descriptor (yes iff S==0) */
83
0
#define _SEGMENT_DPL     ( 3<<13) /* Descriptor Privilege Level */
84
0
#define _SEGMENT_P       ( 1<<15) /* Segment Present */
85
0
#define _SEGMENT_L       ( 1<<21) /* 64-bit segment */
86
0
#define _SEGMENT_DB      ( 1<<22) /* 16- or 32-bit segment */
87
0
#define _SEGMENT_G       ( 1<<23) /* Granularity */
88
89
#ifndef __ASSEMBLY__
90
91
/* System Descriptor types for GDT and IDT entries. */
92
#define SYS_DESC_tss16_avail  1
93
#define SYS_DESC_ldt          2
94
0
#define SYS_DESC_tss16_busy   3
95
#define SYS_DESC_call_gate16  4
96
0
#define SYS_DESC_task_gate    5
97
0
#define SYS_DESC_irq_gate16   6
98
0
#define SYS_DESC_trap_gate16  7
99
#define SYS_DESC_tss_avail    9
100
13
#define SYS_DESC_tss_busy     11
101
#define SYS_DESC_call_gate    12
102
0
#define SYS_DESC_irq_gate     14
103
0
#define SYS_DESC_trap_gate    15
104
105
struct desc_struct {
106
    u32 a, b;
107
};
108
109
typedef struct {
110
    u64 a, b;
111
} idt_entry_t;
112
113
/* Write the lower 64 bits of an IDT Entry. This relies on the upper 32
114
 * bits of the address not changing, which is a safe assumption as all
115
 * functions we are likely to load will live inside the 1GB
116
 * code/data/bss address range.
117
 *
118
 * Ideally, we would use cmpxchg16b, but this is not supported on some
119
 * old AMD 64bit capable processors, and has no safe equivalent.
120
 */
121
static inline void _write_gate_lower(volatile idt_entry_t *gate,
122
                                     const idt_entry_t *new)
123
75
{
124
75
    ASSERT(gate->b == new->b);
125
75
    gate->a = new->a;
126
75
}
Unexecuted instantiation: mmconfig-shared.c:_write_gate_lower
Unexecuted instantiation: mmconfig_64.c:_write_gate_lower
Unexecuted instantiation: mmconf-fam10h.c:_write_gate_lower
Unexecuted instantiation: acpi_mmcfg.c:_write_gate_lower
Unexecuted instantiation: ro-page-fault.c:_write_gate_lower
Unexecuted instantiation: misc-hypercalls.c:_write_gate_lower
Unexecuted instantiation: iret.c:_write_gate_lower
Unexecuted instantiation: emul-priv-op.c:_write_gate_lower
Unexecuted instantiation: emul-inv-op.c:_write_gate_lower
Unexecuted instantiation: emul-gate-op.c:_write_gate_lower
Unexecuted instantiation: descriptor-tables.c:_write_gate_lower
Unexecuted instantiation: callback.c:_write_gate_lower
Unexecuted instantiation: backtrace.c:_write_gate_lower
Unexecuted instantiation: op_model_athlon.c:_write_gate_lower
Unexecuted instantiation: op_model_ppro.c:_write_gate_lower
Unexecuted instantiation: op_model_p4.c:_write_gate_lower
Unexecuted instantiation: nmi_int.c:_write_gate_lower
Unexecuted instantiation: nested_ept.c:_write_gate_lower
Unexecuted instantiation: nested_hap.c:_write_gate_lower
Unexecuted instantiation: hap.c:_write_gate_lower
Unexecuted instantiation: multi.c:_write_gate_lower
Unexecuted instantiation: mem_sharing.c:_write_gate_lower
Unexecuted instantiation: mem_paging.c:_write_gate_lower
Unexecuted instantiation: guest_walk.c:_write_gate_lower
Unexecuted instantiation: altp2m.c:_write_gate_lower
Unexecuted instantiation: p2m-pod.c:_write_gate_lower
Unexecuted instantiation: p2m-ept.c:_write_gate_lower
Unexecuted instantiation: p2m-pt.c:_write_gate_lower
Unexecuted instantiation: p2m.c:_write_gate_lower
Unexecuted instantiation: paging.c:_write_gate_lower
Unexecuted instantiation: vvmx.c:_write_gate_lower
Unexecuted instantiation: vmx.c:_write_gate_lower
Unexecuted instantiation: vmcs.c:_write_gate_lower
Unexecuted instantiation: realmode.c:_write_gate_lower
Unexecuted instantiation: vmcb.c:_write_gate_lower
Unexecuted instantiation: svmdebug.c:_write_gate_lower
Unexecuted instantiation: svm.c:_write_gate_lower
Unexecuted instantiation: nestedsvm.c:_write_gate_lower
Unexecuted instantiation: intr.c:_write_gate_lower
Unexecuted instantiation: vpt.c:_write_gate_lower
Unexecuted instantiation: vpic.c:_write_gate_lower
Unexecuted instantiation: vmsi.c:_write_gate_lower
Unexecuted instantiation: vlapic.c:_write_gate_lower
Unexecuted instantiation: viridian.c:_write_gate_lower
Unexecuted instantiation: vioapic.c:_write_gate_lower
Unexecuted instantiation: stdvga.c:_write_gate_lower
Unexecuted instantiation: save.c:_write_gate_lower
Unexecuted instantiation: rtc.c:_write_gate_lower
Unexecuted instantiation: pmtimer.c:_write_gate_lower
Unexecuted instantiation: nestedhvm.c:_write_gate_lower
Unexecuted instantiation: mtrr.c:_write_gate_lower
Unexecuted instantiation: ioreq.c:_write_gate_lower
Unexecuted instantiation: intercept.c:_write_gate_lower
Unexecuted instantiation: i8254.c:_write_gate_lower
Unexecuted instantiation: hvm.c:_write_gate_lower
Unexecuted instantiation: emulate.c:_write_gate_lower
Unexecuted instantiation: dm.c:_write_gate_lower
Unexecuted instantiation: asid.c:_write_gate_lower
Unexecuted instantiation: probe.c:_write_gate_lower
Unexecuted instantiation: delivery.c:_write_gate_lower
Unexecuted instantiation: default.c:_write_gate_lower
Unexecuted instantiation: x2apic.c:_write_gate_lower
Unexecuted instantiation: bigsmp.c:_write_gate_lower
Unexecuted instantiation: main.c:_write_gate_lower
Unexecuted instantiation: generic.c:_write_gate_lower
Unexecuted instantiation: vmce.c:_write_gate_lower
Unexecuted instantiation: util.c:_write_gate_lower
Unexecuted instantiation: non-fatal.c:_write_gate_lower
Unexecuted instantiation: mce_intel.c:_write_gate_lower
Unexecuted instantiation: mce-apei.c:_write_gate_lower
Unexecuted instantiation: mce.c:_write_gate_lower
Unexecuted instantiation: mctelem.c:_write_gate_lower
Unexecuted instantiation: barrier.c:_write_gate_lower
Unexecuted instantiation: mcaction.c:_write_gate_lower
Unexecuted instantiation: mce_amd.c:_write_gate_lower
Unexecuted instantiation: amd_nonfatal.c:_write_gate_lower
Unexecuted instantiation: vpmu_intel.c:_write_gate_lower
Unexecuted instantiation: vpmu_amd.c:_write_gate_lower
Unexecuted instantiation: vpmu.c:_write_gate_lower
Unexecuted instantiation: mwait-idle.c:_write_gate_lower
Unexecuted instantiation: intel_cacheinfo.c:_write_gate_lower
Unexecuted instantiation: intel.c:_write_gate_lower
common.c:_write_gate_lower
Line
Count
Source
123
39
{
124
39
    ASSERT(gate->b == new->b);
125
39
    gate->a = new->a;
126
39
}
Unexecuted instantiation: centaur.c:_write_gate_lower
Unexecuted instantiation: amd.c:_write_gate_lower
Unexecuted instantiation: powernow.c:_write_gate_lower
Unexecuted instantiation: cpuidle_menu.c:_write_gate_lower
Unexecuted instantiation: cpu_idle.c:_write_gate_lower
Unexecuted instantiation: suspend.c:_write_gate_lower
Unexecuted instantiation: power.c:_write_gate_lower
Unexecuted instantiation: lib.c:_write_gate_lower
Unexecuted instantiation: xstate.c:_write_gate_lower
Unexecuted instantiation: hpet.c:_write_gate_lower
Unexecuted instantiation: tboot.c:_write_gate_lower
Unexecuted instantiation: x86_emulate.c:_write_gate_lower
Unexecuted instantiation: usercopy.c:_write_gate_lower
traps.c:_write_gate_lower
Line
Count
Source
123
3
{
124
3
    ASSERT(gate->b == new->b);
125
3
    gate->a = new->a;
126
3
}
Unexecuted instantiation: srat.c:_write_gate_lower
smpboot.c:_write_gate_lower
Line
Count
Source
123
33
{
124
33
    ASSERT(gate->b == new->b);
125
33
    gate->a = new->a;
126
33
}
Unexecuted instantiation: setup.c:_write_gate_lower
Unexecuted instantiation: psr.c:_write_gate_lower
Unexecuted instantiation: platform_hypercall.c:_write_gate_lower
Unexecuted instantiation: physdev.c:_write_gate_lower
Unexecuted instantiation: percpu.c:_write_gate_lower
Unexecuted instantiation: nmi.c:_write_gate_lower
Unexecuted instantiation: mpparse.c:_write_gate_lower
Unexecuted instantiation: mm.c:_write_gate_lower
Unexecuted instantiation: microcode.c:_write_gate_lower
Unexecuted instantiation: microcode_intel.c:_write_gate_lower
Unexecuted instantiation: microcode_amd.c:_write_gate_lower
Unexecuted instantiation: machine_kexec.c:_write_gate_lower
Unexecuted instantiation: ioport_emulate.c:_write_gate_lower
Unexecuted instantiation: msr.c:_write_gate_lower
Unexecuted instantiation: io_apic.c:_write_gate_lower
Unexecuted instantiation: i8259.c:_write_gate_lower
Unexecuted instantiation: i387.c:_write_gate_lower
Unexecuted instantiation: hypercall.c:_write_gate_lower
Unexecuted instantiation: flushtlb.c:_write_gate_lower
Unexecuted instantiation: extable.c:_write_gate_lower
Unexecuted instantiation: e820.c:_write_gate_lower
Unexecuted instantiation: domain_page.c:_write_gate_lower
Unexecuted instantiation: delay.c:_write_gate_lower
Unexecuted instantiation: debug.c:_write_gate_lower
Unexecuted instantiation: crash.c:_write_gate_lower
Unexecuted instantiation: compat.c:_write_gate_lower
Unexecuted instantiation: cpuid.c:_write_gate_lower
Unexecuted instantiation: apic.c:_write_gate_lower
Unexecuted instantiation: xsm_core.c:_write_gate_lower
Unexecuted instantiation: vesa.c:_write_gate_lower
Unexecuted instantiation: vga.c:_write_gate_lower
Unexecuted instantiation: apei-io.c:_write_gate_lower
Unexecuted instantiation: apei-base.c:_write_gate_lower
Unexecuted instantiation: hest.c:_write_gate_lower
Unexecuted instantiation: erst.c:_write_gate_lower
Unexecuted instantiation: utglobal.c:_write_gate_lower
Unexecuted instantiation: tbutils.c:_write_gate_lower
Unexecuted instantiation: reboot.c:_write_gate_lower
Unexecuted instantiation: hwregs.c:_write_gate_lower
Unexecuted instantiation: pmstat.c:_write_gate_lower
Unexecuted instantiation: osl.c:_write_gate_lower
Unexecuted instantiation: numa.c:_write_gate_lower
Unexecuted instantiation: iommu_guest.c:_write_gate_lower
Unexecuted instantiation: iommu_cmd.c:_write_gate_lower
Unexecuted instantiation: iommu_intr.c:_write_gate_lower
Unexecuted instantiation: pci_amd_iommu.c:_write_gate_lower
Unexecuted instantiation: iommu_map.c:_write_gate_lower
Unexecuted instantiation: iommu_init.c:_write_gate_lower
Unexecuted instantiation: ats.c:_write_gate_lower
Unexecuted instantiation: vtd.c:_write_gate_lower
Unexecuted instantiation: quirks.c:_write_gate_lower
Unexecuted instantiation: intremap.c:_write_gate_lower
Unexecuted instantiation: qinval.c:_write_gate_lower
Unexecuted instantiation: utils.c:_write_gate_lower
Unexecuted instantiation: dmar.c:_write_gate_lower
Unexecuted instantiation: io.c:_write_gate_lower
Unexecuted instantiation: iommu.c:_write_gate_lower
Unexecuted instantiation: msix.c:_write_gate_lower
Unexecuted instantiation: msi.c:_write_gate_lower
Unexecuted instantiation: header.c:_write_gate_lower
Unexecuted instantiation: vpci.c:_write_gate_lower
Unexecuted instantiation: pci.c:_write_gate_lower
Unexecuted instantiation: utility.c:_write_gate_lower
Unexecuted instantiation: cpufreq_misc_governors.c:_write_gate_lower
Unexecuted instantiation: cpufreq_ondemand.c:_write_gate_lower
Unexecuted instantiation: cpufreq.c:_write_gate_lower
Unexecuted instantiation: serial.c:_write_gate_lower
Unexecuted instantiation: ehci-dbgp.c:_write_gate_lower
Unexecuted instantiation: ns16550.c:_write_gate_lower
Unexecuted instantiation: console.c:_write_gate_lower
Unexecuted instantiation: libelf-loader.c:_write_gate_lower
Unexecuted instantiation: llvm.c:_write_gate_lower
Unexecuted instantiation: tmem_control.c:_write_gate_lower
Unexecuted instantiation: tmem_xen.c:_write_gate_lower
Unexecuted instantiation: tmem.c:_write_gate_lower
Unexecuted instantiation: xmalloc_tlsf.c:_write_gate_lower
Unexecuted instantiation: xenoprof.c:_write_gate_lower
Unexecuted instantiation: wait.c:_write_gate_lower
Unexecuted instantiation: vsprintf.c:_write_gate_lower
Unexecuted instantiation: vmap.c:_write_gate_lower
Unexecuted instantiation: vm_event.c:_write_gate_lower
Unexecuted instantiation: virtual_region.c:_write_gate_lower
Unexecuted instantiation: trace.c:_write_gate_lower
Unexecuted instantiation: timer.c:_write_gate_lower
Unexecuted instantiation: time.c:_write_gate_lower
Unexecuted instantiation: tasklet.c:_write_gate_lower
Unexecuted instantiation: sysctl.c:_write_gate_lower
Unexecuted instantiation: symbols.c:_write_gate_lower
Unexecuted instantiation: stop_machine.c:_write_gate_lower
Unexecuted instantiation: spinlock.c:_write_gate_lower
Unexecuted instantiation: smp.c:_write_gate_lower
Unexecuted instantiation: softirq.c:_write_gate_lower
Unexecuted instantiation: shutdown.c:_write_gate_lower
Unexecuted instantiation: schedule.c:_write_gate_lower
Unexecuted instantiation: sched_null.c:_write_gate_lower
Unexecuted instantiation: sched_rt.c:_write_gate_lower
Unexecuted instantiation: sched_credit2.c:_write_gate_lower
Unexecuted instantiation: sched_credit.c:_write_gate_lower
Unexecuted instantiation: sched_arinc653.c:_write_gate_lower
Unexecuted instantiation: rwlock.c:_write_gate_lower
Unexecuted instantiation: rcupdate.c:_write_gate_lower
Unexecuted instantiation: radix-tree.c:_write_gate_lower
Unexecuted instantiation: rangeset.c:_write_gate_lower
Unexecuted instantiation: random.c:_write_gate_lower
Unexecuted instantiation: preempt.c:_write_gate_lower
Unexecuted instantiation: pdx.c:_write_gate_lower
Unexecuted instantiation: page_alloc.c:_write_gate_lower
Unexecuted instantiation: notifier.c:_write_gate_lower
Unexecuted instantiation: multicall.c:_write_gate_lower
Unexecuted instantiation: monitor.c:_write_gate_lower
Unexecuted instantiation: memory.c:_write_gate_lower
Unexecuted instantiation: mem_access.c:_write_gate_lower
Unexecuted instantiation: kimage.c:_write_gate_lower
Unexecuted instantiation: kexec.c:_write_gate_lower
Unexecuted instantiation: keyhandler.c:_write_gate_lower
Unexecuted instantiation: kernel.c:_write_gate_lower
Unexecuted instantiation: irq.c:_write_gate_lower
Unexecuted instantiation: guestcopy.c:_write_gate_lower
Unexecuted instantiation: grant_table.c:_write_gate_lower
Unexecuted instantiation: event_fifo.c:_write_gate_lower
Unexecuted instantiation: event_channel.c:_write_gate_lower
Unexecuted instantiation: event_2l.c:_write_gate_lower
Unexecuted instantiation: domain.c:_write_gate_lower
Unexecuted instantiation: domctl.c:_write_gate_lower
Unexecuted instantiation: cpupool.c:_write_gate_lower
Unexecuted instantiation: cpu.c:_write_gate_lower
Unexecuted instantiation: core_parking.c:_write_gate_lower
127
128
257
#define _set_gate(gate_addr,type,dpl,addr)               \
129
257
do {                                                     \
130
257
    (gate_addr)->a = 0;                                  \
131
257
    wmb(); /* disable gate /then/ rewrite */             \
132
257
    (gate_addr)->b =                                     \
133
257
        ((unsigned long)(addr) >> 32);                   \
134
257
    wmb(); /* rewrite /then/ enable gate */              \
135
257
    (gate_addr)->a =                                     \
136
257
        (((unsigned long)(addr) & 0xFFFF0000UL) << 32) | \
137
257
        ((unsigned long)(dpl) << 45) |                   \
138
257
        ((unsigned long)(type) << 40) |                  \
139
257
        ((unsigned long)(addr) & 0xFFFFUL) |             \
140
257
        ((unsigned long)__HYPERVISOR_CS64 << 16) |       \
141
257
        (1UL << 47);                                     \
142
257
} while (0)
143
144
static inline void _set_gate_lower(idt_entry_t *gate, unsigned long type,
145
                                   unsigned long dpl, void *addr)
146
0
{
147
0
    idt_entry_t idte;
148
0
    idte.b = gate->b;
149
0
    idte.a =
150
0
        (((unsigned long)(addr) & 0xFFFF0000UL) << 32) |
151
0
        ((unsigned long)(dpl) << 45) |
152
0
        ((unsigned long)(type) << 40) |
153
0
        ((unsigned long)(addr) & 0xFFFFUL) |
154
0
        ((unsigned long)__HYPERVISOR_CS64 << 16) |
155
0
        (1UL << 47);
156
0
    _write_gate_lower(gate, &idte);
157
0
}
Unexecuted instantiation: core_parking.c:_set_gate_lower
Unexecuted instantiation: mmconfig-shared.c:_set_gate_lower
Unexecuted instantiation: cpu.c:_set_gate_lower
Unexecuted instantiation: cpupool.c:_set_gate_lower
Unexecuted instantiation: domctl.c:_set_gate_lower
Unexecuted instantiation: domain.c:_set_gate_lower
Unexecuted instantiation: event_2l.c:_set_gate_lower
Unexecuted instantiation: event_channel.c:_set_gate_lower
Unexecuted instantiation: event_fifo.c:_set_gate_lower
Unexecuted instantiation: grant_table.c:_set_gate_lower
Unexecuted instantiation: guestcopy.c:_set_gate_lower
Unexecuted instantiation: irq.c:_set_gate_lower
Unexecuted instantiation: kernel.c:_set_gate_lower
Unexecuted instantiation: keyhandler.c:_set_gate_lower
Unexecuted instantiation: kexec.c:_set_gate_lower
Unexecuted instantiation: kimage.c:_set_gate_lower
Unexecuted instantiation: mem_access.c:_set_gate_lower
Unexecuted instantiation: memory.c:_set_gate_lower
Unexecuted instantiation: monitor.c:_set_gate_lower
Unexecuted instantiation: multicall.c:_set_gate_lower
Unexecuted instantiation: notifier.c:_set_gate_lower
Unexecuted instantiation: page_alloc.c:_set_gate_lower
Unexecuted instantiation: pdx.c:_set_gate_lower
Unexecuted instantiation: preempt.c:_set_gate_lower
Unexecuted instantiation: random.c:_set_gate_lower
Unexecuted instantiation: rangeset.c:_set_gate_lower
Unexecuted instantiation: radix-tree.c:_set_gate_lower
Unexecuted instantiation: rcupdate.c:_set_gate_lower
Unexecuted instantiation: rwlock.c:_set_gate_lower
Unexecuted instantiation: sched_arinc653.c:_set_gate_lower
Unexecuted instantiation: sched_credit.c:_set_gate_lower
Unexecuted instantiation: sched_credit2.c:_set_gate_lower
Unexecuted instantiation: sched_rt.c:_set_gate_lower
Unexecuted instantiation: sched_null.c:_set_gate_lower
Unexecuted instantiation: schedule.c:_set_gate_lower
Unexecuted instantiation: shutdown.c:_set_gate_lower
Unexecuted instantiation: softirq.c:_set_gate_lower
Unexecuted instantiation: smp.c:_set_gate_lower
Unexecuted instantiation: spinlock.c:_set_gate_lower
Unexecuted instantiation: stop_machine.c:_set_gate_lower
Unexecuted instantiation: symbols.c:_set_gate_lower
Unexecuted instantiation: sysctl.c:_set_gate_lower
Unexecuted instantiation: tasklet.c:_set_gate_lower
Unexecuted instantiation: time.c:_set_gate_lower
Unexecuted instantiation: timer.c:_set_gate_lower
Unexecuted instantiation: trace.c:_set_gate_lower
Unexecuted instantiation: virtual_region.c:_set_gate_lower
Unexecuted instantiation: vm_event.c:_set_gate_lower
Unexecuted instantiation: vmap.c:_set_gate_lower
Unexecuted instantiation: vsprintf.c:_set_gate_lower
Unexecuted instantiation: wait.c:_set_gate_lower
Unexecuted instantiation: xenoprof.c:_set_gate_lower
Unexecuted instantiation: xmalloc_tlsf.c:_set_gate_lower
Unexecuted instantiation: tmem.c:_set_gate_lower
Unexecuted instantiation: tmem_xen.c:_set_gate_lower
Unexecuted instantiation: tmem_control.c:_set_gate_lower
Unexecuted instantiation: llvm.c:_set_gate_lower
Unexecuted instantiation: libelf-loader.c:_set_gate_lower
Unexecuted instantiation: console.c:_set_gate_lower
Unexecuted instantiation: ns16550.c:_set_gate_lower
Unexecuted instantiation: ehci-dbgp.c:_set_gate_lower
Unexecuted instantiation: serial.c:_set_gate_lower
Unexecuted instantiation: cpufreq.c:_set_gate_lower
Unexecuted instantiation: cpufreq_ondemand.c:_set_gate_lower
Unexecuted instantiation: cpufreq_misc_governors.c:_set_gate_lower
Unexecuted instantiation: utility.c:_set_gate_lower
Unexecuted instantiation: pci.c:_set_gate_lower
Unexecuted instantiation: vpci.c:_set_gate_lower
Unexecuted instantiation: header.c:_set_gate_lower
Unexecuted instantiation: msi.c:_set_gate_lower
Unexecuted instantiation: msix.c:_set_gate_lower
Unexecuted instantiation: iommu.c:_set_gate_lower
Unexecuted instantiation: io.c:_set_gate_lower
Unexecuted instantiation: dmar.c:_set_gate_lower
Unexecuted instantiation: utils.c:_set_gate_lower
Unexecuted instantiation: qinval.c:_set_gate_lower
Unexecuted instantiation: intremap.c:_set_gate_lower
Unexecuted instantiation: quirks.c:_set_gate_lower
Unexecuted instantiation: vtd.c:_set_gate_lower
Unexecuted instantiation: ats.c:_set_gate_lower
Unexecuted instantiation: iommu_init.c:_set_gate_lower
Unexecuted instantiation: iommu_map.c:_set_gate_lower
Unexecuted instantiation: pci_amd_iommu.c:_set_gate_lower
Unexecuted instantiation: iommu_intr.c:_set_gate_lower
Unexecuted instantiation: iommu_cmd.c:_set_gate_lower
Unexecuted instantiation: iommu_guest.c:_set_gate_lower
Unexecuted instantiation: numa.c:_set_gate_lower
Unexecuted instantiation: osl.c:_set_gate_lower
Unexecuted instantiation: pmstat.c:_set_gate_lower
Unexecuted instantiation: hwregs.c:_set_gate_lower
Unexecuted instantiation: reboot.c:_set_gate_lower
Unexecuted instantiation: tbutils.c:_set_gate_lower
Unexecuted instantiation: utglobal.c:_set_gate_lower
Unexecuted instantiation: erst.c:_set_gate_lower
Unexecuted instantiation: hest.c:_set_gate_lower
Unexecuted instantiation: apei-base.c:_set_gate_lower
Unexecuted instantiation: apei-io.c:_set_gate_lower
Unexecuted instantiation: vga.c:_set_gate_lower
Unexecuted instantiation: vesa.c:_set_gate_lower
Unexecuted instantiation: xsm_core.c:_set_gate_lower
Unexecuted instantiation: apic.c:_set_gate_lower
Unexecuted instantiation: cpuid.c:_set_gate_lower
Unexecuted instantiation: compat.c:_set_gate_lower
Unexecuted instantiation: crash.c:_set_gate_lower
Unexecuted instantiation: debug.c:_set_gate_lower
Unexecuted instantiation: delay.c:_set_gate_lower
Unexecuted instantiation: domain_page.c:_set_gate_lower
Unexecuted instantiation: e820.c:_set_gate_lower
Unexecuted instantiation: extable.c:_set_gate_lower
Unexecuted instantiation: flushtlb.c:_set_gate_lower
Unexecuted instantiation: hypercall.c:_set_gate_lower
Unexecuted instantiation: i387.c:_set_gate_lower
Unexecuted instantiation: i8259.c:_set_gate_lower
Unexecuted instantiation: io_apic.c:_set_gate_lower
Unexecuted instantiation: msr.c:_set_gate_lower
Unexecuted instantiation: ioport_emulate.c:_set_gate_lower
Unexecuted instantiation: machine_kexec.c:_set_gate_lower
Unexecuted instantiation: microcode_amd.c:_set_gate_lower
Unexecuted instantiation: microcode_intel.c:_set_gate_lower
Unexecuted instantiation: microcode.c:_set_gate_lower
Unexecuted instantiation: mm.c:_set_gate_lower
Unexecuted instantiation: mpparse.c:_set_gate_lower
Unexecuted instantiation: nmi.c:_set_gate_lower
Unexecuted instantiation: percpu.c:_set_gate_lower
Unexecuted instantiation: physdev.c:_set_gate_lower
Unexecuted instantiation: platform_hypercall.c:_set_gate_lower
Unexecuted instantiation: psr.c:_set_gate_lower
Unexecuted instantiation: setup.c:_set_gate_lower
Unexecuted instantiation: smpboot.c:_set_gate_lower
Unexecuted instantiation: srat.c:_set_gate_lower
Unexecuted instantiation: traps.c:_set_gate_lower
Unexecuted instantiation: usercopy.c:_set_gate_lower
Unexecuted instantiation: x86_emulate.c:_set_gate_lower
Unexecuted instantiation: tboot.c:_set_gate_lower
Unexecuted instantiation: hpet.c:_set_gate_lower
Unexecuted instantiation: xstate.c:_set_gate_lower
Unexecuted instantiation: lib.c:_set_gate_lower
Unexecuted instantiation: power.c:_set_gate_lower
Unexecuted instantiation: suspend.c:_set_gate_lower
Unexecuted instantiation: cpu_idle.c:_set_gate_lower
Unexecuted instantiation: cpuidle_menu.c:_set_gate_lower
Unexecuted instantiation: powernow.c:_set_gate_lower
Unexecuted instantiation: amd.c:_set_gate_lower
Unexecuted instantiation: centaur.c:_set_gate_lower
Unexecuted instantiation: common.c:_set_gate_lower
Unexecuted instantiation: intel.c:_set_gate_lower
Unexecuted instantiation: intel_cacheinfo.c:_set_gate_lower
Unexecuted instantiation: mwait-idle.c:_set_gate_lower
Unexecuted instantiation: vpmu.c:_set_gate_lower
Unexecuted instantiation: vpmu_amd.c:_set_gate_lower
Unexecuted instantiation: vpmu_intel.c:_set_gate_lower
Unexecuted instantiation: amd_nonfatal.c:_set_gate_lower
Unexecuted instantiation: mce_amd.c:_set_gate_lower
Unexecuted instantiation: mcaction.c:_set_gate_lower
Unexecuted instantiation: barrier.c:_set_gate_lower
Unexecuted instantiation: mctelem.c:_set_gate_lower
Unexecuted instantiation: mce.c:_set_gate_lower
Unexecuted instantiation: mce-apei.c:_set_gate_lower
Unexecuted instantiation: mce_intel.c:_set_gate_lower
Unexecuted instantiation: non-fatal.c:_set_gate_lower
Unexecuted instantiation: util.c:_set_gate_lower
Unexecuted instantiation: vmce.c:_set_gate_lower
Unexecuted instantiation: generic.c:_set_gate_lower
Unexecuted instantiation: main.c:_set_gate_lower
Unexecuted instantiation: bigsmp.c:_set_gate_lower
Unexecuted instantiation: x2apic.c:_set_gate_lower
Unexecuted instantiation: default.c:_set_gate_lower
Unexecuted instantiation: delivery.c:_set_gate_lower
Unexecuted instantiation: probe.c:_set_gate_lower
Unexecuted instantiation: asid.c:_set_gate_lower
Unexecuted instantiation: dm.c:_set_gate_lower
Unexecuted instantiation: emulate.c:_set_gate_lower
Unexecuted instantiation: hvm.c:_set_gate_lower
Unexecuted instantiation: i8254.c:_set_gate_lower
Unexecuted instantiation: intercept.c:_set_gate_lower
Unexecuted instantiation: ioreq.c:_set_gate_lower
Unexecuted instantiation: mtrr.c:_set_gate_lower
Unexecuted instantiation: nestedhvm.c:_set_gate_lower
Unexecuted instantiation: pmtimer.c:_set_gate_lower
Unexecuted instantiation: rtc.c:_set_gate_lower
Unexecuted instantiation: save.c:_set_gate_lower
Unexecuted instantiation: stdvga.c:_set_gate_lower
Unexecuted instantiation: vioapic.c:_set_gate_lower
Unexecuted instantiation: viridian.c:_set_gate_lower
Unexecuted instantiation: vlapic.c:_set_gate_lower
Unexecuted instantiation: vmsi.c:_set_gate_lower
Unexecuted instantiation: vpic.c:_set_gate_lower
Unexecuted instantiation: vpt.c:_set_gate_lower
Unexecuted instantiation: intr.c:_set_gate_lower
Unexecuted instantiation: nestedsvm.c:_set_gate_lower
Unexecuted instantiation: svm.c:_set_gate_lower
Unexecuted instantiation: svmdebug.c:_set_gate_lower
Unexecuted instantiation: vmcb.c:_set_gate_lower
Unexecuted instantiation: realmode.c:_set_gate_lower
Unexecuted instantiation: vmcs.c:_set_gate_lower
Unexecuted instantiation: vmx.c:_set_gate_lower
Unexecuted instantiation: vvmx.c:_set_gate_lower
Unexecuted instantiation: paging.c:_set_gate_lower
Unexecuted instantiation: p2m.c:_set_gate_lower
Unexecuted instantiation: p2m-pt.c:_set_gate_lower
Unexecuted instantiation: p2m-ept.c:_set_gate_lower
Unexecuted instantiation: p2m-pod.c:_set_gate_lower
Unexecuted instantiation: altp2m.c:_set_gate_lower
Unexecuted instantiation: guest_walk.c:_set_gate_lower
Unexecuted instantiation: mem_paging.c:_set_gate_lower
Unexecuted instantiation: mem_sharing.c:_set_gate_lower
Unexecuted instantiation: multi.c:_set_gate_lower
Unexecuted instantiation: hap.c:_set_gate_lower
Unexecuted instantiation: nested_hap.c:_set_gate_lower
Unexecuted instantiation: nested_ept.c:_set_gate_lower
Unexecuted instantiation: nmi_int.c:_set_gate_lower
Unexecuted instantiation: op_model_p4.c:_set_gate_lower
Unexecuted instantiation: op_model_ppro.c:_set_gate_lower
Unexecuted instantiation: op_model_athlon.c:_set_gate_lower
Unexecuted instantiation: backtrace.c:_set_gate_lower
Unexecuted instantiation: callback.c:_set_gate_lower
Unexecuted instantiation: descriptor-tables.c:_set_gate_lower
Unexecuted instantiation: emul-gate-op.c:_set_gate_lower
Unexecuted instantiation: emul-inv-op.c:_set_gate_lower
Unexecuted instantiation: emul-priv-op.c:_set_gate_lower
Unexecuted instantiation: iret.c:_set_gate_lower
Unexecuted instantiation: misc-hypercalls.c:_set_gate_lower
Unexecuted instantiation: ro-page-fault.c:_set_gate_lower
Unexecuted instantiation: acpi_mmcfg.c:_set_gate_lower
Unexecuted instantiation: mmconf-fam10h.c:_set_gate_lower
Unexecuted instantiation: mmconfig_64.c:_set_gate_lower
158
159
/* Update the lower half handler of an IDT Entry, without changing any
160
 * other configuration. */
161
static inline void _update_gate_addr_lower(idt_entry_t *gate, void *addr)
162
0
{
163
0
    idt_entry_t idte;
164
0
    idte.a = gate->a;
165
0
166
0
    idte.b = ((unsigned long)(addr) >> 32);
167
0
    idte.a &= 0x0000FFFFFFFF0000ULL;
168
0
    idte.a |= (((unsigned long)(addr) & 0xFFFF0000UL) << 32) |
169
0
        ((unsigned long)(addr) & 0xFFFFUL);
170
0
171
0
    _write_gate_lower(gate, &idte);
172
0
}
Unexecuted instantiation: cpu.c:_update_gate_addr_lower
Unexecuted instantiation: mmconfig-shared.c:_update_gate_addr_lower
Unexecuted instantiation: mmconfig_64.c:_update_gate_addr_lower
Unexecuted instantiation: mmconf-fam10h.c:_update_gate_addr_lower
Unexecuted instantiation: acpi_mmcfg.c:_update_gate_addr_lower
Unexecuted instantiation: ro-page-fault.c:_update_gate_addr_lower
Unexecuted instantiation: misc-hypercalls.c:_update_gate_addr_lower
Unexecuted instantiation: iret.c:_update_gate_addr_lower
Unexecuted instantiation: emul-priv-op.c:_update_gate_addr_lower
Unexecuted instantiation: emul-inv-op.c:_update_gate_addr_lower
Unexecuted instantiation: emul-gate-op.c:_update_gate_addr_lower
Unexecuted instantiation: descriptor-tables.c:_update_gate_addr_lower
Unexecuted instantiation: callback.c:_update_gate_addr_lower
Unexecuted instantiation: backtrace.c:_update_gate_addr_lower
Unexecuted instantiation: op_model_athlon.c:_update_gate_addr_lower
Unexecuted instantiation: op_model_ppro.c:_update_gate_addr_lower
Unexecuted instantiation: op_model_p4.c:_update_gate_addr_lower
Unexecuted instantiation: nmi_int.c:_update_gate_addr_lower
Unexecuted instantiation: nested_ept.c:_update_gate_addr_lower
Unexecuted instantiation: nested_hap.c:_update_gate_addr_lower
Unexecuted instantiation: hap.c:_update_gate_addr_lower
Unexecuted instantiation: multi.c:_update_gate_addr_lower
Unexecuted instantiation: mem_sharing.c:_update_gate_addr_lower
Unexecuted instantiation: mem_paging.c:_update_gate_addr_lower
Unexecuted instantiation: guest_walk.c:_update_gate_addr_lower
Unexecuted instantiation: altp2m.c:_update_gate_addr_lower
Unexecuted instantiation: p2m-pod.c:_update_gate_addr_lower
Unexecuted instantiation: p2m-ept.c:_update_gate_addr_lower
Unexecuted instantiation: p2m-pt.c:_update_gate_addr_lower
Unexecuted instantiation: p2m.c:_update_gate_addr_lower
Unexecuted instantiation: paging.c:_update_gate_addr_lower
Unexecuted instantiation: vvmx.c:_update_gate_addr_lower
Unexecuted instantiation: vmx.c:_update_gate_addr_lower
Unexecuted instantiation: vmcs.c:_update_gate_addr_lower
Unexecuted instantiation: realmode.c:_update_gate_addr_lower
Unexecuted instantiation: vmcb.c:_update_gate_addr_lower
Unexecuted instantiation: svmdebug.c:_update_gate_addr_lower
Unexecuted instantiation: svm.c:_update_gate_addr_lower
Unexecuted instantiation: nestedsvm.c:_update_gate_addr_lower
Unexecuted instantiation: intr.c:_update_gate_addr_lower
Unexecuted instantiation: vpt.c:_update_gate_addr_lower
Unexecuted instantiation: vpic.c:_update_gate_addr_lower
Unexecuted instantiation: vmsi.c:_update_gate_addr_lower
Unexecuted instantiation: vlapic.c:_update_gate_addr_lower
Unexecuted instantiation: viridian.c:_update_gate_addr_lower
Unexecuted instantiation: vioapic.c:_update_gate_addr_lower
Unexecuted instantiation: stdvga.c:_update_gate_addr_lower
Unexecuted instantiation: save.c:_update_gate_addr_lower
Unexecuted instantiation: rtc.c:_update_gate_addr_lower
Unexecuted instantiation: pmtimer.c:_update_gate_addr_lower
Unexecuted instantiation: nestedhvm.c:_update_gate_addr_lower
Unexecuted instantiation: mtrr.c:_update_gate_addr_lower
Unexecuted instantiation: ioreq.c:_update_gate_addr_lower
Unexecuted instantiation: intercept.c:_update_gate_addr_lower
Unexecuted instantiation: i8254.c:_update_gate_addr_lower
Unexecuted instantiation: hvm.c:_update_gate_addr_lower
Unexecuted instantiation: emulate.c:_update_gate_addr_lower
Unexecuted instantiation: dm.c:_update_gate_addr_lower
Unexecuted instantiation: asid.c:_update_gate_addr_lower
Unexecuted instantiation: probe.c:_update_gate_addr_lower
Unexecuted instantiation: delivery.c:_update_gate_addr_lower
Unexecuted instantiation: default.c:_update_gate_addr_lower
Unexecuted instantiation: x2apic.c:_update_gate_addr_lower
Unexecuted instantiation: bigsmp.c:_update_gate_addr_lower
Unexecuted instantiation: main.c:_update_gate_addr_lower
Unexecuted instantiation: generic.c:_update_gate_addr_lower
Unexecuted instantiation: vmce.c:_update_gate_addr_lower
Unexecuted instantiation: util.c:_update_gate_addr_lower
Unexecuted instantiation: non-fatal.c:_update_gate_addr_lower
Unexecuted instantiation: mce_intel.c:_update_gate_addr_lower
Unexecuted instantiation: mce-apei.c:_update_gate_addr_lower
Unexecuted instantiation: mce.c:_update_gate_addr_lower
Unexecuted instantiation: mctelem.c:_update_gate_addr_lower
Unexecuted instantiation: barrier.c:_update_gate_addr_lower
Unexecuted instantiation: mcaction.c:_update_gate_addr_lower
Unexecuted instantiation: mce_amd.c:_update_gate_addr_lower
Unexecuted instantiation: amd_nonfatal.c:_update_gate_addr_lower
Unexecuted instantiation: vpmu_intel.c:_update_gate_addr_lower
Unexecuted instantiation: vpmu_amd.c:_update_gate_addr_lower
Unexecuted instantiation: vpmu.c:_update_gate_addr_lower
Unexecuted instantiation: mwait-idle.c:_update_gate_addr_lower
Unexecuted instantiation: intel_cacheinfo.c:_update_gate_addr_lower
Unexecuted instantiation: intel.c:_update_gate_addr_lower
Unexecuted instantiation: common.c:_update_gate_addr_lower
Unexecuted instantiation: centaur.c:_update_gate_addr_lower
Unexecuted instantiation: amd.c:_update_gate_addr_lower
Unexecuted instantiation: powernow.c:_update_gate_addr_lower
Unexecuted instantiation: cpuidle_menu.c:_update_gate_addr_lower
Unexecuted instantiation: cpu_idle.c:_update_gate_addr_lower
Unexecuted instantiation: suspend.c:_update_gate_addr_lower
Unexecuted instantiation: power.c:_update_gate_addr_lower
Unexecuted instantiation: lib.c:_update_gate_addr_lower
Unexecuted instantiation: xstate.c:_update_gate_addr_lower
Unexecuted instantiation: hpet.c:_update_gate_addr_lower
Unexecuted instantiation: tboot.c:_update_gate_addr_lower
Unexecuted instantiation: x86_emulate.c:_update_gate_addr_lower
Unexecuted instantiation: usercopy.c:_update_gate_addr_lower
Unexecuted instantiation: traps.c:_update_gate_addr_lower
Unexecuted instantiation: srat.c:_update_gate_addr_lower
Unexecuted instantiation: smpboot.c:_update_gate_addr_lower
Unexecuted instantiation: setup.c:_update_gate_addr_lower
Unexecuted instantiation: psr.c:_update_gate_addr_lower
Unexecuted instantiation: platform_hypercall.c:_update_gate_addr_lower
Unexecuted instantiation: physdev.c:_update_gate_addr_lower
Unexecuted instantiation: percpu.c:_update_gate_addr_lower
Unexecuted instantiation: nmi.c:_update_gate_addr_lower
Unexecuted instantiation: mpparse.c:_update_gate_addr_lower
Unexecuted instantiation: mm.c:_update_gate_addr_lower
Unexecuted instantiation: microcode.c:_update_gate_addr_lower
Unexecuted instantiation: microcode_intel.c:_update_gate_addr_lower
Unexecuted instantiation: microcode_amd.c:_update_gate_addr_lower
Unexecuted instantiation: machine_kexec.c:_update_gate_addr_lower
Unexecuted instantiation: ioport_emulate.c:_update_gate_addr_lower
Unexecuted instantiation: core_parking.c:_update_gate_addr_lower
Unexecuted instantiation: io_apic.c:_update_gate_addr_lower
Unexecuted instantiation: i8259.c:_update_gate_addr_lower
Unexecuted instantiation: i387.c:_update_gate_addr_lower
Unexecuted instantiation: hypercall.c:_update_gate_addr_lower
Unexecuted instantiation: flushtlb.c:_update_gate_addr_lower
Unexecuted instantiation: extable.c:_update_gate_addr_lower
Unexecuted instantiation: e820.c:_update_gate_addr_lower
Unexecuted instantiation: domain_page.c:_update_gate_addr_lower
Unexecuted instantiation: delay.c:_update_gate_addr_lower
Unexecuted instantiation: debug.c:_update_gate_addr_lower
Unexecuted instantiation: crash.c:_update_gate_addr_lower
Unexecuted instantiation: compat.c:_update_gate_addr_lower
Unexecuted instantiation: cpuid.c:_update_gate_addr_lower
Unexecuted instantiation: apic.c:_update_gate_addr_lower
Unexecuted instantiation: xsm_core.c:_update_gate_addr_lower
Unexecuted instantiation: vesa.c:_update_gate_addr_lower
Unexecuted instantiation: vga.c:_update_gate_addr_lower
Unexecuted instantiation: apei-io.c:_update_gate_addr_lower
Unexecuted instantiation: apei-base.c:_update_gate_addr_lower
Unexecuted instantiation: hest.c:_update_gate_addr_lower
Unexecuted instantiation: erst.c:_update_gate_addr_lower
Unexecuted instantiation: utglobal.c:_update_gate_addr_lower
Unexecuted instantiation: tbutils.c:_update_gate_addr_lower
Unexecuted instantiation: reboot.c:_update_gate_addr_lower
Unexecuted instantiation: hwregs.c:_update_gate_addr_lower
Unexecuted instantiation: pmstat.c:_update_gate_addr_lower
Unexecuted instantiation: osl.c:_update_gate_addr_lower
Unexecuted instantiation: numa.c:_update_gate_addr_lower
Unexecuted instantiation: iommu_guest.c:_update_gate_addr_lower
Unexecuted instantiation: iommu_cmd.c:_update_gate_addr_lower
Unexecuted instantiation: iommu_intr.c:_update_gate_addr_lower
Unexecuted instantiation: pci_amd_iommu.c:_update_gate_addr_lower
Unexecuted instantiation: iommu_map.c:_update_gate_addr_lower
Unexecuted instantiation: iommu_init.c:_update_gate_addr_lower
Unexecuted instantiation: ats.c:_update_gate_addr_lower
Unexecuted instantiation: vtd.c:_update_gate_addr_lower
Unexecuted instantiation: quirks.c:_update_gate_addr_lower
Unexecuted instantiation: intremap.c:_update_gate_addr_lower
Unexecuted instantiation: qinval.c:_update_gate_addr_lower
Unexecuted instantiation: utils.c:_update_gate_addr_lower
Unexecuted instantiation: dmar.c:_update_gate_addr_lower
Unexecuted instantiation: io.c:_update_gate_addr_lower
Unexecuted instantiation: iommu.c:_update_gate_addr_lower
Unexecuted instantiation: msix.c:_update_gate_addr_lower
Unexecuted instantiation: msi.c:_update_gate_addr_lower
Unexecuted instantiation: header.c:_update_gate_addr_lower
Unexecuted instantiation: vpci.c:_update_gate_addr_lower
Unexecuted instantiation: pci.c:_update_gate_addr_lower
Unexecuted instantiation: utility.c:_update_gate_addr_lower
Unexecuted instantiation: cpufreq_misc_governors.c:_update_gate_addr_lower
Unexecuted instantiation: cpufreq_ondemand.c:_update_gate_addr_lower
Unexecuted instantiation: cpufreq.c:_update_gate_addr_lower
Unexecuted instantiation: serial.c:_update_gate_addr_lower
Unexecuted instantiation: ehci-dbgp.c:_update_gate_addr_lower
Unexecuted instantiation: ns16550.c:_update_gate_addr_lower
Unexecuted instantiation: console.c:_update_gate_addr_lower
Unexecuted instantiation: libelf-loader.c:_update_gate_addr_lower
Unexecuted instantiation: llvm.c:_update_gate_addr_lower
Unexecuted instantiation: tmem_control.c:_update_gate_addr_lower
Unexecuted instantiation: tmem_xen.c:_update_gate_addr_lower
Unexecuted instantiation: tmem.c:_update_gate_addr_lower
Unexecuted instantiation: xmalloc_tlsf.c:_update_gate_addr_lower
Unexecuted instantiation: xenoprof.c:_update_gate_addr_lower
Unexecuted instantiation: wait.c:_update_gate_addr_lower
Unexecuted instantiation: vsprintf.c:_update_gate_addr_lower
Unexecuted instantiation: vmap.c:_update_gate_addr_lower
Unexecuted instantiation: vm_event.c:_update_gate_addr_lower
Unexecuted instantiation: virtual_region.c:_update_gate_addr_lower
Unexecuted instantiation: trace.c:_update_gate_addr_lower
Unexecuted instantiation: timer.c:_update_gate_addr_lower
Unexecuted instantiation: time.c:_update_gate_addr_lower
Unexecuted instantiation: tasklet.c:_update_gate_addr_lower
Unexecuted instantiation: sysctl.c:_update_gate_addr_lower
Unexecuted instantiation: symbols.c:_update_gate_addr_lower
Unexecuted instantiation: stop_machine.c:_update_gate_addr_lower
Unexecuted instantiation: spinlock.c:_update_gate_addr_lower
Unexecuted instantiation: smp.c:_update_gate_addr_lower
Unexecuted instantiation: softirq.c:_update_gate_addr_lower
Unexecuted instantiation: shutdown.c:_update_gate_addr_lower
Unexecuted instantiation: schedule.c:_update_gate_addr_lower
Unexecuted instantiation: sched_null.c:_update_gate_addr_lower
Unexecuted instantiation: sched_rt.c:_update_gate_addr_lower
Unexecuted instantiation: sched_credit2.c:_update_gate_addr_lower
Unexecuted instantiation: sched_credit.c:_update_gate_addr_lower
Unexecuted instantiation: sched_arinc653.c:_update_gate_addr_lower
Unexecuted instantiation: rwlock.c:_update_gate_addr_lower
Unexecuted instantiation: rcupdate.c:_update_gate_addr_lower
Unexecuted instantiation: radix-tree.c:_update_gate_addr_lower
Unexecuted instantiation: rangeset.c:_update_gate_addr_lower
Unexecuted instantiation: random.c:_update_gate_addr_lower
Unexecuted instantiation: preempt.c:_update_gate_addr_lower
Unexecuted instantiation: pdx.c:_update_gate_addr_lower
Unexecuted instantiation: page_alloc.c:_update_gate_addr_lower
Unexecuted instantiation: notifier.c:_update_gate_addr_lower
Unexecuted instantiation: multicall.c:_update_gate_addr_lower
Unexecuted instantiation: monitor.c:_update_gate_addr_lower
Unexecuted instantiation: memory.c:_update_gate_addr_lower
Unexecuted instantiation: mem_access.c:_update_gate_addr_lower
Unexecuted instantiation: kimage.c:_update_gate_addr_lower
Unexecuted instantiation: kexec.c:_update_gate_addr_lower
Unexecuted instantiation: keyhandler.c:_update_gate_addr_lower
Unexecuted instantiation: kernel.c:_update_gate_addr_lower
Unexecuted instantiation: irq.c:_update_gate_addr_lower
Unexecuted instantiation: guestcopy.c:_update_gate_addr_lower
Unexecuted instantiation: grant_table.c:_update_gate_addr_lower
Unexecuted instantiation: event_fifo.c:_update_gate_addr_lower
Unexecuted instantiation: event_channel.c:_update_gate_addr_lower
Unexecuted instantiation: event_2l.c:_update_gate_addr_lower
Unexecuted instantiation: domain.c:_update_gate_addr_lower
Unexecuted instantiation: domctl.c:_update_gate_addr_lower
Unexecuted instantiation: cpupool.c:_update_gate_addr_lower
Unexecuted instantiation: msr.c:_update_gate_addr_lower
173
174
26
#define _set_tssldt_desc(desc,addr,limit,type)           \
175
26
do {                                                     \
176
26
    (desc)[0].b = (desc)[1].b = 0;                       \
177
26
    wmb(); /* disable entry /then/ rewrite */            \
178
26
    (desc)[0].a =                                        \
179
26
        ((u32)(addr) << 16) | ((u32)(limit) & 0xFFFF);   \
180
26
    (desc)[1].a = (u32)(((unsigned long)(addr)) >> 32);  \
181
26
    wmb(); /* rewrite /then/ enable entry */             \
182
26
    (desc)[0].b =                                        \
183
26
        ((u32)(addr) & 0xFF000000U) |                    \
184
26
        ((u32)(type) << 8) | 0x8000U |                   \
185
26
        (((u32)(addr) & 0x00FF0000U) >> 16);             \
186
26
} while (0)
187
188
struct __packed desc_ptr {
189
  unsigned short limit;
190
  unsigned long base;
191
};
192
193
extern struct desc_struct boot_cpu_gdt_table[];
194
DECLARE_PER_CPU(struct desc_struct *, gdt_table);
195
extern struct desc_struct boot_cpu_compat_gdt_table[];
196
DECLARE_PER_CPU(struct desc_struct *, compat_gdt_table);
197
198
extern void load_TR(void);
199
200
#endif /* !__ASSEMBLY__ */
201
202
#endif /* __ARCH_DESC_H */