1 #ifndef __VKI_XEN_HVM_H
2 #define __VKI_XEN_HVM_H
3 
4 /* Get/set subcommands: extra argument == pointer to xen_hvm_param struct. */
5 #define VKI_XEN_HVMOP_set_param           0
6 #define VKI_XEN_HVMOP_get_param           1
7 struct vki_xen_hvm_param {
8     vki_xen_domid_t  domid;    /* IN */
9     vki_uint32_t index;    /* IN */
10     vki_uint64_t value;    /* IN/OUT */
11 };
12 
13 #define VKI_XEN_HVMOP_set_isa_irq_level 3
14 struct vki_xen_hvm_set_isa_irq_level {
15     vki_xen_domid_t  domid;
16     vki_uint8_t  isa_irq;
17     vki_uint8_t  level;
18 };
19 typedef struct vki_xen_hvm_set_isa_irq_level vki_xen_hvm_set_isa_irq_level_t;
20 
21 #define VKI_XEN_HVMOP_set_pci_link_route 4
22 struct vki_xen_hvm_set_pci_link_route {
23     vki_xen_domid_t  domid;
24     vki_uint8_t  link;
25     vki_uint8_t  isa_irq;
26 };
27 typedef struct vki_xen_hvm_set_pci_link_route vki_xen_hvm_set_pci_link_route_t;
28 
29 #define VKI_XEN_HVMOP_set_mem_type 8
30 struct vki_xen_hvm_set_mem_type {
31     vki_xen_domid_t  domid;
32     vki_uint16_t hvmmem_type;
33     vki_uint32_t nr;
34     vki_uint64_t first_pfn;
35 };
36 typedef struct vki_xen_hvm_set_mem_type vki_xen_hvm_set_mem_type_t;
37 
38 #define VKI_XEN_HVMOP_set_mem_access        12
39 struct vki_xen_hvm_set_mem_access {
40     vki_xen_domid_t domid;
41     vki_uint16_t hvmmem_access;
42     vki_uint32_t nr;
43     vki_uint64_t first_pfn;
44 };
45 typedef struct vki_xen_hvm_set_mem_access vki_xen_hvm_set_mem_access_t;
46 
47 #define VKI_XEN_HVMOP_get_mem_access        13
48 struct vki_xen_hvm_get_mem_access {
49     vki_xen_domid_t domid;
50     vki_uint16_t hvmmem_access; /* OUT */
51     vki_uint64_t pfn;
52 };
53 typedef struct vki_xen_hvm_get_mem_access vki_xen_hvm_get_mem_access_t;
54 
55 #define VKI_XEN_HVMOP_inject_trap            14
56 struct vki_xen_hvm_inject_trap {
57     vki_xen_domid_t domid;
58     vki_uint32_t vcpuid;
59     vki_uint32_t vector;
60     vki_uint32_t type;
61     vki_uint32_t error_code;
62     vki_uint32_t insn_len;
63     vki_uint64_t cr2;
64 };
65 typedef struct vki_xen_hvm_inject_trap vki_xen_hvm_inject_trap_t;
66 
67 #endif // __VKI_XEN_HVM_H
68 
69 /*--------------------------------------------------------------------*/
70 /*--- end                                                          ---*/
71 /*--------------------------------------------------------------------*/
72