From: Corey Minyard <cminy...@mvista.com>

Cc: Christoph Hellwig <h...@lst.de>
Cc: Andy Shevchenko <andriy.shevche...@linux.intel.com>
Signed-off-by: Corey Minyard <cminy...@mvista.com>
---
 include/linux/uuid.h |  7 +++++++
 lib/uuid.c           | 28 ++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+)

diff --git a/include/linux/uuid.h b/include/linux/uuid.h
index 33b0bdb..ab8ce39 100644
--- a/include/linux/uuid.h
+++ b/include/linux/uuid.h
@@ -83,6 +83,13 @@ extern const u8 uuid_index[16];
 int guid_parse(const char *uuid, guid_t *u);
 int uuid_parse(const char *uuid, uuid_t *u);
 
+/*
+ * Returns the number of bytes put into the string, not including the
+ * terminating null byte.
+ */
+int guid_to_str(char *str, unsigned int len, const guid_t *guid);
+int uuid_to_str(char *str, unsigned int len, const uuid_t *uuid);
+
 /* backwards compatibility, don't use in new code */
 #define uuid_le_gen(u)         guid_gen(u)
 #define uuid_le_to_bin(guid, u)        guid_parse(guid, u)
diff --git a/lib/uuid.c b/lib/uuid.c
index 680b9fb..0ea6dd9 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -129,3 +129,31 @@ int uuid_parse(const char *uuid, uuid_t *u)
        return __uuid_parse(uuid, u->b, uuid_index);
 }
 EXPORT_SYMBOL(uuid_parse);
+
+static int __uuid_to_str(char *str, unsigned int len, const __u8 b[16],
+                        const u8 ei[16])
+{
+       unsigned int rv;
+
+       rv = snprintf(str, len,
+                     
"%2.2x%2.2x%2.2x%2.2x-%2.2x%2.2x-%2.2x%2.2x-%2.2x%2.2x-%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x",
+                       b[ei[0]], b[ei[1]], b[ei[2]], b[ei[3]],
+                       b[ei[4]], b[ei[5]], b[ei[6]], b[ei[7]],
+                       b[ei[8]], b[ei[9]], b[ei[10]], b[ei[11]],
+                       b[ei[12]], b[ei[13]], b[ei[14]], b[ei[15]]);
+       if (rv >= len)
+               rv = len - 1;
+       return rv;
+}
+
+int guid_to_str(char *str, unsigned int len, const guid_t *guid)
+{
+       return __uuid_to_str(str, len, guid->b, guid_index);
+}
+EXPORT_SYMBOL(guid_to_str);
+
+int uuid_to_str(char *str, unsigned int len, const uuid_t *uuid)
+{
+       return __uuid_to_str(str, len, uuid->b, uuid_index);
+}
+EXPORT_SYMBOL(uuid_to_str);
-- 
2.7.4


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openipmi-developer mailing list
Openipmi-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer

Reply via email to