Xen Test Framework
hypercall_page.S
Go to the documentation of this file.
1 #include <arch/page.h>
2 #include <xtf/asm_macros.h>
3 #include <xen/xen.h>
4 
5  .section ".data.page_aligned", "aw"
6  .p2align PAGE_SHIFT
7 
8 GLOBAL(hypercall_page)
9  /* Poisoned with `ret` for safety before hypercalls are set up. */
10  .fill PAGE_SIZE, 1, 0xc3
11  .type hypercall_page, STT_OBJECT
12  .size hypercall_page, PAGE_SIZE
13 
14 /*
15  * Identify a specific hypercall in the hypercall page
16  * @param name Hypercall name.
17  */
18 #define DECLARE_HYPERCALL(name) \
19  .globl HYPERCALL_ ## name; \
20  .type HYPERCALL_ ## name, STT_FUNC; \
21  .size HYPERCALL_ ## name, 32; \
22  .set HYPERCALL_ ## name, hypercall_page + __HYPERVISOR_ ## name * 32
23 
24 DECLARE_HYPERCALL(set_trap_table)
25 DECLARE_HYPERCALL(mmu_update)
26 DECLARE_HYPERCALL(set_gdt)
27 DECLARE_HYPERCALL(stack_switch)
28 DECLARE_HYPERCALL(set_callbacks)
29 DECLARE_HYPERCALL(fpu_taskswitch)
30 DECLARE_HYPERCALL(sched_op_compat)
31 DECLARE_HYPERCALL(platform_op)
32 DECLARE_HYPERCALL(set_debugreg)
33 DECLARE_HYPERCALL(get_debugreg)
34 DECLARE_HYPERCALL(update_descriptor)
35 DECLARE_HYPERCALL(memory_op)
36 DECLARE_HYPERCALL(multicall)
37 DECLARE_HYPERCALL(update_va_mapping)
38 DECLARE_HYPERCALL(set_timer_op)
39 DECLARE_HYPERCALL(event_channel_op_compat)
40 DECLARE_HYPERCALL(xen_version)
41 DECLARE_HYPERCALL(console_io)
42 DECLARE_HYPERCALL(physdev_op_compat)
43 DECLARE_HYPERCALL(grant_table_op)
44 DECLARE_HYPERCALL(vm_assist)
45 DECLARE_HYPERCALL(update_va_mapping_otherdomain)
46 DECLARE_HYPERCALL(iret)
47 DECLARE_HYPERCALL(vcpu_op)
48 DECLARE_HYPERCALL(set_segment_base)
49 DECLARE_HYPERCALL(mmuext_op)
50 DECLARE_HYPERCALL(xsm_op)
51 DECLARE_HYPERCALL(nmi_op)
52 DECLARE_HYPERCALL(sched_op)
53 DECLARE_HYPERCALL(callback_op)
54 DECLARE_HYPERCALL(xenoprof_op)
55 DECLARE_HYPERCALL(event_channel_op)
56 DECLARE_HYPERCALL(physdev_op)
57 DECLARE_HYPERCALL(hvm_op)
58 DECLARE_HYPERCALL(sysctl)
59 DECLARE_HYPERCALL(domctl)
60 DECLARE_HYPERCALL(kexec_op)
61 DECLARE_HYPERCALL(tmem_op)
62 DECLARE_HYPERCALL(argo_op)
63 DECLARE_HYPERCALL(xenpmu_op)
64 
65 DECLARE_HYPERCALL(arch_0)
66 DECLARE_HYPERCALL(arch_1)
67 DECLARE_HYPERCALL(arch_2)
68 DECLARE_HYPERCALL(arch_3)
69 DECLARE_HYPERCALL(arch_4)
70 DECLARE_HYPERCALL(arch_5)
71 DECLARE_HYPERCALL(arch_6)
72 DECLARE_HYPERCALL(arch_7)
73 
74 /*
75  * Local variables:
76  * tab-width: 8
77  * indent-tabs-mode: nil
78  * End:
79  */