trace.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #if !defined(_ATH6KL_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
  2. #include <net/cfg80211.h>
  3. #include <linux/skbuff.h>
  4. #include <linux/tracepoint.h>
  5. #include "wmi.h"
  6. #if !defined(_ATH6KL_TRACE_H)
  7. static inline unsigned int ath6kl_get_wmi_id(void *buf, size_t buf_len)
  8. {
  9. struct wmi_cmd_hdr *hdr = buf;
  10. if (buf_len < sizeof(*hdr))
  11. return 0;
  12. return le16_to_cpu(hdr->cmd_id);
  13. }
  14. #endif /* __ATH6KL_TRACE_H */
  15. #define _ATH6KL_TRACE_H
  16. /* create empty functions when tracing is disabled */
  17. #if !defined(CONFIG_ATH6KL_TRACING)
  18. #undef TRACE_EVENT
  19. #define TRACE_EVENT(name, proto, ...) \
  20. static inline void trace_ ## name(proto) {}
  21. #endif /* !CONFIG_ATH6KL_TRACING || __CHECKER__ */
  22. #undef TRACE_SYSTEM
  23. #define TRACE_SYSTEM ath6kl
  24. TRACE_EVENT(ath6kl_wmi_cmd,
  25. TP_PROTO(void *buf, size_t buf_len),
  26. TP_ARGS(buf, buf_len),
  27. TP_STRUCT__entry(
  28. __field(unsigned int, id)
  29. __field(size_t, buf_len)
  30. __dynamic_array(u8, buf, buf_len)
  31. ),
  32. TP_fast_assign(
  33. __entry->id = ath6kl_get_wmi_id(buf, buf_len);
  34. __entry->buf_len = buf_len;
  35. memcpy(__get_dynamic_array(buf), buf, buf_len);
  36. ),
  37. TP_printk(
  38. "id %d len %d",
  39. __entry->id, __entry->buf_len
  40. )
  41. );
  42. TRACE_EVENT(ath6kl_wmi_event,
  43. TP_PROTO(void *buf, size_t buf_len),
  44. TP_ARGS(buf, buf_len),
  45. TP_STRUCT__entry(
  46. __field(unsigned int, id)
  47. __field(size_t, buf_len)
  48. __dynamic_array(u8, buf, buf_len)
  49. ),
  50. TP_fast_assign(
  51. __entry->id = ath6kl_get_wmi_id(buf, buf_len);
  52. __entry->buf_len = buf_len;
  53. memcpy(__get_dynamic_array(buf), buf, buf_len);
  54. ),
  55. TP_printk(
  56. "id %d len %d",
  57. __entry->id, __entry->buf_len
  58. )
  59. );
  60. #endif /* _ ATH6KL_TRACE_H || TRACE_HEADER_MULTI_READ*/
  61. /* we don't want to use include/trace/events */
  62. #undef TRACE_INCLUDE_PATH
  63. #define TRACE_INCLUDE_PATH .
  64. #undef TRACE_INCLUDE_FILE
  65. #define TRACE_INCLUDE_FILE trace
  66. /* This part must be outside protection */
  67. #include <trace/define_trace.h>