Files
xen/tools/libs/ctrl/xc_devicemodel_compat.c
T
Juergen Gross af6c78d9dc tools: move libxenctrl below tools/libs
Today tools/libxc needs to be built after tools/libs as libxenctrl is
depending on some libraries in tools/libs. This in turn blocks moving
other libraries depending on libxenctrl below tools/libs.

So carve out libxenctrl from tools/libxc and move it into
tools/libs/ctrl.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org> (stubdom parts)
Acked-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> (python parts)
Acked-by: Wei Liu <wl@xen.org>
2020-09-09 10:57:25 +00:00

148 lines
4.9 KiB
C

/*
* Compat shims for use of 3rd party consumers of libxenctrl device model
* functionality which has been split into separate libraries.
*/
#define XC_WANT_COMPAT_DEVICEMODEL_API
#include "xc_private.h"
int xc_hvm_create_ioreq_server(
xc_interface *xch, uint32_t domid, int handle_bufioreq,
ioservid_t *id)
{
return xendevicemodel_create_ioreq_server(xch->dmod, domid,
handle_bufioreq, id);
}
int 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)
{
return xendevicemodel_get_ioreq_server_info(xch->dmod, domid, id,
ioreq_pfn, bufioreq_pfn,
bufioreq_port);
}
int 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)
{
return xendevicemodel_map_io_range_to_ioreq_server(xch->dmod, domid,
id, is_mmio, start,
end);
}
int 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)
{
return xendevicemodel_unmap_io_range_from_ioreq_server(xch->dmod, domid,
id, is_mmio,
start, end);
}
int 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)
{
return xendevicemodel_map_pcidev_to_ioreq_server(xch->dmod, domid, id,
segment, bus, device,
function);
}
int 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)
{
return xendevicemodel_unmap_pcidev_from_ioreq_server(xch->dmod, domid,
id, segment, bus,
device, function);
}
int xc_hvm_destroy_ioreq_server(
xc_interface *xch, uint32_t domid, ioservid_t id)
{
return xendevicemodel_destroy_ioreq_server(xch->dmod, domid, id);
}
int xc_hvm_set_ioreq_server_state(
xc_interface *xch, uint32_t domid, ioservid_t id, int enabled)
{
return xendevicemodel_set_ioreq_server_state(xch->dmod, domid, id,
enabled);
}
int 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)
{
return xendevicemodel_set_pci_intx_level(xch->dmod, domid, segment,
bus, device, intx, level);
}
int xc_hvm_set_isa_irq_level(
xc_interface *xch, uint32_t domid, uint8_t irq, unsigned int level)
{
return xendevicemodel_set_isa_irq_level(xch->dmod, domid, irq, level);
}
int xc_hvm_set_pci_link_route(
xc_interface *xch, uint32_t domid, uint8_t link, uint8_t irq)
{
return xendevicemodel_set_pci_link_route(xch->dmod, domid, link, irq);
}
int xc_hvm_inject_msi(
xc_interface *xch, uint32_t domid, uint64_t msi_addr, uint32_t msi_data)
{
return xendevicemodel_inject_msi(xch->dmod, domid, msi_addr, msi_data);
}
int xc_hvm_track_dirty_vram(
xc_interface *xch, uint32_t domid, uint64_t first_pfn, uint32_t nr,
unsigned long *dirty_bitmap)
{
return xendevicemodel_track_dirty_vram(xch->dmod, domid, first_pfn,
nr, dirty_bitmap);
}
int xc_hvm_modified_memory(
xc_interface *xch, uint32_t domid, uint64_t first_pfn, uint32_t nr)
{
return xendevicemodel_modified_memory(xch->dmod, domid, first_pfn, nr);
}
int xc_hvm_set_mem_type(
xc_interface *xch, uint32_t domid, hvmmem_type_t type,
uint64_t first_pfn, uint32_t nr)
{
return xendevicemodel_set_mem_type(xch->dmod, domid, type, first_pfn,
nr);
}
int 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)
{
return xendevicemodel_inject_event(xch->dmod, domid, vcpu, vector,
type, error_code, insn_len, cr2);
}
int xc_domain_pin_memory_cacheattr(
xc_interface *xch, uint32_t domid, uint64_t start, uint64_t end,
uint32_t type)
{
return xendevicemodel_pin_memory_cacheattr(xch->dmod, domid, start, end,
type);
}
/*
* Local variables:
* mode: C
* c-file-style: "BSD"
* c-basic-offset: 4
* tab-width: 4
* indent-tabs-mode: nil
* End:
*/