1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #if !defined(_TRACE_QLA_H_) || defined(TRACE_HEADER_MULTI_READ) 3*4882a593Smuzhiyun #define _TRACE_QLA_H_ 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <linux/tracepoint.h> 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #undef TRACE_SYSTEM 8*4882a593Smuzhiyun #define TRACE_SYSTEM qla 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #define QLA_MSG_MAX 256 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #pragma GCC diagnostic push 13*4882a593Smuzhiyun #ifndef __clang__ 14*4882a593Smuzhiyun #pragma GCC diagnostic ignored "-Wsuggest-attribute=format" 15*4882a593Smuzhiyun #endif 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun DECLARE_EVENT_CLASS(qla_log_event, 18*4882a593Smuzhiyun TP_PROTO(const char *buf, 19*4882a593Smuzhiyun struct va_format *vaf), 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun TP_ARGS(buf, vaf), 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun TP_STRUCT__entry( 24*4882a593Smuzhiyun __string(buf, buf) 25*4882a593Smuzhiyun __dynamic_array(char, msg, QLA_MSG_MAX) 26*4882a593Smuzhiyun ), 27*4882a593Smuzhiyun TP_fast_assign( 28*4882a593Smuzhiyun __assign_str(buf, buf); 29*4882a593Smuzhiyun vsnprintf(__get_str(msg), QLA_MSG_MAX, vaf->fmt, *vaf->va); 30*4882a593Smuzhiyun ), 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun TP_printk("%s %s", __get_str(buf), __get_str(msg)) 33*4882a593Smuzhiyun ); 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun #pragma GCC diagnostic pop 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun DEFINE_EVENT(qla_log_event, ql_dbg_log, 38*4882a593Smuzhiyun TP_PROTO(const char *buf, struct va_format *vaf), 39*4882a593Smuzhiyun TP_ARGS(buf, vaf) 40*4882a593Smuzhiyun ); 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun #endif /* _TRACE_QLA_H */ 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun #define TRACE_INCLUDE_FILE qla 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun #include <trace/define_trace.h> 47