#include <linux/debugfs.h>
#include <linux/rculist.h>
#include <asm/byteorder.h>
-#include "lttng.h"
-#include "lttng-types.h"
-#include "lttng-probe-user.h"
-#include "../wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */
-#include "../wrapper/ringbuffer/frontend_types.h"
-#include "../wrapper/rcu.h"
-#include "../lttng-events.h"
-#include "../lttng-tracer-core.h"
+
+#include <probes/lttng.h>
+#include <probes/lttng-types.h>
+#include <probes/lttng-probe-user.h>
+#include <wrapper/vmalloc.h> /* for wrapper_vmalloc_sync_all() */
+#include <wrapper/ringbuffer/frontend_types.h>
+#include <wrapper/ringbuffer/backend.h>
+#include <wrapper/rcu.h>
+#include <lttng-events.h>
+#include <lttng-tracer-core.h>
/*
* Macro declarations used for all stages.
*/
/* Reset all macros within TRACEPOINT_EVENT */
-#include "lttng-events-reset.h"
+#include <probes/lttng-events-reset.h>
#undef TP_PROTO
#define TP_PROTO(...) __VA_ARGS__
* class and the instance using the class actually match.
*/
-#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */
+#include <probes/lttng-events-reset.h> /* Reset all macros within TRACE_EVENT */
#undef TP_PROTO
#define TP_PROTO(...) __VA_ARGS__
*/
/* Reset all macros within TRACEPOINT_EVENT */
-#include "lttng-events-reset.h"
-#include "lttng-events-write.h"
-#include "lttng-events-nowrite.h"
+#include <probes/lttng-events-reset.h>
+#include <probes/lttng-events-write.h>
+#include <probes/lttng-events-nowrite.h>
#undef _ctf_integer_ext
#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _user, _nowrite) \
*/
/* Reset all macros within TRACEPOINT_EVENT */
-#include "lttng-events-reset.h"
+#include <probes/lttng-events-reset.h>
#undef TP_PROTO
#define TP_PROTO(...) __VA_ARGS__
*/
/* Reset all macros within TRACEPOINT_EVENT */
-#include "lttng-events-reset.h"
-#include "lttng-events-write.h"
+#include <probes/lttng-events-reset.h>
+#include <probes/lttng-events-write.h>
#undef _ctf_integer_ext
#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _user, _nowrite) \
*/
/* Reset all macros within TRACEPOINT_EVENT */
-#include "lttng-events-reset.h"
-#include "lttng-events-write.h"
-#include "lttng-events-nowrite.h"
+#include <probes/lttng-events-reset.h>
+#include <probes/lttng-events-write.h>
+#include <probes/lttng-events-nowrite.h>
#undef _ctf_integer_ext_fetched
#define _ctf_integer_ext_fetched(_type, _item, _src, _byte_order, _base, _nowrite) \
#undef _ctf_integer_ext_isuser1
#define _ctf_integer_ext_isuser1(_type, _item, _user_src, _byte_order, _base, _nowrite) \
-{ \
- __typeof__(_user_src) _src; \
- if (get_user(_src, &(_user_src))) \
- _src = 0; \
- _ctf_integer_ext_fetched(_type, _item, _src, _byte_order, _base, _nowrite) \
+{ \
+ union { \
+ char __array[sizeof(_user_src)]; \
+ __typeof__(_user_src) __v; \
+ } __tmp_fetch; \
+ if (lib_ring_buffer_copy_from_user_check_nofault(__tmp_fetch.__array, \
+ &(_user_src), sizeof(_user_src))) \
+ memset(__tmp_fetch.__array, 0, sizeof(__tmp_fetch.__array)); \
+ _ctf_integer_ext_fetched(_type, _item, __tmp_fetch.__v, _byte_order, _base, _nowrite) \
}
#undef _ctf_integer_ext
*/
/* Reset all macros within TRACEPOINT_EVENT */
-#include "lttng-events-reset.h"
-#include "lttng-events-write.h"
+#include <probes/lttng-events-reset.h>
+#include <probes/lttng-events-write.h>
#undef _ctf_integer_ext
#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _user, _nowrite) \
*/
/* Reset all macros within TRACEPOINT_EVENT */
-#include "lttng-events-reset.h"
-#include "lttng-events-write.h"
+#include <probes/lttng-events-reset.h>
+#include <probes/lttng-events-write.h>
#undef _ctf_integer_ext_fetched
#define _ctf_integer_ext_fetched(_type, _item, _src, _byte_order, _base, _nowrite) \
#undef _ctf_integer_ext_isuser1
#define _ctf_integer_ext_isuser1(_type, _item, _user_src, _byte_order, _base, _nowrite) \
{ \
- __typeof__(_user_src) _src; \
- if (get_user(_src, &(_user_src))) \
- _src = 0; \
- _ctf_integer_ext_fetched(_type, _item, _src, _byte_order, _base, _nowrite) \
+ union { \
+ char __array[sizeof(_user_src)]; \
+ __typeof__(_user_src) __v; \
+ } __tmp_fetch; \
+ if (lib_ring_buffer_copy_from_user_check_nofault(__tmp_fetch.__array, \
+ &(_user_src), sizeof(_user_src))) \
+ memset(__tmp_fetch.__array, 0, sizeof(__tmp_fetch.__array)); \
+ _ctf_integer_ext_fetched(_type, _item, __tmp_fetch.__v, _byte_order, _base, _nowrite) \
}
#undef _ctf_integer_ext
/* Named field types must be defined in lttng-types.h */
-#include "lttng-events-reset.h" /* Reset all macros within LTTNG_TRACEPOINT_EVENT */
+#include <probes/lttng-events-reset.h> /* Reset all macros within LTTNG_TRACEPOINT_EVENT */
#ifndef TP_PROBE_CB
#define TP_PROBE_CB(_template) &__event_probe__##_template
* Create an array of event description pointers.
*/
-#include "lttng-events-reset.h" /* Reset all macros within LTTNG_TRACEPOINT_EVENT */
+#include <probes/lttng-events-reset.h> /* Reset all macros within LTTNG_TRACEPOINT_EVENT */
#undef LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS
#define LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS(_template, _name, _map) \
* Register/unregister probes at module load/unload.
*/
-#include "lttng-events-reset.h" /* Reset all macros within LTTNG_TRACEPOINT_EVENT */
+#include <probes/lttng-events-reset.h> /* Reset all macros within LTTNG_TRACEPOINT_EVENT */
#define TP_ID1(_token, _system) _token##_system
#define TP_ID(_token, _system) TP_ID1(_token, _system)