forked from Imagelibrary/rtems
record: Add more system events
Reduce the system dependencies to allow tracing of very low level functions, for example the interrupt disable/enable. Introduce general purpose RTEMS_RECORD_CALLER and RTEMS_RECORD_LINE events. Update #3665.
This commit is contained in:
@@ -477,6 +477,7 @@ librtemscpu_a_SOURCES += libtrace/record/record-server.c
|
||||
librtemscpu_a_SOURCES += libtrace/record/record-sysinit.c
|
||||
librtemscpu_a_SOURCES += libtrace/record/record-text.c
|
||||
librtemscpu_a_SOURCES += libtrace/record/record-userext.c
|
||||
librtemscpu_a_SOURCES += libtrace/record/record-util.c
|
||||
librtemscpu_a_SOURCES += posix/src/adjtime.c
|
||||
librtemscpu_a_SOURCES += posix/src/aio_suspend.c
|
||||
librtemscpu_a_SOURCES += posix/src/barrierattrdestroy.c
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
#include <rtems/score/cpu.h>
|
||||
#include <rtems/score/percpu.h>
|
||||
#include <rtems/score/watchdog.h>
|
||||
#include <rtems/rtems/intr.h>
|
||||
#include <rtems/counter.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -57,10 +56,10 @@ typedef struct {
|
||||
} Record_Configuration;
|
||||
|
||||
typedef struct {
|
||||
Record_Control *control;
|
||||
unsigned int head;
|
||||
uint32_t now;
|
||||
rtems_interrupt_level level;
|
||||
Record_Control *control;
|
||||
unsigned int head;
|
||||
uint32_t now;
|
||||
uint32_t level;
|
||||
} rtems_record_context;
|
||||
|
||||
extern const Record_Configuration _Record_Configuration;
|
||||
@@ -165,6 +164,114 @@ typedef struct RTEMS_PACKED {
|
||||
|
||||
void _Record_Stream_header_initialize( Record_Stream_header *header );
|
||||
|
||||
void _Record_Caller( void *return_address );
|
||||
|
||||
void _Record_Caller_3(
|
||||
void *return_address,
|
||||
rtems_record_event event,
|
||||
rtems_record_data data
|
||||
);
|
||||
|
||||
void _Record_Caller_4(
|
||||
void *return_address,
|
||||
rtems_record_event event_0,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_event event_1,
|
||||
rtems_record_data data_1
|
||||
);
|
||||
|
||||
void _Record_Caller_arg( void *return_address, rtems_record_data data );
|
||||
|
||||
void _Record_Caller_arg_2(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1
|
||||
);
|
||||
|
||||
void _Record_Caller_arg_3(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2
|
||||
);
|
||||
|
||||
void _Record_Caller_arg_4(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3
|
||||
);
|
||||
|
||||
void _Record_Caller_arg_5(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4
|
||||
);
|
||||
|
||||
void _Record_Caller_arg_6(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5
|
||||
);
|
||||
|
||||
void _Record_Caller_arg_7(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6
|
||||
);
|
||||
|
||||
void _Record_Caller_arg_8(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6,
|
||||
rtems_record_data data_7
|
||||
);
|
||||
|
||||
void _Record_Caller_arg_9(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6,
|
||||
rtems_record_data data_7,
|
||||
rtems_record_data data_8
|
||||
);
|
||||
|
||||
void _Record_Caller_arg_10(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6,
|
||||
rtems_record_data data_7,
|
||||
rtems_record_data data_8,
|
||||
rtems_record_data data_9
|
||||
);
|
||||
|
||||
/**
|
||||
* @addtogroup RTEMSRecord
|
||||
*
|
||||
@@ -212,12 +319,13 @@ RTEMS_INLINE_ROUTINE void rtems_record_prepare_critical(
|
||||
*/
|
||||
RTEMS_INLINE_ROUTINE void rtems_record_prepare( rtems_record_context *context )
|
||||
{
|
||||
rtems_interrupt_level level;
|
||||
uint32_t level;
|
||||
const Per_CPU_Control *cpu_self;
|
||||
Record_Control *control;
|
||||
unsigned int head;
|
||||
|
||||
rtems_interrupt_local_disable( level );
|
||||
_CPU_ISR_Disable( level );
|
||||
RTEMS_COMPILER_MEMORY_BARRIER();
|
||||
context->now = RTEMS_RECORD_TIME_EVENT( _Record_Now(), 0 );
|
||||
context->level = level;
|
||||
cpu_self = _Per_CPU_Get();
|
||||
@@ -277,7 +385,8 @@ RTEMS_INLINE_ROUTINE void rtems_record_commit_critical( rtems_record_context *co
|
||||
RTEMS_INLINE_ROUTINE void rtems_record_commit( rtems_record_context *context )
|
||||
{
|
||||
rtems_record_commit_critical( context );
|
||||
rtems_interrupt_local_enable( context->level );
|
||||
RTEMS_COMPILER_MEMORY_BARRIER();
|
||||
_CPU_ISR_Enable( context->level );
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -314,6 +423,631 @@ void rtems_record_produce_n(
|
||||
size_t n
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_LINE event.
|
||||
*
|
||||
* The event data is the address of the call to this function.
|
||||
*/
|
||||
void rtems_record_line( void );
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_LINE event and an extra event.
|
||||
*
|
||||
* The event data is the address of the call to this function.
|
||||
*
|
||||
* @param event The record event without a time stamp for the second item.
|
||||
* @param data The record data for the second item.
|
||||
*/
|
||||
void rtems_record_line_2(
|
||||
rtems_record_event event,
|
||||
rtems_record_data data
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_LINE event and two extra events.
|
||||
*
|
||||
* The event data is the address of the call to this function.
|
||||
*
|
||||
* @param event_0 The record event without a time stamp for the second item.
|
||||
* @param data_0 The record data for the second item.
|
||||
* @param event_1 The record event without a time stamp for the third item.
|
||||
* @param data_1 The record data for the third item.
|
||||
*/
|
||||
void rtems_record_line_3(
|
||||
rtems_record_event event_0,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_event event_1,
|
||||
rtems_record_data data_1
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_LINE event and one argument event.
|
||||
*
|
||||
* The event data of the RTEMS_RECORD_LINE event is the address of the call to
|
||||
* this function.
|
||||
*
|
||||
* @param data The RTEMS_RECORD_ARG_0 event data.
|
||||
*/
|
||||
void rtems_record_line_arg( rtems_record_data data );
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_LINE event and two argument events.
|
||||
*
|
||||
* The event data of the RTEMS_RECORD_LINE event is the address of the call to
|
||||
* this function.
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
*/
|
||||
void rtems_record_line_arg_2(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_LINE event and three argument events.
|
||||
*
|
||||
* The event data of the RTEMS_RECORD_LINE event is the address of the call to
|
||||
* this function.
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
*/
|
||||
void rtems_record_line_arg_3(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_LINE event and four argument events.
|
||||
*
|
||||
* The event data of the RTEMS_RECORD_LINE event is the address of the call to
|
||||
* this function.
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
* @param data_3 The RTEMS_RECORD_ARG_3 event data.
|
||||
*/
|
||||
void rtems_record_line_arg_4(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_LINE event and five argument events.
|
||||
*
|
||||
* The event data of the RTEMS_RECORD_LINE event is the address of the call to
|
||||
* this function.
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
* @param data_3 The RTEMS_RECORD_ARG_3 event data.
|
||||
* @param data_4 The RTEMS_RECORD_ARG_4 event data.
|
||||
*/
|
||||
void rtems_record_line_arg_5(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_LINE event and six argument events.
|
||||
*
|
||||
* The event data of the RTEMS_RECORD_LINE event is the address of the call to
|
||||
* this function.
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
* @param data_3 The RTEMS_RECORD_ARG_3 event data.
|
||||
* @param data_4 The RTEMS_RECORD_ARG_4 event data.
|
||||
* @param data_5 The RTEMS_RECORD_ARG_5 event data.
|
||||
*/
|
||||
void rtems_record_line_arg_6(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_LINE event and seven argument events.
|
||||
*
|
||||
* The event data of the RTEMS_RECORD_LINE event is the address of the call to
|
||||
* this function.
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
* @param data_3 The RTEMS_RECORD_ARG_3 event data.
|
||||
* @param data_4 The RTEMS_RECORD_ARG_4 event data.
|
||||
* @param data_5 The RTEMS_RECORD_ARG_5 event data.
|
||||
* @param data_6 The RTEMS_RECORD_ARG_6 event data.
|
||||
*/
|
||||
void rtems_record_line_arg_7(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_LINE event and eight argument events.
|
||||
*
|
||||
* The event data of the RTEMS_RECORD_LINE event is the address of the call to
|
||||
* this function.
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
* @param data_3 The RTEMS_RECORD_ARG_3 event data.
|
||||
* @param data_4 The RTEMS_RECORD_ARG_4 event data.
|
||||
* @param data_5 The RTEMS_RECORD_ARG_5 event data.
|
||||
* @param data_6 The RTEMS_RECORD_ARG_6 event data.
|
||||
* @param data_7 The RTEMS_RECORD_ARG_7 event data.
|
||||
*/
|
||||
void rtems_record_line_arg_8(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6,
|
||||
rtems_record_data data_7
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_LINE event and nine argument events.
|
||||
*
|
||||
* The event data of the RTEMS_RECORD_LINE event is the address of the call to
|
||||
* this function.
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
* @param data_3 The RTEMS_RECORD_ARG_3 event data.
|
||||
* @param data_4 The RTEMS_RECORD_ARG_4 event data.
|
||||
* @param data_5 The RTEMS_RECORD_ARG_5 event data.
|
||||
* @param data_6 The RTEMS_RECORD_ARG_6 event data.
|
||||
* @param data_7 The RTEMS_RECORD_ARG_7 event data.
|
||||
* @param data_8 The RTEMS_RECORD_ARG_8 event data.
|
||||
*/
|
||||
void rtems_record_line_arg_9(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6,
|
||||
rtems_record_data data_7,
|
||||
rtems_record_data data_8
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_LINE event and ten argument events.
|
||||
*
|
||||
* The event data of the RTEMS_RECORD_LINE event is the address of the call to
|
||||
* this function.
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
* @param data_3 The RTEMS_RECORD_ARG_3 event data.
|
||||
* @param data_4 The RTEMS_RECORD_ARG_4 event data.
|
||||
* @param data_5 The RTEMS_RECORD_ARG_5 event data.
|
||||
* @param data_6 The RTEMS_RECORD_ARG_6 event data.
|
||||
* @param data_7 The RTEMS_RECORD_ARG_7 event data.
|
||||
* @param data_8 The RTEMS_RECORD_ARG_8 event data.
|
||||
* @param data_9 The RTEMS_RECORD_ARG_9 event data.
|
||||
*/
|
||||
void rtems_record_line_arg_10(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6,
|
||||
rtems_record_data data_7,
|
||||
rtems_record_data data_8,
|
||||
rtems_record_data data_9
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_CALLER and an RTEMS_RECORD_LINE event.
|
||||
*
|
||||
* The RTEMS_RECORD_CALLER event data is the return address of the function
|
||||
* calling rtems_record_caller().
|
||||
*
|
||||
* The RTEMS_RECORD_LINE event data is the address of the call to
|
||||
* rtems_record_caller().
|
||||
*/
|
||||
|
||||
#define rtems_record_caller() _Record_Caller( RTEMS_RETURN_ADDRESS() )
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_CALLER, an RTEMS_RECORD_LINE event, and an
|
||||
* extra event.
|
||||
*
|
||||
* The RTEMS_RECORD_CALLER event data is the return address of the function
|
||||
* calling rtems_record_caller_3().
|
||||
*
|
||||
* The RTEMS_RECORD_LINE event data is the address of the call to
|
||||
* rtems_record_caller_3().
|
||||
*
|
||||
* @param event The record event without a time stamp for the third item.
|
||||
* @param data The record data for the third item.
|
||||
*/
|
||||
#define rtems_record_caller_3( event, data ) \
|
||||
_Record_Caller_3( RTEMS_RETURN_ADDRESS(), event, data )
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_CALLER, an RTEMS_RECORD_LINE event, and two
|
||||
* extra events.
|
||||
*
|
||||
* The RTEMS_RECORD_CALLER event data is the return address of the function
|
||||
* calling rtems_record_caller_4().
|
||||
*
|
||||
* The RTEMS_RECORD_LINE event data is the address of the call to
|
||||
* rtems_record_caller_4().
|
||||
*
|
||||
* @param event_0 The record event without a time stamp for the third item.
|
||||
* @param data_0 The record data for the third item.
|
||||
* @param event_1 The record event without a time stamp for the fourth item.
|
||||
* @param data_1 The record data for the fourth item.
|
||||
*/
|
||||
#define rtems_record_caller_4( event_0, data_0, event_1, data_1 ) \
|
||||
_Record_Caller_4( \
|
||||
RTEMS_RETURN_ADDRESS(), \
|
||||
event_0, \
|
||||
data_0, \
|
||||
event_1, \
|
||||
data_1 \
|
||||
)
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_CALLER event, an RTEMS_RECORD_LINE event,
|
||||
* and one argument event.
|
||||
*
|
||||
* The RTEMS_RECORD_CALLER event data is the return address of the function
|
||||
* calling rtems_record_caller_arg().
|
||||
*
|
||||
* The RTEMS_RECORD_LINE event data is the address of the call to
|
||||
* rtems_record_caller_arg().
|
||||
*
|
||||
* @param data The RTEMS_RECORD_ARG_0 event data.
|
||||
*/
|
||||
#define rtems_record_caller_arg( data ) \
|
||||
_Record_Caller_arg( RTEMS_RETURN_ADDRESS(), data )
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_CALLER event, an RTEMS_RECORD_LINE event,
|
||||
* and two argument events.
|
||||
*
|
||||
* The RTEMS_RECORD_CALLER event data is the return address of the function
|
||||
* calling rtems_record_caller_arg_2().
|
||||
*
|
||||
* The RTEMS_RECORD_LINE event data is the address of the call to
|
||||
* rtems_record_caller_arg_2().
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
*/
|
||||
#define rtems_record_caller_arg_2( data_0, data_1 ) \
|
||||
_Record_Caller_arg_2( \
|
||||
RTEMS_RETURN_ADDRESS(), \
|
||||
data_0, \
|
||||
data_1 \
|
||||
)
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_CALLER event, an RTEMS_RECORD_LINE event,
|
||||
* and three argument events.
|
||||
*
|
||||
* The RTEMS_RECORD_CALLER event data is the return address of the function
|
||||
* calling rtems_record_caller_arg_3().
|
||||
*
|
||||
* The RTEMS_RECORD_LINE event data is the address of the call to
|
||||
* rtems_record_caller_arg_3().
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
*/
|
||||
#define rtems_record_caller_arg_3( data_0, data_1, data_2 ) \
|
||||
_Record_Caller_arg_3( \
|
||||
RTEMS_RETURN_ADDRESS(), \
|
||||
data_0, \
|
||||
data_1, \
|
||||
data_2 \
|
||||
)
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_CALLER event, an RTEMS_RECORD_LINE event,
|
||||
* and four argument events.
|
||||
*
|
||||
* The RTEMS_RECORD_CALLER event data is the return address of the function
|
||||
* calling rtems_record_caller_arg_4().
|
||||
*
|
||||
* The RTEMS_RECORD_LINE event data is the address of the call to
|
||||
* rtems_record_caller_arg_4().
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
* @param data_3 The RTEMS_RECORD_ARG_3 event data.
|
||||
*/
|
||||
#define rtems_record_caller_arg_4( data_0, data_1, data_2, data_3 ) \
|
||||
_Record_Caller_arg_4( \
|
||||
RTEMS_RETURN_ADDRESS(), \
|
||||
data_0, \
|
||||
data_1, \
|
||||
data_2, \
|
||||
data_3 \
|
||||
)
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_CALLER event, an RTEMS_RECORD_LINE event,
|
||||
* and five argument events.
|
||||
*
|
||||
* The RTEMS_RECORD_CALLER event data is the return address of the function
|
||||
* calling rtems_record_caller_arg_5().
|
||||
*
|
||||
* The RTEMS_RECORD_LINE event data is the address of the call to
|
||||
* rtems_record_caller_arg_5().
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
* @param data_3 The RTEMS_RECORD_ARG_3 event data.
|
||||
* @param data_4 The RTEMS_RECORD_ARG_4 event data.
|
||||
*/
|
||||
#define rtems_record_caller_arg_5( data_0, data_1, data_2, data_3, data_4 ) \
|
||||
_Record_Caller_arg_5( \
|
||||
RTEMS_RETURN_ADDRESS(), \
|
||||
data_0, \
|
||||
data_1, \
|
||||
data_2, \
|
||||
data_3, \
|
||||
data_4 \
|
||||
)
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_CALLER event, an RTEMS_RECORD_LINE event,
|
||||
* and six argument events.
|
||||
*
|
||||
* The RTEMS_RECORD_CALLER event data is the return address of the function
|
||||
* calling rtems_record_caller_arg_6().
|
||||
*
|
||||
* The RTEMS_RECORD_LINE event data is the address of the call to
|
||||
* rtems_record_caller_arg_6().
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
* @param data_3 The RTEMS_RECORD_ARG_3 event data.
|
||||
* @param data_4 The RTEMS_RECORD_ARG_4 event data.
|
||||
* @param data_5 The RTEMS_RECORD_ARG_5 event data.
|
||||
*/
|
||||
#define rtems_record_caller_arg_6( \
|
||||
data_0, \
|
||||
data_1, \
|
||||
data_2, \
|
||||
data_3, \
|
||||
data_4, \
|
||||
data_5 \
|
||||
) \
|
||||
_Record_Caller_arg_6( \
|
||||
RTEMS_RETURN_ADDRESS(), \
|
||||
data_0, \
|
||||
data_1, \
|
||||
data_2, \
|
||||
data_3, \
|
||||
data_4, \
|
||||
data_5 \
|
||||
)
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_CALLER event, an RTEMS_RECORD_LINE event,
|
||||
* and seven argument events.
|
||||
*
|
||||
* The RTEMS_RECORD_CALLER event data is the return address of the function
|
||||
* calling rtems_record_caller_arg_7().
|
||||
*
|
||||
* The RTEMS_RECORD_LINE event data is the address of the call to
|
||||
* rtems_record_caller_arg_7().
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
* @param data_3 The RTEMS_RECORD_ARG_3 event data.
|
||||
* @param data_4 The RTEMS_RECORD_ARG_4 event data.
|
||||
* @param data_5 The RTEMS_RECORD_ARG_5 event data.
|
||||
* @param data_6 The RTEMS_RECORD_ARG_6 event data.
|
||||
*/
|
||||
#define rtems_record_caller_arg_7( \
|
||||
data_0, \
|
||||
data_1, \
|
||||
data_2, \
|
||||
data_3, \
|
||||
data_4, \
|
||||
data_5, \
|
||||
data_6 \
|
||||
) \
|
||||
_Record_Caller_arg_7( \
|
||||
RTEMS_RETURN_ADDRESS(), \
|
||||
data_0, \
|
||||
data_1, \
|
||||
data_2, \
|
||||
data_3, \
|
||||
data_4, \
|
||||
data_5, \
|
||||
data_6 \
|
||||
)
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_CALLER event, an RTEMS_RECORD_LINE event,
|
||||
* and eight argument events.
|
||||
*
|
||||
* The RTEMS_RECORD_CALLER event data is the return address of the function
|
||||
* calling rtems_record_caller_arg_8().
|
||||
*
|
||||
* The RTEMS_RECORD_LINE event data is the address of the call to
|
||||
* rtems_record_caller_arg_8().
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
* @param data_3 The RTEMS_RECORD_ARG_3 event data.
|
||||
* @param data_4 The RTEMS_RECORD_ARG_4 event data.
|
||||
* @param data_5 The RTEMS_RECORD_ARG_5 event data.
|
||||
* @param data_6 The RTEMS_RECORD_ARG_6 event data.
|
||||
* @param data_7 The RTEMS_RECORD_ARG_7 event data.
|
||||
*/
|
||||
#define rtems_record_caller_arg_8( \
|
||||
data_0, \
|
||||
data_1, \
|
||||
data_2, \
|
||||
data_3, \
|
||||
data_4, \
|
||||
data_5, \
|
||||
data_6, \
|
||||
data_7 \
|
||||
) \
|
||||
_Record_Caller_arg_8( \
|
||||
RTEMS_RETURN_ADDRESS(), \
|
||||
data_0, \
|
||||
data_1, \
|
||||
data_2, \
|
||||
data_3, \
|
||||
data_4, \
|
||||
data_5, \
|
||||
data_6, \
|
||||
data_7 \
|
||||
)
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_CALLER event, an RTEMS_RECORD_LINE event,
|
||||
* and nine argument events.
|
||||
*
|
||||
* The RTEMS_RECORD_CALLER event data is the return address of the function
|
||||
* calling rtems_record_caller_arg_9().
|
||||
*
|
||||
* The RTEMS_RECORD_LINE event data is the address of the call to
|
||||
* rtems_record_caller_arg_9().
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
* @param data_3 The RTEMS_RECORD_ARG_3 event data.
|
||||
* @param data_4 The RTEMS_RECORD_ARG_4 event data.
|
||||
* @param data_5 The RTEMS_RECORD_ARG_5 event data.
|
||||
* @param data_6 The RTEMS_RECORD_ARG_6 event data.
|
||||
* @param data_7 The RTEMS_RECORD_ARG_7 event data.
|
||||
* @param data_8 The RTEMS_RECORD_ARG_8 event data.
|
||||
*/
|
||||
#define rtems_record_caller_arg_9( \
|
||||
data_0, \
|
||||
data_1, \
|
||||
data_2, \
|
||||
data_3, \
|
||||
data_4, \
|
||||
data_5, \
|
||||
data_6, \
|
||||
data_7, \
|
||||
data_8 \
|
||||
) \
|
||||
_Record_Caller_arg_9( \
|
||||
RTEMS_RETURN_ADDRESS(), \
|
||||
data_0, \
|
||||
data_1, \
|
||||
data_2, \
|
||||
data_3, \
|
||||
data_4, \
|
||||
data_5, \
|
||||
data_6, \
|
||||
data_7, \
|
||||
data_8 \
|
||||
)
|
||||
|
||||
/**
|
||||
* @brief Generates an RTEMS_RECORD_CALLER event, an RTEMS_RECORD_LINE event,
|
||||
* and ten argument events.
|
||||
*
|
||||
* The RTEMS_RECORD_CALLER event data is the return address of the function
|
||||
* calling rtems_record_caller_arg_10().
|
||||
*
|
||||
* The RTEMS_RECORD_LINE event data is the address of the call to
|
||||
* rtems_record_caller_arg_10().
|
||||
*
|
||||
* @param data_0 The RTEMS_RECORD_ARG_0 event data.
|
||||
* @param data_1 The RTEMS_RECORD_ARG_1 event data.
|
||||
* @param data_2 The RTEMS_RECORD_ARG_2 event data.
|
||||
* @param data_3 The RTEMS_RECORD_ARG_3 event data.
|
||||
* @param data_4 The RTEMS_RECORD_ARG_4 event data.
|
||||
* @param data_5 The RTEMS_RECORD_ARG_5 event data.
|
||||
* @param data_6 The RTEMS_RECORD_ARG_6 event data.
|
||||
* @param data_7 The RTEMS_RECORD_ARG_7 event data.
|
||||
* @param data_8 The RTEMS_RECORD_ARG_8 event data.
|
||||
* @param data_10 The RTEMS_RECORD_ARG_10 event data.
|
||||
*/
|
||||
#define rtems_record_caller_arg_10( \
|
||||
data_0, \
|
||||
data_1, \
|
||||
data_2, \
|
||||
data_3, \
|
||||
data_4, \
|
||||
data_5, \
|
||||
data_6, \
|
||||
data_7, \
|
||||
data_8, \
|
||||
data_9 \
|
||||
) \
|
||||
_Record_Caller_arg_10( \
|
||||
RTEMS_RETURN_ADDRESS(), \
|
||||
data_0, \
|
||||
data_1, \
|
||||
data_2, \
|
||||
data_3, \
|
||||
data_4, \
|
||||
data_5, \
|
||||
data_6, \
|
||||
data_7, \
|
||||
data_8, \
|
||||
data_9 \
|
||||
)
|
||||
|
||||
/**
|
||||
* @brief Disables interrupts and generates an RTEMS_RECORD_ISR_DISABLE event.
|
||||
*
|
||||
* @return The previous interrupt level.
|
||||
*/
|
||||
uint32_t rtems_record_interrupt_disable( void );
|
||||
|
||||
/**
|
||||
* @brief Restores the previous interrupt level and generates an
|
||||
* RTEMS_RECORD_ISR_ENABLE event.
|
||||
*
|
||||
* @param level The previous interrupt level. Must be the return value of the
|
||||
* corresponding rtems_record_interrupt_disable().
|
||||
*/
|
||||
void rtems_record_interrupt_enable( uint32_t level );
|
||||
|
||||
typedef void ( *rtems_record_drain_visitor )(
|
||||
const rtems_record_item *items,
|
||||
size_t count,
|
||||
|
||||
@@ -55,7 +55,7 @@ extern "C" {
|
||||
* The record version reflects the record event definitions. It is reported by
|
||||
* the RTEMS_RECORD_VERSION event.
|
||||
*/
|
||||
#define RTEMS_RECORD_THE_VERSION 5
|
||||
#define RTEMS_RECORD_THE_VERSION 6
|
||||
|
||||
/**
|
||||
* @brief The items are in 32-bit little-endian format.
|
||||
@@ -98,9 +98,21 @@ typedef enum {
|
||||
*/
|
||||
RTEMS_RECORD_ACCEPT_ENTRY,
|
||||
RTEMS_RECORD_ACCEPT_EXIT,
|
||||
RTEMS_RECORD_ADDRESS,
|
||||
RTEMS_RECORD_ARG_0,
|
||||
RTEMS_RECORD_ARG_1,
|
||||
RTEMS_RECORD_ARG_2,
|
||||
RTEMS_RECORD_ARG_3,
|
||||
RTEMS_RECORD_ARG_4,
|
||||
RTEMS_RECORD_ARG_5,
|
||||
RTEMS_RECORD_ARG_6,
|
||||
RTEMS_RECORD_ARG_7,
|
||||
RTEMS_RECORD_ARG_8,
|
||||
RTEMS_RECORD_ARG_9,
|
||||
RTEMS_RECORD_BIND_ENTRY,
|
||||
RTEMS_RECORD_BIND_EXIT,
|
||||
RTEMS_RECORD_BUFFER,
|
||||
RTEMS_RECORD_CALLER,
|
||||
RTEMS_RECORD_CHOWN_ENTRY,
|
||||
RTEMS_RECORD_CHOWN_EXIT,
|
||||
RTEMS_RECORD_CLOSE_ENTRY,
|
||||
@@ -145,11 +157,21 @@ typedef enum {
|
||||
RTEMS_RECORD_IP6_OUTPUT,
|
||||
RTEMS_RECORD_IP_INPUT,
|
||||
RTEMS_RECORD_IP_OUTPUT,
|
||||
RTEMS_RECORD_ISR_DISABLE,
|
||||
RTEMS_RECORD_ISR_ENABLE,
|
||||
RTEMS_RECORD_ISR_LOCK_ACQUIRE_ENTRY,
|
||||
RTEMS_RECORD_ISR_LOCK_ACQUIRE_EXIT,
|
||||
RTEMS_RECORD_ISR_LOCK_ADDRESS,
|
||||
RTEMS_RECORD_ISR_LOCK_DESTROY,
|
||||
RTEMS_RECORD_ISR_LOCK_INITIALIZE,
|
||||
RTEMS_RECORD_ISR_LOCK_NAME,
|
||||
RTEMS_RECORD_ISR_LOCK_RELEASE,
|
||||
RTEMS_RECORD_KEVENT_ENTRY,
|
||||
RTEMS_RECORD_KEVENT_EXIT,
|
||||
RTEMS_RECORD_KQUEUE_ENTRY,
|
||||
RTEMS_RECORD_KQUEUE_EXIT,
|
||||
RTEMS_RECORD_LENGTH,
|
||||
RTEMS_RECORD_LINE,
|
||||
RTEMS_RECORD_LINK_ENTRY,
|
||||
RTEMS_RECORD_LINK_EXIT,
|
||||
RTEMS_RECORD_LISTEN_ENTRY,
|
||||
@@ -228,6 +250,26 @@ typedef enum {
|
||||
RTEMS_RECORD_SBWAIT_EXIT,
|
||||
RTEMS_RECORD_SBWAKEUP_ENTRY,
|
||||
RTEMS_RECORD_SBWAKEUP_EXIT,
|
||||
RTEMS_RECORD_SCHEDULER_ADD_PROCESSOR,
|
||||
RTEMS_RECORD_SCHEDULER_ASK_FOR_HELP,
|
||||
RTEMS_RECORD_SCHEDULER_BLOCK,
|
||||
RTEMS_RECORD_SCHEDULER_CANCEL_JOB,
|
||||
RTEMS_RECORD_SCHEDULER_ID,
|
||||
RTEMS_RECORD_SCHEDULER_MAP_PRIORITY,
|
||||
RTEMS_RECORD_SCHEDULER_NAME,
|
||||
RTEMS_RECORD_SCHEDULER_PIN,
|
||||
RTEMS_RECORD_SCHEDULER_RECONSIDER_HELP_REQUEST,
|
||||
RTEMS_RECORD_SCHEDULER_RELEASE_JOB,
|
||||
RTEMS_RECORD_SCHEDULER_REMOVE_PROCESSOR,
|
||||
RTEMS_RECORD_SCHEDULER_SCHEDULE,
|
||||
RTEMS_RECORD_SCHEDULER_SET_AFFINITY,
|
||||
RTEMS_RECORD_SCHEDULER_TICK,
|
||||
RTEMS_RECORD_SCHEDULER_UNBLOCK,
|
||||
RTEMS_RECORD_SCHEDULER_UNMAP_PRIORITY,
|
||||
RTEMS_RECORD_SCHEDULER_UNPIN,
|
||||
RTEMS_RECORD_SCHEDULER_UPDATE_PRIORITY,
|
||||
RTEMS_RECORD_SCHEDULER_WITHDRAW_NODE,
|
||||
RTEMS_RECORD_SCHEDULER_YIELD,
|
||||
RTEMS_RECORD_SELECT_ENTRY,
|
||||
RTEMS_RECORD_SELECT_EXIT,
|
||||
RTEMS_RECORD_SEND_ENTRY,
|
||||
@@ -286,8 +328,12 @@ typedef enum {
|
||||
RTEMS_RECORD_TCP_INPUT,
|
||||
RTEMS_RECORD_TCP_OUTPUT,
|
||||
RTEMS_RECORD_THREAD_BEGIN,
|
||||
RTEMS_RECORD_THREAD_CONTINUE_ENTRY,
|
||||
RTEMS_RECORD_THREAD_CONTINUE_EXIT,
|
||||
RTEMS_RECORD_THREAD_CREATE,
|
||||
RTEMS_RECORD_THREAD_DELETE,
|
||||
RTEMS_RECORD_THREAD_DISPATCH_DISABLE,
|
||||
RTEMS_RECORD_THREAD_DISPATCH_ENABLE,
|
||||
RTEMS_RECORD_THREAD_EXIT,
|
||||
RTEMS_RECORD_THREAD_EXITTED,
|
||||
RTEMS_RECORD_THREAD_ID,
|
||||
@@ -296,9 +342,14 @@ typedef enum {
|
||||
RTEMS_RECORD_THREAD_PRIO_CURRENT_LOW,
|
||||
RTEMS_RECORD_THREAD_PRIO_REAL_HIGH,
|
||||
RTEMS_RECORD_THREAD_PRIO_REAL_LOW,
|
||||
RTEMS_RECORD_THREAD_QUEUE_ADDRESS,
|
||||
RTEMS_RECORD_THREAD_QUEUE_DESTROY,
|
||||
RTEMS_RECORD_THREAD_QUEUE_ENQUEUE,
|
||||
RTEMS_RECORD_THREAD_QUEUE_ENQUEUE_STICKY,
|
||||
RTEMS_RECORD_THREAD_QUEUE_EXTRACT,
|
||||
RTEMS_RECORD_THREAD_QUEUE_ID,
|
||||
RTEMS_RECORD_THREAD_QUEUE_INITIALIZE,
|
||||
RTEMS_RECORD_THREAD_QUEUE_NAME,
|
||||
RTEMS_RECORD_THREAD_QUEUE_SURRENDER,
|
||||
RTEMS_RECORD_THREAD_QUEUE_SURRENDER_STICKY,
|
||||
RTEMS_RECORD_THREAD_RESOURCE_OBTAIN,
|
||||
@@ -313,6 +364,10 @@ typedef enum {
|
||||
RTEMS_RECORD_THREAD_SWITCH_IN,
|
||||
RTEMS_RECORD_THREAD_SWITCH_OUT,
|
||||
RTEMS_RECORD_THREAD_TERMINATE,
|
||||
RTEMS_RECORD_THREAD_TIMER_INSERT_MONOTONIC,
|
||||
RTEMS_RECORD_THREAD_TIMER_INSERT_REALTIME,
|
||||
RTEMS_RECORD_THREAD_TIMER_INSERT_TICKS,
|
||||
RTEMS_RECORD_THREAD_TIMER_REMOVE,
|
||||
RTEMS_RECORD_UDP_INPUT,
|
||||
RTEMS_RECORD_UDP_OUTPUT,
|
||||
RTEMS_RECORD_UMA_ALLOC_PTR,
|
||||
@@ -325,6 +380,14 @@ typedef enum {
|
||||
RTEMS_RECORD_UNMOUNT_EXIT,
|
||||
RTEMS_RECORD_UPTIME_HIGH,
|
||||
RTEMS_RECORD_UPTIME_LOW,
|
||||
RTEMS_RECORD_WATCHDOG_ADDRESS,
|
||||
RTEMS_RECORD_WATCHDOG_CPU,
|
||||
RTEMS_RECORD_WATCHDOG_INITIALIZE,
|
||||
RTEMS_RECORD_WATCHDOG_INSERT,
|
||||
RTEMS_RECORD_WATCHDOG_PREINITIALIZE,
|
||||
RTEMS_RECORD_WATCHDOG_REMOVE,
|
||||
RTEMS_RECORD_WATCHDOG_ROUTINE,
|
||||
RTEMS_RECORD_WATCHDOG_STATE,
|
||||
RTEMS_RECORD_WORKSPACE_ALLOC,
|
||||
RTEMS_RECORD_WORKSPACE_FREE,
|
||||
RTEMS_RECORD_WORKSPACE_SIZE,
|
||||
@@ -335,70 +398,6 @@ typedef enum {
|
||||
RTEMS_RECORD_WRITEV_EXIT,
|
||||
|
||||
/* Unused system events */
|
||||
RTEMS_RECORD_SYSTEM_238,
|
||||
RTEMS_RECORD_SYSTEM_239,
|
||||
RTEMS_RECORD_SYSTEM_240,
|
||||
RTEMS_RECORD_SYSTEM_241,
|
||||
RTEMS_RECORD_SYSTEM_242,
|
||||
RTEMS_RECORD_SYSTEM_243,
|
||||
RTEMS_RECORD_SYSTEM_244,
|
||||
RTEMS_RECORD_SYSTEM_245,
|
||||
RTEMS_RECORD_SYSTEM_246,
|
||||
RTEMS_RECORD_SYSTEM_247,
|
||||
RTEMS_RECORD_SYSTEM_248,
|
||||
RTEMS_RECORD_SYSTEM_249,
|
||||
RTEMS_RECORD_SYSTEM_250,
|
||||
RTEMS_RECORD_SYSTEM_251,
|
||||
RTEMS_RECORD_SYSTEM_252,
|
||||
RTEMS_RECORD_SYSTEM_253,
|
||||
RTEMS_RECORD_SYSTEM_254,
|
||||
RTEMS_RECORD_SYSTEM_255,
|
||||
RTEMS_RECORD_SYSTEM_256,
|
||||
RTEMS_RECORD_SYSTEM_257,
|
||||
RTEMS_RECORD_SYSTEM_258,
|
||||
RTEMS_RECORD_SYSTEM_259,
|
||||
RTEMS_RECORD_SYSTEM_260,
|
||||
RTEMS_RECORD_SYSTEM_261,
|
||||
RTEMS_RECORD_SYSTEM_262,
|
||||
RTEMS_RECORD_SYSTEM_263,
|
||||
RTEMS_RECORD_SYSTEM_264,
|
||||
RTEMS_RECORD_SYSTEM_265,
|
||||
RTEMS_RECORD_SYSTEM_266,
|
||||
RTEMS_RECORD_SYSTEM_267,
|
||||
RTEMS_RECORD_SYSTEM_268,
|
||||
RTEMS_RECORD_SYSTEM_269,
|
||||
RTEMS_RECORD_SYSTEM_270,
|
||||
RTEMS_RECORD_SYSTEM_271,
|
||||
RTEMS_RECORD_SYSTEM_272,
|
||||
RTEMS_RECORD_SYSTEM_273,
|
||||
RTEMS_RECORD_SYSTEM_274,
|
||||
RTEMS_RECORD_SYSTEM_275,
|
||||
RTEMS_RECORD_SYSTEM_276,
|
||||
RTEMS_RECORD_SYSTEM_277,
|
||||
RTEMS_RECORD_SYSTEM_278,
|
||||
RTEMS_RECORD_SYSTEM_279,
|
||||
RTEMS_RECORD_SYSTEM_280,
|
||||
RTEMS_RECORD_SYSTEM_281,
|
||||
RTEMS_RECORD_SYSTEM_282,
|
||||
RTEMS_RECORD_SYSTEM_283,
|
||||
RTEMS_RECORD_SYSTEM_284,
|
||||
RTEMS_RECORD_SYSTEM_285,
|
||||
RTEMS_RECORD_SYSTEM_286,
|
||||
RTEMS_RECORD_SYSTEM_287,
|
||||
RTEMS_RECORD_SYSTEM_288,
|
||||
RTEMS_RECORD_SYSTEM_289,
|
||||
RTEMS_RECORD_SYSTEM_290,
|
||||
RTEMS_RECORD_SYSTEM_291,
|
||||
RTEMS_RECORD_SYSTEM_292,
|
||||
RTEMS_RECORD_SYSTEM_293,
|
||||
RTEMS_RECORD_SYSTEM_294,
|
||||
RTEMS_RECORD_SYSTEM_295,
|
||||
RTEMS_RECORD_SYSTEM_296,
|
||||
RTEMS_RECORD_SYSTEM_297,
|
||||
RTEMS_RECORD_SYSTEM_298,
|
||||
RTEMS_RECORD_SYSTEM_299,
|
||||
RTEMS_RECORD_SYSTEM_300,
|
||||
RTEMS_RECORD_SYSTEM_301,
|
||||
RTEMS_RECORD_SYSTEM_302,
|
||||
RTEMS_RECORD_SYSTEM_303,
|
||||
RTEMS_RECORD_SYSTEM_304,
|
||||
@@ -608,6 +607,7 @@ typedef enum {
|
||||
RTEMS_RECORD_SYSTEM_508,
|
||||
RTEMS_RECORD_SYSTEM_509,
|
||||
RTEMS_RECORD_SYSTEM_510,
|
||||
RTEMS_RECORD_SYSTEM_511,
|
||||
|
||||
/* There are 512 events reserved for the user */
|
||||
RTEMS_RECORD_USER_0,
|
||||
|
||||
@@ -43,9 +43,21 @@ static const char * const event_text[] = {
|
||||
[ RTEMS_RECORD_VERSION ] = "VERSION",
|
||||
[ RTEMS_RECORD_ACCEPT_ENTRY ] = "ACCEPT_ENTRY",
|
||||
[ RTEMS_RECORD_ACCEPT_EXIT ] = "ACCEPT_EXIT",
|
||||
[ RTEMS_RECORD_ADDRESS ] = "ADDRESS",
|
||||
[ RTEMS_RECORD_ARG_0 ] = "ARG_0",
|
||||
[ RTEMS_RECORD_ARG_1 ] = "ARG_1",
|
||||
[ RTEMS_RECORD_ARG_2 ] = "ARG_2",
|
||||
[ RTEMS_RECORD_ARG_3 ] = "ARG_3",
|
||||
[ RTEMS_RECORD_ARG_4 ] = "ARG_4",
|
||||
[ RTEMS_RECORD_ARG_5 ] = "ARG_5",
|
||||
[ RTEMS_RECORD_ARG_6 ] = "ARG_6",
|
||||
[ RTEMS_RECORD_ARG_7 ] = "ARG_7",
|
||||
[ RTEMS_RECORD_ARG_8 ] = "ARG_8",
|
||||
[ RTEMS_RECORD_ARG_9 ] = "ARG_9",
|
||||
[ RTEMS_RECORD_BIND_ENTRY ] = "BIND_ENTRY",
|
||||
[ RTEMS_RECORD_BIND_EXIT ] = "BIND_EXIT",
|
||||
[ RTEMS_RECORD_BUFFER ] = "BUFFER",
|
||||
[ RTEMS_RECORD_CALLER ] = "CALLER",
|
||||
[ RTEMS_RECORD_CHOWN_ENTRY ] = "CHOWN_ENTRY",
|
||||
[ RTEMS_RECORD_CHOWN_EXIT ] = "CHOWN_EXIT",
|
||||
[ RTEMS_RECORD_CLOSE_ENTRY ] = "CLOSE_ENTRY",
|
||||
@@ -90,11 +102,21 @@ static const char * const event_text[] = {
|
||||
[ RTEMS_RECORD_IP6_OUTPUT ] = "IP6_OUTPUT",
|
||||
[ RTEMS_RECORD_IP_INPUT ] = "IP_INPUT",
|
||||
[ RTEMS_RECORD_IP_OUTPUT ] = "IP_OUTPUT",
|
||||
[ RTEMS_RECORD_ISR_DISABLE ] = "ISR_DISABLE",
|
||||
[ RTEMS_RECORD_ISR_ENABLE ] = "ISR_ENABLE",
|
||||
[ RTEMS_RECORD_ISR_LOCK_ACQUIRE_ENTRY ] = "ISR_LOCK_ACQUIRE_ENTRY",
|
||||
[ RTEMS_RECORD_ISR_LOCK_ACQUIRE_EXIT ] = "ISR_LOCK_ACQUIRE_EXIT",
|
||||
[ RTEMS_RECORD_ISR_LOCK_ADDRESS ] = "ISR_LOCK_ADDRESS",
|
||||
[ RTEMS_RECORD_ISR_LOCK_DESTROY ] = "ISR_LOCK_DESTROY",
|
||||
[ RTEMS_RECORD_ISR_LOCK_INITIALIZE ] = "ISR_LOCK_INITIALIZE",
|
||||
[ RTEMS_RECORD_ISR_LOCK_NAME ] = "ISR_LOCK_NAME",
|
||||
[ RTEMS_RECORD_ISR_LOCK_RELEASE ] = "ISR_LOCK_RELEASE",
|
||||
[ RTEMS_RECORD_KEVENT_ENTRY ] = "KEVENT_ENTRY",
|
||||
[ RTEMS_RECORD_KEVENT_EXIT ] = "KEVENT_EXIT",
|
||||
[ RTEMS_RECORD_KQUEUE_ENTRY ] = "KQUEUE_ENTRY",
|
||||
[ RTEMS_RECORD_KQUEUE_EXIT ] = "KQUEUE_EXIT",
|
||||
[ RTEMS_RECORD_LENGTH ] = "LENGTH",
|
||||
[ RTEMS_RECORD_LINE ] = "LINE",
|
||||
[ RTEMS_RECORD_LINK_ENTRY ] = "LINK_ENTRY",
|
||||
[ RTEMS_RECORD_LINK_EXIT ] = "LINK_EXIT",
|
||||
[ RTEMS_RECORD_LISTEN_ENTRY ] = "LISTEN_ENTRY",
|
||||
@@ -173,6 +195,26 @@ static const char * const event_text[] = {
|
||||
[ RTEMS_RECORD_SBWAIT_EXIT ] = "SBWAIT_EXIT",
|
||||
[ RTEMS_RECORD_SBWAKEUP_ENTRY ] = "SBWAKEUP_ENTRY",
|
||||
[ RTEMS_RECORD_SBWAKEUP_EXIT ] = "SBWAKEUP_EXIT",
|
||||
[ RTEMS_RECORD_SCHEDULER_ADD_PROCESSOR ] = "SCHEDULER_ADD_PROCESSOR",
|
||||
[ RTEMS_RECORD_SCHEDULER_ASK_FOR_HELP ] = "SCHEDULER_ASK_FOR_HELP",
|
||||
[ RTEMS_RECORD_SCHEDULER_BLOCK ] = "SCHEDULER_BLOCK",
|
||||
[ RTEMS_RECORD_SCHEDULER_CANCEL_JOB ] = "SCHEDULER_CANCEL_JOB",
|
||||
[ RTEMS_RECORD_SCHEDULER_ID ] = "SCHEDULER_ID",
|
||||
[ RTEMS_RECORD_SCHEDULER_MAP_PRIORITY ] = "SCHEDULER_MAP_PRIORITY",
|
||||
[ RTEMS_RECORD_SCHEDULER_NAME ] = "SCHEDULER_NAME",
|
||||
[ RTEMS_RECORD_SCHEDULER_PIN ] = "SCHEDULER_PIN",
|
||||
[ RTEMS_RECORD_SCHEDULER_RECONSIDER_HELP_REQUEST ] = "SCHEDULER_RECONSIDER_HELP_REQUEST",
|
||||
[ RTEMS_RECORD_SCHEDULER_RELEASE_JOB ] = "SCHEDULER_RELEASE_JOB",
|
||||
[ RTEMS_RECORD_SCHEDULER_REMOVE_PROCESSOR ] = "SCHEDULER_REMOVE_PROCESSOR",
|
||||
[ RTEMS_RECORD_SCHEDULER_SCHEDULE ] = "SCHEDULER_SCHEDULE",
|
||||
[ RTEMS_RECORD_SCHEDULER_SET_AFFINITY ] = "SCHEDULER_SET_AFFINITY",
|
||||
[ RTEMS_RECORD_SCHEDULER_TICK ] = "SCHEDULER_TICK",
|
||||
[ RTEMS_RECORD_SCHEDULER_UNBLOCK ] = "SCHEDULER_UNBLOCK",
|
||||
[ RTEMS_RECORD_SCHEDULER_UNMAP_PRIORITY ] = "SCHEDULER_UNMAP_PRIORITY",
|
||||
[ RTEMS_RECORD_SCHEDULER_UNPIN ] = "SCHEDULER_UNPIN",
|
||||
[ RTEMS_RECORD_SCHEDULER_UPDATE_PRIORITY ] = "SCHEDULER_UPDATE_PRIORITY",
|
||||
[ RTEMS_RECORD_SCHEDULER_WITHDRAW_NODE ] = "SCHEDULER_WITHDRAW_NODE",
|
||||
[ RTEMS_RECORD_SCHEDULER_YIELD ] = "SCHEDULER_YIELD",
|
||||
[ RTEMS_RECORD_SELECT_ENTRY ] = "SELECT_ENTRY",
|
||||
[ RTEMS_RECORD_SELECT_EXIT ] = "SELECT_EXIT",
|
||||
[ RTEMS_RECORD_SEND_ENTRY ] = "SEND_ENTRY",
|
||||
@@ -231,8 +273,12 @@ static const char * const event_text[] = {
|
||||
[ RTEMS_RECORD_TCP_INPUT ] = "TCP_INPUT",
|
||||
[ RTEMS_RECORD_TCP_OUTPUT ] = "TCP_OUTPUT",
|
||||
[ RTEMS_RECORD_THREAD_BEGIN ] = "THREAD_BEGIN",
|
||||
[ RTEMS_RECORD_THREAD_CONTINUE_ENTRY ] = "THREAD_CONTINUE_ENTRY",
|
||||
[ RTEMS_RECORD_THREAD_CONTINUE_EXIT ] = "THREAD_CONTINUE_EXIT",
|
||||
[ RTEMS_RECORD_THREAD_CREATE ] = "THREAD_CREATE",
|
||||
[ RTEMS_RECORD_THREAD_DELETE ] = "THREAD_DELETE",
|
||||
[ RTEMS_RECORD_THREAD_DISPATCH_DISABLE ] = "THREAD_DISPATCH_DISABLE",
|
||||
[ RTEMS_RECORD_THREAD_DISPATCH_ENABLE ] = "THREAD_DISPATCH_ENABLE",
|
||||
[ RTEMS_RECORD_THREAD_EXIT ] = "THREAD_EXIT",
|
||||
[ RTEMS_RECORD_THREAD_EXITTED ] = "THREAD_EXITTED",
|
||||
[ RTEMS_RECORD_THREAD_ID ] = "THREAD_ID",
|
||||
@@ -241,9 +287,14 @@ static const char * const event_text[] = {
|
||||
[ RTEMS_RECORD_THREAD_PRIO_CURRENT_LOW ] = "THREAD_PRIO_CURRENT_LOW",
|
||||
[ RTEMS_RECORD_THREAD_PRIO_REAL_HIGH ] = "THREAD_PRIO_REAL_HIGH",
|
||||
[ RTEMS_RECORD_THREAD_PRIO_REAL_LOW ] = "THREAD_PRIO_REAL_LOW",
|
||||
[ RTEMS_RECORD_THREAD_QUEUE_ADDRESS ] = "THREAD_QUEUE_ADDRESS",
|
||||
[ RTEMS_RECORD_THREAD_QUEUE_DESTROY ] = "THREAD_QUEUE_DESTROY",
|
||||
[ RTEMS_RECORD_THREAD_QUEUE_ENQUEUE ] = "THREAD_QUEUE_ENQUEUE",
|
||||
[ RTEMS_RECORD_THREAD_QUEUE_ENQUEUE_STICKY ] = "THREAD_QUEUE_ENQUEUE_STICKY",
|
||||
[ RTEMS_RECORD_THREAD_QUEUE_EXTRACT ] = "THREAD_QUEUE_EXTRACT",
|
||||
[ RTEMS_RECORD_THREAD_QUEUE_ID ] = "THREAD_QUEUE_ID",
|
||||
[ RTEMS_RECORD_THREAD_QUEUE_INITIALIZE ] = "THREAD_QUEUE_INITIALIZE",
|
||||
[ RTEMS_RECORD_THREAD_QUEUE_NAME ] = "THREAD_QUEUE_NAME",
|
||||
[ RTEMS_RECORD_THREAD_QUEUE_SURRENDER ] = "THREAD_QUEUE_SURRENDER",
|
||||
[ RTEMS_RECORD_THREAD_QUEUE_SURRENDER_STICKY ] = "THREAD_QUEUE_SURRENDER_STICKY",
|
||||
[ RTEMS_RECORD_THREAD_RESOURCE_OBTAIN ] = "THREAD_RESOURCE_OBTAIN",
|
||||
@@ -258,6 +309,10 @@ static const char * const event_text[] = {
|
||||
[ RTEMS_RECORD_THREAD_SWITCH_IN ] = "THREAD_SWITCH_IN",
|
||||
[ RTEMS_RECORD_THREAD_SWITCH_OUT ] = "THREAD_SWITCH_OUT",
|
||||
[ RTEMS_RECORD_THREAD_TERMINATE ] = "THREAD_TERMINATE",
|
||||
[ RTEMS_RECORD_THREAD_TIMER_INSERT_MONOTONIC ] = "THREAD_TIMER_INSERT_MONOTONIC",
|
||||
[ RTEMS_RECORD_THREAD_TIMER_INSERT_REALTIME ] = "THREAD_TIMER_INSERT_REALTIME",
|
||||
[ RTEMS_RECORD_THREAD_TIMER_INSERT_TICKS ] = "THREAD_TIMER_INSERT_TICKS",
|
||||
[ RTEMS_RECORD_THREAD_TIMER_REMOVE ] = "THREAD_TIMER_REMOVE",
|
||||
[ RTEMS_RECORD_UDP_INPUT ] = "UDP_INPUT",
|
||||
[ RTEMS_RECORD_UDP_OUTPUT ] = "UDP_OUTPUT",
|
||||
[ RTEMS_RECORD_UMA_ALLOC_PTR ] = "UMA_ALLOC_PTR",
|
||||
@@ -270,6 +325,14 @@ static const char * const event_text[] = {
|
||||
[ RTEMS_RECORD_UNMOUNT_EXIT ] = "UNMOUNT_EXIT",
|
||||
[ RTEMS_RECORD_UPTIME_HIGH ] = "UPTIME_HIGH",
|
||||
[ RTEMS_RECORD_UPTIME_LOW ] = "UPTIME_LOW",
|
||||
[ RTEMS_RECORD_WATCHDOG_ADDRESS ] = "WATCHDOG_ADDRESS",
|
||||
[ RTEMS_RECORD_WATCHDOG_CPU ] = "WATCHDOG_CPU",
|
||||
[ RTEMS_RECORD_WATCHDOG_INITIALIZE ] = "WATCHDOG_INITIALIZE",
|
||||
[ RTEMS_RECORD_WATCHDOG_INSERT ] = "WATCHDOG_INSERT",
|
||||
[ RTEMS_RECORD_WATCHDOG_PREINITIALIZE ] = "WATCHDOG_PREINITIALIZE",
|
||||
[ RTEMS_RECORD_WATCHDOG_REMOVE ] = "WATCHDOG_REMOVE",
|
||||
[ RTEMS_RECORD_WATCHDOG_ROUTINE ] = "WATCHDOG_ROUTINE",
|
||||
[ RTEMS_RECORD_WATCHDOG_STATE ] = "WATCHDOG_STATE",
|
||||
[ RTEMS_RECORD_WORKSPACE_ALLOC ] = "WORKSPACE_ALLOC",
|
||||
[ RTEMS_RECORD_WORKSPACE_FREE ] = "WORKSPACE_FREE",
|
||||
[ RTEMS_RECORD_WORKSPACE_SIZE ] = "WORKSPACE_SIZE",
|
||||
@@ -278,70 +341,6 @@ static const char * const event_text[] = {
|
||||
[ RTEMS_RECORD_WRITE_EXIT ] = "WRITE_EXIT",
|
||||
[ RTEMS_RECORD_WRITEV_ENTRY ] = "WRITEV_ENTRY",
|
||||
[ RTEMS_RECORD_WRITEV_EXIT ] = "WRITEV_EXIT",
|
||||
[ RTEMS_RECORD_SYSTEM_238 ] = "SYSTEM_238",
|
||||
[ RTEMS_RECORD_SYSTEM_239 ] = "SYSTEM_239",
|
||||
[ RTEMS_RECORD_SYSTEM_240 ] = "SYSTEM_240",
|
||||
[ RTEMS_RECORD_SYSTEM_241 ] = "SYSTEM_241",
|
||||
[ RTEMS_RECORD_SYSTEM_242 ] = "SYSTEM_242",
|
||||
[ RTEMS_RECORD_SYSTEM_243 ] = "SYSTEM_243",
|
||||
[ RTEMS_RECORD_SYSTEM_244 ] = "SYSTEM_244",
|
||||
[ RTEMS_RECORD_SYSTEM_245 ] = "SYSTEM_245",
|
||||
[ RTEMS_RECORD_SYSTEM_246 ] = "SYSTEM_246",
|
||||
[ RTEMS_RECORD_SYSTEM_247 ] = "SYSTEM_247",
|
||||
[ RTEMS_RECORD_SYSTEM_248 ] = "SYSTEM_248",
|
||||
[ RTEMS_RECORD_SYSTEM_249 ] = "SYSTEM_249",
|
||||
[ RTEMS_RECORD_SYSTEM_250 ] = "SYSTEM_250",
|
||||
[ RTEMS_RECORD_SYSTEM_251 ] = "SYSTEM_251",
|
||||
[ RTEMS_RECORD_SYSTEM_252 ] = "SYSTEM_252",
|
||||
[ RTEMS_RECORD_SYSTEM_253 ] = "SYSTEM_253",
|
||||
[ RTEMS_RECORD_SYSTEM_254 ] = "SYSTEM_254",
|
||||
[ RTEMS_RECORD_SYSTEM_255 ] = "SYSTEM_255",
|
||||
[ RTEMS_RECORD_SYSTEM_256 ] = "SYSTEM_256",
|
||||
[ RTEMS_RECORD_SYSTEM_257 ] = "SYSTEM_257",
|
||||
[ RTEMS_RECORD_SYSTEM_258 ] = "SYSTEM_258",
|
||||
[ RTEMS_RECORD_SYSTEM_259 ] = "SYSTEM_259",
|
||||
[ RTEMS_RECORD_SYSTEM_260 ] = "SYSTEM_260",
|
||||
[ RTEMS_RECORD_SYSTEM_261 ] = "SYSTEM_261",
|
||||
[ RTEMS_RECORD_SYSTEM_262 ] = "SYSTEM_262",
|
||||
[ RTEMS_RECORD_SYSTEM_263 ] = "SYSTEM_263",
|
||||
[ RTEMS_RECORD_SYSTEM_264 ] = "SYSTEM_264",
|
||||
[ RTEMS_RECORD_SYSTEM_265 ] = "SYSTEM_265",
|
||||
[ RTEMS_RECORD_SYSTEM_266 ] = "SYSTEM_266",
|
||||
[ RTEMS_RECORD_SYSTEM_267 ] = "SYSTEM_267",
|
||||
[ RTEMS_RECORD_SYSTEM_268 ] = "SYSTEM_268",
|
||||
[ RTEMS_RECORD_SYSTEM_269 ] = "SYSTEM_269",
|
||||
[ RTEMS_RECORD_SYSTEM_270 ] = "SYSTEM_270",
|
||||
[ RTEMS_RECORD_SYSTEM_271 ] = "SYSTEM_271",
|
||||
[ RTEMS_RECORD_SYSTEM_272 ] = "SYSTEM_272",
|
||||
[ RTEMS_RECORD_SYSTEM_273 ] = "SYSTEM_273",
|
||||
[ RTEMS_RECORD_SYSTEM_274 ] = "SYSTEM_274",
|
||||
[ RTEMS_RECORD_SYSTEM_275 ] = "SYSTEM_275",
|
||||
[ RTEMS_RECORD_SYSTEM_276 ] = "SYSTEM_276",
|
||||
[ RTEMS_RECORD_SYSTEM_277 ] = "SYSTEM_277",
|
||||
[ RTEMS_RECORD_SYSTEM_278 ] = "SYSTEM_278",
|
||||
[ RTEMS_RECORD_SYSTEM_279 ] = "SYSTEM_279",
|
||||
[ RTEMS_RECORD_SYSTEM_280 ] = "SYSTEM_280",
|
||||
[ RTEMS_RECORD_SYSTEM_281 ] = "SYSTEM_281",
|
||||
[ RTEMS_RECORD_SYSTEM_282 ] = "SYSTEM_282",
|
||||
[ RTEMS_RECORD_SYSTEM_283 ] = "SYSTEM_283",
|
||||
[ RTEMS_RECORD_SYSTEM_284 ] = "SYSTEM_284",
|
||||
[ RTEMS_RECORD_SYSTEM_285 ] = "SYSTEM_285",
|
||||
[ RTEMS_RECORD_SYSTEM_286 ] = "SYSTEM_286",
|
||||
[ RTEMS_RECORD_SYSTEM_287 ] = "SYSTEM_287",
|
||||
[ RTEMS_RECORD_SYSTEM_288 ] = "SYSTEM_288",
|
||||
[ RTEMS_RECORD_SYSTEM_289 ] = "SYSTEM_289",
|
||||
[ RTEMS_RECORD_SYSTEM_290 ] = "SYSTEM_290",
|
||||
[ RTEMS_RECORD_SYSTEM_291 ] = "SYSTEM_291",
|
||||
[ RTEMS_RECORD_SYSTEM_292 ] = "SYSTEM_292",
|
||||
[ RTEMS_RECORD_SYSTEM_293 ] = "SYSTEM_293",
|
||||
[ RTEMS_RECORD_SYSTEM_294 ] = "SYSTEM_294",
|
||||
[ RTEMS_RECORD_SYSTEM_295 ] = "SYSTEM_295",
|
||||
[ RTEMS_RECORD_SYSTEM_296 ] = "SYSTEM_296",
|
||||
[ RTEMS_RECORD_SYSTEM_297 ] = "SYSTEM_297",
|
||||
[ RTEMS_RECORD_SYSTEM_298 ] = "SYSTEM_298",
|
||||
[ RTEMS_RECORD_SYSTEM_299 ] = "SYSTEM_299",
|
||||
[ RTEMS_RECORD_SYSTEM_300 ] = "SYSTEM_300",
|
||||
[ RTEMS_RECORD_SYSTEM_301 ] = "SYSTEM_301",
|
||||
[ RTEMS_RECORD_SYSTEM_302 ] = "SYSTEM_302",
|
||||
[ RTEMS_RECORD_SYSTEM_303 ] = "SYSTEM_303",
|
||||
[ RTEMS_RECORD_SYSTEM_304 ] = "SYSTEM_304",
|
||||
@@ -551,6 +550,7 @@ static const char * const event_text[] = {
|
||||
[ RTEMS_RECORD_SYSTEM_508 ] = "SYSTEM_508",
|
||||
[ RTEMS_RECORD_SYSTEM_509 ] = "SYSTEM_509",
|
||||
[ RTEMS_RECORD_SYSTEM_510 ] = "SYSTEM_510",
|
||||
[ RTEMS_RECORD_SYSTEM_511 ] = "SYSTEM_511",
|
||||
[ RTEMS_RECORD_USER_0 ] = "USER_0",
|
||||
[ RTEMS_RECORD_USER_1 ] = "USER_1",
|
||||
[ RTEMS_RECORD_USER_2 ] = "USER_2",
|
||||
|
||||
704
cpukit/libtrace/record/record-util.c
Normal file
704
cpukit/libtrace/record/record-util.c
Normal file
@@ -0,0 +1,704 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*
|
||||
* Copyright (C) 2018, 2019 embedded brains GmbH
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <rtems/record.h>
|
||||
|
||||
void rtems_record_line( void )
|
||||
{
|
||||
rtems_record_produce(
|
||||
RTEMS_RECORD_LINE,
|
||||
(rtems_record_data) RTEMS_RETURN_ADDRESS()
|
||||
);
|
||||
}
|
||||
|
||||
void rtems_record_line_2(
|
||||
rtems_record_event event,
|
||||
rtems_record_data data
|
||||
)
|
||||
{
|
||||
rtems_record_produce_2(
|
||||
RTEMS_RECORD_LINE,
|
||||
(rtems_record_data) RTEMS_RETURN_ADDRESS(),
|
||||
event,
|
||||
data
|
||||
);
|
||||
}
|
||||
|
||||
void rtems_record_line_3(
|
||||
rtems_record_event event_0,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_event event_1,
|
||||
rtems_record_data data_1
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 3 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 0 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 1 ].event = event_0;
|
||||
items[ 1 ].data = data_0;
|
||||
items[ 2 ].event = event_1;
|
||||
items[ 2 ].data = data_1;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void rtems_record_line_arg( rtems_record_data data )
|
||||
{
|
||||
rtems_record_produce_2(
|
||||
RTEMS_RECORD_LINE,
|
||||
(rtems_record_data) RTEMS_RETURN_ADDRESS(),
|
||||
RTEMS_RECORD_ARG_0,
|
||||
data
|
||||
);
|
||||
}
|
||||
|
||||
void rtems_record_line_arg_2(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 3 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 0 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 1 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 1 ].data = data_0;
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 2 ].data = data_1;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void rtems_record_line_arg_3(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 4 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 0 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 1 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 1 ].data = data_0;
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 2 ].data = data_1;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 3 ].data = data_2;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void rtems_record_line_arg_4(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 5 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 0 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 1 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 1 ].data = data_0;
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 2 ].data = data_1;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 3 ].data = data_2;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_3;
|
||||
items[ 4 ].data = data_3;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void rtems_record_line_arg_5(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 6 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 0 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 1 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 1 ].data = data_0;
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 2 ].data = data_1;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 3 ].data = data_2;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_3;
|
||||
items[ 4 ].data = data_3;
|
||||
items[ 5 ].event = RTEMS_RECORD_ARG_4;
|
||||
items[ 5 ].data = data_4;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void rtems_record_line_arg_6(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 7 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 0 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 1 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 1 ].data = data_0;
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 2 ].data = data_1;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 3 ].data = data_2;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_3;
|
||||
items[ 4 ].data = data_3;
|
||||
items[ 5 ].event = RTEMS_RECORD_ARG_4;
|
||||
items[ 5 ].data = data_4;
|
||||
items[ 6 ].event = RTEMS_RECORD_ARG_5;
|
||||
items[ 6 ].data = data_5;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void rtems_record_line_arg_7(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 8 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 0 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 1 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 1 ].data = data_0;
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 2 ].data = data_1;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 3 ].data = data_2;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_3;
|
||||
items[ 4 ].data = data_3;
|
||||
items[ 5 ].event = RTEMS_RECORD_ARG_4;
|
||||
items[ 5 ].data = data_4;
|
||||
items[ 6 ].event = RTEMS_RECORD_ARG_5;
|
||||
items[ 6 ].data = data_5;
|
||||
items[ 7 ].event = RTEMS_RECORD_ARG_6;
|
||||
items[ 7 ].data = data_6;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void rtems_record_line_arg_8(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6,
|
||||
rtems_record_data data_7
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 9 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 0 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 1 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 1 ].data = data_0;
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 2 ].data = data_1;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 3 ].data = data_2;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_3;
|
||||
items[ 4 ].data = data_3;
|
||||
items[ 5 ].event = RTEMS_RECORD_ARG_4;
|
||||
items[ 5 ].data = data_4;
|
||||
items[ 6 ].event = RTEMS_RECORD_ARG_5;
|
||||
items[ 6 ].data = data_5;
|
||||
items[ 7 ].event = RTEMS_RECORD_ARG_6;
|
||||
items[ 7 ].data = data_6;
|
||||
items[ 8 ].event = RTEMS_RECORD_ARG_7;
|
||||
items[ 8 ].data = data_7;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void rtems_record_line_arg_9(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6,
|
||||
rtems_record_data data_7,
|
||||
rtems_record_data data_8
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 10 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 0 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 1 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 1 ].data = data_0;
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 2 ].data = data_1;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 3 ].data = data_2;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_3;
|
||||
items[ 4 ].data = data_3;
|
||||
items[ 5 ].event = RTEMS_RECORD_ARG_4;
|
||||
items[ 5 ].data = data_4;
|
||||
items[ 6 ].event = RTEMS_RECORD_ARG_5;
|
||||
items[ 6 ].data = data_5;
|
||||
items[ 7 ].event = RTEMS_RECORD_ARG_6;
|
||||
items[ 7 ].data = data_6;
|
||||
items[ 8 ].event = RTEMS_RECORD_ARG_7;
|
||||
items[ 8 ].data = data_7;
|
||||
items[ 9 ].event = RTEMS_RECORD_ARG_8;
|
||||
items[ 9 ].data = data_8;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void rtems_record_line_arg_10(
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6,
|
||||
rtems_record_data data_7,
|
||||
rtems_record_data data_8,
|
||||
rtems_record_data data_9
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 11 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 0 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 1 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 1 ].data = data_0;
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 2 ].data = data_1;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 3 ].data = data_2;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_3;
|
||||
items[ 4 ].data = data_3;
|
||||
items[ 5 ].event = RTEMS_RECORD_ARG_4;
|
||||
items[ 5 ].data = data_4;
|
||||
items[ 6 ].event = RTEMS_RECORD_ARG_5;
|
||||
items[ 6 ].data = data_5;
|
||||
items[ 7 ].event = RTEMS_RECORD_ARG_6;
|
||||
items[ 7 ].data = data_6;
|
||||
items[ 8 ].event = RTEMS_RECORD_ARG_7;
|
||||
items[ 8 ].data = data_7;
|
||||
items[ 9 ].event = RTEMS_RECORD_ARG_8;
|
||||
items[ 9 ].data = data_8;
|
||||
items[ 10 ].event = RTEMS_RECORD_ARG_9;
|
||||
items[ 10 ].data = data_9;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void _Record_Caller( void *return_address )
|
||||
{
|
||||
rtems_record_produce_2(
|
||||
RTEMS_RECORD_CALLER,
|
||||
(rtems_record_data) return_address,
|
||||
RTEMS_RECORD_LINE,
|
||||
(rtems_record_data) RTEMS_RETURN_ADDRESS()
|
||||
);
|
||||
}
|
||||
|
||||
void _Record_Caller_3(
|
||||
void *return_address,
|
||||
rtems_record_event event,
|
||||
rtems_record_data data
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 3 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_CALLER;
|
||||
items[ 0 ].data = (rtems_record_data) return_address;
|
||||
items[ 1 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 1 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 2 ].event = event;
|
||||
items[ 2 ].data = data;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void _Record_Caller_4(
|
||||
void *return_address,
|
||||
rtems_record_event event_0,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_event event_1,
|
||||
rtems_record_data data_1
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 4 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_CALLER;
|
||||
items[ 0 ].data = (rtems_record_data) return_address;
|
||||
items[ 1 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 1 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 2 ].event = event_0;
|
||||
items[ 2 ].data = data_0;
|
||||
items[ 3 ].event = event_1;
|
||||
items[ 3 ].data = data_1;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void _Record_Caller_arg( void *return_address, rtems_record_data data )
|
||||
{
|
||||
rtems_record_item items[ 3 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_CALLER;
|
||||
items[ 0 ].data = (rtems_record_data) return_address;
|
||||
items[ 1 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 1 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 2 ].data = data;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void _Record_Caller_arg_2(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 4 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_CALLER;
|
||||
items[ 0 ].data = (rtems_record_data) return_address;
|
||||
items[ 1 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 1 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 2 ].data = data_0;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 3 ].data = data_1;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void _Record_Caller_arg_3(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 5 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_CALLER;
|
||||
items[ 0 ].data = (rtems_record_data) return_address;
|
||||
items[ 1 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 1 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 2 ].data = data_0;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 3 ].data = data_1;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 4 ].data = data_2;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void _Record_Caller_arg_4(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 6 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_CALLER;
|
||||
items[ 0 ].data = (rtems_record_data) return_address;
|
||||
items[ 1 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 1 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 2 ].data = data_0;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 3 ].data = data_1;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 4 ].data = data_2;
|
||||
items[ 5 ].event = RTEMS_RECORD_ARG_3;
|
||||
items[ 5 ].data = data_3;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void _Record_Caller_arg_5(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 7 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_CALLER;
|
||||
items[ 0 ].data = (rtems_record_data) return_address;
|
||||
items[ 1 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 1 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 2 ].data = data_0;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 3 ].data = data_1;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 4 ].data = data_2;
|
||||
items[ 5 ].event = RTEMS_RECORD_ARG_3;
|
||||
items[ 5 ].data = data_3;
|
||||
items[ 6 ].event = RTEMS_RECORD_ARG_4;
|
||||
items[ 6 ].data = data_4;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void _Record_Caller_arg_6(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 8 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_CALLER;
|
||||
items[ 0 ].data = (rtems_record_data) return_address;
|
||||
items[ 1 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 1 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 2 ].data = data_0;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 3 ].data = data_1;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 4 ].data = data_2;
|
||||
items[ 5 ].event = RTEMS_RECORD_ARG_3;
|
||||
items[ 5 ].data = data_3;
|
||||
items[ 6 ].event = RTEMS_RECORD_ARG_4;
|
||||
items[ 6 ].data = data_4;
|
||||
items[ 7 ].event = RTEMS_RECORD_ARG_5;
|
||||
items[ 7 ].data = data_5;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void _Record_Caller_arg_7(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 9 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_CALLER;
|
||||
items[ 0 ].data = (rtems_record_data) return_address;
|
||||
items[ 1 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 1 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 2 ].data = data_0;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 3 ].data = data_1;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 4 ].data = data_2;
|
||||
items[ 5 ].event = RTEMS_RECORD_ARG_3;
|
||||
items[ 5 ].data = data_3;
|
||||
items[ 6 ].event = RTEMS_RECORD_ARG_4;
|
||||
items[ 6 ].data = data_4;
|
||||
items[ 7 ].event = RTEMS_RECORD_ARG_5;
|
||||
items[ 7 ].data = data_5;
|
||||
items[ 8 ].event = RTEMS_RECORD_ARG_6;
|
||||
items[ 8 ].data = data_6;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void _Record_Caller_arg_8(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6,
|
||||
rtems_record_data data_7
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 10 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_CALLER;
|
||||
items[ 0 ].data = (rtems_record_data) return_address;
|
||||
items[ 1 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 1 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 2 ].data = data_0;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 3 ].data = data_1;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 4 ].data = data_2;
|
||||
items[ 5 ].event = RTEMS_RECORD_ARG_3;
|
||||
items[ 5 ].data = data_3;
|
||||
items[ 6 ].event = RTEMS_RECORD_ARG_4;
|
||||
items[ 6 ].data = data_4;
|
||||
items[ 7 ].event = RTEMS_RECORD_ARG_5;
|
||||
items[ 7 ].data = data_5;
|
||||
items[ 8 ].event = RTEMS_RECORD_ARG_6;
|
||||
items[ 8 ].data = data_6;
|
||||
items[ 9 ].event = RTEMS_RECORD_ARG_7;
|
||||
items[ 9 ].data = data_7;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void _Record_Caller_arg_9(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6,
|
||||
rtems_record_data data_7,
|
||||
rtems_record_data data_8
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 11 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_CALLER;
|
||||
items[ 0 ].data = (rtems_record_data) return_address;
|
||||
items[ 1 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 1 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 2 ].data = data_0;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 3 ].data = data_1;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 4 ].data = data_2;
|
||||
items[ 5 ].event = RTEMS_RECORD_ARG_3;
|
||||
items[ 5 ].data = data_3;
|
||||
items[ 6 ].event = RTEMS_RECORD_ARG_4;
|
||||
items[ 6 ].data = data_4;
|
||||
items[ 7 ].event = RTEMS_RECORD_ARG_5;
|
||||
items[ 7 ].data = data_5;
|
||||
items[ 8 ].event = RTEMS_RECORD_ARG_6;
|
||||
items[ 8 ].data = data_6;
|
||||
items[ 9 ].event = RTEMS_RECORD_ARG_7;
|
||||
items[ 9 ].data = data_7;
|
||||
items[ 10 ].event = RTEMS_RECORD_ARG_8;
|
||||
items[ 10 ].data = data_8;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
void _Record_Caller_arg_10(
|
||||
void *return_address,
|
||||
rtems_record_data data_0,
|
||||
rtems_record_data data_1,
|
||||
rtems_record_data data_2,
|
||||
rtems_record_data data_3,
|
||||
rtems_record_data data_4,
|
||||
rtems_record_data data_5,
|
||||
rtems_record_data data_6,
|
||||
rtems_record_data data_7,
|
||||
rtems_record_data data_8,
|
||||
rtems_record_data data_9
|
||||
)
|
||||
{
|
||||
rtems_record_item items[ 12 ];
|
||||
|
||||
items[ 0 ].event = RTEMS_RECORD_CALLER;
|
||||
items[ 0 ].data = (rtems_record_data) return_address;
|
||||
items[ 1 ].event = RTEMS_RECORD_LINE;
|
||||
items[ 1 ].data = (rtems_record_data) RTEMS_RETURN_ADDRESS();
|
||||
items[ 2 ].event = RTEMS_RECORD_ARG_0;
|
||||
items[ 2 ].data = data_0;
|
||||
items[ 3 ].event = RTEMS_RECORD_ARG_1;
|
||||
items[ 3 ].data = data_1;
|
||||
items[ 4 ].event = RTEMS_RECORD_ARG_2;
|
||||
items[ 4 ].data = data_2;
|
||||
items[ 5 ].event = RTEMS_RECORD_ARG_3;
|
||||
items[ 5 ].data = data_3;
|
||||
items[ 6 ].event = RTEMS_RECORD_ARG_4;
|
||||
items[ 6 ].data = data_4;
|
||||
items[ 7 ].event = RTEMS_RECORD_ARG_5;
|
||||
items[ 7 ].data = data_5;
|
||||
items[ 8 ].event = RTEMS_RECORD_ARG_6;
|
||||
items[ 8 ].data = data_6;
|
||||
items[ 9 ].event = RTEMS_RECORD_ARG_7;
|
||||
items[ 9 ].data = data_7;
|
||||
items[ 10 ].event = RTEMS_RECORD_ARG_8;
|
||||
items[ 10 ].data = data_8;
|
||||
items[ 11 ].event = RTEMS_RECORD_ARG_9;
|
||||
items[ 11 ].data = data_9;
|
||||
rtems_record_produce_n( items, RTEMS_ARRAY_SIZE( items ) );
|
||||
}
|
||||
|
||||
uint32_t rtems_record_interrupt_disable( void )
|
||||
{
|
||||
uint32_t level;
|
||||
rtems_record_context context;
|
||||
|
||||
_CPU_ISR_Disable( level );
|
||||
rtems_record_prepare_critical( &context, _Per_CPU_Get() );
|
||||
rtems_record_add(
|
||||
&context,
|
||||
RTEMS_RECORD_ISR_DISABLE,
|
||||
(rtems_record_data) RTEMS_RETURN_ADDRESS()
|
||||
);
|
||||
rtems_record_commit_critical( &context );
|
||||
|
||||
return level;
|
||||
}
|
||||
|
||||
void rtems_record_interrupt_enable( uint32_t level )
|
||||
{
|
||||
rtems_record_context context;
|
||||
|
||||
rtems_record_prepare_critical( &context, _Per_CPU_Get() );
|
||||
rtems_record_add(
|
||||
&context,
|
||||
RTEMS_RECORD_ISR_ENABLE,
|
||||
(rtems_record_data) RTEMS_RETURN_ADDRESS()
|
||||
);
|
||||
rtems_record_commit_critical( &context );
|
||||
_CPU_ISR_Enable( level );
|
||||
}
|
||||
@@ -100,6 +100,7 @@ static void Init(rtems_task_argument arg)
|
||||
Record_Stream_header header;
|
||||
rtems_record_client_status cs;
|
||||
int i;
|
||||
uint32_t level;
|
||||
|
||||
TEST_BEGIN();
|
||||
ctx = &test_instance;
|
||||
@@ -108,6 +109,35 @@ static void Init(rtems_task_argument arg)
|
||||
rtems_task_wake_after(1);
|
||||
}
|
||||
|
||||
rtems_record_line();
|
||||
rtems_record_line_2(RTEMS_RECORD_USER_0, 0);
|
||||
rtems_record_line_3(RTEMS_RECORD_USER_1, 1, RTEMS_RECORD_USER_2, 2);
|
||||
rtems_record_line_arg(0);
|
||||
rtems_record_line_arg_2(0, 1);
|
||||
rtems_record_line_arg_3(0, 1, 2);
|
||||
rtems_record_line_arg_4(0, 1, 2, 3);
|
||||
rtems_record_line_arg_5(0, 1, 2, 3, 4);
|
||||
rtems_record_line_arg_6(0, 1, 2, 3, 4, 5);
|
||||
rtems_record_line_arg_7(0, 1, 2, 3, 4, 5, 6);
|
||||
rtems_record_line_arg_8(0, 1, 2, 3, 4, 5, 6, 7);
|
||||
rtems_record_line_arg_9(0, 1, 2, 3, 4, 5, 6, 7, 8);
|
||||
rtems_record_line_arg_10(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
|
||||
rtems_record_caller();
|
||||
rtems_record_caller_3(RTEMS_RECORD_USER_0, 0);
|
||||
rtems_record_caller_4(RTEMS_RECORD_USER_1, 1, RTEMS_RECORD_USER_2, 2);
|
||||
rtems_record_caller_arg(0);
|
||||
rtems_record_caller_arg_2(0, 1);
|
||||
rtems_record_caller_arg_3(0, 1, 2);
|
||||
rtems_record_caller_arg_4(0, 1, 2, 3);
|
||||
rtems_record_caller_arg_5(0, 1, 2, 3, 4);
|
||||
rtems_record_caller_arg_6(0, 1, 2, 3, 4, 5);
|
||||
rtems_record_caller_arg_7(0, 1, 2, 3, 4, 5, 6);
|
||||
rtems_record_caller_arg_8(0, 1, 2, 3, 4, 5, 6, 7);
|
||||
rtems_record_caller_arg_9(0, 1, 2, 3, 4, 5, 6, 7, 8);
|
||||
rtems_record_caller_arg_10(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
|
||||
level = rtems_record_interrupt_disable();
|
||||
rtems_record_interrupt_enable(level);
|
||||
|
||||
rtems_record_client_init(&ctx->client, client_handler, NULL);
|
||||
_Record_Stream_header_initialize(&header);
|
||||
cs = rtems_record_client_run(&ctx->client, &header, sizeof(header));
|
||||
@@ -129,7 +159,7 @@ static void Init(rtems_task_argument arg)
|
||||
|
||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
|
||||
#define CONFIGURE_RECORD_PER_PROCESSOR_ITEMS 128
|
||||
#define CONFIGURE_RECORD_PER_PROCESSOR_ITEMS 256
|
||||
|
||||
#define CONFIGURE_RECORD_EXTENSIONS_ENABLED
|
||||
|
||||
|
||||
@@ -1,84 +1,241 @@
|
||||
*** BEGIN OF TEST RECORD 2 ***
|
||||
*** TEST VERSION: 5.0.0.b2c060a507712f6043d7c7f0cf7b50661f25d8c3
|
||||
*** TEST VERSION: 5.0.0.807ea677b298ed13796d27c493c726c0bfe6e036
|
||||
*** TEST STATE: EXPECTED-PASS
|
||||
*** TEST BUILD: RTEMS_NETWORKING RTEMS_POSIX_API
|
||||
*** TEST TOOLS: 7.4.1 20190514 (RTEMS 5, RSB 639eed3c77c830a2ac9f36baca21919f8b7bf1be, Newlib 5c2a3661c)
|
||||
*:0:VERSION:5
|
||||
*** TEST TOOLS: 7.4.1 20190514 (RTEMS 5, RSB e047d64adf806d37393eb12d02a7ce26633d2eba, Newlib 5c2a3661c)
|
||||
*:0:VERSION:6
|
||||
*:0:PROCESSOR_MAXIMUM:0
|
||||
*:0:PER_CPU_COUNT:80
|
||||
*:0:PER_CPU_COUNT:100
|
||||
*:0:FREQUENCY:f4240
|
||||
*:0:PROCESSOR:0
|
||||
*:0:PER_CPU_TAIL:0
|
||||
*:0:PER_CPU_HEAD:46
|
||||
*:0:THREAD_CREATE:9010001
|
||||
*:0:THREAD_NAME:49494949
|
||||
*:0:THREAD_START:9010001
|
||||
*:0:UPTIME_LOW:852b4
|
||||
*:0:PER_CPU_HEAD:e3
|
||||
0.994328000:0:THREAD_CREATE:9010001
|
||||
0.994328000:0:THREAD_NAME:49494949
|
||||
0.994514999:0:THREAD_START:9010001
|
||||
*:0:UPTIME_LOW:9b307
|
||||
*:0:UPTIME_HIGH:1
|
||||
1.000436999:0:THREAD_CREATE:a010001
|
||||
1.000436999:0:THREAD_NAME:55555555
|
||||
1.000627999:0:THREAD_START:a010001
|
||||
1.001891999:0:THREAD_BEGIN:a010001
|
||||
1.003466999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.003466999:0:THREAD_STACK_CURRENT:d78
|
||||
1.003466999:0:THREAD_SWITCH_IN:9010001
|
||||
1.003533999:0:THREAD_BEGIN:9010001
|
||||
1.005078999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.005078999:0:THREAD_STACK_CURRENT:d68
|
||||
1.005078999:0:THREAD_SWITCH_IN:a010001
|
||||
1.005218999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.005218999:0:THREAD_STACK_CURRENT:d78
|
||||
1.005218999:0:THREAD_SWITCH_IN:9010001
|
||||
1.015067999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.015067999:0:THREAD_STACK_CURRENT:d68
|
||||
1.015067999:0:THREAD_SWITCH_IN:a010001
|
||||
1.015207999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.015207999:0:THREAD_STACK_CURRENT:d78
|
||||
1.015207999:0:THREAD_SWITCH_IN:9010001
|
||||
1.025067999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.025067999:0:THREAD_STACK_CURRENT:d68
|
||||
1.025067999:0:THREAD_SWITCH_IN:a010001
|
||||
1.025207999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.025207999:0:THREAD_STACK_CURRENT:d78
|
||||
1.025207999:0:THREAD_SWITCH_IN:9010001
|
||||
1.035067999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.035067999:0:THREAD_STACK_CURRENT:d68
|
||||
1.035067999:0:THREAD_SWITCH_IN:a010001
|
||||
1.035207999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.035207999:0:THREAD_STACK_CURRENT:d78
|
||||
1.035207999:0:THREAD_SWITCH_IN:9010001
|
||||
1.045067999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.045067999:0:THREAD_STACK_CURRENT:d68
|
||||
1.045067999:0:THREAD_SWITCH_IN:a010001
|
||||
1.045207999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.045207999:0:THREAD_STACK_CURRENT:d78
|
||||
1.045207999:0:THREAD_SWITCH_IN:9010001
|
||||
1.055067999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.055067999:0:THREAD_STACK_CURRENT:d68
|
||||
1.055067999:0:THREAD_SWITCH_IN:a010001
|
||||
1.055207999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.055207999:0:THREAD_STACK_CURRENT:d78
|
||||
1.055207999:0:THREAD_SWITCH_IN:9010001
|
||||
1.065067999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.065067999:0:THREAD_STACK_CURRENT:d68
|
||||
1.065067999:0:THREAD_SWITCH_IN:a010001
|
||||
1.065207999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.065207999:0:THREAD_STACK_CURRENT:d78
|
||||
1.065207999:0:THREAD_SWITCH_IN:9010001
|
||||
1.075067999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.075067999:0:THREAD_STACK_CURRENT:d68
|
||||
1.075067999:0:THREAD_SWITCH_IN:a010001
|
||||
1.075207999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.075207999:0:THREAD_STACK_CURRENT:d78
|
||||
1.075207999:0:THREAD_SWITCH_IN:9010001
|
||||
1.085067999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.085067999:0:THREAD_STACK_CURRENT:d68
|
||||
1.085067999:0:THREAD_SWITCH_IN:a010001
|
||||
1.085207999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.085207999:0:THREAD_STACK_CURRENT:d78
|
||||
1.085207999:0:THREAD_SWITCH_IN:9010001
|
||||
1.095067999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.095067999:0:THREAD_STACK_CURRENT:d68
|
||||
1.095067999:0:THREAD_SWITCH_IN:a010001
|
||||
1.000563999:0:THREAD_CREATE:a010001
|
||||
1.000563999:0:THREAD_NAME:55555555
|
||||
1.000876999:0:THREAD_START:a010001
|
||||
1.003730999:0:THREAD_BEGIN:a010001
|
||||
1.005493999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.005493999:0:THREAD_STACK_CURRENT:d38
|
||||
1.005493999:0:THREAD_SWITCH_IN:9010001
|
||||
1.005597999:0:THREAD_BEGIN:9010001
|
||||
1.013811999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.013811999:0:THREAD_STACK_CURRENT:d40
|
||||
1.013811999:0:THREAD_SWITCH_IN:a010001
|
||||
1.014068999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.014068999:0:THREAD_STACK_CURRENT:d38
|
||||
1.014068999:0:THREAD_SWITCH_IN:9010001
|
||||
1.023800999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.023800999:0:THREAD_STACK_CURRENT:d40
|
||||
1.023800999:0:THREAD_SWITCH_IN:a010001
|
||||
1.024057999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.024057999:0:THREAD_STACK_CURRENT:d38
|
||||
1.024057999:0:THREAD_SWITCH_IN:9010001
|
||||
1.033800999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.033800999:0:THREAD_STACK_CURRENT:d40
|
||||
1.033800999:0:THREAD_SWITCH_IN:a010001
|
||||
1.034057999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.034057999:0:THREAD_STACK_CURRENT:d38
|
||||
1.034057999:0:THREAD_SWITCH_IN:9010001
|
||||
1.043800999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.043800999:0:THREAD_STACK_CURRENT:d40
|
||||
1.043800999:0:THREAD_SWITCH_IN:a010001
|
||||
1.044057999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.044057999:0:THREAD_STACK_CURRENT:d38
|
||||
1.044057999:0:THREAD_SWITCH_IN:9010001
|
||||
1.053800999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.053800999:0:THREAD_STACK_CURRENT:d40
|
||||
1.053800999:0:THREAD_SWITCH_IN:a010001
|
||||
1.054057999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.054057999:0:THREAD_STACK_CURRENT:d38
|
||||
1.054057999:0:THREAD_SWITCH_IN:9010001
|
||||
1.063800999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.063800999:0:THREAD_STACK_CURRENT:d40
|
||||
1.063800999:0:THREAD_SWITCH_IN:a010001
|
||||
1.064057999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.064057999:0:THREAD_STACK_CURRENT:d38
|
||||
1.064057999:0:THREAD_SWITCH_IN:9010001
|
||||
1.073800999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.073800999:0:THREAD_STACK_CURRENT:d40
|
||||
1.073800999:0:THREAD_SWITCH_IN:a010001
|
||||
1.074057999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.074057999:0:THREAD_STACK_CURRENT:d38
|
||||
1.074057999:0:THREAD_SWITCH_IN:9010001
|
||||
1.083800999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.083800999:0:THREAD_STACK_CURRENT:d40
|
||||
1.083800999:0:THREAD_SWITCH_IN:a010001
|
||||
1.084057999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.084057999:0:THREAD_STACK_CURRENT:d38
|
||||
1.084057999:0:THREAD_SWITCH_IN:9010001
|
||||
1.093800999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.093800999:0:THREAD_STACK_CURRENT:d40
|
||||
1.093800999:0:THREAD_SWITCH_IN:a010001
|
||||
1.094057999:0:THREAD_SWITCH_OUT:a010001
|
||||
1.094057999:0:THREAD_STACK_CURRENT:d38
|
||||
1.094057999:0:THREAD_SWITCH_IN:9010001
|
||||
1.103800999:0:THREAD_SWITCH_OUT:9010001
|
||||
1.103800999:0:THREAD_STACK_CURRENT:d40
|
||||
1.103800999:0:THREAD_SWITCH_IN:a010001
|
||||
1.103883999:0:LINE:2001290
|
||||
1.103897999:0:LINE:200129c
|
||||
1.103897999:0:USER_0:0
|
||||
1.103914999:0:LINE:20012b0
|
||||
1.103914999:0:USER_1:1
|
||||
1.103914999:0:USER_2:2
|
||||
1.103940999:0:LINE:20012b8
|
||||
1.103940999:0:ARG_0:0
|
||||
1.103958999:0:LINE:20012c4
|
||||
1.103958999:0:ARG_0:0
|
||||
1.103958999:0:ARG_1:1
|
||||
1.103987999:0:LINE:20012d4
|
||||
1.103987999:0:ARG_0:0
|
||||
1.103987999:0:ARG_1:1
|
||||
1.103987999:0:ARG_2:2
|
||||
1.104021999:0:LINE:20012e8
|
||||
1.104021999:0:ARG_0:0
|
||||
1.104021999:0:ARG_1:1
|
||||
1.104021999:0:ARG_2:2
|
||||
1.104021999:0:ARG_3:3
|
||||
1.104060999:0:LINE:2001300
|
||||
1.104060999:0:ARG_0:0
|
||||
1.104060999:0:ARG_1:1
|
||||
1.104060999:0:ARG_2:2
|
||||
1.104060999:0:ARG_3:3
|
||||
1.104060999:0:ARG_4:4
|
||||
1.104104999:0:LINE:200131c
|
||||
1.104104999:0:ARG_0:0
|
||||
1.104104999:0:ARG_1:1
|
||||
1.104104999:0:ARG_2:2
|
||||
1.104104999:0:ARG_3:3
|
||||
1.104104999:0:ARG_4:4
|
||||
1.104104999:0:ARG_5:5
|
||||
1.104153999:0:LINE:200133c
|
||||
1.104153999:0:ARG_0:0
|
||||
1.104153999:0:ARG_1:1
|
||||
1.104153999:0:ARG_2:2
|
||||
1.104153999:0:ARG_3:3
|
||||
1.104153999:0:ARG_4:4
|
||||
1.104153999:0:ARG_5:5
|
||||
1.104153999:0:ARG_6:6
|
||||
1.104208999:0:LINE:2001364
|
||||
1.104208999:0:ARG_0:0
|
||||
1.104208999:0:ARG_1:1
|
||||
1.104208999:0:ARG_2:2
|
||||
1.104208999:0:ARG_3:3
|
||||
1.104208999:0:ARG_4:4
|
||||
1.104208999:0:ARG_5:5
|
||||
1.104208999:0:ARG_6:6
|
||||
1.104208999:0:ARG_7:7
|
||||
1.104269999:0:LINE:2001390
|
||||
1.104269999:0:ARG_0:0
|
||||
1.104269999:0:ARG_1:1
|
||||
1.104269999:0:ARG_2:2
|
||||
1.104269999:0:ARG_3:3
|
||||
1.104269999:0:ARG_4:4
|
||||
1.104269999:0:ARG_5:5
|
||||
1.104269999:0:ARG_6:6
|
||||
1.104269999:0:ARG_7:7
|
||||
1.104269999:0:ARG_8:8
|
||||
1.104335999:0:LINE:20013c0
|
||||
1.104335999:0:ARG_0:0
|
||||
1.104335999:0:ARG_1:1
|
||||
1.104335999:0:ARG_2:2
|
||||
1.104335999:0:ARG_3:3
|
||||
1.104335999:0:ARG_4:4
|
||||
1.104335999:0:ARG_5:5
|
||||
1.104335999:0:ARG_6:6
|
||||
1.104335999:0:ARG_7:7
|
||||
1.104335999:0:ARG_8:8
|
||||
1.104335999:0:ARG_9:9
|
||||
1.104394999:0:CALLER:200cc20
|
||||
1.104394999:0:LINE:20013c8
|
||||
1.104412999:0:CALLER:200cc20
|
||||
1.104412999:0:LINE:20013d8
|
||||
1.104412999:0:USER_0:0
|
||||
1.104441999:0:CALLER:200cc20
|
||||
1.104441999:0:LINE:20013f0
|
||||
1.104441999:0:USER_1:1
|
||||
1.104441999:0:USER_2:2
|
||||
1.104473999:0:CALLER:200cc20
|
||||
1.104473999:0:LINE:20013fc
|
||||
1.104473999:0:ARG_0:0
|
||||
1.104502999:0:CALLER:200cc20
|
||||
1.104502999:0:LINE:200140c
|
||||
1.104502999:0:ARG_0:0
|
||||
1.104502999:0:ARG_1:1
|
||||
1.104537999:0:CALLER:200cc20
|
||||
1.104537999:0:LINE:2001420
|
||||
1.104537999:0:ARG_0:0
|
||||
1.104537999:0:ARG_1:1
|
||||
1.104537999:0:ARG_2:2
|
||||
1.104576999:0:CALLER:200cc20
|
||||
1.104576999:0:LINE:2001438
|
||||
1.104576999:0:ARG_0:0
|
||||
1.104576999:0:ARG_1:1
|
||||
1.104576999:0:ARG_2:2
|
||||
1.104576999:0:ARG_3:3
|
||||
1.104620999:0:CALLER:200cc20
|
||||
1.104620999:0:LINE:2001454
|
||||
1.104620999:0:ARG_0:0
|
||||
1.104620999:0:ARG_1:1
|
||||
1.104620999:0:ARG_2:2
|
||||
1.104620999:0:ARG_3:3
|
||||
1.104620999:0:ARG_4:4
|
||||
1.104669999:0:CALLER:200cc20
|
||||
1.104669999:0:LINE:2001478
|
||||
1.104669999:0:ARG_0:0
|
||||
1.104669999:0:ARG_1:1
|
||||
1.104669999:0:ARG_2:2
|
||||
1.104669999:0:ARG_3:3
|
||||
1.104669999:0:ARG_4:4
|
||||
1.104669999:0:ARG_5:5
|
||||
1.104724999:0:CALLER:200cc20
|
||||
1.104724999:0:LINE:200149c
|
||||
1.104724999:0:ARG_0:0
|
||||
1.104724999:0:ARG_1:1
|
||||
1.104724999:0:ARG_2:2
|
||||
1.104724999:0:ARG_3:3
|
||||
1.104724999:0:ARG_4:4
|
||||
1.104724999:0:ARG_5:5
|
||||
1.104724999:0:ARG_6:6
|
||||
1.104785999:0:CALLER:200cc20
|
||||
1.104785999:0:LINE:20014c4
|
||||
1.104785999:0:ARG_0:0
|
||||
1.104785999:0:ARG_1:1
|
||||
1.104785999:0:ARG_2:2
|
||||
1.104785999:0:ARG_3:3
|
||||
1.104785999:0:ARG_4:4
|
||||
1.104785999:0:ARG_5:5
|
||||
1.104785999:0:ARG_6:6
|
||||
1.104785999:0:ARG_7:7
|
||||
1.104850999:0:CALLER:200cc20
|
||||
1.104850999:0:LINE:20014f0
|
||||
1.104850999:0:ARG_0:0
|
||||
1.104850999:0:ARG_1:1
|
||||
1.104850999:0:ARG_2:2
|
||||
1.104850999:0:ARG_3:3
|
||||
1.104850999:0:ARG_4:4
|
||||
1.104850999:0:ARG_5:5
|
||||
1.104850999:0:ARG_6:6
|
||||
1.104850999:0:ARG_7:7
|
||||
1.104850999:0:ARG_8:8
|
||||
1.104921999:0:CALLER:200cc20
|
||||
1.104921999:0:LINE:2001520
|
||||
1.104921999:0:ARG_0:0
|
||||
1.104921999:0:ARG_1:1
|
||||
1.104921999:0:ARG_2:2
|
||||
1.104921999:0:ARG_3:3
|
||||
1.104921999:0:ARG_4:4
|
||||
1.104921999:0:ARG_5:5
|
||||
1.104921999:0:ARG_6:6
|
||||
1.104921999:0:ARG_7:7
|
||||
1.104921999:0:ARG_8:8
|
||||
1.104921999:0:ARG_9:9
|
||||
1.104986999:0:ISR_DISABLE:2001528
|
||||
1.104996999:0:ISR_ENABLE:2001530
|
||||
|
||||
*** END OF TEST RECORD 2 ***
|
||||
|
||||
Reference in New Issue
Block a user