This implements a new field in the virStateDrvier struct. In order to
prevent possible compilation issues, this patch also implements the new
field in all of the existing drivers. Additionally, a change was needed
to check-driverimpls.pl to prevent a make check problem. Other than
those two items, all other changes are a single line addition to the
driver source files to define this field.
Signed-off-by: Adam Walters <adam(a)pandorasboxen.com>
---
src/check-driverimpls.pl | 1 +
src/driver.h | 7 +++++++
src/interface/interface_backend_netcf.c | 1 +
src/libxl/libxl_driver.c | 1 +
src/lxc/lxc_driver.c | 1 +
src/network/bridge_driver.c | 1 +
src/node_device/node_device_hal.c | 1 +
src/node_device/node_device_udev.c | 1 +
src/nwfilter/nwfilter_driver.c | 1 +
src/qemu/qemu_driver.c | 1 +
src/remote/remote_driver.c | 1 +
src/secret/secret_driver.c | 1 +
src/storage/storage_driver.c | 1 +
src/uml/uml_driver.c | 1 +
src/xen/xen_driver.c | 1 +
15 files changed, 21 insertions(+)
diff --git a/src/check-driverimpls.pl b/src/check-driverimpls.pl
index 17e2b48..f726403 100755
--- a/src/check-driverimpls.pl
+++ b/src/check-driverimpls.pl
@@ -37,6 +37,7 @@ while (<>) {
next if $api eq "no";
next if $api eq "name";
+ next if $api eq "stateDrvType";
my $suffix = $impl;
my $prefix = $impl;
diff --git a/src/driver.h b/src/driver.h
index 5f4cd8d..943e1b1 100644
--- a/src/driver.h
+++ b/src/driver.h
@@ -1834,6 +1834,12 @@ typedef int
typedef int
(*virDrvStateStop)(void);
+typedef enum {
+ VIR_DRV_STATE_DRV_LIBVIRT = 1,
+ VIR_DRV_STATE_DRV_HYPERVISOR = 2,
+ VIR_DRV_STATE_DRV_LAST,
+} virDrvStateDrvType;
+
typedef struct _virStateDriver virStateDriver;
typedef virStateDriver *virStateDriverPtr;
@@ -1844,6 +1850,7 @@ struct _virStateDriver {
virDrvStateCleanup stateCleanup;
virDrvStateReload stateReload;
virDrvStateStop stateStop;
+ virDrvStateDrvType stateDrvType;
};
# endif
diff --git a/src/interface/interface_backend_netcf.c
b/src/interface/interface_backend_netcf.c
index c525ca9..7c80fbe 100644
--- a/src/interface/interface_backend_netcf.c
+++ b/src/interface/interface_backend_netcf.c
@@ -1186,6 +1186,7 @@ static virStateDriver interfaceStateDriver = {
.stateInitialize = netcfStateInitialize,
.stateCleanup = netcfStateCleanup,
.stateReload = netcfStateReload,
+ .stateDrvType = VIR_DRV_STATE_DRV_LIBVIRT,
};
int netcfIfaceRegister(void) {
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index fc0efa2..826fd81 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -4420,6 +4420,7 @@ static virStateDriver libxlStateDriver = {
.stateAutoStart = libxlStateAutoStart,
.stateCleanup = libxlStateCleanup,
.stateReload = libxlStateReload,
+ .stateDrvType = VIR_DRV_STATE_DRV_HYPERVISOR,
};
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 982f3fc..6fb3cf8 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -5440,6 +5440,7 @@ static virStateDriver lxcStateDriver = {
.stateAutoStart = lxcStateAutoStart,
.stateCleanup = lxcStateCleanup,
.stateReload = lxcStateReload,
+ .stateDrvType = VIR_DRV_STATE_DRV_HYPERVISOR,
};
int lxcRegister(void)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 0b43a67..e437fde 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -3134,6 +3134,7 @@ static virStateDriver networkStateDriver = {
.stateAutoStart = networkStateAutoStart,
.stateCleanup = networkStateCleanup,
.stateReload = networkStateReload,
+ .stateDrvType = VIR_DRV_STATE_DRV_LIBVIRT,
};
int networkRegister(void) {
diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_device_hal.c
index fafd520..15cdecb 100644
--- a/src/node_device/node_device_hal.c
+++ b/src/node_device/node_device_hal.c
@@ -827,6 +827,7 @@ static virStateDriver halStateDriver = {
.stateInitialize = nodeStateInitialize, /* 0.5.0 */
.stateCleanup = nodeStateCleanup, /* 0.5.0 */
.stateReload = nodeStateReload, /* 0.5.0 */
+ .stateDrvType = VIR_DRV_STATE_DRV_LIBVIRT,
};
int
diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
index 5d49968..91f8e9d 100644
--- a/src/node_device/node_device_udev.c
+++ b/src/node_device/node_device_udev.c
@@ -1816,6 +1816,7 @@ static virStateDriver udevStateDriver = {
.stateInitialize = nodeStateInitialize, /* 0.7.3 */
.stateCleanup = nodeStateCleanup, /* 0.7.3 */
.stateReload = nodeStateReload, /* 0.7.3 */
+ .stateDrvType = VIR_DRV_STATE_DRV_LIBVIRT,
};
int udevNodeRegister(void)
diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c
index d21dd82..f29e723 100644
--- a/src/nwfilter/nwfilter_driver.c
+++ b/src/nwfilter/nwfilter_driver.c
@@ -702,6 +702,7 @@ static virStateDriver stateDriver = {
.stateInitialize = nwfilterStateInitialize,
.stateCleanup = nwfilterStateCleanup,
.stateReload = nwfilterStateReload,
+ .stateDrvType = VIR_DRV_STATE_DRV_LIBVIRT,
};
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 6e21267..899ddd8 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -16621,6 +16621,7 @@ static virStateDriver qemuStateDriver = {
.stateCleanup = qemuStateCleanup,
.stateReload = qemuStateReload,
.stateStop = qemuStateStop,
+ .stateDrvType = VIR_DRV_STATE_DRV_HYPERVISOR,
};
int qemuRegister(void) {
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index ca86e3c..c032529 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -7300,6 +7300,7 @@ static virNWFilterDriver nwfilter_driver = {
static virStateDriver state_driver = {
.name = "Remote",
.stateInitialize = remoteStateInitialize,
+ .stateDrvType = VIR_DRV_STATE_DRV_LIBVIRT,
};
#endif
diff --git a/src/secret/secret_driver.c b/src/secret/secret_driver.c
index 9f7f946..f3aea8f 100644
--- a/src/secret/secret_driver.c
+++ b/src/secret/secret_driver.c
@@ -1189,6 +1189,7 @@ static virStateDriver stateDriver = {
.stateInitialize = secretStateInitialize,
.stateCleanup = secretStateCleanup,
.stateReload = secretStateReload,
+ .stateDrvType = VIR_DRV_STATE_DRV_LIBVIRT,
};
int
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index c83aa8a..d753e34 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -2640,6 +2640,7 @@ static virStateDriver stateDriver = {
.stateAutoStart = storageStateAutoStart,
.stateCleanup = storageStateCleanup,
.stateReload = storageStateReload,
+ .stateDrvType = VIR_DRV_STATE_DRV_LIBVIRT,
};
int storageRegister(void)
diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c
index 89afefe..82d207a 100644
--- a/src/uml/uml_driver.c
+++ b/src/uml/uml_driver.c
@@ -2904,6 +2904,7 @@ static virStateDriver umlStateDriver = {
.stateAutoStart = umlStateAutoStart,
.stateCleanup = umlStateCleanup,
.stateReload = umlStateReload,
+ .stateDrvType = VIR_DRV_STATE_DRV_HYPERVISOR,
};
int umlRegister(void) {
diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c
index c45d980..3e5d860 100644
--- a/src/xen/xen_driver.c
+++ b/src/xen/xen_driver.c
@@ -276,6 +276,7 @@ static virStateDriver state_driver = {
.name = "Xen",
.stateInitialize = xenUnifiedStateInitialize,
.stateCleanup = xenUnifiedStateCleanup,
+ .stateDrvType = VIR_DRV_STATE_DRV_HYPERVISOR,
};
/*----- Dispatch functions. -----*/
--
1.8.5.2