GSoC Project | Basic Support for Trace Compass

Sebastian Huber sebastian.huber at embedded-brains.de
Thu Jun 20 09:54:58 UTC 2019


----- Am 20. Jun 2019 um 11:47 schrieb Ravindra Kumar Meena rmeena840 at gmail.com:

>>
>> This is very good news. Writing the event stream is the easy part. Just
>> fwrite() the events in the modified print_item(). Your TSDL in the metadata
>> file must describe this event stream.
>>
> Yes. That's what I am trying today. You suggested that I have to convert
> client_item(see below)
> typedef struct client_item {
>  union {
>    SLIST_ENTRY( client_item ) free_node;
>    RB_ENTRY( client_item )    active_node;
>  };
>  uint64_t                     ns;
>  uint32_t                     cpu;
>  rtems_record_event           event;
>  uint64_t                     data;
>  uint64_t                     counter;
> } client_item;
> 
> to
> 
> typedef struct ctf_event {
>  uint64_t                     ns;
>  uint32_t                     cpu;
>  rtems_record_event           event;
>  uint64_t                     data;
>  uint64_t                     counter;

Please remove the counter. It is only used internally in the client.


> } ctf_event;
> 
> I did that but rtems-tools build is failing because I think some part of
> the codebase is dependent on
> union {
>    SLIST_ENTRY( client_item ) free_node;
>    RB_ENTRY( client_item )    active_node;
>  };
> 
> How should I deal with it?

Why do you want to change struct client_item? You should create a struct ctf_event variable in print_item() on the stack, initialize it with the values handed over in the client item and fwrite() it to the event stream.


More information about the devel mailing list