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, \
361 p_evt->parameters.packed.size = total_size - LITL_BASE_SIZE; \
373 #define litl_write_probe_pack_1(trace, \
378 int total_size = sizeof(param1); \
379 litl_t* p_evt = __litl_write_get_event(trace, \
384 p_evt->parameters.packed.size = total_size - LITL_BASE_SIZE; \
385 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
386 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
399 #define litl_write_probe_pack_2(trace, \
405 int total_size = sizeof(param1) + sizeof(param2); \
406 litl_t* p_evt = __litl_write_get_event(trace, \
411 p_evt->parameters.packed.size = total_size - LITL_BASE_SIZE; \
412 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
413 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
414 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
428 #define litl_write_probe_pack_3(trace, \
434 int total_size = sizeof(param1) + sizeof(param2) + \
436 litl_t* p_evt = __litl_write_get_event(trace, \
441 p_evt->parameters.packed.size = total_size - LITL_BASE_SIZE; \
442 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
443 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
444 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
445 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
460 #define litl_write_probe_pack_4(trace, \
467 int total_size = sizeof(param1) + sizeof(param2) + \
468 sizeof(param3) + sizeof(param4); \
469 litl_t* p_evt = __litl_write_get_event(trace, \
474 p_evt->parameters.packed.size = total_size - LITL_BASE_SIZE; \
475 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
476 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
477 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
478 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
479 __LITL_WRITE_ADD_ARG(_ptr_, param4); \
495 #define litl_write_probe_pack_5(trace, \
503 int total_size = sizeof(param1) + sizeof(param2) + \
504 sizeof(param3) + sizeof(param4) +sizeof(param5); \
505 litl_t* p_evt = __litl_write_get_event(trace, \
510 p_evt->parameters.packed.size = total_size - LITL_BASE_SIZE; \
511 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
512 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
513 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
514 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
515 __LITL_WRITE_ADD_ARG(_ptr_, param4); \
516 __LITL_WRITE_ADD_ARG(_ptr_, param5); \
533 #define litl_write_probe_pack_6(trace, \
542 int total_size = sizeof(param1) + sizeof(param2) + \
543 sizeof(param3) + sizeof(param4) + sizeof(param5) + sizeof(param6); \
544 litl_t* p_evt = __litl_write_get_event(trace, \
549 p_evt->parameters.packed.size = total_size - LITL_BASE_SIZE; \
550 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
551 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
552 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
553 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
554 __LITL_WRITE_ADD_ARG(_ptr_, param4); \
555 __LITL_WRITE_ADD_ARG(_ptr_, param5); \
556 __LITL_WRITE_ADD_ARG(_ptr_, param6); \
574 #define litl_write_probe_pack_7(trace, \
584 int total_size = sizeof(param1) + sizeof(param2) + \
585 sizeof(param3) + sizeof(param4) + sizeof(param5) + sizeof(param6) \
587 litl_t* p_evt = __litl_write_get_event(trace, \
592 p_evt->parameters.packed.size = total_size - LITL_BASE_SIZE; \
593 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
594 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
595 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
596 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
597 __LITL_WRITE_ADD_ARG(_ptr_, param4); \
598 __LITL_WRITE_ADD_ARG(_ptr_, param5); \
599 __LITL_WRITE_ADD_ARG(_ptr_, param6); \
600 __LITL_WRITE_ADD_ARG(_ptr_, param7); \
619 #define litl_write_probe_pack_8(trace, \
630 int total_size = sizeof(param1) + sizeof(param2) + \
631 sizeof(param3) + sizeof(param4) + sizeof(param5) + sizeof(param6) \
632 + sizeof(param7) + sizeof(param8); \
633 litl_t* p_evt = __litl_write_get_event(trace, \
638 p_evt->parameters.packed.size = total_size - LITL_BASE_SIZE; \
639 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
640 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
641 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
642 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
643 __LITL_WRITE_ADD_ARG(_ptr_, param4); \
644 __LITL_WRITE_ADD_ARG(_ptr_, param5); \
645 __LITL_WRITE_ADD_ARG(_ptr_, param6); \
646 __LITL_WRITE_ADD_ARG(_ptr_, param7); \
647 __LITL_WRITE_ADD_ARG(_ptr_, param8); \
667 #define litl_write_probe_pack_9(trace, \
679 int total_size = sizeof(param1) + sizeof(param2) + \
680 sizeof(param3) + sizeof(param4) + sizeof(param5) + sizeof(param6) \
681 + sizeof(param7) + sizeof(param8) + sizeof(param9); \
682 litl_t* p_evt = __litl_write_get_event(trace, \
687 p_evt->parameters.packed.size = total_size - LITL_BASE_SIZE; \
688 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
689 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
690 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
691 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
692 __LITL_WRITE_ADD_ARG(_ptr_, param4); \
693 __LITL_WRITE_ADD_ARG(_ptr_, param5); \
694 __LITL_WRITE_ADD_ARG(_ptr_, param6); \
695 __LITL_WRITE_ADD_ARG(_ptr_, param7); \
696 __LITL_WRITE_ADD_ARG(_ptr_, param8); \
697 __LITL_WRITE_ADD_ARG(_ptr_, param9); \
718 #define litl_write_probe_pack_10(trace, \
731 int total_size = sizeof(param1) + sizeof(param2) + \
732 sizeof(param3) + sizeof(param4) + sizeof(param5) + sizeof(param6) + \
733 sizeof(param7) + sizeof(param8) + sizeof(param9) + sizeof(param10); \
734 litl_t* p_evt = __litl_write_get_event(trace, \
739 p_evt->parameters.packed.size = total_size - LITL_BASE_SIZE; \
740 void* _ptr_ = &p_evt->parameters.packed.param[0]; \
741 __LITL_WRITE_ADD_ARG(_ptr_, param1); \
742 __LITL_WRITE_ADD_ARG(_ptr_, param2); \
743 __LITL_WRITE_ADD_ARG(_ptr_, param3); \
744 __LITL_WRITE_ADD_ARG(_ptr_, param4); \
745 __LITL_WRITE_ADD_ARG(_ptr_, param5); \
746 __LITL_WRITE_ADD_ARG(_ptr_, param6); \
747 __LITL_WRITE_ADD_ARG(_ptr_, param7); \
748 __LITL_WRITE_ADD_ARG(_ptr_, param8); \
749 __LITL_WRITE_ADD_ARG(_ptr_, param9); \
750 __LITL_WRITE_ADD_ARG(_ptr_, param10); \
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_type_t
The enumeration of event types.
void litl_write_buffer_flush_on(litl_write_trace_t *trace)
Enable buffer flush. By default, it is disabled.
uint64_t litl_param_t
A data type for the non-optimized storage of parameters.
void litl_write_thread_safety_on(litl_write_trace_t *trace)
Enable thread safety.
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_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.
void litl_write_thread_safety_off(litl_write_trace_t *trace)
Disable thread safety. By default, it is enabled.
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.
A data structure for recording events.
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_write_trace_t * litl_write_init_trace(const uint32_t buf_size)
Initializes the trace buffer.
A general structure of LiTL event type.
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.
void litl_write_tid_recording_off(litl_write_trace_t *trace)
Disable recording tid. By default, it is enabled.
void litl_write_finalize_trace(litl_write_trace_t *trace)
Finalizes the trace.
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_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_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.
uint8_t litl_data_t
A data type for the optimized storage of parameters.
litl_types Provides a set of data structures for recording and reading events as well as merging and ...
void litl_write_resume_recording(litl_write_trace_t *trace)
Resumes the event recording.
uint32_t litl_size_t
An auxiliary data type for storing data.
void litl_write_set_filename(litl_write_trace_t *trace, char *filename)
Sets a new name for the trace file.
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_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.
void litl_write_tid_recording_on(litl_write_trace_t *trace)
Enable recording tid.
void litl_write_buffer_flush_off(litl_write_trace_t *trace)
Disable buffer flush.
litl_t * litl_write_probe_reg_0(litl_write_trace_t *trace, litl_code_t code)
Records a regular event without parameters.
void litl_write_pause_recording(litl_write_trace_t *trace)
Pauses the event recording.
uint32_t litl_code_t
A data type for storing events codes.