143 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#undef TRACE_SYSTEM3#define TRACE_SYSTEM rv4 5#if !defined(_TRACE_RV_H) || defined(TRACE_HEADER_MULTI_READ)6#define _TRACE_RV_H7 8#include <linux/rv.h>9#include <linux/tracepoint.h>10 11#ifdef CONFIG_DA_MON_EVENTS_IMPLICIT12DECLARE_EVENT_CLASS(event_da_monitor,13 14 TP_PROTO(char *state, char *event, char *next_state, bool final_state),15 16 TP_ARGS(state, event, next_state, final_state),17 18 TP_STRUCT__entry(19 __array( char, state, MAX_DA_NAME_LEN )20 __array( char, event, MAX_DA_NAME_LEN )21 __array( char, next_state, MAX_DA_NAME_LEN )22 __field( bool, final_state )23 ),24 25 TP_fast_assign(26 memcpy(__entry->state, state, MAX_DA_NAME_LEN);27 memcpy(__entry->event, event, MAX_DA_NAME_LEN);28 memcpy(__entry->next_state, next_state, MAX_DA_NAME_LEN);29 __entry->final_state = final_state;30 ),31 32 TP_printk("%s x %s -> %s %s",33 __entry->state,34 __entry->event,35 __entry->next_state,36 __entry->final_state ? "(final)" : "")37);38 39DECLARE_EVENT_CLASS(error_da_monitor,40 41 TP_PROTO(char *state, char *event),42 43 TP_ARGS(state, event),44 45 TP_STRUCT__entry(46 __array( char, state, MAX_DA_NAME_LEN )47 __array( char, event, MAX_DA_NAME_LEN )48 ),49 50 TP_fast_assign(51 memcpy(__entry->state, state, MAX_DA_NAME_LEN);52 memcpy(__entry->event, event, MAX_DA_NAME_LEN);53 ),54 55 TP_printk("event %s not expected in the state %s",56 __entry->event,57 __entry->state)58);59 60#ifdef CONFIG_RV_MON_WIP61DEFINE_EVENT(event_da_monitor, event_wip,62 TP_PROTO(char *state, char *event, char *next_state, bool final_state),63 TP_ARGS(state, event, next_state, final_state));64 65DEFINE_EVENT(error_da_monitor, error_wip,66 TP_PROTO(char *state, char *event),67 TP_ARGS(state, event));68#endif /* CONFIG_RV_MON_WIP */69#endif /* CONFIG_DA_MON_EVENTS_IMPLICIT */70 71#ifdef CONFIG_DA_MON_EVENTS_ID72DECLARE_EVENT_CLASS(event_da_monitor_id,73 74 TP_PROTO(int id, char *state, char *event, char *next_state, bool final_state),75 76 TP_ARGS(id, state, event, next_state, final_state),77 78 TP_STRUCT__entry(79 __field( int, id )80 __array( char, state, MAX_DA_NAME_LEN )81 __array( char, event, MAX_DA_NAME_LEN )82 __array( char, next_state, MAX_DA_NAME_LEN )83 __field( bool, final_state )84 ),85 86 TP_fast_assign(87 memcpy(__entry->state, state, MAX_DA_NAME_LEN);88 memcpy(__entry->event, event, MAX_DA_NAME_LEN);89 memcpy(__entry->next_state, next_state, MAX_DA_NAME_LEN);90 __entry->id = id;91 __entry->final_state = final_state;92 ),93 94 TP_printk("%d: %s x %s -> %s %s",95 __entry->id,96 __entry->state,97 __entry->event,98 __entry->next_state,99 __entry->final_state ? "(final)" : "")100);101 102DECLARE_EVENT_CLASS(error_da_monitor_id,103 104 TP_PROTO(int id, char *state, char *event),105 106 TP_ARGS(id, state, event),107 108 TP_STRUCT__entry(109 __field( int, id )110 __array( char, state, MAX_DA_NAME_LEN )111 __array( char, event, MAX_DA_NAME_LEN )112 ),113 114 TP_fast_assign(115 memcpy(__entry->state, state, MAX_DA_NAME_LEN);116 memcpy(__entry->event, event, MAX_DA_NAME_LEN);117 __entry->id = id;118 ),119 120 TP_printk("%d: event %s not expected in the state %s",121 __entry->id,122 __entry->event,123 __entry->state)124);125 126#ifdef CONFIG_RV_MON_WWNR127/* id is the pid of the task */128DEFINE_EVENT(event_da_monitor_id, event_wwnr,129 TP_PROTO(int id, char *state, char *event, char *next_state, bool final_state),130 TP_ARGS(id, state, event, next_state, final_state));131 132DEFINE_EVENT(error_da_monitor_id, error_wwnr,133 TP_PROTO(int id, char *state, char *event),134 TP_ARGS(id, state, event));135#endif /* CONFIG_RV_MON_WWNR */136 137#endif /* CONFIG_DA_MON_EVENTS_ID */138#endif /* _TRACE_RV_H */139 140/* This part ust be outside protection */141#undef TRACE_INCLUDE_PATH142#include <trace/define_trace.h>143