X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt-usertrace%2Fltt%2Fltt-usertrace.h;h=4416da45fe9290f7b204f5d82d44c3d59ab23feb;hb=895ad1156ce7e727e53edeccc977267a1d419820;hp=7770f9580cd93a1a61c382b5b86074a131edcc32;hpb=d86395c3cc6f958bcb2aca5063e83e2fe4194f6a;p=lttv.git diff --git a/ltt-usertrace/ltt/ltt-usertrace.h b/ltt-usertrace/ltt/ltt-usertrace.h index 7770f958..4416da45 100644 --- a/ltt-usertrace/ltt/ltt-usertrace.h +++ b/ltt-usertrace/ltt/ltt-usertrace.h @@ -11,17 +11,34 @@ #include #include -#include #include -#include #include -#ifdef powerpc -#define __KERNEL__ /* Ugly hack : atomic.h is broken */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +#define inline inline __attribute__((always_inline)) + +#if defined(__powerpc__) || defined(__powerpc64__) +#ifdef __powerpc64__ +#include +#include +#include +#else +#include +#include +#include +#include #endif -#include -#include "ltt/ltt-usertrace-ppc.h" -#ifdef powerpc -#undef __KERNEL__ /* Ugly hack : atomic.h is broken */ +#elif defined(__x86_64__) +#include +#elif defined(__i386__) +#include +#else +#error "Unsupported architecture" #endif #ifndef min @@ -29,19 +46,35 @@ #endif #ifdef i386 -#define __NR_ltt_trace_generic 311 -#define __NR_ltt_register_generic 312 +#define __NR_ltt_trace_generic 317 +#define __NR_ltt_register_generic 318 +#undef NR_syscalls +#define NR_syscalls 319 +#endif + +#ifdef __x86_64__ +#define __NR_ltt_trace_generic 279 +#define __NR_ltt_register_generic 280 #undef NR_syscalls -#define NR_syscalls 313 +#define NR_syscalls 281 #endif -#ifdef powerpc -#define __NR_ltt_trace_generic 283 -#define __NR_ltt_register_generic 284 +#ifdef __powerpc__ +#define __NR_ltt_trace_generic 301 +#define __NR_ltt_register_generic 302 #undef NR_syscalls -#define NR_syscalls 285 +#define NR_syscalls 303 #endif +#ifdef __powerpc64__ +#define __NR_ltt_trace_generic 301 +#define __NR_ltt_register_generic 302 +#undef NR_syscalls +#define NR_syscalls 303 +#endif + + + //FIXME : setup for ARM //FIXME : setup for MIPS @@ -70,19 +103,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); @@ -90,19 +129,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 - -