trace.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright(c) 2020 Intel Corporation. All rights reserved.
  4. *
  5. * Author: Cezary Rojewski <[email protected]>
  6. */
  7. #undef TRACE_SYSTEM
  8. #define TRACE_SYSTEM intel_catpt
  9. #if !defined(__SND_SOC_INTEL_CATPT_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
  10. #define __SND_SOC_INTEL_CATPT_TRACE_H
  11. #include <linux/types.h>
  12. #include <linux/tracepoint.h>
  13. DECLARE_EVENT_CLASS(catpt_ipc_msg,
  14. TP_PROTO(u32 header),
  15. TP_ARGS(header),
  16. TP_STRUCT__entry(
  17. __field(u32, header)
  18. ),
  19. TP_fast_assign(
  20. __entry->header = header;
  21. ),
  22. TP_printk("0x%08x", __entry->header)
  23. );
  24. DEFINE_EVENT(catpt_ipc_msg, catpt_irq,
  25. TP_PROTO(u32 header),
  26. TP_ARGS(header)
  27. );
  28. DEFINE_EVENT(catpt_ipc_msg, catpt_ipc_request,
  29. TP_PROTO(u32 header),
  30. TP_ARGS(header)
  31. );
  32. DEFINE_EVENT(catpt_ipc_msg, catpt_ipc_reply,
  33. TP_PROTO(u32 header),
  34. TP_ARGS(header)
  35. );
  36. DEFINE_EVENT(catpt_ipc_msg, catpt_ipc_notify,
  37. TP_PROTO(u32 header),
  38. TP_ARGS(header)
  39. );
  40. TRACE_EVENT_CONDITION(catpt_ipc_payload,
  41. TP_PROTO(const u8 *data, size_t size),
  42. TP_ARGS(data, size),
  43. TP_CONDITION(data && size),
  44. TP_STRUCT__entry(
  45. __dynamic_array(u8, buf, size)
  46. ),
  47. TP_fast_assign(
  48. memcpy(__get_dynamic_array(buf), data, size);
  49. ),
  50. TP_printk("%u byte(s)%s",
  51. __get_dynamic_array_len(buf),
  52. __print_hex_dump("", DUMP_PREFIX_NONE, 16, 4,
  53. __get_dynamic_array(buf),
  54. __get_dynamic_array_len(buf), false))
  55. );
  56. #endif /* __SND_SOC_INTEL_CATPT_TRACE_H */
  57. /* This part must be outside protection */
  58. #undef TRACE_INCLUDE_PATH
  59. #define TRACE_INCLUDE_PATH .
  60. #define TRACE_INCLUDE_FILE trace
  61. #include <trace/define_trace.h>