339 #define __LITL_WRITE_ADD_ARG(ptr, param) do { \
340 typeof(param) _param = param; \
341 memcpy(ptr, &_param, sizeof(_param)); \
342 ptr = ((char*) ptr)+sizeof(_param); \
353 #define litl_write_probe_pack_0(trace, \
356 int total_size = 0; \
357 litl_t* p_evt = __litl_write_get_event(trace, \
370 #define litl_write_probe_pack_1(trace, \
375 int total_size = sizeof(param1); \
376 litl_t* p_evt = __litl_write_get_event(trace, \
381 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
382 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
395 #define litl_write_probe_pack_2(trace, \
401 int total_size = sizeof(param1) + sizeof(param2); \
402 litl_t* p_evt = __litl_write_get_event(trace, \
407 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
408 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
409 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
423 #define litl_write_probe_pack_3(trace, \
429 int total_size = sizeof(param1) + sizeof(param2) + \
431 litl_t* p_evt = __litl_write_get_event(trace, \
436 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
437 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
438 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
439 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
454 #define litl_write_probe_pack_4(trace, \
461 int total_size = sizeof(param1) + sizeof(param2) + \
462 sizeof(param3) + sizeof(param4); \
463 litl_t* p_evt = __litl_write_get_event(trace, \
468 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
469 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
470 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
471 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
472 __LITL_WRITE_ADD_ARG(_ptr_, param4); \
488 #define litl_write_probe_pack_5(trace, \
496 int total_size = sizeof(param1) + sizeof(param2) + \
497 sizeof(param3) + sizeof(param4) +sizeof(param5); \
498 litl_t* p_evt = __litl_write_get_event(trace, \
503 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
504 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
505 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
506 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
507 __LITL_WRITE_ADD_ARG(_ptr_, param4); \
508 __LITL_WRITE_ADD_ARG(_ptr_, param5); \
525 #define litl_write_probe_pack_6(trace, \
534 int total_size = sizeof(param1) + sizeof(param2) + \
535 sizeof(param3) + sizeof(param4) + sizeof(param5) + sizeof(param6); \
536 litl_t* p_evt = __litl_write_get_event(trace, \
541 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
542 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
543 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
544 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
545 __LITL_WRITE_ADD_ARG(_ptr_, param4); \
546 __LITL_WRITE_ADD_ARG(_ptr_, param5); \
547 __LITL_WRITE_ADD_ARG(_ptr_, param6); \
565 #define litl_write_probe_pack_7(trace, \
575 int total_size = sizeof(param1) + sizeof(param2) + \
576 sizeof(param3) + sizeof(param4) + sizeof(param5) + sizeof(param6) \
578 litl_t* p_evt = __litl_write_get_event(trace, \
583 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
584 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
585 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
586 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
587 __LITL_WRITE_ADD_ARG(_ptr_, param4); \
588 __LITL_WRITE_ADD_ARG(_ptr_, param5); \
589 __LITL_WRITE_ADD_ARG(_ptr_, param6); \
590 __LITL_WRITE_ADD_ARG(_ptr_, param7); \
609 #define litl_write_probe_pack_8(trace, \
620 int total_size = sizeof(param1) + sizeof(param2) + \
621 sizeof(param3) + sizeof(param4) + sizeof(param5) + sizeof(param6) \
622 + sizeof(param7) + sizeof(param8); \
623 litl_t* p_evt = __litl_write_get_event(trace, \
628 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
629 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
630 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
631 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
632 __LITL_WRITE_ADD_ARG(_ptr_, param4); \
633 __LITL_WRITE_ADD_ARG(_ptr_, param5); \
634 __LITL_WRITE_ADD_ARG(_ptr_, param6); \
635 __LITL_WRITE_ADD_ARG(_ptr_, param7); \
636 __LITL_WRITE_ADD_ARG(_ptr_, param8); \
657 #define litl_write_probe_pack_9(trace, \
669 int total_size = sizeof(param1) + sizeof(param2) + \
670 sizeof(param3) + sizeof(param4) + sizeof(param5) + sizeof(param6) \
671 + sizeof(param7) + sizeof(param8) + sizeof(param9); \
672 litl_t* p_evt = __litl_write_get_event(trace, \
677 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
678 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
679 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
680 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
681 __LITL_WRITE_ADD_ARG(_ptr_, param4); \
682 __LITL_WRITE_ADD_ARG(_ptr_, param5); \
683 __LITL_WRITE_ADD_ARG(_ptr_, param6); \
684 __LITL_WRITE_ADD_ARG(_ptr_, param7); \
685 __LITL_WRITE_ADD_ARG(_ptr_, param8); \
686 __LITL_WRITE_ADD_ARG(_ptr_, param9); \
707 #define litl_write_probe_pack_10(trace, \
720 int total_size = sizeof(param1) + sizeof(param2) + \
721 sizeof(param3) + sizeof(param4) + sizeof(param5) + sizeof(param6) + \
722 sizeof(param7) + sizeof(param8) + sizeof(param9) + sizeof(param10); \
723 litl_t* p_evt = __litl_write_get_event(trace, \
728 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
729 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
730 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
731 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
732 __LITL_WRITE_ADD_ARG(_ptr_, param4); \
733 __LITL_WRITE_ADD_ARG(_ptr_, param5); \
734 __LITL_WRITE_ADD_ARG(_ptr_, param6); \
735 __LITL_WRITE_ADD_ARG(_ptr_, param7); \
736 __LITL_WRITE_ADD_ARG(_ptr_, param8); \
737 __LITL_WRITE_ADD_ARG(_ptr_, param9); \
738 __LITL_WRITE_ADD_ARG(_ptr_, param10); \
uint64_t litl_param_t
A data type for the non-optimized storage of parameters.
litl_type_t
The enumeration of event types.
uint8_t litl_data_t
A data type for the optimized storage of parameters.
uint32_t litl_size_t
An auxiliary data type for storing data.
uint32_t litl_code_t
A data type for storing events codes.
void litl_write_tid_recording_on(litl_write_trace_t *trace)
Enable recording tid.
void litl_write_pause_recording(litl_write_trace_t *trace)
Pauses the event recording.
void litl_write_buffer_flush_on(litl_write_trace_t *trace)
Enable buffer flush. By default, it is disabled.
void litl_write_finalize_trace(litl_write_trace_t *trace)
Finalizes the trace.
void litl_write_tid_recording_off(litl_write_trace_t *trace)
Disable recording tid. By default, it is enabled.
void litl_write_resume_recording(litl_write_trace_t *trace)
Resumes the event recording.
void litl_write_buffer_flush_off(litl_write_trace_t *trace)
Disable buffer flush.
void litl_write_set_filename(litl_write_trace_t *trace, char *filename)
Sets a new name for the trace file.
void litl_write_thread_safety_on(litl_write_trace_t *trace)
Enable thread safety.
litl_write_trace_t * litl_write_init_trace(const uint32_t buf_size)
Initializes the trace buffer.
void litl_write_thread_safety_off(litl_write_trace_t *trace)
Disable thread safety. By default, it is enabled.
litl_t * __litl_write_get_event(litl_write_trace_t *trace, litl_type_t type, litl_code_t code, int size)
For internal use only. Allocates an event.
litl_t * litl_write_probe_raw(litl_write_trace_t *trace, litl_code_t code, litl_size_t size, litl_data_t data[])
Records an event with data in a string format.
litl_t * litl_write_probe_reg_4(litl_write_trace_t *trace, litl_code_t code, litl_param_t param1, litl_param_t param2, litl_param_t param3, litl_param_t param4)
Records a regular event with 4 parameters.
litl_t * litl_write_probe_reg_9(litl_write_trace_t *trace, litl_code_t code, litl_param_t param1, litl_param_t param2, litl_param_t param3, litl_param_t param4, litl_param_t param5, litl_param_t param6, litl_param_t param7, litl_param_t param8, litl_param_t param9)
Records a regular event with 9 parameters.
litl_t * litl_write_probe_reg_1(litl_write_trace_t *trace, litl_code_t code, litl_param_t param1)
Records a regular event with 1 parameter.
litl_t * litl_write_probe_reg_10(litl_write_trace_t *trace, litl_code_t code, litl_param_t param1, litl_param_t param2, litl_param_t param3, litl_param_t param4, litl_param_t param5, litl_param_t param6, litl_param_t param7, litl_param_t param8, litl_param_t param9, litl_param_t param10)
Records a regular event with 10 parameters.
litl_t * litl_write_probe_reg_7(litl_write_trace_t *trace, litl_code_t code, litl_param_t param1, litl_param_t param2, litl_param_t param3, litl_param_t param4, litl_param_t param5, litl_param_t param6, litl_param_t param7)
Records a regular event with 7 parameters.
litl_t * litl_write_probe_reg_6(litl_write_trace_t *trace, litl_code_t code, litl_param_t param1, litl_param_t param2, litl_param_t param3, litl_param_t param4, litl_param_t param5, litl_param_t param6)
Records a regular event with 6 parameters.
litl_t * litl_write_probe_reg_8(litl_write_trace_t *trace, litl_code_t code, litl_param_t param1, litl_param_t param2, litl_param_t param3, litl_param_t param4, litl_param_t param5, litl_param_t param6, litl_param_t param7, litl_param_t param8)
Records a regular event with 8 parameters.
litl_t * litl_write_probe_reg_5(litl_write_trace_t *trace, litl_code_t code, litl_param_t param1, litl_param_t param2, litl_param_t param3, litl_param_t param4, litl_param_t param5)
Records a regular event with 5 parameters.
litl_t * litl_write_probe_reg_0(litl_write_trace_t *trace, litl_code_t code)
Records a regular event without parameters.
litl_t * litl_write_probe_reg_2(litl_write_trace_t *trace, litl_code_t code, litl_param_t param1, litl_param_t param2)
Records a regular event with 2 parameters.
litl_t * litl_write_probe_reg_3(litl_write_trace_t *trace, litl_code_t code, litl_param_t param1, litl_param_t param2, litl_param_t param3)
Records a regular event with 3 parameters.
litl_types Provides a set of data structures for recording and reading events as well as merging and ...
A general structure of LiTL event type.
A data structure for recording events.