/*****************************************************************************
- * ltt-generic.h
+ * ltt-usertrace.h
*
- * LTT generic userspace tracing header
+ * LTT userspace tracing header
*
* Mathieu Desnoyers, March 2006
*/
-#ifndef _LTT_GENERIC_H
-#define _LTT_GENERIC_H
+#ifndef _LTT_USERTRACE_H
+#define _LTT_USERTRACE_H
#include <errno.h>
#include <syscall.h>
-#include <linux/unistd.h>
-#include <asm/atomic.h>
#include <string.h>
-#include <sys/types.h>
#include <stdint.h>
+#include <sys/types.h>
+#include <linux/unistd.h>
+
+#define inline inline __attribute__((always_inline))
+
+#if defined(__powerpc__) || defined(__powerpc64__)
+#ifdef __powerpc64__
+#include <ltt/atomic-ppc64.h>
+#include <ltt/system-ppc64.h>
+#include <asm/timex.h>
+#else
+#include <ltt/ppc_asm-ppc.h>
+#include <ltt/atomic-ppc.h>
+#include <ltt/system-ppc.h>
+#include <ltt/timex-ppc.h>
+#endif
+#else
+#include <asm/timex.h>
+#include <asm/atomic.h>
+#endif
#ifndef min
#define min(a,b) ((a)<(b)?(a):(b))
#endif
-//Put in asm-i486/unistd.h
-#define __NR_ltt_trace_generic 294
-#define __NR_ltt_register_generic 295
+#ifdef i386
+#define __NR_ltt_trace_generic 317
+#define __NR_ltt_register_generic 318
+#undef NR_syscalls
+#define NR_syscalls 319
+#endif
+
+#ifdef __powerpc__
+#define __NR_ltt_trace_generic 301
+#define __NR_ltt_register_generic 302
+#undef NR_syscalls
+#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 296
+#define NR_syscalls 303
+#endif
+
+
//FIXME : setup for ARM
//FIXME : setup for MIPS
#define LTT_ALIGN __attribute__((packed))
#endif //LTT_PACK
-#endif //_LTT_GENERIC_H
+#ifdef LTT_TRACE_FAST
+#include <ltt/ltt-usertrace-fast.h>
+#endif //LTT_TRACE_FAST
+
+#endif //_LTT_USERTRACE_H