📄 rtai_trace.h
字号:
{\ trace_rtai_sem sem_event; \ sem_event.event_sub_id = (uint8_t) ID; \ sem_event.event_data1 = (uint32_t) DATA1; \ sem_event.event_data2 = (uint64_t) DATA2; \ rt_trace_event(TRACE_RTAI_EV_SEM, &sem_event); \ } while(0)/* TRACE_RTAI_MSG */#define TRACE_RTAI_EV_MSG_SEND 1 /* Send a message */#define TRACE_RTAI_EV_MSG_SEND_IF 2 /* Send if possible */#define TRACE_RTAI_EV_MSG_SEND_UNTIL 3 /* Try sending until a certain time */#define TRACE_RTAI_EV_MSG_RECV 4 /* Receive a message */#define TRACE_RTAI_EV_MSG_RECV_IF 5 /* Receive if possible */#define TRACE_RTAI_EV_MSG_RECV_UNTIL 6 /* Try receiving until a certain time */typedef struct _trace_rtai_msg{ uint8_t event_sub_id; /* Message event ID */ uint32_t event_data1; /* Event data 1 */ uint32_t event_data2; /* Event data 2 */ uint64_t event_data3; /* Event data 3 */} LTT_PACKED_STRUCT trace_rtai_msg;#define TRACE_RTAI_MSG(ID, DATA1, DATA2, DATA3) \ do \ {\ trace_rtai_msg msg_event; \ msg_event.event_sub_id = (uint8_t) ID; \ msg_event.event_data1 = (uint32_t) DATA1; \ msg_event.event_data2 = (uint32_t) DATA2; \ msg_event.event_data3 = (uint64_t) DATA3; \ rt_trace_event(TRACE_RTAI_EV_MSG, &msg_event); \ } while(0)/* TRACE_RTAI_RPC */#define TRACE_RTAI_EV_RPC_MAKE 1 /* Make a remote procedure call */#define TRACE_RTAI_EV_RPC_MAKE_IF 2 /* Make RPC if receiver is ready */#define TRACE_RTAI_EV_RPC_MAKE_UNTIL 3 /* Try making an RPC until a certain time */#define TRACE_RTAI_EV_RPC_RETURN 4 /* Send result of RPC back to caller */typedef struct _trace_rtai_rpc{ uint8_t event_sub_id; /* RPC event ID */ uint32_t event_data1; /* Event data 1 */ uint32_t event_data2; /* Event data 2 */ uint64_t event_data3; /* Event data 3 */} LTT_PACKED_STRUCT trace_rtai_rpc;#define TRACE_RTAI_RPC(ID, DATA1, DATA2, DATA3) \ do \ {\ trace_rtai_rpc rpc_event; \ rpc_event.event_sub_id = (uint8_t) ID; \ rpc_event.event_data1 = (uint32_t) DATA1; \ rpc_event.event_data2 = (uint32_t) DATA2; \ rpc_event.event_data3 = (uint64_t) DATA3; \ rt_trace_event(TRACE_RTAI_EV_RPC, &rpc_event); \ } while(0)/* TRACE_RTAI_MBX */#define TRACE_RTAI_EV_MBX_INIT 1 /* Initialize Message BoX */#define TRACE_RTAI_EV_MBX_DELETE 2 /* Delete message box */#define TRACE_RTAI_EV_MBX_SEND 3 /* Send a message to a message box */#define TRACE_RTAI_EV_MBX_SEND_WP 4 /* Send as many bytes as possible */#define TRACE_RTAI_EV_MBX_SEND_IF 5 /* Send a message if possible */#define TRACE_RTAI_EV_MBX_SEND_UNTIL 6 /* Try sending until a certain time */#define TRACE_RTAI_EV_MBX_RECV 7 /* Receive a message */#define TRACE_RTAI_EV_MBX_RECV_WP 8 /* Receive as many bytes as possible */#define TRACE_RTAI_EV_MBX_RECV_IF 9 /* Receive a message if available */#define TRACE_RTAI_EV_MBX_RECV_UNTIL 10 /* Try receiving until a certain time */typedef struct _trace_rtai_mbx{ uint8_t event_sub_id; /* Message Box event ID */ uint32_t event_data1; /* Event data 1 */ uint32_t event_data2; /* Event data 2 */ uint64_t event_data3; /* Event data 3 */ } LTT_PACKED_STRUCT trace_rtai_mbx;#define TRACE_RTAI_MBX(ID, DATA1, DATA2, DATA3) \ do \ {\ trace_rtai_mbx mbx_event; \ mbx_event.event_sub_id = (uint8_t) ID; \ mbx_event.event_data1 = (uint32_t) DATA1; \ mbx_event.event_data2 = (uint32_t) DATA2; \ mbx_event.event_data3 = (uint64_t) DATA3; \ rt_trace_event(TRACE_RTAI_EV_MBX, &mbx_event); \ } while(0)/* TRACE_RTAI_FIFO */#define TRACE_RTAI_EV_FIFO_CREATE 1 /* Create FIFO */#define TRACE_RTAI_EV_FIFO_DESTROY 2 /* Destroy FIFO */#define TRACE_RTAI_EV_FIFO_RESET 3 /* Reset FIFO */#define TRACE_RTAI_EV_FIFO_RESIZE 4 /* Resize FIFO */#define TRACE_RTAI_EV_FIFO_PUT 5 /* Write data to FIFO */#define TRACE_RTAI_EV_FIFO_GET 6 /* Get data from FIFO */#define TRACE_RTAI_EV_FIFO_CREATE_HANDLER 7 /* Install FIFO handler */#define TRACE_RTAI_EV_FIFO_OPEN 8 /* Open FIFO */#define TRACE_RTAI_EV_FIFO_RELEASE 9 /* Release FIFO */#define TRACE_RTAI_EV_FIFO_READ 10 /* Read from FIFO */#define TRACE_RTAI_EV_FIFO_WRITE 11 /* Write to FIFO */#define TRACE_RTAI_EV_FIFO_READ_TIMED 12 /* Read with time limit */#define TRACE_RTAI_EV_FIFO_WRITE_TIMED 13 /* Write with time limit */#define TRACE_RTAI_EV_FIFO_READ_ALLATONCE 14 /* Read all the data from FIFO */#define TRACE_RTAI_EV_FIFO_LLSEEK 15 /* Seek position into FIFO */#define TRACE_RTAI_EV_FIFO_FASYNC 16 /* Asynchronous notification */#define TRACE_RTAI_EV_FIFO_IOCTL 17 /* IO control on FIFO */#define TRACE_RTAI_EV_FIFO_POLL 18 /* Poll FIFO */#define TRACE_RTAI_EV_FIFO_SUSPEND_TIMED 19 /* Suspend task for given period */#define TRACE_RTAI_EV_FIFO_SET_ASYNC_SIG 20 /* Set asynchrounous signal */#define TRACE_RTAI_EV_FIFO_SEM_INIT 21 /* Initialize semaphore */#define TRACE_RTAI_EV_FIFO_SEM_POST 22 /* Post semaphore */#define TRACE_RTAI_EV_FIFO_SEM_WAIT 23 /* Wait on semaphore */#define TRACE_RTAI_EV_FIFO_SEM_TRY_WAIT 24 /* Try waiting on semaphore */#define TRACE_RTAI_EV_FIFO_SEM_TIMED_WAIT 25 /* Wait on semaphore until a certain time */#define TRACE_RTAI_EV_FIFO_SEM_DESTROY 26 /* Destroy semaphore */typedef struct _trace_rtai_fifo{ uint8_t event_sub_id; /* FIFO event ID */ uint32_t event_data1; /* Event data 1 */ uint32_t event_data2; /* Event data 2 */} LTT_PACKED_STRUCT trace_rtai_fifo;#define TRACE_RTAI_FIFO(ID, DATA1, DATA2) \ do \ {\ trace_rtai_fifo fifo_event; \ fifo_event.event_sub_id = (uint8_t) ID; \ fifo_event.event_data1 = (uint32_t) DATA1; \ fifo_event.event_data2 = (uint32_t) DATA2; \ rt_trace_event(TRACE_RTAI_EV_FIFO, &fifo_event); \ } while(0)/* TRACE_RTAI_SHM */#define TRACE_RTAI_EV_SHM_MALLOC 1 /* Allocate shared memory */#define TRACE_RTAI_EV_SHM_KMALLOC 2 /* Allocate shared memory in kernel space */#define TRACE_RTAI_EV_SHM_GET_SIZE 3 /* Get the size of the shared memory area */ #define TRACE_RTAI_EV_SHM_FREE 4 /* Free shared memory */#define TRACE_RTAI_EV_SHM_KFREE 5 /* Free kernel space shared memory */typedef struct _trace_rtai_shm{ uint8_t event_sub_id; /* SHared Memory event ID */ uint32_t event_data1; /* Event data 1 */ uint32_t event_data2; /* Event data 2 */ uint32_t event_data3; /* Event data 3 */} LTT_PACKED_STRUCT trace_rtai_shm;#define TRACE_RTAI_SHM(ID, DATA1, DATA2, DATA3) \ do \ {\ trace_rtai_shm shm_event; \ shm_event.event_sub_id = (uint8_t) ID; \ shm_event.event_data1 = (uint32_t) DATA1; \ shm_event.event_data2 = (uint32_t) DATA2; \ shm_event.event_data3 = (uint32_t) DATA3; \ rt_trace_event(TRACE_RTAI_EV_SHM, &shm_event); \ } while(0)/* TRACE_RTAI_POSIX */#define TRACE_RTAI_EV_POSIX_MQ_OPEN 1 /* Open/create message queue */#define TRACE_RTAI_EV_POSIX_MQ_CLOSE 2 /* Close message queue */#define TRACE_RTAI_EV_POSIX_MQ_SEND 3 /* Send message to queue */#define TRACE_RTAI_EV_POSIX_MQ_RECV 4 /* Receive message from queue */#define TRACE_RTAI_EV_POSIX_MQ_GET_ATTR 5 /* Get message queue attributes */#define TRACE_RTAI_EV_POSIX_MQ_SET_ATTR 6 /* Set message queue attributes */#define TRACE_RTAI_EV_POSIX_MQ_NOTIFY 7 /* Register to be notified of message arrival */#define TRACE_RTAI_EV_POSIX_MQ_UNLINK 8 /* Destroy message queue */#define TRACE_RTAI_EV_POSIX_PTHREAD_CREATE 9 /* Create RT task */#define TRACE_RTAI_EV_POSIX_PTHREAD_EXIT 10 /* Terminate calling thread */#define TRACE_RTAI_EV_POSIX_PTHREAD_SELF 11 /* Get thread ID */#define TRACE_RTAI_EV_POSIX_PTHREAD_ATTR_INIT 12 /* Initialize thread attribute */#define TRACE_RTAI_EV_POSIX_PTHREAD_ATTR_DESTROY 13 /* Destroy thread attribute */#define TRACE_RTAI_EV_POSIX_PTHREAD_ATTR_SETDETACHSTATE 14 /* Set detach state of thread */#define TRACE_RTAI_EV_POSIX_PTHREAD_ATTR_GETDETACHSTATE 15 /* Get detach state of thread */#define TRACE_RTAI_EV_POSIX_PTHREAD_ATTR_SETSCHEDPARAM 16 /* Set thread scheduling parameters */#define TRACE_RTAI_EV_POSIX_PTHREAD_ATTR_GETSCHEDPARAM 17 /* Get thread scheduling parameters */#define TRACE_RTAI_EV_POSIX_PTHREAD_ATTR_SETSCHEDPOLICY 18 /* Set thread scheduling policy */#define TRACE_RTAI_EV_POSIX_PTHREAD_ATTR_GETSCHEDPOLICY 19 /* Get thread scheduling policy */#define TRACE_RTAI_EV_POSIX_PTHREAD_ATTR_SETINHERITSCHED 20 /* Set thread scheduling inheritance */#define TRACE_RTAI_EV_POSIX_PTHREAD_ATTR_GETINHERITSCHED 21 /* Get thread scheduling inheritance */#define TRACE_RTAI_EV_POSIX_PTHREAD_ATTR_SETSCOPE 22 /* Set thread scheduling scope */#define TRACE_RTAI_EV_POSIX_PTHREAD_ATTR_GETSCOPE 23 /* Get thread scheduling scope */#define TRACE_RTAI_EV_POSIX_PTHREAD_SCHED_YIELD 24 /* Yield processor control */#define TRACE_RTAI_EV_POSIX_PTHREAD_CLOCK_GETTIME 25 /* Get current clock count */#define TRACE_RTAI_EV_POSIX_PTHREAD_MUTEX_INIT 26 /* Initialize mutex */#define TRACE_RTAI_EV_POSIX_PTHREAD_MUTEX_DESTROY 27 /* Destroy mutex */#define TRACE_RTAI_EV_POSIX_PTHREAD_MUTEXATTR_INIT 28 /* Initiatize mutex attribute */#define TRACE_RTAI_EV_POSIX_PTHREAD_MUTEXATTR_DESTROY 29 /* Destroy mutex attribute */#define TRACE_RTAI_EV_POSIX_PTHREAD_MUTEXATTR_SETKIND_NP 30 /* Set kind of attribute */#define TRACE_RTAI_EV_POSIX_PTHREAD_MUTEXATTR_GETKIND_NP 31 /* Get kind of attribute */#define TRACE_RTAI_EV_POSIX_PTHREAD_SETSCHEDPARAM 32 /* Set scheduling parameters */#define TRACE_RTAI_EV_POSIX_PTHREAD_GETSCHEDPARAM 33 /* Get scheduling parameters */#define TRACE_RTAI_EV_POSIX_PTHREAD_MUTEX_TRY_LOCK 34 /* Non-blocking mutex lock */#define TRACE_RTAI_EV_POSIX_PTHREAD_MUTEX_LOCK 35 /* Blocking mutex lock */#define TRACE_RTAI_EV_POSIX_PTHREAD_MUTEX_UNLOCK 36 /* Mutex unlock */#define TRACE_RTAI_EV_POSIX_PTHREAD_COND_INIT 37 /* Initialize conditionnal variable */#define TRACE_RTAI_EV_POSIX_PTHREAD_COND_DESTROY 38 /* Destroy cond. variable */#define TRACE_RTAI_EV_POSIX_PTHREAD_CONDATTR_INIT 39 /* Initialize cond. attribute variable */#define TRACE_RTAI_EV_POSIX_PTHREAD_CONDATTR_DESTROY 40 /* Destroy cond. attribute variable */#define TRACE_RTAI_EV_POSIX_PTHREAD_COND_WAIT 41 /* Wait for cond. variable to be signaled */#define TRACE_RTAI_EV_POSIX_PTHREAD_COND_TIMEDWAIT 42 /* Wait for a certain time */#define TRACE_RTAI_EV_POSIX_PTHREAD_COND_SIGNAL 43 /* Signal a waiting thread */#define TRACE_RTAI_EV_POSIX_PTHREAD_COND_BROADCAST 44 /* Signal all waiting threads */typedef struct _trace_rtai_posix{ uint8_t event_sub_id; /* POSIX event ID */ uint32_t event_data1; /* Event data 1 */ uint32_t event_data2; /* Event data 2 */ uint32_t event_data3; /* Event data 3 */} LTT_PACKED_STRUCT trace_rtai_posix;#define TRACE_RTAI_POSIX(ID, DATA1, DATA2, DATA3) \ do \ {\ trace_rtai_posix posix_event; \ posix_event.event_sub_id = (uint8_t) ID; \ posix_event.event_data1 = (uint32_t) DATA1; \ posix_event.event_data2 = (uint32_t) DATA2; \ posix_event.event_data3 = (uint32_t) DATA3; \ rt_trace_event(TRACE_RTAI_EV_POSIX, &posix_event); \ } while(0)/* TRACE_RTAI_LXRT */#define TRACE_RTAI_EV_LXRT_RTAI_SYSCALL_ENTRY 1 /* Entry in LXRT syscall */#define TRACE_RTAI_EV_LXRT_RTAI_SYSCALL_EXIT 2 /* Exit from LXRT syscall */#define TRACE_RTAI_EV_LXRT_SCHED_CHANGE 3 /* Scheduling change */#define TRACE_RTAI_EV_LXRT_STEAL_TASK 4 /* Take task control from Linux */#define TRACE_RTAI_EV_LXRT_GIVE_BACK_TASK 5 /* Give task control back to Linux */#define TRACE_RTAI_EV_LXRT_SUSPEND 6 /* Suspend a task */#define TRACE_RTAI_EV_LXRT_RESUME 7 /* Resume task's execution */#define TRACE_RTAI_EV_LXRT_HANDLE 8 /* Handle a request for an RTAI service */typedef struct _trace_rtai_lxrt{ uint8_t event_sub_id; /* LXRT event ID */ uint32_t event_data1; /* Event data 1 */ uint32_t event_data2; /* Event data 2 */ uint32_t event_data3; /* Event data 3 */ } LTT_PACKED_STRUCT trace_rtai_lxrt;#define TRACE_RTAI_LXRT(ID, DATA1, DATA2, DATA3) \ do \ {\ trace_rtai_lxrt lxrt_event; \ lxrt_event.event_sub_id = (uint8_t) ID; \ lxrt_event.event_data1 = (uint32_t) DATA1; \ lxrt_event.event_data2 = (uint32_t) DATA2; \ lxrt_event.event_data3 = (uint32_t) DATA3; \ rt_trace_event(TRACE_RTAI_EV_LXRT, &lxrt_event); \ } while(0)/* TRACE_RTAI_LXRTI */#define TRACE_RTAI_EV_LXRTI_NAME_ATTACH 1 /* Register current process as name */#define TRACE_RTAI_EV_LXRTI_NAME_LOCATE 2 /* Locate a given process usint it's name */#define TRACE_RTAI_EV_LXRTI_NAME_DETACH 3 /* Detach process from name */#define TRACE_RTAI_EV_LXRTI_SEND 4 /* Send message to PID */#define TRACE_RTAI_EV_LXRTI_RECV 5 /* Receive message */#define TRACE_RTAI_EV_LXRTI_CRECV 6 /* Non-blocking receive */#define TRACE_RTAI_EV_LXRTI_REPLY 7 /* Reply to message received */#define TRACE_RTAI_EV_LXRTI_PROXY_ATTACH 8 /* Attach proxy to process */#define TRACE_RTAI_EV_LXRTI_PROXY_DETACH 9 /* Detach proxy from process */#define TRACE_RTAI_EV_LXRTI_TRIGGER 10 /* Trigger proxy */typedef struct _trace_rtai_lxrti{ uint8_t event_sub_id; /* LXRT event ID */ uint32_t event_data1; /* Event data 1 */ uint32_t event_data2; /* Event data 2 */ uint64_t event_data3; /* Event data 3 */ } LTT_PACKED_STRUCT trace_rtai_lxrti;#define TRACE_RTAI_LXRTI(ID, DATA1, DATA2, DATA3) \ do \ {\ trace_rtai_lxrti lxrti_event; \ lxrti_event.event_sub_id = (uint8_t) ID; \ lxrti_event.event_data1 = (uint32_t) DATA1; \ lxrti_event.event_data2 = (uint32_t) DATA2; \ lxrti_event.event_data3 = (uint64_t) DATA3; \ rt_trace_event(TRACE_RTAI_EV_LXRTI, &lxrti_event); \ } while(0)#else /* RTAI is configured without tracing */#define RT_TRACE_EVENT(ID, DATA)#define TRACE_RTAI_MOUNT()#define TRACE_RTAI_UMOUNT()#define TRACE_RTAI_GLOBAL_IRQ_ENTRY(ID,X)#define TRACE_RTAI_GLOBAL_IRQ_EXIT()#define TRACE_RTAI_OWN_IRQ_ENTRY(ID)#define TRACE_RTAI_OWN_IRQ_EXIT()#define TRACE_RTAI_TRAP_ENTRY(ID,ADDR)#define TRACE_RTAI_TRAP_EXIT()#define TRACE_RTAI_SRQ_ENTRY(a)#define TRACE_RTAI_SRQ_EXIT()#define TRACE_RTAI_SWITCHTO_LINUX(ID)#define TRACE_RTAI_SWITCHTO_RT(ID)#define TRACE_RTAI_SCHED_CHANGE(OUT, IN, OUT_STATE)#define TRACE_RTAI_TASK(ID, DATA1, DATA2, DATA3)#define TRACE_RTAI_TIMER(ID, DATA1, DATA2)#define TRACE_RTAI_SEM(ID, DATA1, DATA2)#define TRACE_RTAI_MSG(ID, DATA1, DATA2, DATA3)#define TRACE_RTAI_RPC(ID, DATA1, DATA2, DATA3)#define TRACE_RTAI_MBX(ID, DATA1, DATA2, DATA3)#define TRACE_RTAI_FIFO(ID, DATA1, DATA2)#define TRACE_RTAI_SHM(ID, DATA1, DATA2, DATA3)#define TRACE_RTAI_POSIX(ID, DATA1, DATA2, DATA3)#define TRACE_RTAI_LXRT(ID, DATA1, DATA2, DATA3)#define TRACE_RTAI_LXRTI(ID, DATA1, DATA2, DATA3)#endif#endif /* __RTAI_TRACE_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -