|  | /* | 
|  | * Copyright (c) 2011 Broadcom Corporation | 
|  | * | 
|  | * Permission to use, copy, modify, and/or distribute this software for any | 
|  | * purpose with or without fee is hereby granted, provided that the above | 
|  | * copyright notice and this permission notice appear in all copies. | 
|  | * | 
|  | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | 
|  | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | 
|  | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY | 
|  | * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | 
|  | * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION | 
|  | * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | 
|  | * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 
|  | */ | 
|  |  | 
|  | #undef TRACE_SYSTEM | 
|  | #define TRACE_SYSTEM brcmsmac | 
|  |  | 
|  | #if !defined(__TRACE_BRCMSMAC_H) || defined(TRACE_HEADER_MULTI_READ) | 
|  |  | 
|  | #define __TRACE_BRCMSMAC_H | 
|  |  | 
|  | #include <linux/tracepoint.h> | 
|  | #include "mac80211_if.h" | 
|  |  | 
|  | #ifndef CONFIG_BRCMDBG | 
|  | #undef TRACE_EVENT | 
|  | #define TRACE_EVENT(name, proto, ...) \ | 
|  | static inline void trace_ ## name(proto) {} | 
|  | #endif | 
|  |  | 
|  | /* | 
|  | * We define a tracepoint, its arguments, its printk format and its | 
|  | * 'fast binary record' layout. | 
|  | */ | 
|  | TRACE_EVENT(brcms_timer, | 
|  | /* TPPROTO is the prototype of the function called by this tracepoint */ | 
|  | TP_PROTO(struct brcms_timer *t), | 
|  | /* | 
|  | * TPARGS(firstarg, p) are the parameters names, same as found in the | 
|  | * prototype. | 
|  | */ | 
|  | TP_ARGS(t), | 
|  | /* | 
|  | * Fast binary tracing: define the trace record via TP_STRUCT__entry(). | 
|  | * You can think about it like a regular C structure local variable | 
|  | * definition. | 
|  | */ | 
|  | TP_STRUCT__entry( | 
|  | __field(uint, ms) | 
|  | __field(uint, set) | 
|  | __field(uint, periodic) | 
|  | ), | 
|  | TP_fast_assign( | 
|  | __entry->ms = t->ms; | 
|  | __entry->set = t->set; | 
|  | __entry->periodic = t->periodic; | 
|  | ), | 
|  | TP_printk( | 
|  | "ms=%u set=%u periodic=%u", | 
|  | __entry->ms, __entry->set, __entry->periodic | 
|  | ) | 
|  | ); | 
|  |  | 
|  | TRACE_EVENT(brcms_dpc, | 
|  | TP_PROTO(unsigned long data), | 
|  | TP_ARGS(data), | 
|  | TP_STRUCT__entry( | 
|  | __field(unsigned long, data) | 
|  | ), | 
|  | TP_fast_assign( | 
|  | __entry->data = data; | 
|  | ), | 
|  | TP_printk( | 
|  | "data=%p", | 
|  | (void *)__entry->data | 
|  | ) | 
|  | ); | 
|  |  | 
|  | #endif /* __TRACE_BRCMSMAC_H */ | 
|  |  | 
|  | #ifdef CONFIG_BRCMDBG | 
|  |  | 
|  | #undef TRACE_INCLUDE_PATH | 
|  | #define TRACE_INCLUDE_PATH . | 
|  | #undef TRACE_INCLUDE_FILE | 
|  | #define TRACE_INCLUDE_FILE brcms_trace_events | 
|  |  | 
|  | #include <trace/define_trace.h> | 
|  |  | 
|  | #endif /* CONFIG_BRCMDBG */ |