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
8GLOBAL(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
24DECLARE_HYPERCALL(set_trap_table)
25DECLARE_HYPERCALL(mmu_update)
26DECLARE_HYPERCALL(set_gdt)
27DECLARE_HYPERCALL(stack_switch)
28DECLARE_HYPERCALL(set_callbacks)
29DECLARE_HYPERCALL(fpu_taskswitch)
30DECLARE_HYPERCALL(sched_op_compat)
31DECLARE_HYPERCALL(platform_op)
32DECLARE_HYPERCALL(set_debugreg)
33DECLARE_HYPERCALL(get_debugreg)
34DECLARE_HYPERCALL(update_descriptor)
35DECLARE_HYPERCALL(memory_op)
36DECLARE_HYPERCALL(multicall)
37DECLARE_HYPERCALL(update_va_mapping)
38DECLARE_HYPERCALL(set_timer_op)
39DECLARE_HYPERCALL(event_channel_op_compat)
40DECLARE_HYPERCALL(xen_version)
41DECLARE_HYPERCALL(console_io)
42DECLARE_HYPERCALL(physdev_op_compat)
43DECLARE_HYPERCALL(grant_table_op)
44DECLARE_HYPERCALL(vm_assist)
45DECLARE_HYPERCALL(update_va_mapping_otherdomain)
46DECLARE_HYPERCALL(iret)
47DECLARE_HYPERCALL(vcpu_op)
48DECLARE_HYPERCALL(set_segment_base)
49DECLARE_HYPERCALL(mmuext_op)
50DECLARE_HYPERCALL(xsm_op)
51DECLARE_HYPERCALL(nmi_op)
52DECLARE_HYPERCALL(sched_op)
53DECLARE_HYPERCALL(callback_op)
54DECLARE_HYPERCALL(xenoprof_op)
55DECLARE_HYPERCALL(event_channel_op)
56DECLARE_HYPERCALL(physdev_op)
57DECLARE_HYPERCALL(hvm_op)
58DECLARE_HYPERCALL(sysctl)
59DECLARE_HYPERCALL(domctl)
60DECLARE_HYPERCALL(kexec_op)
61DECLARE_HYPERCALL(tmem_op)
62DECLARE_HYPERCALL(argo_op)
63DECLARE_HYPERCALL(xenpmu_op)
64
65DECLARE_HYPERCALL(arch_0)
66DECLARE_HYPERCALL(arch_1)
67DECLARE_HYPERCALL(arch_2)
68DECLARE_HYPERCALL(arch_3)
69DECLARE_HYPERCALL(arch_4)
70DECLARE_HYPERCALL(arch_5)
71DECLARE_HYPERCALL(arch_6)
72DECLARE_HYPERCALL(arch_7)
73
74/*
75 * Local variables:
76 * tab-width: 8
77 * indent-tabs-mode: nil
78 * End:
79 */