1 #ifndef __XEN_PUBLIC_HVM_HVM_OP_H__ 2 #define __XEN_PUBLIC_HVM_HVM_OP_H__ 3 4 /* Get/set subcommands: extra argument == pointer to xen_hvm_param struct. */ 5 #define HVMOP_set_param 0 6 #define HVMOP_get_param 1 7 struct xen_hvm_param { 8 domid_t domid; /* IN */ 9 uint32_t index; /* IN */ 10 uint64_t value; /* IN/OUT */ 11 }; 12 typedef struct xen_hvm_param xen_hvm_param_t; 13 DEFINE_XEN_GUEST_HANDLE(xen_hvm_param_t); 14 15 /* Set the logical level of one of a domain's PCI INTx wires. */ 16 #define HVMOP_set_pci_intx_level 2 17 struct xen_hvm_set_pci_intx_level { 18 /* Domain to be updated. */ 19 domid_t domid; 20 /* PCI INTx identification in PCI topology (domain:bus:device:intx). */ 21 uint8_t domain, bus, device, intx; 22 /* Assertion level (0 = unasserted, 1 = asserted). */ 23 uint8_t level; 24 }; 25 typedef struct xen_hvm_set_pci_intx_level xen_hvm_set_pci_intx_level_t; 26 DEFINE_XEN_GUEST_HANDLE(xen_hvm_set_pci_intx_level_t); 27 28 /* Set the logical level of one of a domain's ISA IRQ wires. */ 29 #define HVMOP_set_isa_irq_level 3 30 struct xen_hvm_set_isa_irq_level { 31 /* Domain to be updated. */ 32 domid_t domid; 33 /* ISA device identification, by ISA IRQ (0-15). */ 34 uint8_t isa_irq; 35 /* Assertion level (0 = unasserted, 1 = asserted). */ 36 uint8_t level; 37 }; 38 typedef struct xen_hvm_set_isa_irq_level xen_hvm_set_isa_irq_level_t; 39 DEFINE_XEN_GUEST_HANDLE(xen_hvm_set_isa_irq_level_t); 40 41 #define HVMOP_set_pci_link_route 4 42 struct xen_hvm_set_pci_link_route { 43 /* Domain to be updated. */ 44 domid_t domid; 45 /* PCI link identifier (0-3). */ 46 uint8_t link; 47 /* ISA IRQ (1-15), or 0 (disable link). */ 48 uint8_t isa_irq; 49 }; 50 typedef struct xen_hvm_set_pci_link_route xen_hvm_set_pci_link_route_t; 51 DEFINE_XEN_GUEST_HANDLE(xen_hvm_set_pci_link_route_t); 52 53 #endif /* __XEN_PUBLIC_HVM_HVM_OP_H__ */ 54