From e273e7a9a85109bfe5bf5bc790f8c3b0b43f9c07 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 27 Aug 2019 08:30:43 +0200 Subject: record: Add data size to client This is necessary to get the thread names properly on 32-bit and 64-bit targets. Update #3665. --- cpukit/libtrace/record/record-client.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'cpukit/libtrace') diff --git a/cpukit/libtrace/record/record-client.c b/cpukit/libtrace/record/record-client.c index c26893ec4c..e1365fed6f 100644 --- a/cpukit/libtrace/record/record-client.c +++ b/cpukit/libtrace/record/record-client.c @@ -615,22 +615,26 @@ static rtems_record_client_status consume_init( ctx->todo = sizeof( ctx->item.format_32 ); ctx->pos = &ctx->item.format_32; ctx->consume = consume_32; + ctx->data_size = 4; break; case RTEMS_RECORD_FORMAT_LE_64: ctx->todo = sizeof( ctx->item.format_64 ); ctx->pos = &ctx->item.format_64; ctx->consume = consume_64; + ctx->data_size = 8; break; case RTEMS_RECORD_FORMAT_BE_32: ctx->todo = sizeof( ctx->item.format_32 ); ctx->pos = &ctx->item.format_32; ctx->consume = consume_swap_32; + ctx->data_size = 4; magic = __builtin_bswap32( magic ); break; case RTEMS_RECORD_FORMAT_BE_64: ctx->todo = sizeof( ctx->item.format_64 ); ctx->pos = &ctx->item.format_64; ctx->consume = consume_swap_64; + ctx->data_size = 8; magic = __builtin_bswap32( magic ); break; #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ @@ -638,23 +642,27 @@ static rtems_record_client_status consume_init( ctx->todo = sizeof( ctx->item.format_32 ); ctx->pos = &ctx->item.format_32; ctx->consume = consume_swap_32; + ctx->data_size = 4; magic = __builtin_bswap32( magic ); break; case RTEMS_RECORD_FORMAT_LE_64: ctx->todo = sizeof( ctx->item.format_64 ); ctx->pos = &ctx->item.format_64; ctx->consume = consume_swap_64; + ctx->data_size = 8; magic = __builtin_bswap32( magic ); break; case RTEMS_RECORD_FORMAT_BE_32: ctx->todo = sizeof( ctx->item.format_32 ); ctx->pos = &ctx->item.format_32; ctx->consume = consume_32; + ctx->data_size = 4; break; case RTEMS_RECORD_FORMAT_BE_64: ctx->todo = sizeof( ctx->item.format_64 ); ctx->pos = &ctx->item.format_64; ctx->consume = consume_64; + ctx->data_size = 8; break; #else #error "unexpected __BYTE_ORDER__" -- cgit v1.2.3