X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fcompat%2Fuuid.h;h=a283ea42af5ca41a8456eefe52d123ee5810c98f;hb=642e96c6ce32d7a972836d80346bb7fbcc32b99c;hp=5bf8beb406f0b018dd40bb25959c7b8018f610c6;hpb=ffe600149a7608221985751e1bf293234bf2545c;p=lttng-tools.git diff --git a/src/common/compat/uuid.h b/src/common/compat/uuid.h index 5bf8beb40..a283ea42a 100644 --- a/src/common/compat/uuid.h +++ b/src/common/compat/uuid.h @@ -23,17 +23,25 @@ #ifndef LTTNG_UUID_H #define LTTNG_UUID_H -#include +#include +#include + /* * 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_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; @@ -43,8 +51,11 @@ int lttng_uuid_generate(unsigned char *uuid_out) #include #include +/* + * 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; @@ -59,4 +70,22 @@ 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); + +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 */