#ifndef LTTNG_UUID_H
#define LTTNG_UUID_H
-#include <config.h>
+#include <common/macros.h>
+#include <stdbool.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>
* 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;
* 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;
#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);
+
+LTTNG_HIDDEN
+bool lttng_uuid_is_equal(const lttng_uuid a, const lttng_uuid b);
+
+LTTNG_HIDDEN
+bool lttng_uuid_is_nil(const lttng_uuid uuid);
+
+LTTNG_HIDDEN
+void lttng_uuid_copy(lttng_uuid dst, const lttng_uuid src);
+
#endif /* LTTNG_UUID_H */