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