#define FACNAME_LEN 32
+/* LTT userspace tracing is non blocking by default when buffers are full */
+#ifndef LTT_BLOCKING
+#define LTT_BLOCKING 0
+#endif //LTT_BLOCKING
+
typedef unsigned int ltt_facility_t;
struct user_facility_info {
size_t size_t_size;
};
-static inline _syscall4(int, ltt_trace_generic, unsigned int, facility_id,
- unsigned int, event_id, void *, data, size_t, data_size)
-static inline _syscall2(int, ltt_register_generic, unsigned int *, facility_id, const struct user_facility_info *, info)
+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)
#ifndef LTT_PACK
/* Calculate the offset needed to align the type */
-static inline unsigned int ltt_align(size_t align_drift,
- size_t size_of_type)
+static inline unsigned int __attribute__((no_instrument_function))
+ ltt_align(size_t align_drift,
+ size_t size_of_type)
{
size_t alignment = min(sizeof(void*), size_of_type);
return ((alignment - align_drift) & (alignment-1));
}
#else
-static inline unsigned int ltt_align(size_t align_drift,
- size_t size_of_type)
+static inline unsigned int __attribute__((no_instrument_function))
+ ltt_align(size_t align_drift,
+ size_t size_of_type)
{
return 0;
}