[Top][All Lists]
[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
- [Qemu-devel] [XEN][RFC PATCH V2 11/17] xc: modify save/restore to support multiple device models, (continued)
[Qemu-devel] [XEN][RFC PATCH V2 02/17] hvm: Add functions to handle ioreq servers, Julien Grall, 2012/08/22
[Qemu-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op, Julien Grall, 2012/08/22
[Qemu-devel] [XEN][RFC PATCH V2 06/17] hvm-io: IO refactoring with ioreq server, Julien Grall, 2012/08/22
[Qemu-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to handle qemu disaggregation,
Julien Grall <=
[Qemu-devel] [XEN][RFC PATCH V2 10/17] xc: Add argument to allocate more special pages, Julien Grall, 2012/08/22
[Qemu-devel] [XEN][RFC PATCH V2 08/17] hvm-io: Handle server in buffered IO, Julien Grall, 2012/08/22
[Qemu-devel] [XEN][RFC PATCH V2 01/17] hvm: Modify interface to support multiple ioreq server, Julien Grall, 2012/08/22