mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 18:21:39 +01:00
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>
148 lines
4.9 KiB
C
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:
|
|
*/
|