| /* |
| * Copyright (c) 2018, Mellanox Technologies. All rights reserved. |
| * |
| * This software is available to you under a choice of one of two |
| * licenses. You may choose to be licensed under the terms of the GNU |
| * General Public License (GPL) Version 2, available from the file |
| * COPYING in the main directory of this source tree, or the |
| * OpenIB.org BSD license below: |
| * |
| * Redistribution and use in source and binary forms, with or |
| * without modification, are permitted provided that the following |
| * conditions are met: |
| * |
| * - Redistributions of source code must retain the above |
| * copyright notice, this list of conditions and the following |
| * disclaimer. |
| * |
| * - Redistributions in binary form must reproduce the above |
| * copyright notice, this list of conditions and the following |
| * disclaimer in the documentation and/or other materials |
| * provided with the distribution. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
| * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
| * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
| * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
| * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
| * SOFTWARE. |
| */ |
| |
| #if !defined(__LIB_TRACER_TRACEPOINT_H__) || defined(TRACE_HEADER_MULTI_READ) |
| #define __LIB_TRACER_TRACEPOINT_H__ |
| |
| #include <linux/tracepoint.h> |
| #include "fw_tracer.h" |
| |
| #undef TRACE_SYSTEM |
| #define TRACE_SYSTEM mlx5 |
| |
| /* Tracepoint for FWTracer messages: */ |
| TRACE_EVENT(mlx5_fw, |
| TP_PROTO(const struct mlx5_fw_tracer *tracer, u64 trace_timestamp, |
| bool lost, u8 event_id, const char *msg), |
| |
| TP_ARGS(tracer, trace_timestamp, lost, event_id, msg), |
| |
| TP_STRUCT__entry( |
| __string(dev_name, dev_name(tracer->dev->device)) |
| __field(u64, trace_timestamp) |
| __field(bool, lost) |
| __field(u8, event_id) |
| __string(msg, msg) |
| ), |
| |
| TP_fast_assign( |
| __assign_str(dev_name, |
| dev_name(tracer->dev->device)); |
| __entry->trace_timestamp = trace_timestamp; |
| __entry->lost = lost; |
| __entry->event_id = event_id; |
| __assign_str(msg, msg); |
| ), |
| |
| TP_printk("%s [0x%llx] %d [0x%x] %s", |
| __get_str(dev_name), |
| __entry->trace_timestamp, |
| __entry->lost, __entry->event_id, |
| __get_str(msg)) |
| ); |
| |
| #endif |
| |
| #undef TRACE_INCLUDE_PATH |
| #undef TRACE_INCLUDE_FILE |
| #define TRACE_INCLUDE_PATH ./diag |
| #define TRACE_INCLUDE_FILE fw_tracer_tracepoint |
| #include <trace/define_trace.h> |