X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=liblttng-ust%2Fcompat.h;h=8ee4470a0b381289986e48742274fa287d835e1a;hb=9b6435afbb89e2345ac7399620549db3e58f3f75;hp=004e60ace8d86771652405c2076f555969bd12d8;hpb=e5757a9047b04cb2fb94d9dfdf7153e963eafa95;p=lttng-ust.git diff --git a/liblttng-ust/compat.h b/liblttng-ust/compat.h index 004e60ac..8ee4470a 100644 --- a/liblttng-ust/compat.h +++ b/liblttng-ust/compat.h @@ -14,51 +14,17 @@ * modified is included with the above copyright notice. */ -/* - * lttng_ust_getprocname. - */ -#ifdef __linux__ - -#include - -#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 -#include +#include -/* - * 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. - */ +#ifdef __UCLIBC__ +#define __getcpu(cpu, node, cache) syscall(__NR_getcpu, cpu, node, cache) static inline -void lttng_ust_getprocname(char *name) +int sched_getcpu(void) { - const char *bsd_name; + int c, s; - bsd_name = getprogname(); - if (!bsd_name) - name[0] = '\0'; - memcpy(name, bsd_name, LTTNG_UST_PROCNAME_LEN - 1); + s = __getcpu(&c, NULL, NULL); + return (s == -1) ? s : c; } - -#endif - -#include - -#ifndef ENODATA -#define ENODATA ENOMSG -#endif - +#endif /* __UCLIBC__ */ #endif /* _UST_COMPAT_H */