18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Tracepoint header for s390 diagnose calls
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright IBM Corp. 2015
68c2ecf20Sopenharmony_ci * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
78c2ecf20Sopenharmony_ci */
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci#undef TRACE_SYSTEM
108c2ecf20Sopenharmony_ci#define TRACE_SYSTEM s390
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci#if !defined(_TRACE_S390_DIAG_H) || defined(TRACE_HEADER_MULTI_READ)
138c2ecf20Sopenharmony_ci#define _TRACE_S390_DIAG_H
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci#include <linux/tracepoint.h>
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_PATH
188c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_FILE
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_PATH asm/trace
218c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_FILE diag
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ciTRACE_EVENT(s390_diagnose,
248c2ecf20Sopenharmony_ci	TP_PROTO(unsigned short nr),
258c2ecf20Sopenharmony_ci	TP_ARGS(nr),
268c2ecf20Sopenharmony_ci	TP_STRUCT__entry(
278c2ecf20Sopenharmony_ci		__field(unsigned short, nr)
288c2ecf20Sopenharmony_ci	),
298c2ecf20Sopenharmony_ci	TP_fast_assign(
308c2ecf20Sopenharmony_ci		__entry->nr = nr;
318c2ecf20Sopenharmony_ci	),
328c2ecf20Sopenharmony_ci	TP_printk("nr=0x%x", __entry->nr)
338c2ecf20Sopenharmony_ci);
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci#ifdef CONFIG_TRACEPOINTS
368c2ecf20Sopenharmony_civoid trace_s390_diagnose_norecursion(int diag_nr);
378c2ecf20Sopenharmony_ci#else
388c2ecf20Sopenharmony_cistatic inline void trace_s390_diagnose_norecursion(int diag_nr) { }
398c2ecf20Sopenharmony_ci#endif
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci#endif /* _TRACE_S390_DIAG_H */
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci/* This part must be outside protection */
448c2ecf20Sopenharmony_ci#include <trace/define_trace.h>
45