qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to handle qemu


From: Julien Grall
Subject: [Qemu-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to handle qemu disaggregation
Date: Wed, 22 Aug 2012 13:31:58 +0100

This patch modifies libxl interface for qemu disaggregation.
For the moment, due to some dependencies between devices, we
can't let the user choose which QEMU emulate a device.

Moreoever this patch adds an "id" field to nic interface.
It will be used in config file to specify which QEMU handle
the network card.

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
+    (2, "IDE"), # Emulate IDE
+    (4, "SERIAL"), # Emulate Serial
+    (8, "AUDIO"), # Emulate audio
+    ])
+
+libxl_dm = Struct("dm", [
+    ("name",         string),
+    ("path",         string),
+    ("capabilities",   uint64),
+    ("vifs",         libxl_string_list),
+    ])
+
 libxl_domain_build_info = Struct("domain_build_info",[
     ("max_vcpus",       integer),
     ("avail_vcpus",     libxl_bitmap),
@@ -367,6 +381,7 @@ libxl_device_nic = Struct("device_nic", [
     ("nictype", libxl_nic_type),
     ("rate_bytes_per_interval", uint64),
     ("rate_interval_usecs", uint32),
+    ("id", string),
     ])
 
 libxl_device_pci = Struct("device_pci", [
-- 
Julien Grall




reply via email to

[Prev in Thread] Current Thread [Next in Thread]