const void *__ctf_tmp_ptr = (_src); \
memcpy(__stack_data, &__ctf_tmp_ulong, sizeof(unsigned long)); \
__stack_data += sizeof(unsigned long); \
- memcpy(__stack_data, &__ctf_tmp_ptr, sizeof(void **)); \
- __stack_data += sizeof(void **); \
+ memcpy(__stack_data, &__ctf_tmp_ptr, sizeof(void *)); \
+ __stack_data += sizeof(void *); \
}
#undef _ctf_sequence_encoded
const void *__ctf_tmp_ptr = (_src); \
memcpy(__stack_data, &__ctf_tmp_ulong, sizeof(unsigned long)); \
__stack_data += sizeof(unsigned long); \
- memcpy(__stack_data, &__ctf_tmp_ptr, sizeof(void **)); \
- __stack_data += sizeof(void **); \
+ memcpy(__stack_data, &__ctf_tmp_ptr, sizeof(void *)); \
+ __stack_data += sizeof(void *); \
}
#undef _ctf_string
#define _ctf_string(_item, _src, _nowrite) \
{ \
const void *__ctf_tmp_ptr = (_src); \
- memcpy(__stack_data, &__ctf_tmp_ptr, sizeof(void **)); \
- __stack_data += sizeof(void **); \
+ memcpy(__stack_data, &__ctf_tmp_ptr, sizeof(void *)); \
+ __stack_data += sizeof(void *); \
}
#undef TP_ARGS
#define _TP_SESSION_CHECK(session, csession) 1
#endif /* TP_SESSION_CHECK */
+#undef _TP_IP_PARAM
+#ifdef TP_IP_PARAM
+#define _TP_IP_PARAM(x) (x)
+#else /* TP_IP_PARAM */
+#define _TP_IP_PARAM(x) __builtin_return_address(0)
+#endif /* TP_IP_PARAM */
+
/*
* Using twice size for filter stack data to hold size and pointer for
* each field (worse case). For integers, max size required is 64-bit.
__event_align = __event_get_align__##_provider##___##_name(_TP_ARGS_VAR(_args)); \
lib_ring_buffer_ctx_init(&__ctx, __chan->chan, __event, __event_len, \
__event_align, -1, __chan->handle); \
- __ctx.ip = __builtin_return_address(0); \
+ __ctx.ip = _TP_IP_PARAM(TP_IP_PARAM); \
__ret = __chan->ops->event_reserve(&__ctx, __event->id); \
if (__ret < 0) \
return; \