[rtems commit] record: Add data size to client

Sebastian Huber sebh at rtems.org
Tue Aug 27 06:47:30 UTC 2019


Module:    rtems
Branch:    master
Commit:    e273e7a9a85109bfe5bf5bc790f8c3b0b43f9c07
Changeset: http://git.rtems.org/rtems/commit/?id=e273e7a9a85109bfe5bf5bc790f8c3b0b43f9c07

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Aug 27 08:30:43 2019 +0200

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/include/rtems/recordclient.h    | 1 +
 cpukit/libtrace/record/record-client.c | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/cpukit/include/rtems/recordclient.h b/cpukit/include/rtems/recordclient.h
index 7f21d90..cb1e704 100644
--- a/cpukit/include/rtems/recordclient.h
+++ b/cpukit/include/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;
diff --git a/cpukit/libtrace/record/record-client.c b/cpukit/libtrace/record/record-client.c
index c26893e..e1365fe 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__"



More information about the vc mailing list