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
7struct 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
14struct 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};
19typedef 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
22struct 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};
27typedef 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
30struct 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};
36typedef struct vki_xen_hvm_set_mem_type vki_xen_hvm_set_mem_type_t;
37
38#define VKI_XEN_HVMOP_set_mem_access        12
39struct 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};
45typedef struct vki_xen_hvm_set_mem_access vki_xen_hvm_set_mem_access_t;
46
47#define VKI_XEN_HVMOP_get_mem_access        13
48struct 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};
53typedef struct vki_xen_hvm_get_mem_access vki_xen_hvm_get_mem_access_t;
54
55#define VKI_XEN_HVMOP_inject_trap            14
56struct 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};
65typedef 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