[libvirt PATCH 06/11] nodedev: driver: Introduce internal mdevctl commands enum

Jonathon Jongsma jjongsma at redhat.com
Fri Apr 9 21:33:01 UTC 2021


From: Erik Skultety <eskultet at redhat.com>

This is not a 1:1 mapping to mdevctl because mdevctl doesn't support a
'create' command. It uses 'start' for both starting a defined device as
well as creating a transient one. To make our code more readable in
that regard and not second-guess what does a specific "start" instance
mean, use "create" internally instead only to translate it to "start"
just before executing mdevctl.

Signed-off-by: Erik Skultety <eskultet at redhat.com>
Signed-off-by: Jonathon Jongsma <jjongsma at redhat.com>
---
 src/node_device/node_device_driver.c |  7 +++++++
 src/node_device/node_device_driver.h | 19 +++++++++++++++++++
 tests/nodedevmdevctltest.c           | 12 ++----------
 3 files changed, 28 insertions(+), 10 deletions(-)

diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c
index e9147ec0f9..c25558cf05 100644
--- a/src/node_device/node_device_driver.c
+++ b/src/node_device/node_device_driver.c
@@ -47,6 +47,13 @@
 
 virNodeDeviceDriverStatePtr driver;
 
+
+VIR_ENUM_IMPL(virMdevctlCommand,
+              MDEVCTL_CMD_LAST,
+              "start", "stop", "define", "undefine", "create"
+);
+
+
 virDrvOpenStatus
 nodeConnectOpen(virConnectPtr conn,
                 virConnectAuthPtr auth G_GNUC_UNUSED,
diff --git a/src/node_device/node_device_driver.h b/src/node_device/node_device_driver.h
index 0e3f6dbf28..aaeed588e8 100644
--- a/src/node_device/node_device_driver.h
+++ b/src/node_device/node_device_driver.h
@@ -33,6 +33,25 @@ int
 udevNodeRegister(void);
 #endif
 
+
+typedef enum {
+    MDEVCTL_CMD_START,
+    MDEVCTL_CMD_STOP,
+    MDEVCTL_CMD_DEFINE,
+    MDEVCTL_CMD_UNDEFINE,
+
+    /* mdevctl actually doesn't have a 'create' command, it will be replaced
+     * with 'start' eventually in nodeDeviceGetMdevctlCommand, but this clear
+     * separation makes our code more readable in terms of knowing when we're
+     * starting a defined device and when we're creating a transient one */
+    MDEVCTL_CMD_CREATE,
+
+    MDEVCTL_CMD_LAST,
+} virMdevctlCommand;
+
+VIR_ENUM_DECL(virMdevctlCommand);
+
+
 void
 nodeDeviceLock(void);
 
diff --git a/tests/nodedevmdevctltest.c b/tests/nodedevmdevctltest.c
index 427299e171..8a37dd2e80 100644
--- a/tests/nodedevmdevctltest.c
+++ b/tests/nodedevmdevctltest.c
@@ -10,19 +10,11 @@
 
 #define VIR_FROM_THIS VIR_FROM_NODEDEV
 
-typedef enum {
-    MDEVCTL_CMD_START,
-    MDEVCTL_CMD_STOP,
-    MDEVCTL_CMD_DEFINE,
-    MDEVCTL_CMD_UNDEFINE,
-    MDEVCTL_CMD_CREATE,
-} MdevctlCmd;
-
 struct startTestInfo {
     const char *virt_type;
     int create;
     const char *filename;
-    MdevctlCmd command;
+    virMdevctlCommand command;
 };
 
 /* capture stdin passed to command */
@@ -141,7 +133,7 @@ testMdevctlCreateOrDefineHelper(const void *data)
 typedef virCommand* (*GetStopUndefineCmdFunc)(const char *uuid, char **errbuf);
 struct UuidCommandTestInfo {
     const char *filename;
-    MdevctlCmd command;
+    virMdevctlCommand command;
 };
 
 static int
-- 
2.26.3




More information about the libvir-list mailing list