AC_CHECK_LIB([uuid], [uuid_generate],
[
AC_DEFINE_UNQUOTED([LTTNG_UST_HAVE_LIBUUID], 1, [Has libuuid support.])
- have_libuuid=yes
],
[
# libuuid not found, check for uuid_create in libc.
AC_CHECK_LIB([c], [uuid_create],
[
AC_DEFINE_UNQUOTED([LTTNG_UST_HAVE_LIBC_UUID], 1, [Has libc uuid support.])
- have_libc_uuid=yes
],
[
AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Use [LDFLAGS]=-Ldir to specify its location.])
])
]
)
-AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBUUID], [test "x$have_libuuid" = "xyes"])
-AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBC_UUID], [test "x$have_libc_uuid" = "xyes"])
# Checks for header files.
#AC_CHECK_HEADERS([fcntl.h stdint.h stdlib.h string.h sys/socket.h sys/time.h unistd.h])
#include <urcu/list.h>
#include <urcu/hlist.h>
+#include <uuid/uuid.h>
#include <stdint.h>
#include <lttng/ust-abi.h>
#include <lttng/ust-tracer.h>
#include <lttng/ust-endian.h>
#include <float.h>
-#define LTTNG_UST_UUID_LEN 16
-
struct ltt_channel;
struct ltt_session;
struct lttng_ust_lib_ring_buffer_ctx;
/* Channel ID, available for consumer too */
unsigned int id;
/* Copy of session UUID for consumer (availability through shm) */
- unsigned char uuid[LTTNG_UST_UUID_LEN]; /* Trace session unique ID */
+ uuid_t uuid; /* Trace session unique ID */
};
struct ltt_session {
struct cds_list_head wildcards; /* Wildcard list head */
struct cds_list_head list; /* Session list */
unsigned int free_chan_id; /* Next chan ID to allocate */
- unsigned char uuid[LTTNG_UST_UUID_LEN]; /* Trace session unique ID */
+ uuid_t uuid; /* Trace session unique ID */
unsigned int metadata_dumped:1;
};
compat.h \
wait.h \
jhash.h \
- error.h \
- uuid.h
+ error.h
liblttng_ust_support_la_SOURCES = \
ltt-tracer.h \
liblttng_ust_la_LIBADD = \
-lpthread \
-lrt \
+ -luuid \
-llttng-ust-tracepoint \
$(top_builddir)/snprintf/libustsnprintf.la \
$(top_builddir)/liblttng-ust-comm/liblttng-ust-comm.la \
liblttng-ust-runtime.la liblttng-ust-support.la
-if LTTNG_UST_BUILD_WITH_LIBUUID
-liblttng_ust_la_LIBADD += -luuid
-endif
-if LTTNG_UST_BUILD_WITH_LIBC_UUID
-liblttng_ust_la_LIBADD += -lc
-endif
-
liblttng_ust_la_CFLAGS = -DUST_COMPONENT="liblttng_ust" -fno-strict-aliasing
#include <stdint.h>
#include <stddef.h>
#include <stdio.h>
-#include "uuid.h"
+
+/*
+ * Includes final \0.
+ */
+#define CLOCK_UUID_LEN 37
/* TRACE CLOCK */
if (!fp) {
return -ENOENT;
}
- len = fread(uuid, 1, LTTNG_UST_UUID_STR_LEN - 1, fp);
- if (len < LTTNG_UST_UUID_STR_LEN - 1) {
+ len = fread(uuid, 1, CLOCK_UUID_LEN - 1, fp);
+ if (len < CLOCK_UUID_LEN - 1) {
ret = -EINVAL;
goto end;
}
- uuid[LTTNG_UST_UUID_STR_LEN - 1] = '\0';
+ uuid[CLOCK_UUID_LEN - 1] = '\0';
end:
fclose(fp);
return ret;
#include <urcu/list.h>
#include <urcu/hlist.h>
#include <pthread.h>
+#include <uuid/uuid.h>
#include <errno.h>
#include <sys/shm.h>
#include <sys/ipc.h>
#include <helper.h>
#include "error.h"
#include "compat.h"
-#include "uuid.h"
#include "tracepoint-internal.h"
#include "ltt-tracer.h"
struct ltt_session *ltt_session_create(void)
{
struct ltt_session *session;
- int ret;
session = zmalloc(sizeof(struct ltt_session));
if (!session)
CDS_INIT_LIST_HEAD(&session->chan);
CDS_INIT_LIST_HEAD(&session->events);
CDS_INIT_LIST_HEAD(&session->wildcards);
- ret = lttng_ust_uuid_generate(session->uuid);
- if (ret != 0) {
- session->uuid[0] = '\0';
- }
+ uuid_generate(session->uuid);
cds_list_add(&session->list, &sessions);
return session;
}
int _ltt_session_metadata_statedump(struct ltt_session *session)
{
unsigned char *uuid_c = session->uuid;
- char uuid_s[LTTNG_UST_UUID_STR_LEN],
- clock_uuid_s[LTTNG_UST_UUID_STR_LEN];
+ char uuid_s[37], clock_uuid_s[CLOCK_UUID_LEN];
struct ltt_channel *chan;
struct ltt_event *event;
int ret = 0;
#include <lttng/ust-events.h>
#include "lttng/bitfield.h"
#include "clock.h"
-#include "uuid.h"
#include "ltt-tracer.h"
#include "../libringbuffer/frontend_types.h"
* Trace magic number.
* contains endianness information.
*/
- uint8_t uuid[LTTNG_UST_UUID_LEN];
+ uint8_t uuid[16];
uint32_t stream_id;
struct {
struct metadata_packet_header {
uint32_t magic; /* 0x75D11D57 */
- uint8_t uuid[LTTNG_UST_UUID_LEN]; /* Unique Universal Identifier */
+ uint8_t uuid[16]; /* Unique Universal Identifier */
uint32_t checksum; /* 0 if unused */
uint32_t content_size; /* in bits */
uint32_t packet_size; /* in bits */
+++ /dev/null
-#ifndef _LTTNG_UST_UUID_H
-#define _LTTNG_UST_UUID_H
-
-/*
- * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-#include <config.h>
-#include <lttng/ust-events.h> /* For LTTNG_UST_UUID_LEN */
-/*
- * Includes final \0.
- */
-#define LTTNG_UST_UUID_STR_LEN 37
-
-#include <uuid/uuid.h>
-
-#ifdef LTTNG_UST_HAVE_LIBUUID
-static inline
-int lttng_ust_uuid_generate(unsigned char *uuid_out)
-{
- uuid_generate(uuid_out);
- return 0;
-}
-
-#elif defined(LTTNG_UST_HAVE_LIBC_UUID)
-#include <uuid.h>
-#include <stdint.h>
-
-static inline
-int lttng_ust_uuid_generate(unsigned char *uuid_out)
-{
- uint32_t status;
-
- uuid_create(uuid_out, &status);
- if (status == uuid_s_ok)
- return 0;
- else
- return -1;
-}
-
-#else
-#error "LTTng-UST needs to have a UUID generator configured."
-#endif
-
-#endif /* _LTTNG_UST_UUID_H */