diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-08-27 08:30:43 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-08-27 08:48:28 +0200 |
commit | 3f45f38fc88abc9c6a662176cb46191145204a46 (patch) | |
tree | 180d0ddf7f41151301ff684400562a7ec8d41555 /trace/record | |
parent | record: Add CPU to idle thread names (diff) | |
download | rtems-tools-3f45f38fc88abc9c6a662176cb46191145204a46.tar.bz2 |
record: Add data size to client
This is necessary to get the thread names properly on 32-bit and 64-bit
targets.
Update #3665.
Diffstat (limited to 'trace/record')
-rw-r--r-- | trace/record/record-client.c | 8 | ||||
-rw-r--r-- | trace/record/rtems/recordclient.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/trace/record/record-client.c b/trace/record/record-client.c index c26893e..e1365fe 100644 --- a/trace/record/record-client.c +++ b/trace/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__" diff --git a/trace/record/rtems/recordclient.h b/trace/record/rtems/recordclient.h index 7f21d90..cb1e704 100644 --- a/trace/record/rtems/recordclient.h +++ b/trace/record/rtems/recordclient.h @@ -155,6 +155,7 @@ typedef struct rtems_record_client_context { ); rtems_record_client_handler handler; void *handler_arg; + size_t data_size; uint32_t header[ 2 ]; rtems_record_client_status status; } rtems_record_client_context; |