1 /* 2 * Compat shims for use of 3rd party consumers of libxenctrl device model 3 * functionality which has been split into separate libraries. 4 */ 5 6 #define XC_WANT_COMPAT_DEVICEMODEL_API 7 #include "xc_private.h" 8 xc_hvm_create_ioreq_server(xc_interface * xch,uint32_t domid,int handle_bufioreq,ioservid_t * id)9 int xc_hvm_create_ioreq_server( 10 xc_interface *xch, uint32_t domid, int handle_bufioreq, 11 ioservid_t *id) 12 { 13 return xendevicemodel_create_ioreq_server(xch->dmod, domid, 14 handle_bufioreq, id); 15 } 16 xc_hvm_get_ioreq_server_info(xc_interface * xch,uint32_t domid,ioservid_t id,xen_pfn_t * ioreq_pfn,xen_pfn_t * bufioreq_pfn,evtchn_port_t * bufioreq_port)17 int xc_hvm_get_ioreq_server_info( 18 xc_interface *xch, uint32_t domid, ioservid_t id, xen_pfn_t *ioreq_pfn, 19 xen_pfn_t *bufioreq_pfn, evtchn_port_t *bufioreq_port) 20 { 21 return xendevicemodel_get_ioreq_server_info(xch->dmod, domid, id, 22 ioreq_pfn, bufioreq_pfn, 23 bufioreq_port); 24 } 25 xc_hvm_map_io_range_to_ioreq_server(xc_interface * xch,uint32_t domid,ioservid_t id,int is_mmio,uint64_t start,uint64_t end)26 int xc_hvm_map_io_range_to_ioreq_server( 27 xc_interface *xch, uint32_t domid, ioservid_t id, int is_mmio, 28 uint64_t start, uint64_t end) 29 { 30 return xendevicemodel_map_io_range_to_ioreq_server(xch->dmod, domid, 31 id, is_mmio, start, 32 end); 33 } 34 xc_hvm_unmap_io_range_from_ioreq_server(xc_interface * xch,uint32_t domid,ioservid_t id,int is_mmio,uint64_t start,uint64_t end)35 int xc_hvm_unmap_io_range_from_ioreq_server( 36 xc_interface *xch, uint32_t domid, ioservid_t id, int is_mmio, 37 uint64_t start, uint64_t end) 38 { 39 return xendevicemodel_unmap_io_range_from_ioreq_server(xch->dmod, domid, 40 id, is_mmio, 41 start, end); 42 } 43 xc_hvm_map_pcidev_to_ioreq_server(xc_interface * xch,uint32_t domid,ioservid_t id,uint16_t segment,uint8_t bus,uint8_t device,uint8_t function)44 int xc_hvm_map_pcidev_to_ioreq_server( 45 xc_interface *xch, uint32_t domid, ioservid_t id, uint16_t segment, 46 uint8_t bus, uint8_t device, uint8_t function) 47 { 48 return xendevicemodel_map_pcidev_to_ioreq_server(xch->dmod, domid, id, 49 segment, bus, device, 50 function); 51 } 52 xc_hvm_unmap_pcidev_from_ioreq_server(xc_interface * xch,uint32_t domid,ioservid_t id,uint16_t segment,uint8_t bus,uint8_t device,uint8_t function)53 int xc_hvm_unmap_pcidev_from_ioreq_server( 54 xc_interface *xch, uint32_t domid, ioservid_t id, uint16_t segment, 55 uint8_t bus, uint8_t device, uint8_t function) 56 { 57 return xendevicemodel_unmap_pcidev_from_ioreq_server(xch->dmod, domid, 58 id, segment, bus, 59 device, function); 60 } 61 xc_hvm_destroy_ioreq_server(xc_interface * xch,uint32_t domid,ioservid_t id)62 int xc_hvm_destroy_ioreq_server( 63 xc_interface *xch, uint32_t domid, ioservid_t id) 64 { 65 return xendevicemodel_destroy_ioreq_server(xch->dmod, domid, id); 66 } 67 xc_hvm_set_ioreq_server_state(xc_interface * xch,uint32_t domid,ioservid_t id,int enabled)68 int xc_hvm_set_ioreq_server_state( 69 xc_interface *xch, uint32_t domid, ioservid_t id, int enabled) 70 { 71 return xendevicemodel_set_ioreq_server_state(xch->dmod, domid, id, 72 enabled); 73 } 74 xc_hvm_set_pci_intx_level(xc_interface * xch,uint32_t domid,uint16_t segment,uint8_t bus,uint8_t device,uint8_t intx,unsigned int level)75 int xc_hvm_set_pci_intx_level( 76 xc_interface *xch, uint32_t domid, uint16_t segment, uint8_t bus, 77 uint8_t device, uint8_t intx, unsigned int level) 78 { 79 return xendevicemodel_set_pci_intx_level(xch->dmod, domid, segment, 80 bus, device, intx, level); 81 } 82 xc_hvm_set_isa_irq_level(xc_interface * xch,uint32_t domid,uint8_t irq,unsigned int level)83 int xc_hvm_set_isa_irq_level( 84 xc_interface *xch, uint32_t domid, uint8_t irq, unsigned int level) 85 { 86 return xendevicemodel_set_isa_irq_level(xch->dmod, domid, irq, level); 87 } 88 xc_hvm_set_pci_link_route(xc_interface * xch,uint32_t domid,uint8_t link,uint8_t irq)89 int xc_hvm_set_pci_link_route( 90 xc_interface *xch, uint32_t domid, uint8_t link, uint8_t irq) 91 { 92 return xendevicemodel_set_pci_link_route(xch->dmod, domid, link, irq); 93 } 94 xc_hvm_inject_msi(xc_interface * xch,uint32_t domid,uint64_t msi_addr,uint32_t msi_data)95 int xc_hvm_inject_msi( 96 xc_interface *xch, uint32_t domid, uint64_t msi_addr, uint32_t msi_data) 97 { 98 return xendevicemodel_inject_msi(xch->dmod, domid, msi_addr, msi_data); 99 } 100 xc_hvm_track_dirty_vram(xc_interface * xch,uint32_t domid,uint64_t first_pfn,uint32_t nr,unsigned long * dirty_bitmap)101 int xc_hvm_track_dirty_vram( 102 xc_interface *xch, uint32_t domid, uint64_t first_pfn, uint32_t nr, 103 unsigned long *dirty_bitmap) 104 { 105 return xendevicemodel_track_dirty_vram(xch->dmod, domid, first_pfn, 106 nr, dirty_bitmap); 107 } 108 xc_hvm_modified_memory(xc_interface * xch,uint32_t domid,uint64_t first_pfn,uint32_t nr)109 int xc_hvm_modified_memory( 110 xc_interface *xch, uint32_t domid, uint64_t first_pfn, uint32_t nr) 111 { 112 return xendevicemodel_modified_memory(xch->dmod, domid, first_pfn, nr); 113 } 114 xc_hvm_set_mem_type(xc_interface * xch,uint32_t domid,hvmmem_type_t type,uint64_t first_pfn,uint32_t nr)115 int xc_hvm_set_mem_type( 116 xc_interface *xch, uint32_t domid, hvmmem_type_t type, 117 uint64_t first_pfn, uint32_t nr) 118 { 119 return xendevicemodel_set_mem_type(xch->dmod, domid, type, first_pfn, 120 nr); 121 } 122 xc_hvm_inject_trap(xc_interface * xch,uint32_t domid,int vcpu,uint8_t vector,uint8_t type,uint32_t error_code,uint8_t insn_len,uint64_t cr2)123 int xc_hvm_inject_trap( 124 xc_interface *xch, uint32_t domid, int vcpu, uint8_t vector, 125 uint8_t type, uint32_t error_code, uint8_t insn_len, uint64_t cr2) 126 { 127 return xendevicemodel_inject_event(xch->dmod, domid, vcpu, vector, 128 type, error_code, insn_len, cr2); 129 } 130 xc_domain_pin_memory_cacheattr(xc_interface * xch,uint32_t domid,uint64_t start,uint64_t end,uint32_t type)131 int xc_domain_pin_memory_cacheattr( 132 xc_interface *xch, uint32_t domid, uint64_t start, uint64_t end, 133 uint32_t type) 134 { 135 return xendevicemodel_pin_memory_cacheattr(xch->dmod, domid, start, end, 136 type); 137 } 138 139 /* 140 * Local variables: 141 * mode: C 142 * c-file-style: "BSD" 143 * c-basic-offset: 4 144 * tab-width: 4 145 * indent-tabs-mode: nil 146 * End: 147 */ 148