Revert "Add get proc name wrapper for FreeBSD"
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 22 Feb 2012 22:10:32 +0000 (17:10 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 22 Feb 2012 22:10:32 +0000 (17:10 -0500)
This reverts commit 48621a4272bdeb1e8fced511ca6bf3c4c2240c15.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
liblttng-ust/compat.h
liblttng-ust/ltt-events.c
liblttng-ust/lttng-context-procname.c
liblttng-ust/lttng-ust-comm.c

index 05b85a930615516da7175af84661ce144f7d5127..8ee4470a0b381289986e48742274fa287d835e1a 100644 (file)
  * modified is included with the above copyright notice.
  */
 
-/*
- * sched_getcpu.
- */
-#ifdef __linux__
+#include <sys/syscall.h>
 
 #ifdef __UCLIBC__
-#include <sys/syscall.h>
 #define __getcpu(cpu, node, cache)     syscall(__NR_getcpu, cpu, node, cache)
 static inline
 int sched_getcpu(void)
@@ -31,50 +27,4 @@ int sched_getcpu(void)
        return (s == -1) ? s : c;
 }
 #endif /* __UCLIBC__ */
-
-#else
-#error "Please add support for your OS into liblttng-ust/compat.h."
-#endif
-
-/*
- * lttng_ust_getprocname.
- */
-#ifdef __linux__
-
-#include <sys/prctl.h>
-
-#define LTTNG_UST_PROCNAME_LEN 17
-
-static inline
-void lttng_ust_getprocname(char *name)
-{
-       (void) prctl(PR_GET_NAME, (unsigned long) name, 0, 0, 0);
-}
-
-#elif defined(__FreeBSD__)
-#include <stdlib.h>
-#include <string.h>
-
-/*
- * Limit imposed by Linux UST-sessiond ABI.
- */
-#define LTTNG_UST_PROCNAME_LEN 17
-
-/*
- * Acts like linux prctl, the string is not necessarily 0-terminated if
- * 16-byte long.
- */
-static inline
-void lttng_ust_getprocname(char *name)
-{
-       const char *bsd_name;
-
-       bsd_name = getprogname();
-       if (!bsd_name)
-               name[0] = '\0';
-       memcpy(name, bsd_name, LTTNG_UST_PROCNAME_LEN - 1);
-}
-
-#endif
-
 #endif /* _UST_COMPAT_H */
index c9d35dde199e11929e6307cfe3eb31c1dc272406..e42b6de64314c914a1c67908f128e628bd2b1ad1 100644 (file)
@@ -21,6 +21,7 @@
 #include <stddef.h>
 #include <inttypes.h>
 #include <time.h>
+#include <sys/prctl.h>
 #include <lttng/ust-endian.h>
 #include "clock.h"
 
@@ -35,7 +36,6 @@
 #include <usterr-signal-safe.h>
 #include <helper.h>
 #include "error.h"
-#include "compat.h"
 
 #include "tracepoint-internal.h"
 #include "ltt-tracer.h"
@@ -44,6 +44,8 @@
 #include "../libringbuffer/shm.h"
 #include "jhash.h"
 
+#define PROCNAME_LEN 17
+
 /*
  * The sessions mutex is the centralized mutex across UST tracing
  * control and probe registration. All operations within this file are
@@ -1091,7 +1093,7 @@ int _ltt_session_metadata_statedump(struct ltt_session *session)
        struct ltt_channel *chan;
        struct ltt_event *event;
        int ret = 0;
-       char procname[LTTNG_UST_PROCNAME_LEN] = "";
+       char procname[PROCNAME_LEN] = "";
 
        if (!CMM_ACCESS_ONCE(session->active))
                return 0;
@@ -1145,8 +1147,8 @@ int _ltt_session_metadata_statedump(struct ltt_session *session)
                goto end;
 
        /* ignore error, just use empty string if error. */
-       lttng_ust_getprocname(procname);
-       procname[LTTNG_UST_PROCNAME_LEN - 1] = '\0';
+       (void) prctl(PR_GET_NAME, (unsigned long) procname, 0, 0, 0);
+       procname[PROCNAME_LEN - 1] = '\0';
        ret = lttng_metadata_printf(session,
                "env {\n"
                "       vpid = %d;\n"
index b737084bf69aae013cee43c11e7ffa3484067ce5..b9bae82eba91be79fdd2ca1749fe2e5f2066b570 100644 (file)
@@ -7,11 +7,13 @@
  * Dual LGPL v2.1/GPL v2 license.
  */
 
+#include <sys/prctl.h>
 #include <lttng/ust-events.h>
 #include <lttng/ust-tracer.h>
 #include <lttng/ringbuffer-config.h>
 #include <assert.h>
-#include "compat.h"
+
+#define PROCNAME_LEN   17      /* includes \0 */
 
 /*
  * We cache the result to ensure we don't trigger a system call for
@@ -24,9 +26,12 @@ static char cached_procname[17];
 static inline
 char *wrapper_getprocname(void)
 {
+       int ret;
+
        if (caa_unlikely(!cached_procname[0])) {
-               lttng_ust_getprocname(cached_procname);
-               cached_procname[LTTNG_UST_PROCNAME_LEN - 1] = '\0';
+               ret = prctl(PR_GET_NAME, (unsigned long) cached_procname,
+                       0, 0, 0);
+               assert(!ret);
        }
        return cached_procname;
 }
@@ -41,7 +46,7 @@ size_t procname_get_size(size_t offset)
 {
        size_t size = 0;
 
-       size += LTTNG_UST_PROCNAME_LEN;
+       size += PROCNAME_LEN;
        return size;
 }
 
@@ -53,7 +58,7 @@ void procname_record(struct lttng_ctx_field *field,
        char *procname;
 
        procname = wrapper_getprocname();
-       chan->ops->event_write(ctx, procname, LTTNG_UST_PROCNAME_LEN);
+       chan->ops->event_write(ctx, procname, PROCNAME_LEN);
 }
 
 int lttng_add_procname_to_ctx(struct lttng_ctx **ctx)
@@ -76,7 +81,7 @@ int lttng_add_procname_to_ctx(struct lttng_ctx **ctx)
        field->event_field.type.u.array.elem_type.u.basic.integer.reverse_byte_order = 0;
        field->event_field.type.u.array.elem_type.u.basic.integer.base = 10;
        field->event_field.type.u.array.elem_type.u.basic.integer.encoding = lttng_encode_UTF8;
-       field->event_field.type.u.array.length = LTTNG_UST_PROCNAME_LEN;
+       field->event_field.type.u.array.length = PROCNAME_LEN;
        field->get_size = procname_get_size;
        field->record = procname_record;
        return 0;
index 86cce18d57fe658588db907ed8016f39e95f975f..b3567dda36f0c14042546f41d62656fcbadf79f0 100644 (file)
@@ -22,6 +22,7 @@
 #define _LGPL_SOURCE
 #include <sys/types.h>
 #include <sys/socket.h>
+#include <sys/prctl.h>
 #include <sys/mman.h>
 #include <sys/stat.h>
 #include <sys/types.h>
@@ -45,7 +46,6 @@
 #include <usterr-signal-safe.h>
 #include "tracepoint-internal.h"
 #include "ltt-tracer-core.h"
-#include "compat.h"
 
 /*
  * Has lttng ust comm constructor been called ?
@@ -159,6 +159,7 @@ static
 int register_app_to_sessiond(int socket)
 {
        ssize_t ret;
+       int prctl_ret;
        struct {
                uint32_t major;
                uint32_t minor;
@@ -177,7 +178,11 @@ int register_app_to_sessiond(int socket)
        reg_msg.uid = getuid();
        reg_msg.gid = getgid();
        reg_msg.bits_per_long = CAA_BITS_PER_LONG;
-       lttng_ust_getprocname(reg_msg.name);
+       prctl_ret = prctl(PR_GET_NAME, (unsigned long) reg_msg.name, 0, 0, 0);
+       if (prctl_ret) {
+               ERR("Error executing prctl");
+               return -errno;
+       }
 
        ret = ustcomm_send_unix_sock(socket, &reg_msg, sizeof(reg_msg));
        if (ret >= 0 && ret != sizeof(reg_msg))
This page took 0.031252 seconds and 4 git commands to generate.