📄 trace.h
字号:
#define TRACE_EV_PROCESS_WAIT 4 /* A wait occured */#define TRACE_EV_PROCESS_SIGNAL 5 /* A signal has been sent */#define TRACE_EV_PROCESS_WAKEUP 6 /* Wake up a process */#define TRACE_EV_PROCESS_IDLE_BEGIN 7 /* Enter idle loop */typedef struct _trace_process{ uint8_t event_sub_id; /* Process event ID */ uint32_t event_data1; /* Data associated with event */ uint32_t event_data2; } LTT_PACKED_STRUCT trace_process;#define TRACE_PROCESS(ID, DATA1, DATA2) \ do \ {\ trace_process proc_event;\ proc_event.event_sub_id = ID;\ proc_event.event_data1 = DATA1;\ proc_event.event_data2 = DATA2;\ trace_event(TRACE_EV_PROCESS, &proc_event);\ } while(0)/* TRACE_FILE_SYSTEM */#define TRACE_EV_FILE_SYSTEM_BUF_WAIT_START 1 /* Starting to wait for a data buffer */#define TRACE_EV_FILE_SYSTEM_BUF_WAIT_END 2 /* End to wait for a data buffer */#define TRACE_EV_FILE_SYSTEM_EXEC 3 /* An exec occured */#define TRACE_EV_FILE_SYSTEM_OPEN 4 /* An open occured */#define TRACE_EV_FILE_SYSTEM_CLOSE 5 /* A close occured */#define TRACE_EV_FILE_SYSTEM_READ 6 /* A read occured */#define TRACE_EV_FILE_SYSTEM_WRITE 7 /* A write occured */#define TRACE_EV_FILE_SYSTEM_SEEK 8 /* A seek occured */#define TRACE_EV_FILE_SYSTEM_IOCTL 9 /* An ioctl occured */#define TRACE_EV_FILE_SYSTEM_SELECT 10 /* A select occured */#define TRACE_EV_FILE_SYSTEM_POLL 11 /* A poll occured */typedef struct _trace_file_system{ uint8_t event_sub_id; /* File system event ID */ uint32_t event_data1; /* Event data */ uint32_t event_data2; /* Event data 2 */ char* file_name; /* Name of file operated on */} LTT_PACKED_STRUCT trace_file_system;#define TRACE_FILE_SYSTEM(ID, DATA1, DATA2, FILE_NAME) \ do \ {\ trace_file_system fs_event;\ fs_event.event_sub_id = ID;\ fs_event.event_data1 = DATA1;\ fs_event.event_data2 = DATA2;\ fs_event.file_name = (char*)FILE_NAME;\ trace_event(TRACE_EV_FILE_SYSTEM, &fs_event);\ } while(0)/* TRACE_TIMER */#define TRACE_EV_TIMER_EXPIRED 1 /* Timer expired */#define TRACE_EV_TIMER_SETITIMER 2 /* Setting itimer occurred */#define TRACE_EV_TIMER_SETTIMEOUT 3 /* Setting sched timeout occurred */typedef struct _trace_timer{ uint8_t event_sub_id; /* Timer event ID */ uint8_t event_sdata; /* Short data */ uint32_t event_data1; /* Data associated with event */ uint32_t event_data2; } LTT_PACKED_STRUCT trace_timer;#define TRACE_TIMER(ID, SDATA, DATA1, DATA2) \ do \ {\ trace_timer timer_event;\ timer_event.event_sub_id = ID;\ timer_event.event_sdata = SDATA;\ timer_event.event_data1 = DATA1;\ timer_event.event_data2 = DATA2;\ trace_event(TRACE_EV_TIMER, &timer_event);\ } while(0)/* TRACE_MEMORY */#define TRACE_EV_MEMORY_PAGE_ALLOC 1 /* Allocating pages */#define TRACE_EV_MEMORY_PAGE_FREE 2 /* Freing pages */#define TRACE_EV_MEMORY_SWAP_IN 3 /* Swaping pages in */#define TRACE_EV_MEMORY_SWAP_OUT 4 /* Swaping pages out */#define TRACE_EV_MEMORY_PAGE_WAIT_START 5 /* Start to wait for page */#define TRACE_EV_MEMORY_PAGE_WAIT_END 6 /* End to wait for page */typedef struct _trace_memory{ uint8_t event_sub_id; /* Memory event ID */ unsigned long event_data; /* Data associated with event */} LTT_PACKED_STRUCT trace_memory;#define TRACE_MEMORY(ID, DATA) \ do \ {\ trace_memory memory_event;\ memory_event.event_sub_id = ID;\ memory_event.event_data = DATA;\ trace_event(TRACE_EV_MEMORY, &memory_event);\ } while(0)/* TRACE_SOCKET */#define TRACE_EV_SOCKET_CALL 1 /* A socket call occured */#define TRACE_EV_SOCKET_CREATE 2 /* A socket has been created */#define TRACE_EV_SOCKET_SEND 3 /* Data was sent to a socket */#define TRACE_EV_SOCKET_RECEIVE 4 /* Data was read from a socket */typedef struct _trace_socket{ uint8_t event_sub_id; /* Socket event ID */ uint32_t event_data1; /* Data associated with event */ uint32_t event_data2; /* Data associated with event */} LTT_PACKED_STRUCT trace_socket;#define TRACE_SOCKET(ID, DATA1, DATA2) \ do \ {\ trace_socket socket_event;\ socket_event.event_sub_id = ID;\ socket_event.event_data1 = DATA1;\ socket_event.event_data2 = DATA2;\ trace_event(TRACE_EV_SOCKET, &socket_event);\ } while(0)/* TRACE_IPC */#define TRACE_EV_IPC_CALL 1 /* A System V IPC call occured */#define TRACE_EV_IPC_MSG_CREATE 2 /* A message queue has been created */#define TRACE_EV_IPC_SEM_CREATE 3 /* A semaphore was created */#define TRACE_EV_IPC_SHM_CREATE 4 /* A shared memory segment has been created */typedef struct _trace_ipc{ uint8_t event_sub_id; /* IPC event ID */ uint32_t event_data1; /* Data associated with event */ uint32_t event_data2; /* Data associated with event */} LTT_PACKED_STRUCT trace_ipc;#define TRACE_IPC(ID, DATA1, DATA2) \ do \ {\ trace_ipc ipc_event;\ ipc_event.event_sub_id = ID;\ ipc_event.event_data1 = DATA1;\ ipc_event.event_data2 = DATA2;\ trace_event(TRACE_EV_IPC, &ipc_event);\ } while(0)/* TRACE_NETWORK */#define TRACE_EV_NETWORK_PACKET_IN 1 /* A packet came in */#define TRACE_EV_NETWORK_PACKET_OUT 2 /* A packet was sent */typedef struct _trace_network{ uint8_t event_sub_id; /* Network event ID */ uint32_t event_data; /* Event data */} LTT_PACKED_STRUCT trace_network;#define TRACE_NETWORK(ID, DATA) \ do \ {\ trace_network net_event;\ net_event.event_sub_id = ID;\ net_event.event_data = DATA;\ trace_event(TRACE_EV_NETWORK, &net_event);\ } while(0)/* Custom declared events *//* ***WARNING*** These structures should never be used as is, use the provided custom event creation and logging functions. */typedef struct _trace_new_event{ /* Basics */ uint32_t id; /* Custom event ID */ char type[CUSTOM_EVENT_TYPE_STR_LEN]; /* Event type description */ char desc[CUSTOM_EVENT_DESC_STR_LEN]; /* Detailed event description */ /* Custom formatting */ uint32_t format_type; /* Type of formatting */ char form[CUSTOM_EVENT_FORM_STR_LEN]; /* Data specific to format */} LTT_PACKED_STRUCT trace_new_event;typedef struct _trace_custom{ uint32_t id; /* Event ID */ uint32_t data_size; /* Size of data recorded by event */ void* data; /* Data recorded by event */} LTT_PACKED_STRUCT trace_custom;/* TRACE_CHANGE_MASK */typedef uint64_t trace_event_mask; /* The event mask type */typedef struct _trace_change_mask{ trace_event_mask mask; /* Event mask */} LTT_PACKED_STRUCT trace_change_mask;/* TRACE_IRQ_NAME */typedef struct _trace_irq_name{ uint32_t irq_number; uint32_t irq_name_len; char* irq_name;} LTT_PACKED_STRUCT trace_irq_name;#define TRACE_IRQ_NAME(IRQ_NUMBER, IRQ_NAME) \ do \ {\ trace_irq_name irq_name_event;\ irq_name_event.irq_number = IRQ_NUMBER;\ irq_name_event.irq_name_len = strlen(IRQ_NAME) + 1;\ irq_name_event.irq_name = (char*)IRQ_NAME;\ trace_event(TRACE_EV_IRQ_NAME, &irq_name_event);\ } while(0)/* TRACE_PID_NAME */typedef struct _trace_pid_name{ int pid; int ppid; uint32_t pid_name_len; char* pid_name;} LTT_PACKED_STRUCT trace_pid_name;#define TRACE_PID_NAME(P) \ do \ {\ trace_pid_name pid_name_event;\ pid_name_event.pid = P->pid;\ pid_name_event.ppid = P->p_pptr->pid;\ pid_name_event.pid_name_len = strlen(P->comm) + 1;\ pid_name_event.pid_name = (char*)P->comm;\ trace_event(TRACE_EV_PID_NAME, &pid_name_event);\ } while(0)#else /* Kernel is configured without tracing */#define TRACE_EVENT(ID, DATA)#define TRACE_TRAP_ENTRY(ID, EIP)#define TRACE_TRAP_EXIT()#define TRACE_IRQ_ENTRY(ID, KERNEL)#define TRACE_IRQ_EXIT()#define TRACE_SCHEDCHANGE(OUT, IN)#define TRACE_SOFT_IRQ(ID, DATA)#define TRACE_PROCESS(ID, DATA1, DATA2)#define TRACE_FILE_SYSTEM(ID, DATA1, DATA2, FILE_NAME)#define TRACE_TIMER(ID, SDATA, DATA1, DATA2)#define TRACE_MEMORY(ID, DATA)#define TRACE_SOCKET(ID, DATA1, DATA2)#define TRACE_IPC(ID, DATA1, DATA2)#define TRACE_NETWORK(ID, DATA)#define TRACE_IRQ_NAME(IRQ_NUMBER, IRQ_NAME)#define TRACE_PID_NAME(P)#endif /* defined(CONFIG_TRACE) || defined(CONFIG_TRACE_MODULE) */#endif /* _LINUX_TRACE_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -