e10da2
From ea3f5c68093429c6ad507b45689cdf209c2c257b Mon Sep 17 00:00:00 2001
e10da2
From: Eric Blake <eblake@redhat.com>
e10da2
Date: Fri, 24 Sep 2010 16:48:45 -0600
e10da2
Subject: [PATCH 02/15] vcpu: add new public API
e10da2
e10da2
API agreed on in
e10da2
https://www.redhat.com/archives/libvir-list/2010-September/msg00456.html,
e10da2
but modified for enum names to be consistent with virDomainDeviceModifyFlags.
e10da2
e10da2
* include/libvirt/libvirt.h.in (virDomainVcpuFlags)
e10da2
(virDomainSetVcpusFlags, virDomainGetVcpusFlags): New
e10da2
declarations.
e10da2
* src/libvirt_public.syms: Export new symbols.
e10da2
---
e10da2
 include/libvirt/libvirt.h.in |   15 +++++++++++++++
e10da2
 src/libvirt_public.syms      |    2 ++
e10da2
 2 files changed, 17 insertions(+), 0 deletions(-)
e10da2
e10da2
diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
e10da2
index 2eba61e..d0cc4c0 100644
e10da2
--- a/include/libvirt/libvirt.h.in
e10da2
+++ b/include/libvirt/libvirt.h.in
e10da2
@@ -915,8 +915,23 @@ struct _virVcpuInfo {
e10da2
 };
e10da2
 typedef virVcpuInfo *virVcpuInfoPtr;
e10da2
e10da2
+/* Flags for controlling virtual CPU hot-plugging.  */
e10da2
+typedef enum {
e10da2
+    /* Must choose at least one of these two bits; SetVcpus can choose both */
e10da2
+    VIR_DOMAIN_VCPU_LIVE    = (1 << 0), /* Affect active domain */
e10da2
+    VIR_DOMAIN_VCPU_CONFIG  = (1 << 1), /* Affect next boot */
e10da2
+
e10da2
+    /* Additional flags to be bit-wise OR'd in */
e10da2
+    VIR_DOMAIN_VCPU_MAXIMUM = (1 << 2), /* Max rather than current count */
e10da2
+} virDomainVcpuFlags;
e10da2
+
e10da2
 int                     virDomainSetVcpus       (virDomainPtr domain,
e10da2
                                                  unsigned int nvcpus);
e10da2
+int                     virDomainSetVcpusFlags  (virDomainPtr domain,
e10da2
+                                                 unsigned int nvcpus,
e10da2
+                                                 unsigned int flags);
e10da2
+int                     virDomainGetVcpusFlags  (virDomainPtr domain,
e10da2
+                                                 unsigned int flags);
e10da2
e10da2
 int                     virDomainPinVcpu        (virDomainPtr domain,
e10da2
                                                  unsigned int vcpu,
e10da2
diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms
e10da2
index fceb516..a8091b1 100644
e10da2
--- a/src/libvirt_public.syms
e10da2
+++ b/src/libvirt_public.syms
e10da2
@@ -409,6 +409,8 @@ LIBVIRT_0.8.5 {
e10da2
     global:
e10da2
         virDomainSetMemoryParameters;
e10da2
         virDomainGetMemoryParameters;
e10da2
+        virDomainGetVcpusFlags;
e10da2
+        virDomainSetVcpusFlags;
e10da2
 } LIBVIRT_0.8.2;
e10da2
e10da2
 # .... define new API here using predicted next version number ....
e10da2
-- 
e10da2
1.7.2.3
e10da2