#include <urcu/rculist.h>
#include <lttng/ust-events.h>
#include <lttng/ringbuffer-context.h>
+#include <lttng/ust-arch.h>
#include <lttng/ust-compiler.h>
#include <lttng/tracepoint.h>
#include <lttng/ust-endian.h>
#define _ctf_array_encoded(_type, _item, _src, _byte_order, _length, \
_encoding, _nowrite, _elem_type_base) \
lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(_type)); \
- __chan->ops->event_write(&__ctx, _src, sizeof(_type) * (_length));
+ if (lttng_ust_string_encoding_##_encoding == lttng_ust_string_encoding_none) \
+ __chan->ops->event_write(&__ctx, _src, sizeof(_type) * (_length)); \
+ else \
+ __chan->ops->event_strcpy_pad(&__ctx, (const char *) (_src), _length); \
#undef _ctf_sequence_encoded
#define _ctf_sequence_encoded(_type, _item, _src, _byte_order, _length_type, \
__chan->ops->event_write(&__ctx, &__tmpl, sizeof(_length_type));\
} \
lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(_type)); \
- __chan->ops->event_write(&__ctx, _src, \
- sizeof(_type) * __get_dynamic_len(dest));
+ if (lttng_ust_string_encoding_##_encoding == lttng_ust_string_encoding_none) \
+ __chan->ops->event_write(&__ctx, _src, \
+ sizeof(_type) * __get_dynamic_len(dest)); \
+ else \
+ __chan->ops->event_strcpy_pad(&__ctx, (const char *) (_src), __get_dynamic_len(dest)); \
#undef _ctf_string
#define _ctf_string(_item, _src, _nowrite) \
#define _TP_IP_PARAM(x) (x)
#else /* TP_IP_PARAM */
-#if defined(__PPC__) && !defined(__PPC64__)
+#if defined(LTTNG_UST_ARCH_PPC) && !defined(LTTNG_UST_ARCH_PPC64)
#define _TP_IP_PARAM(x) NULL
-#else /* #if defined(__PPC__) && !defined(__PPC64__) */
+#else
#define _TP_IP_PARAM(x) __builtin_return_address(0)
-#endif /* #else #if defined(__PPC__) && !defined(__PPC64__) */
+#endif
#endif /* TP_IP_PARAM */