1 /******************************************************************************
2  * xen-x86_64.h
3  *
4  * Guest OS interface to x86 64-bit Xen.
5  *
6  * SPDX-License-Identifier: MIT
7  *
8  * Copyright (c) 2004-2006, K A Fraser
9  */
10 
11 #ifndef __XEN_PUBLIC_ARCH_X86_XEN_X86_64_H__
12 #define __XEN_PUBLIC_ARCH_X86_XEN_X86_64_H__
13 
14 /*
15  * Hypercall interface:
16  *  Input:  %rdi, %rsi, %rdx, %r10, %r8, %r9 (arguments 1-6)
17  *  Output: %rax
18  * Access is via hypercall page (set up by guest loader or via a Xen MSR):
19  *  call hypercall_page + hypercall-number * 32
20  * Clobbered: argument registers (e.g., 2-arg hypercall clobbers %rdi,%rsi)
21  */
22 
23 #ifndef __ASSEMBLY__
24 
25 struct arch_vcpu_info {
26     UINTN cr2;
27     UINTN pad; /* sizeof(vcpu_info_t) == 64 */
28 };
29 typedef struct arch_vcpu_info arch_vcpu_info_t;
30 
31 #endif /* !__ASSEMBLY__ */
32 
33 #endif /* __XEN_PUBLIC_ARCH_X86_XEN_X86_64_H__ */
34 
35 /*
36  * Local variables:
37  * mode: C
38  * c-file-style: "BSD"
39  * c-basic-offset: 4
40  * tab-width: 4
41  * indent-tabs-mode: nil
42  * End:
43  */
44