X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt-usertrace%2Fltt%2Fltt-usertrace.h;h=2ac32b460fa0282705dc61947a32f1d746708066;hb=68440b1d5d6e373cee95eba08ba8107ccca777c2;hp=60a6aabc9682e5e098ef5991f79828ea4e942e25;hpb=ce22b1be52bf65ec4bd8088714f7e4fa0e08efac;p=lttv.git diff --git a/ltt-usertrace/ltt/ltt-usertrace.h b/ltt-usertrace/ltt/ltt-usertrace.h index 60a6aabc..2ac32b46 100644 --- a/ltt-usertrace/ltt/ltt-usertrace.h +++ b/ltt-usertrace/ltt/ltt-usertrace.h @@ -14,7 +14,11 @@ #include #include #include -#include + +#ifdef __cplusplus +extern "C" { +#endif + #define inline inline __attribute__((always_inline)) @@ -30,13 +34,13 @@ #include #endif #elif defined(__x86_64__) -#include -#include -#include -#include +#include +#elif defined(__i386__) +#include +#elif defined(__arm__) +#include #else -#include -#include +#error "Unsupported architecture" #endif #ifndef min @@ -44,36 +48,40 @@ #endif #ifdef i386 -#define __NR_ltt_trace_generic 317 -#define __NR_ltt_register_generic 318 +#define __NR_ltt_trace_generic 320 +#define __NR_ltt_register_generic 321 #undef NR_syscalls -#define NR_syscalls 319 +#define NR_syscalls 322 #endif #ifdef __x86_64__ -#define __NR_ltt_trace_generic 279 -#define __NR_ltt_register_generic 280 +#define __NR_ltt_trace_generic 281 +#define __NR_ltt_register_generic 281 #undef NR_syscalls -#define NR_syscalls 281 +#define NR_syscalls 282 #endif #ifdef __powerpc__ -#define __NR_ltt_trace_generic 301 -#define __NR_ltt_register_generic 302 +#define __NR_ltt_trace_generic 302 +#define __NR_ltt_register_generic 303 #undef NR_syscalls -#define NR_syscalls 303 +#define NR_syscalls 304 #endif #ifdef __powerpc64__ -#define __NR_ltt_trace_generic 301 -#define __NR_ltt_register_generic 302 +#define __NR_ltt_trace_generic 302 +#define __NR_ltt_register_generic 303 #undef NR_syscalls -#define NR_syscalls 303 +#define NR_syscalls 304 #endif +#ifdef __arm__ +#define __NR_ltt_trace_generic 347 +#define __NR_ltt_register_generic 348 +#undef NR_syscalls +#define NR_syscalls 349 +#endif - -//FIXME : setup for ARM //FIXME : setup for MIPS #ifndef _LIBC @@ -101,19 +109,25 @@ struct user_facility_info { size_t pointer_size; size_t size_t_size; }; - +#if 0 static inline __attribute__((no_instrument_function)) _syscall5(int, ltt_trace_generic, unsigned int, facility_id, unsigned int, event_id, void *, data, size_t, data_size, int, blocking) static inline __attribute__((no_instrument_function)) _syscall2(int, ltt_register_generic, unsigned int *, facility_id, const struct user_facility_info *, info) +#endif //0 + +#define ltt_register_generic(...) syscall(__NR_ltt_register_generic, __VA_ARGS__) +#define ltt_trace_generic(...) syscall(__NR_ltt_trace_generic, __VA_ARGS__) + +static inline unsigned int __attribute__((no_instrument_function)) + ltt_align(size_t align_drift, size_t size_of_type); #ifndef LTT_PACK /* Calculate the offset needed to align the type */ -static inline unsigned int __attribute__((no_instrument_function)) - ltt_align(size_t align_drift, - size_t size_of_type) +static inline unsigned int + ltt_align(size_t align_drift, size_t size_of_type) { size_t alignment = min(sizeof(void*), size_of_type); @@ -121,19 +135,19 @@ static inline unsigned int __attribute__((no_instrument_function)) } #define LTT_ALIGN #else -static inline unsigned int __attribute__((no_instrument_function)) - ltt_align(size_t align_drift, - size_t size_of_type) +static inline unsigned int ltt_align(size_t align_drift, size_t size_of_type) { return 0; } #define LTT_ALIGN __attribute__((packed)) #endif //LTT_PACK +#ifdef __cplusplus +} /* end of extern "C" */ +#endif + #ifdef LTT_TRACE_FAST #include #endif //LTT_TRACE_FAST #endif //_LTT_USERTRACE_H - -