1*81ba39a8SDennis Dalessandro /* 2*81ba39a8SDennis Dalessandro * Copyright(c) 2015 Intel Corporation. 3*81ba39a8SDennis Dalessandro * 4*81ba39a8SDennis Dalessandro * This file is provided under a dual BSD/GPLv2 license. When using or 5*81ba39a8SDennis Dalessandro * redistributing this file, you may do so under either license. 6*81ba39a8SDennis Dalessandro * 7*81ba39a8SDennis Dalessandro * GPL LICENSE SUMMARY 8*81ba39a8SDennis Dalessandro * 9*81ba39a8SDennis Dalessandro * This program is free software; you can redistribute it and/or modify 10*81ba39a8SDennis Dalessandro * it under the terms of version 2 of the GNU General Public License as 11*81ba39a8SDennis Dalessandro * published by the Free Software Foundation. 12*81ba39a8SDennis Dalessandro * 13*81ba39a8SDennis Dalessandro * This program is distributed in the hope that it will be useful, but 14*81ba39a8SDennis Dalessandro * WITHOUT ANY WARRANTY; without even the implied warranty of 15*81ba39a8SDennis Dalessandro * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16*81ba39a8SDennis Dalessandro * General Public License for more details. 17*81ba39a8SDennis Dalessandro * 18*81ba39a8SDennis Dalessandro * BSD LICENSE 19*81ba39a8SDennis Dalessandro * 20*81ba39a8SDennis Dalessandro * Redistribution and use in source and binary forms, with or without 21*81ba39a8SDennis Dalessandro * modification, are permitted provided that the following conditions 22*81ba39a8SDennis Dalessandro * are met: 23*81ba39a8SDennis Dalessandro * 24*81ba39a8SDennis Dalessandro * - Redistributions of source code must retain the above copyright 25*81ba39a8SDennis Dalessandro * notice, this list of conditions and the following disclaimer. 26*81ba39a8SDennis Dalessandro * - Redistributions in binary form must reproduce the above copyright 27*81ba39a8SDennis Dalessandro * notice, this list of conditions and the following disclaimer in 28*81ba39a8SDennis Dalessandro * the documentation and/or other materials provided with the 29*81ba39a8SDennis Dalessandro * distribution. 30*81ba39a8SDennis Dalessandro * - Neither the name of Intel Corporation nor the names of its 31*81ba39a8SDennis Dalessandro * contributors may be used to endorse or promote products derived 32*81ba39a8SDennis Dalessandro * from this software without specific prior written permission. 33*81ba39a8SDennis Dalessandro * 34*81ba39a8SDennis Dalessandro * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 35*81ba39a8SDennis Dalessandro * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 36*81ba39a8SDennis Dalessandro * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 37*81ba39a8SDennis Dalessandro * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 38*81ba39a8SDennis Dalessandro * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 39*81ba39a8SDennis Dalessandro * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 40*81ba39a8SDennis Dalessandro * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 41*81ba39a8SDennis Dalessandro * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 42*81ba39a8SDennis Dalessandro * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 43*81ba39a8SDennis Dalessandro * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 44*81ba39a8SDennis Dalessandro * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 45*81ba39a8SDennis Dalessandro * 46*81ba39a8SDennis Dalessandro */ 47*81ba39a8SDennis Dalessandro 48*81ba39a8SDennis Dalessandro #undef TRACE_SYSTEM_VAR 49*81ba39a8SDennis Dalessandro #define TRACE_SYSTEM_VAR rdmavt 50*81ba39a8SDennis Dalessandro 51*81ba39a8SDennis Dalessandro #if !defined(__RDMAVT_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) 52*81ba39a8SDennis Dalessandro #define __RDMAVT_TRACE_H 53*81ba39a8SDennis Dalessandro 54*81ba39a8SDennis Dalessandro #include <linux/tracepoint.h> 55*81ba39a8SDennis Dalessandro #include <linux/trace_seq.h> 56*81ba39a8SDennis Dalessandro 57*81ba39a8SDennis Dalessandro #include <rdma/rdma_vt.h> 58*81ba39a8SDennis Dalessandro 59*81ba39a8SDennis Dalessandro #define RDI_DEV_ENTRY(rdi) __string(dev, rdi->driver_f.get_card_name(rdi)) 60*81ba39a8SDennis Dalessandro #define RDI_DEV_ASSIGN(rdi) __assign_str(dev, rdi->driver_f.get_card_name(rdi)) 61*81ba39a8SDennis Dalessandro 62*81ba39a8SDennis Dalessandro #undef TRACE_SYSTEM 63*81ba39a8SDennis Dalessandro #define TRACE_SYSTEM rdmavt 64*81ba39a8SDennis Dalessandro 65*81ba39a8SDennis Dalessandro TRACE_EVENT(rvt_dbg, 66*81ba39a8SDennis Dalessandro TP_PROTO(struct rvt_dev_info *rdi, 67*81ba39a8SDennis Dalessandro const char *msg), 68*81ba39a8SDennis Dalessandro TP_ARGS(rdi, msg), 69*81ba39a8SDennis Dalessandro TP_STRUCT__entry( 70*81ba39a8SDennis Dalessandro RDI_DEV_ENTRY(rdi) 71*81ba39a8SDennis Dalessandro __string(msg, msg) 72*81ba39a8SDennis Dalessandro ), 73*81ba39a8SDennis Dalessandro TP_fast_assign( 74*81ba39a8SDennis Dalessandro RDI_DEV_ASSIGN(rdi); 75*81ba39a8SDennis Dalessandro __assign_str(msg, msg); 76*81ba39a8SDennis Dalessandro ), 77*81ba39a8SDennis Dalessandro TP_printk("[%s]: %s", __get_str(dev), __get_str(msg)) 78*81ba39a8SDennis Dalessandro ); 79*81ba39a8SDennis Dalessandro 80*81ba39a8SDennis Dalessandro #endif /* __RDMAVT_TRACE_H */ 81*81ba39a8SDennis Dalessandro 82*81ba39a8SDennis Dalessandro #undef TRACE_INCLUDE_PATH 83*81ba39a8SDennis Dalessandro #undef TRACE_INCLUDE_FILE 84*81ba39a8SDennis Dalessandro #define TRACE_INCLUDE_PATH . 85*81ba39a8SDennis Dalessandro #define TRACE_INCLUDE_FILE trace 86*81ba39a8SDennis Dalessandro #include <trace/define_trace.h> 87