Generate a UUID on lttng-sessiond launch
[lttng-tools.git] / src / common / compat / uuid.h
index 4a71f16c8af1cbb6a5d3d8dd46e470f5f861329d..0da0b80db72c47be979167687d3309459301df17 100644 (file)
 #ifndef LTTNG_UUID_H
 #define LTTNG_UUID_H
 
+#include <common/macros.h>
+
 /*
  * Includes final \0.
  */
 #define UUID_STR_LEN           37
 #define UUID_LEN               16
 
+typedef unsigned char lttng_uuid[UUID_LEN];
+
 #ifdef LTTNG_HAVE_LIBUUID
 #include <uuid/uuid.h>
 
@@ -36,7 +40,7 @@
  * uuid_out is of len UUID_LEN.
  */
 static inline
-int lttng_uuid_generate(unsigned char *uuid_out)
+int lttng_uuid_generate(lttng_uuid uuid_out)
 {
        uuid_generate(uuid_out);
        return 0;
@@ -50,7 +54,7 @@ int lttng_uuid_generate(unsigned char *uuid_out)
  * uuid_out is of len UUID_LEN.
  */
 static inline
-int lttng_uuid_generate(unsigned char *uuid_out)
+int lttng_uuid_generate(lttng_uuid uuid_out)
 {
        uint32_t status;
 
@@ -65,4 +69,13 @@ int lttng_uuid_generate(unsigned char *uuid_out)
 #error "LTTng-Tools needs to have a UUID generator configured."
 #endif
 
+/*
+ * Convert a UUID to a human-readable, NULL-terminated, string of the form
+ * xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
+ *
+ * Assumes uuid_str is at least UUID_STR_LEN byte long.
+ */
+LTTNG_HIDDEN
+void lttng_uuid_to_str(const lttng_uuid uuid, char *uuid_str);
+
 #endif /* LTTNG_UUID_H */
This page took 0.024765 seconds and 4 git commands to generate.