/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 */ |