[RFCv3 10/25] util: Add virUUID type and parse/format functions

Shi Lei shi_lei at massclouds.com
Thu Apr 22 07:25:18 UTC 2021


Signed-off-by: Shi Lei <shi_lei at massclouds.com>
---
 src/util/viruuid.c | 31 +++++++++++++++++++++++++++++++
 src/util/viruuid.h | 18 ++++++++++++++++++
 2 files changed, 49 insertions(+)

diff --git a/src/util/viruuid.c b/src/util/viruuid.c
index 558fbb9c..c6e6272f 100644
--- a/src/util/viruuid.c
+++ b/src/util/viruuid.c
@@ -134,6 +134,18 @@ virUUIDParse(const char *uuidstr, unsigned char *uuid)
     return 0;
 }
 
+
+int
+virUUIDParseXML(const char *uuidstr,
+                virUUID *puuid,
+                const char *instname G_GNUC_UNUSED,
+                void *parent G_GNUC_UNUSED,
+                void *opaque G_GNUC_UNUSED)
+{
+    return virUUIDParse(uuidstr, *puuid);
+}
+
+
 /**
  * virUUIDFormat:
  * @uuid: array of VIR_UUID_BUFLEN bytes to store the raw UUID
@@ -159,6 +171,20 @@ virUUIDFormat(const unsigned char *uuid, char *uuidstr)
 }
 
 
+int
+virUUIDFormatBuf(virBuffer *buf,
+                 const char *fmt,
+                 const virUUID *puuid,
+                 const void *parent G_GNUC_UNUSED,
+                 void *opaque G_GNUC_UNUSED)
+{
+    char uuidstr[VIR_UUID_STRING_BUFLEN];
+    virUUIDFormat(*puuid, uuidstr);
+    virBufferAsprintf(buf, fmt, uuidstr);
+
+    return 0;
+}
+
 
 /**
  * virUUIDIsValid
@@ -263,3 +289,8 @@ int virGetHostUUID(unsigned char *uuid)
 
     return ret;
 }
+
+void virUUIDClear(virUUID *puuid G_GNUC_UNUSED)
+{
+    memset(*puuid, 0, VIR_UUID_BUFLEN);
+}
diff --git a/src/util/viruuid.h b/src/util/viruuid.h
index b403b190..36766356 100644
--- a/src/util/viruuid.h
+++ b/src/util/viruuid.h
@@ -21,6 +21,7 @@
 #pragma once
 
 #include "internal.h"
+#include "virbuffer.h"
 
 
 /**
@@ -39,6 +40,7 @@
         } \
     } while (0)
 
+typedef unsigned char virUUID[VIR_UUID_BUFLEN];
 
 int virSetHostUUIDStr(const char *host_uuid);
 int virGetHostUUID(unsigned char *host_uuid) ATTRIBUTE_NONNULL(1) G_GNUC_NO_INLINE;
@@ -51,5 +53,21 @@ int virUUIDParse(const char *uuidstr,
                  unsigned char *uuid)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) G_GNUC_WARN_UNUSED_RESULT;
 
+int
+virUUIDParseXML(const char *uuidstr,
+                virUUID *puuid,
+                const char *instname,
+                void *parent,
+                void *opaque);
+
 const char *virUUIDFormat(const unsigned char *uuid,
                           char *uuidstr) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
+
+int
+virUUIDFormatBuf(virBuffer *buf,
+                 const char *fmt,
+                 const virUUID *puuid,
+                 const void *parent,
+                 void *opaque);
+
+void virUUIDClear(virUUID *puuid);
-- 
2.25.1





More information about the libvir-list mailing list