A possible disaggregation is:
- UI: Emulate graphic card, USB, keyboard, mouse, default devices
(PIIX4, root bridge, ...)
- IDE: Emulate disk
- Serial: Emulate serial port
- Audio: Emulate audio card
- Net: Emulate one or more network cards, multiple QEMU can emulate
different card. The emulated card is specified with its nic ID.
Signed-off-by: Julien Grall<address@hidden>
---
tools/libxl/libxl.h | 3 +++
tools/libxl/libxl_types.idl | 15 +++++++++++++++
2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
index c614d6f..71d4808 100644
--- a/tools/libxl/libxl.h
+++ b/tools/libxl/libxl.h
@@ -307,6 +307,7 @@ void libxl_cpuid_dispose(libxl_cpuid_policy_list
*cpuid_list);
#define LIBXL_PCI_FUNC_ALL (~0U)
typedef uint32_t libxl_domid;
+typedef uint32_t libxl_dmid;
/*
* Formatting Enumerations.
@@ -478,12 +479,14 @@ typedef struct {
libxl_domain_build_info b_info;
int num_disks, num_nics, num_pcidevs, num_vfbs, num_vkbs;
+ int num_dms;
libxl_device_disk *disks;
libxl_device_nic *nics;
libxl_device_pci *pcidevs;
libxl_device_vfb *vfbs;
libxl_device_vkb *vkbs;
+ libxl_dm *dms;
libxl_action_on_shutdown on_poweroff;
libxl_action_on_shutdown on_reboot;
diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
index daa8c79..36c802a 100644
--- a/tools/libxl/libxl_types.idl
+++ b/tools/libxl/libxl_types.idl
@@ -246,6 +246,20 @@ libxl_domain_sched_params = Struct("domain_sched_params",[
("extratime", integer, {'init_val':
'LIBXL_DOMAIN_SCHED_PARAM_EXTRATIME_DEFAULT'}),
])
+libxl_dm_cap = Enumeration("dm_cap", [
+ (1, "UI"), # Emulate all UI + default device