[libvirt] [PATCH RFC 00/12] Fine grained access control proof of concept
by Daniel P. Berrange
This series of patch is the minimal required to get a working proof
of concept implementation of fine grained access control in libvirt.
This demonstrates
- Obtaining a client identity from a socket
- Ensuring RPC calls are executed with the correct identity sset
- A policykit access driver that checks based on access vector alone
- A SELinux access driver that checks based on access vector + object
- A set of hooks in the QEMU driver to protect virDomainObjPtr access
Things that are not done
- APIs for changing the real/effective identity post-connect
- A simple RBAC access driver for doing (Access vector, object)
checks
- SELinux policy for the SELinux driver
- Access control hooks on all other QEMU driver methods
- Access control hooks in LXC, UML, other libvirtd side drivers
- Access control hooks in storage, network, interface, etc drivers
- Document WTF todo to propagate SELinux contexts across TCP
sockets using IPSec. Any hints welcome...
- Lots more I can't think of right now
I should note that the policykit driver is mostly useless because it
is unable to let you do checks on anything other than permission name
and UNIX process ID at this time. In theory it is supposed to be
extendable to allow other types of identity information besides
the process ID, and to include some kind of object identiers in
the permission check, but no one seems to be attacking this.
So I expect the simple RBAC driver to be the most used one in the
common case usage of libvirt
13 years, 3 months
[libvirt] [PATCH v2 0/8] Add ability to store notes with domains
by Peter Krempa
I've reworked this patches to use a separate element for storing the
short note. This v2 also contains som new patches, especially added
support for the LXC driver, and optionaly API to get the description.
(See patches marked as optional). These are not required, just add
a helper api to get the description and it's usage in virsh.
v2 patches:
xml: Add element <title> to allow short description of domains
api: Add api to set domain title and description in runtime
qemu: Implement note API in qemu driver
virsh: Add support for modifying domain description and titles
v1 patches:
lxc: implement description API in LXC driver.
api: Add API to get domain title and description (optional)
lxc, qemu: Add support for virDomainGetDescription (optional)
virsh: Add support for virDomainGetDescription api (optional)
docs/formatdomain.html.in | 6 +
docs/schemas/domaincommon.rng | 13 +-
include/libvirt/libvirt.h.in | 13 +
src/conf/domain_conf.c | 19 ++
src/conf/domain_conf.h | 1 +
src/driver.h | 9 +
src/libvirt.c | 92 +++++++
src/libvirt_public.syms | 6 +
src/lxc/lxc_driver.c | 139 ++++++++++
src/qemu/qemu_driver.c | 139 ++++++++++
src/remote/remote_driver.c | 2 +
src/remote/remote_protocol.x | 19 ++-
.../qemu-simple-description-title.xml | 27 ++
tests/qemuxml2argvdata/qemuxml2argv-minimal.xml | 5 +
tools/virsh.c | 268 ++++++++++++++++++--
tools/virsh.pod | 34 +++-
16 files changed, 769 insertions(+), 23 deletions(-)
create mode 100644 tests/domainschemadata/qemu-simple-description-title.xml
--
1.7.3.4
13 years, 3 months
[libvirt] [BUG] EPOLL_CLOEXEC undeclared
by Philipp Hahn
Hi,
$ cat /etc/debian_version
5.0.1
$ dpkg -S eventpoll.h
linux-libc-dev: /usr/include/linux/eventpoll.h
$ dpkg-query -W linux-libc-dev
linux-libc-dev 2.6.32-35~ucs1.48.201109051614
$ git describe
v0.9.9-57-g7eb9cfd
$ ./autogen.sh ; make
...
(cd .libs && rm -f libvirt_test.la && ln -s ../libvirt_test.la
libvirt_test.la)
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -I../gnulib/lib -I../gnulib/lib -I../include -I../src/util -I../include -DIN_LIBVIRT -I../src/conf -I/usr/include/libxml2 -Wall -W -Wformat-y2k -Wformat-security -Winit-self -Wmissing-include-dirs -Wunused -Wunknown-pragmas -Wstrict-aliasing -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wwrite-strings -Wlogical-op -Waggregate-return -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -Wnested-externs -Winline -Winvalid-pch -Wvolatile-register-var -Wdisabled-optimization -Wattributes -Wcoverage-mismatch -Wmultichar -Wdeprecated-declarations -Wdiv-by-zero -Wendif-labels -Wextra -Wformat-contains-nul -Wformat-extra-args -Wformat-zero-length -Wformat=2 -Wmultichar -Wnormalized=nfc -Woverflow -Wpointer-to-int-cast -Wpragmas -Wno-missing-field-initializers -Wno-sign-compare -Wno-format-nonliteral -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-all --param=ssp-buffer-size=4 -fexceptions -fasynchronous-unwind-tables -fdiagnostics-show-option -funit-at-a-time -fipa-pure-const -g -O2 -MT
libvirt_lxc-lxc_controller.o -MD -MP -MF .deps/libvirt_lxc-lxc_controller.Tpo -c -o
libvirt_lxc-lxc_controller.o `test -f 'lxc/lxc_controller.c' ||
echo './'`lxc/lxc_controller.c
lxc/lxc_controller.c: In function 'lxcControllerMain':
lxc/lxc_controller.c:1176: warning: implicit declaration of
function 'epoll_create1'
lxc/lxc_controller.c:1176: warning: nested extern declaration
of 'epoll_create1' [-Wnested-externs]
lxc/lxc_controller.c:1176: error: 'EPOLL_CLOEXEC' undeclared (first use in
this function)
lxc/lxc_controller.c:1176: error: (Each undeclared identifier is reported only
once
lxc/lxc_controller.c:1176: error: for each function it appears in.)
make[3]: *** [libvirt_lxc-lxc_controller.o] Error 1
make[3]: Leaving directory `/root/libvirt/src'
...
$ git show v0.9.9-32-g9130396 | head -5
commit 9130396214975ba2251082f943c9717281039050
Author: Daniel P. Berrange <berrange(a)redhat.com>
Date: Thu Jan 12 17:03:03 2012 +0000
Re-write LXC controller end-of-file I/O handling yet again
Sincerely
Philipp
--
Philipp Hahn Open Source Software Engineer hahn(a)univention.de
Univention GmbH Linux for Your Business fon: +49 421 22 232- 0
Mary-Somerville-Str.1 D-28359 Bremen fax: +49 421 22 232-99
http://www.univention.de/
13 years, 3 months
[libvirt] [PATCH] xen: Don't crash when we fail to init caps
by Guido Günther
by dereferencing a NULL pointer in the call to
virNodeSuspendGetTargetMask.
Only warn but Don't set an error to not overwrite an error code set by
xenHypervisorMakeCapabilities.
---
src/xen/xen_hypervisor.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c
index 2bb3466..855576c 100644
--- a/src/xen/xen_hypervisor.c
+++ b/src/xen/xen_hypervisor.c
@@ -2764,6 +2764,10 @@ xenHypervisorMakeCapabilities(virConnectPtr conn)
utsname.machine,
cpuinfo,
capabilities);
+ if (caps == NULL) {
+ VIR_WARN("Failed to get host capabilities");
+ return NULL;
+ }
if (virNodeSuspendGetTargetMask(&caps->host.powerMgmt) < 0)
VIR_WARN("Failed to get host power management capabilities");
--
1.7.8.3
13 years, 3 months
[libvirt] [PATCH 0/2] consistent use of _LAST enum markers
by Eric Blake
This patch series will make it harder to add an enum value
while forgetting to translate that enum to or from an
appropriate string value. It also alters the public API
so that users don't get _LAST enum values unless they ask
for them, since such values are markers that might change
over time rather than an official unchanging API value.
Eric Blake (2):
API: make declaration of _LAST enum values conditional
maint: enforce use of _LAST marker
cfg.mk | 12 +++-
daemon/libvirtd.h | 8 +-
include/libvirt/libvirt.h.in | 186 ++++++++++++++++++++++++++++++++++++-----
python/generator.py | 3 +-
src/conf/domain_conf.c | 2 +-
src/conf/domain_conf.h | 3 +-
src/internal.h | 4 +
src/qemu/qemu_monitor_json.c | 9 +-
src/remote/remote_protocol.x | 3 +-
src/util/virtypedparam.c | 2 +-
tests/cputest.c | 3 +-
tools/virsh.c | 9 ++
12 files changed, 207 insertions(+), 37 deletions(-)
--
1.7.7.5
13 years, 3 months
[libvirt] Can't compile libvirt 0.9.9 (complains about apparmor)
by Jean-Philippe Menil
Hi,
I need to compile libvirt 0.9.9 to work with qemu-kvm 1.0.
I use to compile libvirt without apparmor or selinux, but this time,
with the newer version, it seems that i can't compile with the following
options:
./configure --disable-rpath --with-qemu=yes
--with-qemu-user=libvirt-qemu --with-qemu-group=kvm
--with-init-script=none --without-xen-inotify --without-uml
--without-vmware --without-libssh2 --without-phyp --without-xenapi
--without-libxl --without-esx --without-hyperv --without-test
--without-remote --without-sasl --without-yajl --without-sanlock
--without-polkit --without-avahi --without-audit --without-dtrace
--without-numactl --without-capng --without-network --without-netcf
--without-secrets --without-storage-lvm --without-storage-dir
--without-storage-fs --without-storage-iscsi --without-storage-scsi
--without-storage-mpath --without-storage-disk --without-python
--without-driver-modules --without-hal --without-udev --without-libblkid
--without-virtualport --without-macvtap --enable-debug=n --without-xen
--without-vbox --without-lxc --without-openvz --with-driver-modules=no
--without-apparmor --without-secdriver-apparmor --without-selinux
--without-secdriver-selinux
Relevant error is :
configure:54338: error: You must install the AppArmor development
package in order to compile libvirt
Note that, if i compile with the option "with-apparmor", configure works
fine, and i haven't any errors.
Is it possible to compile libvirt without apparmor?
Best regards.
--
Jean-Philippe Menil - Pôle réseau Service IRTS
DSI Université de Nantes
jean-philippe.menil(a)univ-nantes.fr
Tel : 02.53.48.49.27 - Fax : 02.53.48.49.09
13 years, 3 months
[libvirt] [PATCH] xen: properly report out of memory when hvm_type is too small
by Guido Günther
---
src/xen/xen_hypervisor.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c
index 855576c..51b92d3 100644
--- a/src/xen/xen_hypervisor.c
+++ b/src/xen/xen_hypervisor.c
@@ -2598,7 +2598,7 @@ xenHypervisorMakeCapabilitiesInternal(virConnectPtr conn,
&line[subs[1].rm_so],
subs[1].rm_eo-subs[1].rm_so,
sizeof(hvm_type)) == NULL)
- return NULL;
+ goto no_memory;
} else if (regexec (&flags_pae_rec, line, 0, NULL, 0) == 0)
host_pae = 1;
}
--
1.7.8.3
13 years, 3 months
[libvirt] [PATCH 1/2] virsh: extend domif-{get, set}link command to accept target name as a parameter
by Taku Izumi
Other virsh domifXXX commands can accept target name
as a parameter to specify interface. From viewpoint of
consistency, virsh domif-getlink command should accept
target name as a parameter. This patch achieves this.
Signed-off-by: Taku Izumi <izumi.taku(a)jp.fujitsu.com>
---
tools/virsh.c | 25 ++++++++++++++++++-------
tools/virsh.pod | 3 ++-
2 files changed, 20 insertions(+), 8 deletions(-)
Index: libvirt/tools/virsh.c
===================================================================
--- libvirt.orig/tools/virsh.c
+++ libvirt/tools/virsh.c
@@ -1509,7 +1509,10 @@ cmdDomIfGetLink (vshControl *ctl, const
const char *iface = NULL;
int flags = 0;
char *state = NULL;
- char *mac = NULL;
+ char *value = NULL;
+ unsigned char macaddr[VIR_MAC_BUFLEN];
+ const char *element;
+ const char *attribute;
bool ret = false;
int i;
char *desc;
@@ -1552,27 +1555,35 @@ cmdDomIfGetLink (vshControl *ctl, const
goto cleanup;
}
+ if (virParseMacAddr(iface, macaddr) == 0) {
+ element = "mac";
+ attribute = "address";
+ } else {
+ element = "target";
+ attribute = "dev";
+ }
+
/* find interface with matching mac addr */
for (i = 0; i < obj->nodesetval->nodeNr; i++) {
cur = obj->nodesetval->nodeTab[i]->children;
while (cur) {
if (cur->type == XML_ELEMENT_NODE &&
- xmlStrEqual(cur->name, BAD_CAST "mac")) {
+ xmlStrEqual(cur->name, BAD_CAST element)) {
- mac = virXMLPropString(cur, "address");
+ value = virXMLPropString(cur, attribute);
- if (STRCASEEQ(mac, iface)){
- VIR_FREE(mac);
+ if (STRCASEEQ(value, iface)){
+ VIR_FREE(value);
goto hit;
}
- VIR_FREE(mac);
+ VIR_FREE(value);
}
cur = cur->next;
}
}
- vshError(ctl, _("Interface with address '%s' not found."), iface);
+ vshError(ctl, _("Interface (%s: %s) not found."), element, iface);
goto cleanup;
hit:
Index: libvirt/tools/virsh.pod
===================================================================
--- libvirt.orig/tools/virsh.pod
+++ libvirt/tools/virsh.pod
@@ -475,10 +475,11 @@ Modify link state of the domain's virtua
state are "up" and "down. If --persistent is specified, only the persistent
configuration of the domain is modified.
-=item B<domif-getlink> I<domain> I<interface-MAC> I<--persistent>
+=item B<domif-getlink> I<domain> I<interface-device> I<--persistent>
Query link state of the domain's virtual interface. If --persistent
is specified, query the persistent configuration.
+I<interface-device> can be the interface's target name or the MAC address.
=item B<domiftune> I<domain> I<interface-device>
[[I<--config>] [I<--live>] | [I<--current>]]
13 years, 3 months
[libvirt] [PATCH] maint: cleanup qemu capabilities
by Eric Blake
Fix inconsistent whitespace and long lines.
* src/qemu/qemu_capabilities.h (qemuCapsFlags): Improve formatting.
---
Pushing under the trivial rule, since this has come up multiple
times this month with people trying to tweak unrelated parts
of this enum while adding new values.
src/qemu/qemu_capabilities.h | 161 +++++++++++++++++++++---------------------
1 files changed, 80 insertions(+), 81 deletions(-)
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 6a5389e..eae7929 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -29,102 +29,101 @@
/* Internal flags to keep track of qemu command line capabilities */
enum qemuCapsFlags {
- QEMU_CAPS_KQEMU = 0, /* Whether KQEMU is compiled in */
- QEMU_CAPS_VNC_COLON = 1, /* Does the VNC take just port, or address + display */
- QEMU_CAPS_NO_REBOOT = 2, /* Is the -no-reboot flag available */
- QEMU_CAPS_DRIVE = 3, /* Is the new -drive arg available */
- QEMU_CAPS_DRIVE_BOOT = 4, /* Does -drive support boot=on */
- QEMU_CAPS_NAME = 5, /* Is the -name flag available */
- QEMU_CAPS_UUID = 6, /* Is the -uuid flag available */
- QEMU_CAPS_DOMID = 7, /* Xenner only, special -domid flag available */
- QEMU_CAPS_VNET_HDR = 8,
- QEMU_CAPS_MIGRATE_KVM_STDIO = 9, /* Original migration code from KVM. Also had tcp, but we can't use that
- * since it had a design bug blocking the entire monitor console */
- QEMU_CAPS_MIGRATE_QEMU_TCP = 10, /* New migration syntax after merge to QEMU with TCP transport */
- QEMU_CAPS_MIGRATE_QEMU_EXEC = 11, /* New migration syntax after merge to QEMU with EXEC transport */
- QEMU_CAPS_DRIVE_CACHE_V2 = 12, /* Is the cache= flag wanting new v2 values */
- QEMU_CAPS_KVM = 13, /* Whether KVM is compiled in */
- QEMU_CAPS_DRIVE_FORMAT = 14, /* Is -drive format= avail */
- QEMU_CAPS_VGA = 15, /* Is -vga avail */
+ QEMU_CAPS_KQEMU = 0, /* Whether KQEMU is compiled in */
+ QEMU_CAPS_VNC_COLON = 1, /* VNC takes or address + display */
+ QEMU_CAPS_NO_REBOOT = 2, /* Is the -no-reboot flag available */
+ QEMU_CAPS_DRIVE = 3, /* Is the new -drive arg available */
+ QEMU_CAPS_DRIVE_BOOT = 4, /* Does -drive support boot=on */
+ QEMU_CAPS_NAME = 5, /* Is the -name flag available */
+ QEMU_CAPS_UUID = 6, /* Is the -uuid flag available */
+ QEMU_CAPS_DOMID = 7, /* Xenner: -domid flag available */
+ QEMU_CAPS_VNET_HDR = 8,
+ QEMU_CAPS_MIGRATE_KVM_STDIO = 9, /* avoid kvm tcp migration bug */
+ QEMU_CAPS_MIGRATE_QEMU_TCP = 10, /* have qemu tcp migration */
+ QEMU_CAPS_MIGRATE_QEMU_EXEC = 11, /* have qemu exec migration */
+ QEMU_CAPS_DRIVE_CACHE_V2 = 12, /* cache= flag wanting new v2 values */
+ QEMU_CAPS_KVM = 13, /* Whether KVM is compiled in */
+ QEMU_CAPS_DRIVE_FORMAT = 14, /* Is -drive format= avail */
+ QEMU_CAPS_VGA = 15, /* Is -vga avail */
/* features added in qemu-0.10.0 or later */
- QEMU_CAPS_0_10 = 16,
- QEMU_CAPS_NET_NAME = QEMU_CAPS_0_10, /* -net ...,name=str */
- QEMU_CAPS_HOST_NET_ADD = QEMU_CAPS_0_10, /* host_net_add monitor command */
-
- QEMU_CAPS_PCIDEVICE = 17, /* PCI device assignment only supported by qemu-kvm */
- QEMU_CAPS_MEM_PATH = 18, /* mmap'ped guest backing supported */
- QEMU_CAPS_DRIVE_SERIAL = 19, /* -driver serial= available */
- QEMU_CAPS_XEN_DOMID = 20, /* -xen-domid (new style xen integration) */
- QEMU_CAPS_MIGRATE_QEMU_UNIX = 21, /* Does qemu support unix domain sockets for migration? */
- QEMU_CAPS_CHARDEV = 22, /* Is the new -chardev arg available */
- QEMU_CAPS_ENABLE_KVM = 23, /* Is the -enable-kvm flag available to "enable KVM full virtualization support" */
- QEMU_CAPS_MONITOR_JSON = 24, /* JSON mode for monitor */
- QEMU_CAPS_BALLOON = 25, /* -balloon available */
- QEMU_CAPS_DEVICE = 26, /* Is the new -device arg available */
- QEMU_CAPS_SDL = 27, /* Is the new -sdl arg available */
- QEMU_CAPS_SMP_TOPOLOGY = 28, /* Is sockets=s,cores=c,threads=t available for -smp? */
- QEMU_CAPS_NETDEV = 29, /* The -netdev flag & netdev_add/remove monitor commands */
- QEMU_CAPS_RTC = 30, /* The -rtc flag for clock options */
- QEMU_CAPS_VHOST_NET = 31, /* vhost-net support is available in qemu */
- QEMU_CAPS_RTC_TD_HACK = 32, /* -rtc-td-hack available */
- QEMU_CAPS_NO_HPET = 33, /* -no-hpet flag is supported */
- QEMU_CAPS_NO_KVM_PIT = 34, /* -no-kvm-pit-reinjection supported */
- QEMU_CAPS_TDF = 35, /* -tdf flag (user-mode pit catchup) */
- QEMU_CAPS_PCI_CONFIGFD = 36, /* pci-assign.configfd */
- QEMU_CAPS_NODEFCONFIG = 37, /* -nodefconfig */
- QEMU_CAPS_BOOT_MENU = 38, /* -boot menu=on support */
- QEMU_CAPS_ENABLE_KQEMU = 39, /* -enable-kqemu flag */
- QEMU_CAPS_FSDEV = 40, /* -fstype filesystem passthrough */
- QEMU_CAPS_NESTING = 41, /* -enable-nesting (SVM/VMX) */
- QEMU_CAPS_NAME_PROCESS = 42, /* Is -name process= available */
- QEMU_CAPS_DRIVE_READONLY = 43, /* -drive readonly=on|off */
- QEMU_CAPS_SMBIOS_TYPE = 44, /* Is -smbios type= available */
- QEMU_CAPS_VGA_QXL = 45, /* The 'qxl' arg for '-vga' */
- QEMU_CAPS_SPICE = 46, /* Is -spice avail */
- QEMU_CAPS_VGA_NONE = 47, /* The 'none' arg for '-vga' */
- QEMU_CAPS_MIGRATE_QEMU_FD = 48, /* -incoming fd:n */
- QEMU_CAPS_BOOTINDEX = 49, /* -device bootindex property */
- QEMU_CAPS_HDA_DUPLEX = 50, /* -device hda-duplex */
- QEMU_CAPS_DRIVE_AIO = 51, /* -drive aio= supported */
- QEMU_CAPS_PCI_MULTIBUS = 52, /* bus=pci.0 vs bus=pci */
- QEMU_CAPS_PCI_BOOTINDEX = 53, /* pci-assign.bootindex */
- QEMU_CAPS_CCID_EMULATED = 54, /* -device ccid-card-emulated */
- QEMU_CAPS_CCID_PASSTHRU = 55, /* -device ccid-card-passthru */
- QEMU_CAPS_CHARDEV_SPICEVMC = 56, /* newer -chardev spicevmc */
- QEMU_CAPS_DEVICE_SPICEVMC = 57, /* older -device spicevmc*/
- QEMU_CAPS_VIRTIO_TX_ALG = 58, /* -device virtio-net-pci,tx=string */
- QEMU_CAPS_DEVICE_QXL_VGA = 59, /* Is the primary and vga campatible qxl device named qxl-vga? */
- QEMU_CAPS_PCI_MULTIFUNCTION = 60, /* -device multifunction=on|off */
- QEMU_CAPS_VIRTIO_IOEVENTFD = 61, /* IOeventFD feature: virtio-{net|blk}-pci.ioeventfd=on/off */
- QEMU_CAPS_SGA = 62, /* Serial Graphics Adapter */
+ QEMU_CAPS_0_10 = 16,
+ QEMU_CAPS_NET_NAME = QEMU_CAPS_0_10, /* -net ...,name=str */
+ QEMU_CAPS_HOST_NET_ADD = QEMU_CAPS_0_10, /* host_net_add command */
+
+ QEMU_CAPS_PCIDEVICE = 17, /* PCI device assignment supported */
+ QEMU_CAPS_MEM_PATH = 18, /* mmap'ped guest backing supported */
+ QEMU_CAPS_DRIVE_SERIAL = 19, /* -driver serial= available */
+ QEMU_CAPS_XEN_DOMID = 20, /* -xen-domid */
+ QEMU_CAPS_MIGRATE_QEMU_UNIX = 21, /* qemu migration via unix sockets */
+ QEMU_CAPS_CHARDEV = 22, /* Is the new -chardev arg available */
+ QEMU_CAPS_ENABLE_KVM = 23, /* -enable-kvm flag */
+ QEMU_CAPS_MONITOR_JSON = 24, /* JSON mode for monitor */
+ QEMU_CAPS_BALLOON = 25, /* -balloon available */
+ QEMU_CAPS_DEVICE = 26, /* Is the new -device arg available */
+ QEMU_CAPS_SDL = 27, /* Is the new -sdl arg available */
+ QEMU_CAPS_SMP_TOPOLOGY = 28, /* -smp has sockets/cores/threads */
+ QEMU_CAPS_NETDEV = 29, /* -netdev flag & netdev_add/remove */
+ QEMU_CAPS_RTC = 30, /* The -rtc flag for clock options */
+ QEMU_CAPS_VHOST_NET = 31, /* vhost-net support available */
+ QEMU_CAPS_RTC_TD_HACK = 32, /* -rtc-td-hack available */
+ QEMU_CAPS_NO_HPET = 33, /* -no-hpet flag is supported */
+ QEMU_CAPS_NO_KVM_PIT = 34, /* -no-kvm-pit-reinjection supported */
+ QEMU_CAPS_TDF = 35, /* -tdf flag (user-mode pit catchup) */
+ QEMU_CAPS_PCI_CONFIGFD = 36, /* pci-assign.configfd */
+ QEMU_CAPS_NODEFCONFIG = 37, /* -nodefconfig */
+ QEMU_CAPS_BOOT_MENU = 38, /* -boot menu=on support */
+ QEMU_CAPS_ENABLE_KQEMU = 39, /* -enable-kqemu flag */
+ QEMU_CAPS_FSDEV = 40, /* -fstype filesystem passthrough */
+ QEMU_CAPS_NESTING = 41, /* -enable-nesting (SVM/VMX) */
+ QEMU_CAPS_NAME_PROCESS = 42, /* Is -name process= available */
+ QEMU_CAPS_DRIVE_READONLY = 43, /* -drive readonly=on|off */
+ QEMU_CAPS_SMBIOS_TYPE = 44, /* Is -smbios type= available */
+ QEMU_CAPS_VGA_QXL = 45, /* The 'qxl' arg for '-vga' */
+ QEMU_CAPS_SPICE = 46, /* Is -spice avail */
+ QEMU_CAPS_VGA_NONE = 47, /* The 'none' arg for '-vga' */
+ QEMU_CAPS_MIGRATE_QEMU_FD = 48, /* -incoming fd:n */
+ QEMU_CAPS_BOOTINDEX = 49, /* -device bootindex property */
+ QEMU_CAPS_HDA_DUPLEX = 50, /* -device hda-duplex */
+ QEMU_CAPS_DRIVE_AIO = 51, /* -drive aio= supported */
+ QEMU_CAPS_PCI_MULTIBUS = 52, /* bus=pci.0 vs bus=pci */
+ QEMU_CAPS_PCI_BOOTINDEX = 53, /* pci-assign.bootindex */
+ QEMU_CAPS_CCID_EMULATED = 54, /* -device ccid-card-emulated */
+ QEMU_CAPS_CCID_PASSTHRU = 55, /* -device ccid-card-passthru */
+ QEMU_CAPS_CHARDEV_SPICEVMC = 56, /* newer -chardev spicevmc */
+ QEMU_CAPS_DEVICE_SPICEVMC = 57, /* older -device spicevmc*/
+ QEMU_CAPS_VIRTIO_TX_ALG = 58, /* -device virtio-net-pci,tx=string */
+ QEMU_CAPS_DEVICE_QXL_VGA = 59, /* primary qxl device named qxl-vga? */
+ QEMU_CAPS_PCI_MULTIFUNCTION = 60, /* -device multifunction=on|off */
+ QEMU_CAPS_VIRTIO_IOEVENTFD = 61, /* virtio-{net|blk}-pci.ioeventfd=on */
+ QEMU_CAPS_SGA = 62, /* Serial Graphics Adapter */
QEMU_CAPS_VIRTIO_BLK_EVENT_IDX = 63, /* virtio-blk-pci.event_idx */
QEMU_CAPS_VIRTIO_NET_EVENT_IDX = 64, /* virtio-net-pci.event_idx */
QEMU_CAPS_DRIVE_CACHE_DIRECTSYNC = 65, /* Is cache=directsync supported? */
- QEMU_CAPS_PIIX3_USB_UHCI = 66, /* -device piix3-usb-uhci */
- QEMU_CAPS_PIIX4_USB_UHCI = 67, /* -device piix4-usb-uhci */
- QEMU_CAPS_USB_EHCI = 68, /* -device usb-ehci */
- QEMU_CAPS_ICH9_USB_EHCI1 = 69, /* -device ich9-usb-ehci1 and companions */
+ QEMU_CAPS_PIIX3_USB_UHCI = 66, /* -device piix3-usb-uhci */
+ QEMU_CAPS_PIIX4_USB_UHCI = 67, /* -device piix4-usb-uhci */
+ QEMU_CAPS_USB_EHCI = 68, /* -device usb-ehci */
+ QEMU_CAPS_ICH9_USB_EHCI1 = 69, /* -device ich9-usb-ehci1 and friends */
QEMU_CAPS_VT82C686B_USB_UHCI = 70, /* -device vt82c686b-usb-uhci */
- QEMU_CAPS_PCI_OHCI = 71, /* -device pci-ohci */
- QEMU_CAPS_USB_REDIR = 72, /* -device usb-redir */
- QEMU_CAPS_USB_HUB = 73, /* -device usb-hub */
- QEMU_CAPS_NO_SHUTDOWN = 74, /* usable -no-shutdown */
+ QEMU_CAPS_PCI_OHCI = 71, /* -device pci-ohci */
+ QEMU_CAPS_USB_REDIR = 72, /* -device usb-redir */
+ QEMU_CAPS_USB_HUB = 73, /* -device usb-hub */
+ QEMU_CAPS_NO_SHUTDOWN = 74, /* usable -no-shutdown */
QEMU_CAPS_DRIVE_CACHE_UNSAFE = 75, /* Is cache=unsafe supported? */
QEMU_CAPS_PCI_ROMBAR = 76, /* -device rombar=0|1 */
- QEMU_CAPS_ICH9_AHCI = 77, /* -device ich9-ahci */
- QEMU_CAPS_NO_ACPI = 78, /* -no-acpi */
- QEMU_CAPS_FSDEV_READONLY =79, /* -fsdev readonly supported */
+ QEMU_CAPS_ICH9_AHCI = 77, /* -device ich9-ahci */
+ QEMU_CAPS_NO_ACPI = 78, /* -no-acpi */
+ QEMU_CAPS_FSDEV_READONLY = 79, /* -fsdev readonly supported */
QEMU_CAPS_VIRTIO_BLK_SCSI = 80, /* virtio-blk-pci.scsi */
- QEMU_CAPS_VIRTIO_BLK_SG_IO = 81, /* support for SG_IO commands, reportedly added in 0.11 */
+ QEMU_CAPS_VIRTIO_BLK_SG_IO = 81, /* SG_IO commands, since 0.11 */
QEMU_CAPS_DRIVE_COPY_ON_READ = 82, /* -drive copy-on-read */
- QEMU_CAPS_CPU_HOST = 83, /* support for -cpu host */
+ QEMU_CAPS_CPU_HOST = 83, /* support for -cpu host */
QEMU_CAPS_FSDEV_WRITEOUT = 84, /* -fsdev writeout supported */
- QEMU_CAPS_DRIVE_IOTUNE = 85, /* -drive bps= and friends ({b,io}ps{_rd,_wr,}) */
+ QEMU_CAPS_DRIVE_IOTUNE = 85, /* -drive bps= and friends */
QEMU_CAPS_LAST, /* this must always be the last item */
};
--
1.7.7.5
13 years, 3 months