}, \
.struct_size = sizeof(struct lttng_ust_type_integer), \
.size = sizeof(_type) * CHAR_BIT, \
- .alignment = lttng_alignof(_type) * CHAR_BIT, \
+ .alignment = lttng_ust_rb_alignof(_type) * CHAR_BIT, \
.signedness = lttng_ust_is_signed_type(_type), \
.reverse_byte_order = _byte_order != BYTE_ORDER, \
.base = _base, \
.exp_dig = sizeof(_type) * CHAR_BIT \
- lttng_ust_float_mant_dig(_type), \
.mant_dig = lttng_ust_float_mant_dig(_type), \
- .alignment = lttng_alignof(_type) * CHAR_BIT, \
+ .alignment = lttng_ust_rb_alignof(_type) * CHAR_BIT, \
.reverse_byte_order = BYTE_ORDER != FLOAT_WORD_ORDER, \
}))
#undef _ctf_integer_ext
#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \
- __event_len += lttng_ust_lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \
+ __event_len += lttng_ust_lib_ring_buffer_align(__event_len, lttng_ust_rb_alignof(_type)); \
__event_len += sizeof(_type);
#undef _ctf_float
#define _ctf_float(_type, _item, _src, _nowrite) \
- __event_len += lttng_ust_lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \
+ __event_len += lttng_ust_lib_ring_buffer_align(__event_len, lttng_ust_rb_alignof(_type)); \
__event_len += sizeof(_type);
#undef _ctf_array_encoded
#define _ctf_array_encoded(_type, _item, _src, _byte_order, _length, _encoding, \
_nowrite, _elem_type_base) \
- __event_len += lttng_ust_lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \
+ __event_len += lttng_ust_lib_ring_buffer_align(__event_len, lttng_ust_rb_alignof(_type)); \
__event_len += sizeof(_type) * (_length);
#undef _ctf_sequence_encoded
#define _ctf_sequence_encoded(_type, _item, _src, _byte_order, _length_type, \
_src_length, _encoding, _nowrite, _elem_type_base) \
- __event_len += lttng_ust_lib_ring_buffer_align(__event_len, lttng_alignof(_length_type)); \
+ __event_len += lttng_ust_lib_ring_buffer_align(__event_len, lttng_ust_rb_alignof(_length_type)); \
__event_len += sizeof(_length_type); \
- __event_len += lttng_ust_lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \
+ __event_len += lttng_ust_lib_ring_buffer_align(__event_len, lttng_ust_rb_alignof(_type)); \
__dynamic_len[__dynamic_len_idx] = (_src_length); \
__event_len += sizeof(_type) * __dynamic_len[__dynamic_len_idx]; \
__dynamic_len_idx++;
#undef _ctf_integer_ext
#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \
- __event_align = _tp_max_t(size_t, __event_align, lttng_alignof(_type));
+ __event_align = _tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_type));
#undef _ctf_float
#define _ctf_float(_type, _item, _src, _nowrite) \
- __event_align = _tp_max_t(size_t, __event_align, lttng_alignof(_type));
+ __event_align = _tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_type));
#undef _ctf_array_encoded
#define _ctf_array_encoded(_type, _item, _src, _byte_order, _length, \
_encoding, _nowrite, _elem_type_base) \
- __event_align = _tp_max_t(size_t, __event_align, lttng_alignof(_type));
+ __event_align = _tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_type));
#undef _ctf_sequence_encoded
#define _ctf_sequence_encoded(_type, _item, _src, _byte_order, _length_type, \
_src_length, _encoding, _nowrite, _elem_type_base) \
- __event_align = _tp_max_t(size_t, __event_align, lttng_alignof(_length_type)); \
- __event_align = _tp_max_t(size_t, __event_align, lttng_alignof(_type));
+ __event_align = _tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_length_type)); \
+ __event_align = _tp_max_t(size_t, __event_align, lttng_ust_rb_alignof(_type));
#undef _ctf_string
#define _ctf_string(_item, _src, _nowrite)
#define _ctf_integer_ext(_type, _item, _src, _byte_order, _base, _nowrite) \
{ \
_type __tmp = (_src); \
- lttng_ust_lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__tmp));\
+ lttng_ust_lib_ring_buffer_align_ctx(&__ctx, lttng_ust_rb_alignof(__tmp));\
__chan->ops->event_write(&__ctx, &__tmp, sizeof(__tmp));\
}
#define _ctf_float(_type, _item, _src, _nowrite) \
{ \
_type __tmp = (_src); \
- lttng_ust_lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__tmp));\
+ lttng_ust_lib_ring_buffer_align_ctx(&__ctx, lttng_ust_rb_alignof(__tmp));\
__chan->ops->event_write(&__ctx, &__tmp, sizeof(__tmp));\
}
#undef _ctf_array_encoded
#define _ctf_array_encoded(_type, _item, _src, _byte_order, _length, \
_encoding, _nowrite, _elem_type_base) \
- lttng_ust_lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(_type)); \
+ lttng_ust_lib_ring_buffer_align_ctx(&__ctx, lttng_ust_rb_alignof(_type)); \
if (lttng_ust_string_encoding_##_encoding == lttng_ust_string_encoding_none) \
__chan->ops->event_write(&__ctx, _src, sizeof(_type) * (_length)); \
else \
_src_length, _encoding, _nowrite, _elem_type_base) \
{ \
_length_type __tmpl = __stackvar.__dynamic_len[__dynamic_len_idx]; \
- lttng_ust_lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(_length_type));\
+ lttng_ust_lib_ring_buffer_align_ctx(&__ctx, lttng_ust_rb_alignof(_length_type));\
__chan->ops->event_write(&__ctx, &__tmpl, sizeof(_length_type));\
} \
- lttng_ust_lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(_type)); \
+ lttng_ust_lib_ring_buffer_align_ctx(&__ctx, lttng_ust_rb_alignof(_type)); \
if (lttng_ust_string_encoding_##_encoding == lttng_ust_string_encoding_none) \
__chan->ops->event_write(&__ctx, _src, \
sizeof(_type) * __get_dynamic_len(dest)); \
const char *__ctf_tmp_string = \
((_src) ? (_src) : __LTTNG_UST_NULL_STRING); \
lttng_ust_lib_ring_buffer_align_ctx(&__ctx, \
- lttng_alignof(*__ctf_tmp_string)); \
+ lttng_ust_rb_alignof(*__ctf_tmp_string)); \
__chan->ops->event_strcpy(&__ctx, __ctf_tmp_string, \
__get_dynamic_len(dest)); \
}
#endif
#ifdef LTTNG_UST_RING_BUFFER_NATURAL_ALIGN
-#define lttng_alignof(type) __alignof__(type)
+#define lttng_ust_rb_alignof(type) __alignof__(type)
#else
-#define lttng_alignof(type) 1
+#define lttng_ust_rb_alignof(type) 1
#endif
/*
enum lttng_ust_jni_type jni_type;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(char));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(char));
size += sizeof(char); /* tag */
jctx = lookup_ctx_by_name(ctx_name);
if (!jctx) {
case JNI_TYPE_NULL:
break;
case JNI_TYPE_INTEGER:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(int32_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(int32_t));
size += sizeof(int32_t); /* variant */
break;
case JNI_TYPE_LONG:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(int64_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(int64_t));
size += sizeof(int64_t); /* variant */
break;
case JNI_TYPE_DOUBLE:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(double));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(double));
size += sizeof(double); /* variant */
break;
case JNI_TYPE_FLOAT:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(float));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(float));
size += sizeof(float); /* variant */
break;
case JNI_TYPE_SHORT:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(int16_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(int16_t));
size += sizeof(int16_t); /* variant */
break;
case JNI_TYPE_BYTE: /* Fall-through. */
case JNI_TYPE_BOOLEAN:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(char));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(char));
size += sizeof(char); /* variant */
break;
case JNI_TYPE_STRING:
switch (jni_type) {
case JNI_TYPE_NULL:
sel_char = LTTNG_UST_DYNAMIC_TYPE_NONE;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(char));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(char));
lttng_chan_buf->ops->event_write(ctx, &sel_char, sizeof(sel_char));
break;
case JNI_TYPE_INTEGER:
int32_t v = jctx->value._integer;
sel_char = LTTNG_UST_DYNAMIC_TYPE_S32;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(char));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(char));
lttng_chan_buf->ops->event_write(ctx, &sel_char, sizeof(sel_char));
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
int64_t v = jctx->value._long;
sel_char = LTTNG_UST_DYNAMIC_TYPE_S64;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(char));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(char));
lttng_chan_buf->ops->event_write(ctx, &sel_char, sizeof(sel_char));
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
double v = jctx->value._double;
sel_char = LTTNG_UST_DYNAMIC_TYPE_DOUBLE;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(char));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(char));
lttng_chan_buf->ops->event_write(ctx, &sel_char, sizeof(sel_char));
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
float v = jctx->value._float;
sel_char = LTTNG_UST_DYNAMIC_TYPE_FLOAT;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(char));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(char));
lttng_chan_buf->ops->event_write(ctx, &sel_char, sizeof(sel_char));
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
int16_t v = jctx->value._short;
sel_char = LTTNG_UST_DYNAMIC_TYPE_S16;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(char));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(char));
lttng_chan_buf->ops->event_write(ctx, &sel_char, sizeof(sel_char));
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
char v = jctx->value._byte;
sel_char = LTTNG_UST_DYNAMIC_TYPE_S8;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(char));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(char));
lttng_chan_buf->ops->event_write(ctx, &sel_char, sizeof(sel_char));
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
char v = jctx->value._boolean;
sel_char = LTTNG_UST_DYNAMIC_TYPE_S8;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(char));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(char));
lttng_chan_buf->ops->event_write(ctx, &sel_char, sizeof(sel_char));
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
} else {
sel_char = LTTNG_UST_DYNAMIC_TYPE_NONE;
}
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(char));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(char));
lttng_chan_buf->ops->event_write(ctx, &sel_char, sizeof(sel_char));
if (str) {
lttng_chan_buf->ops->event_write(ctx, str, strlen(str) + 1);
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(ino_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(ino_t));
size += sizeof(ino_t);
return size;
}
ino_t cgroup_ns;
cgroup_ns = get_cgroup_ns();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(cgroup_ns));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(cgroup_ns));
chan->ops->event_write(ctx, &cgroup_ns, sizeof(cgroup_ns));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(ino_t) * CHAR_BIT,
- lttng_alignof(ino_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(ino_t) * CHAR_BIT,
lttng_ust_is_signed_type(ino_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(int));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(int));
size += sizeof(int);
return size;
}
int cpu;
cpu = lttng_ust_get_cpu();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(cpu));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(cpu));
chan->ops->event_write(ctx, &cpu, sizeof(cpu));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(int) * CHAR_BIT,
- lttng_alignof(int) * CHAR_BIT,
+ lttng_ust_rb_alignof(int) * CHAR_BIT,
lttng_ust_is_signed_type(int),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(void *));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(void *));
size += sizeof(void *);
return size;
}
void *ip;
ip = ctx->ip;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(ip));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(ip));
chan->ops->event_write(ctx, &ip, sizeof(ip));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(void *) * CHAR_BIT,
- lttng_alignof(void *) * CHAR_BIT,
+ lttng_ust_rb_alignof(void *) * CHAR_BIT,
lttng_ust_is_signed_type(void *),
BYTE_ORDER, 16);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(ino_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(ino_t));
size += sizeof(ino_t);
return size;
}
ino_t ipc_ns;
ipc_ns = get_ipc_ns();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(ipc_ns));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(ipc_ns));
chan->ops->event_write(ctx, &ipc_ns, sizeof(ipc_ns));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(ino_t) * CHAR_BIT,
- lttng_alignof(ino_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(ino_t) * CHAR_BIT,
lttng_ust_is_signed_type(ino_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(ino_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(ino_t));
size += sizeof(ino_t);
return size;
}
ino_t mnt_ns;
mnt_ns = get_mnt_ns();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(mnt_ns));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(mnt_ns));
chan->ops->event_write(ctx, &mnt_ns, sizeof(mnt_ns));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(ino_t) * CHAR_BIT,
- lttng_alignof(ino_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(ino_t) * CHAR_BIT,
lttng_ust_is_signed_type(ino_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(ino_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(ino_t));
size += sizeof(ino_t);
return size;
}
ino_t net_ns;
net_ns = get_net_ns();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(net_ns));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(net_ns));
chan->ops->event_write(ctx, &net_ns, sizeof(net_ns));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(ino_t) * CHAR_BIT,
- lttng_alignof(ino_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(ino_t) * CHAR_BIT,
lttng_ust_is_signed_type(ino_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uint64_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uint64_t));
size += sizeof(uint64_t);
return size;
}
uint64_t value;
value = wrapper_perf_counter_read(field);
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(value));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(value));
chan->ops->event_write(ctx, &value, sizeof(value));
}
goto perf_field_alloc_error;
}
ust_type = lttng_ust_create_type_integer(sizeof(uint64_t) * CHAR_BIT,
- lttng_alignof(uint64_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(uint64_t) * CHAR_BIT,
lttng_ust_is_signed_type(uint64_t),
BYTE_ORDER, 10);
if (!ust_type) {
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(ino_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(ino_t));
size += sizeof(ino_t);
return size;
}
ino_t pid_ns;
pid_ns = get_pid_ns();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(pid_ns));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(pid_ns));
chan->ops->event_write(ctx, &pid_ns, sizeof(pid_ns));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(ino_t) * CHAR_BIT,
- lttng_alignof(ino_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(ino_t) * CHAR_BIT,
lttng_ust_is_signed_type(ino_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(unsigned long));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(unsigned long));
size += sizeof(unsigned long);
return size;
}
unsigned long pthread_id;
pthread_id = (unsigned long) pthread_self();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(pthread_id));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(pthread_id));
chan->ops->event_write(ctx, &pthread_id, sizeof(pthread_id));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(unsigned long) * CHAR_BIT,
- lttng_alignof(unsigned long) * CHAR_BIT,
+ lttng_ust_rb_alignof(unsigned long) * CHAR_BIT,
lttng_ust_is_signed_type(unsigned long),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(ino_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(ino_t));
size += sizeof(ino_t);
return size;
}
ino_t time_ns;
time_ns = get_time_ns();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(time_ns));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(time_ns));
chan->ops->event_write(ctx, &time_ns, sizeof(time_ns));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(ino_t) * CHAR_BIT,
- lttng_alignof(ino_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(ino_t) * CHAR_BIT,
lttng_ust_is_signed_type(ino_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(ino_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(ino_t));
size += sizeof(ino_t);
return size;
}
ino_t user_ns;
user_ns = get_user_ns();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(user_ns));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(user_ns));
chan->ops->event_write(ctx, &user_ns, sizeof(user_ns));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(ino_t) * CHAR_BIT,
- lttng_alignof(ino_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(ino_t) * CHAR_BIT,
lttng_ust_is_signed_type(ino_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(ino_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(ino_t));
size += sizeof(ino_t);
return size;
}
ino_t uts_ns;
uts_ns = get_uts_ns();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(uts_ns));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(uts_ns));
chan->ops->event_write(ctx, &uts_ns, sizeof(uts_ns));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(ino_t) * CHAR_BIT,
- lttng_alignof(ino_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(ino_t) * CHAR_BIT,
lttng_ust_is_signed_type(ino_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(gid_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(gid_t));
size += sizeof(gid_t);
return size;
}
gid_t vegid;
vegid = get_vegid();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(vegid));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(vegid));
chan->ops->event_write(ctx, &vegid, sizeof(vegid));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(gid_t) * CHAR_BIT,
- lttng_alignof(gid_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(gid_t) * CHAR_BIT,
lttng_ust_is_signed_type(gid_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uid_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uid_t));
size += sizeof(uid_t);
return size;
}
uid_t veuid;
veuid = get_veuid();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(veuid));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(veuid));
chan->ops->event_write(ctx, &veuid, sizeof(veuid));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(uid_t) * CHAR_BIT,
- lttng_alignof(uid_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(uid_t) * CHAR_BIT,
lttng_ust_is_signed_type(uid_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(gid_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(gid_t));
size += sizeof(gid_t);
return size;
}
gid_t vgid;
vgid = get_vgid();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(vgid));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(vgid));
chan->ops->event_write(ctx, &vgid, sizeof(vgid));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(gid_t) * CHAR_BIT,
- lttng_alignof(gid_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(gid_t) * CHAR_BIT,
lttng_ust_is_signed_type(gid_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(pid_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(pid_t));
size += sizeof(pid_t);
return size;
}
{
pid_t vpid = wrapper_getvpid();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(vpid));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(vpid));
chan->ops->event_write(ctx, &vpid, sizeof(vpid));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(pid_t) * CHAR_BIT,
- lttng_alignof(pid_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(pid_t) * CHAR_BIT,
lttng_ust_is_signed_type(pid_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(gid_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(gid_t));
size += sizeof(gid_t);
return size;
}
gid_t vsgid;
vsgid = get_vsgid();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(vsgid));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(vsgid));
chan->ops->event_write(ctx, &vsgid, sizeof(vsgid));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(gid_t) * CHAR_BIT,
- lttng_alignof(gid_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(gid_t) * CHAR_BIT,
lttng_ust_is_signed_type(gid_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uid_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uid_t));
size += sizeof(uid_t);
return size;
}
uid_t vsuid;
vsuid = get_vsuid();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(vsuid));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(vsuid));
chan->ops->event_write(ctx, &vsuid, sizeof(vsuid));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(uid_t) * CHAR_BIT,
- lttng_alignof(uid_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(uid_t) * CHAR_BIT,
lttng_ust_is_signed_type(uid_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(pid_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(pid_t));
size += sizeof(pid_t);
return size;
}
{
pid_t vtid = wrapper_getvtid();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(vtid));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(vtid));
chan->ops->event_write(ctx, &vtid, sizeof(vtid));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(pid_t) * CHAR_BIT,
- lttng_alignof(pid_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(pid_t) * CHAR_BIT,
lttng_ust_is_signed_type(pid_t),
BYTE_ORDER, 10);
if (!type)
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uid_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uid_t));
size += sizeof(uid_t);
return size;
}
uid_t vuid;
vuid = get_vuid();
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(vuid));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(vuid));
chan->ops->event_write(ctx, &vuid, sizeof(vuid));
}
int ret;
type = lttng_ust_create_type_integer(sizeof(uid_t) * CHAR_BIT,
- lttng_alignof(uid_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(uid_t) * CHAR_BIT,
lttng_ust_is_signed_type(uid_t),
BYTE_ORDER, 10);
if (!type)
switch (lttng_chan->priv->header_type) {
case 1: /* compact */
- padding = lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uint32_t));
+ padding = lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uint32_t));
offset += padding;
if (!(ctx->rflags & (RING_BUFFER_RFLAG_FULL_TSC | LTTNG_RFLAG_EXTENDED))) {
offset += sizeof(uint32_t); /* id and timestamp */
/* Minimum space taken by LTTNG_COMPACT_EVENT_BITS id */
offset += (LTTNG_COMPACT_EVENT_BITS + CHAR_BIT - 1) / CHAR_BIT;
/* Align extended struct on largest member */
- offset += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uint64_t));
+ offset += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uint64_t));
offset += sizeof(uint32_t); /* id */
- offset += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uint64_t));
+ offset += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uint64_t));
offset += sizeof(uint64_t); /* timestamp */
}
break;
case 2: /* large */
- padding = lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uint16_t));
+ padding = lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uint16_t));
offset += padding;
offset += sizeof(uint16_t);
if (!(ctx->rflags & (RING_BUFFER_RFLAG_FULL_TSC | LTTNG_RFLAG_EXTENDED))) {
- offset += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uint32_t));
+ offset += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uint32_t));
offset += sizeof(uint32_t); /* timestamp */
} else {
/* Align extended struct on largest member */
- offset += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uint64_t));
+ offset += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uint64_t));
offset += sizeof(uint32_t); /* id */
- offset += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uint64_t));
+ offset += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uint64_t));
offset += sizeof(uint64_t); /* timestamp */
}
break;
uint16_t id = event_id;
lib_ring_buffer_write(config, ctx, &id, sizeof(id));
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint32_t));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(uint32_t));
lib_ring_buffer_write(config, ctx, ×tamp, sizeof(timestamp));
break;
}
31);
lib_ring_buffer_write(config, ctx, &id, sizeof(id));
/* Align extended struct on largest member */
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint64_t));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(uint64_t));
lib_ring_buffer_write(config, ctx, &event_id, sizeof(event_id));
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint64_t));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(uint64_t));
lib_ring_buffer_write(config, ctx, ×tamp, sizeof(timestamp));
}
break;
uint16_t id = event_id;
lib_ring_buffer_write(config, ctx, &id, sizeof(id));
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint32_t));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(uint32_t));
lib_ring_buffer_write(config, ctx, ×tamp, sizeof(timestamp));
} else {
uint16_t id = 65535;
lib_ring_buffer_write(config, ctx, &id, sizeof(id));
/* Align extended struct on largest member */
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint64_t));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(uint64_t));
lib_ring_buffer_write(config, ctx, &event_id, sizeof(event_id));
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint64_t));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(uint64_t));
lib_ring_buffer_write(config, ctx, ×tamp, sizeof(timestamp));
}
break;
return ustcomm_send_reg_msg(socket,
type,
CAA_BITS_PER_LONG,
- lttng_alignof(uint8_t) * CHAR_BIT,
- lttng_alignof(uint16_t) * CHAR_BIT,
- lttng_alignof(uint32_t) * CHAR_BIT,
- lttng_alignof(uint64_t) * CHAR_BIT,
- lttng_alignof(unsigned long) * CHAR_BIT);
+ lttng_ust_rb_alignof(uint8_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(uint16_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(uint32_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(uint64_t) * CHAR_BIT,
+ lttng_ust_rb_alignof(unsigned long) * CHAR_BIT);
}
static
{
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(char));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(char));
size += sizeof(char); /* tag */
return size;
}
{
char sel_char = (char) LTTNG_UST_DYNAMIC_TYPE_NONE;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(sel_char));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(sel_char));
chan->ops->event_write(ctx, &sel_char, sizeof(sel_char));
}
array_type->alignment = 0;
array_type->encoding = lttng_ust_string_encoding_UTF8;
array_type->elem_type = lttng_ust_create_type_integer(sizeof(char) * CHAR_BIT,
- lttng_alignof(char) * CHAR_BIT, lttng_ust_is_signed_type(char),
+ lttng_ust_rb_alignof(char) * CHAR_BIT, lttng_ust_is_signed_type(char),
BYTE_ORDER, 10);
if (!array_type->elem_type)
goto error_elem;
int sel = test_count % _NR_LTTNG_UST_DYNAMIC_TYPES;
size_t size = 0;
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(char));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(char));
size += sizeof(char); /* tag */
switch (sel) {
case LTTNG_UST_DYNAMIC_TYPE_NONE:
break;
case LTTNG_UST_DYNAMIC_TYPE_S8:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(int8_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(int8_t));
size += sizeof(int8_t); /* variant */
break;
case LTTNG_UST_DYNAMIC_TYPE_S16:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(int16_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(int16_t));
size += sizeof(int16_t); /* variant */
break;
case LTTNG_UST_DYNAMIC_TYPE_S32:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(int32_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(int32_t));
size += sizeof(int32_t); /* variant */
break;
case LTTNG_UST_DYNAMIC_TYPE_S64:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(int64_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(int64_t));
size += sizeof(int64_t); /* variant */
break;
case LTTNG_UST_DYNAMIC_TYPE_U8:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uint8_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uint8_t));
size += sizeof(uint8_t); /* variant */
break;
case LTTNG_UST_DYNAMIC_TYPE_U16:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uint16_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uint16_t));
size += sizeof(uint16_t); /* variant */
break;
case LTTNG_UST_DYNAMIC_TYPE_U32:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uint32_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uint32_t));
size += sizeof(uint32_t); /* variant */
break;
case LTTNG_UST_DYNAMIC_TYPE_U64:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(uint64_t));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(uint64_t));
size += sizeof(uint64_t); /* variant */
break;
case LTTNG_UST_DYNAMIC_TYPE_FLOAT:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(float));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(float));
size += sizeof(float); /* variant */
break;
case LTTNG_UST_DYNAMIC_TYPE_DOUBLE:
- size += lttng_ust_lib_ring_buffer_align(offset, lttng_alignof(double));
+ size += lttng_ust_lib_ring_buffer_align(offset, lttng_ust_rb_alignof(double));
size += sizeof(double); /* variant */
break;
case LTTNG_UST_DYNAMIC_TYPE_STRING:
int sel = test_count % _NR_LTTNG_UST_DYNAMIC_TYPES;
char sel_char = (char) sel;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(char));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(char));
lttng_chan_buf->ops->event_write(ctx, &sel_char, sizeof(sel_char));
switch (sel) {
case LTTNG_UST_DYNAMIC_TYPE_NONE:
{
int8_t v = -8;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
{
int16_t v = -16;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
{
int32_t v = -32;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
{
int64_t v = -64;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
{
uint8_t v = 8;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
{
uint16_t v = 16;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
{
uint32_t v = 32;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
{
uint64_t v = 64;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(v));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(v));
lttng_chan_buf->ops->event_write(ctx, &v, sizeof(v));
break;
}
{
float f = 22322.0;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(f));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(f));
lttng_chan_buf->ops->event_write(ctx, &f, sizeof(f));
break;
}
{
double d = 2.0;
- lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_alignof(d));
+ lttng_ust_lib_ring_buffer_align_ctx(ctx, lttng_ust_rb_alignof(d));
lttng_chan_buf->ops->event_write(ctx, &d, sizeof(d));
break;
}