devlink.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #if IS_ENABLED(CONFIG_NET_DEVLINK)
  2. #undef TRACE_SYSTEM
  3. #define TRACE_SYSTEM devlink
  4. #if !defined(_TRACE_DEVLINK_H) || defined(TRACE_HEADER_MULTI_READ)
  5. #define _TRACE_DEVLINK_H
  6. #include <linux/device.h>
  7. #include <net/devlink.h>
  8. #include <linux/tracepoint.h>
  9. /*
  10. * Tracepoint for devlink hardware message:
  11. */
  12. TRACE_EVENT(devlink_hwmsg,
  13. TP_PROTO(const struct devlink *devlink, bool incoming,
  14. unsigned long type, const u8 *buf, size_t len),
  15. TP_ARGS(devlink, incoming, type, buf, len),
  16. TP_STRUCT__entry(
  17. __string(bus_name, devlink->dev->bus->name)
  18. __string(dev_name, dev_name(devlink->dev))
  19. __string(driver_name, devlink->dev->driver->name)
  20. __field(bool, incoming)
  21. __field(unsigned long, type)
  22. __dynamic_array(u8, buf, len)
  23. __field(size_t, len)
  24. ),
  25. TP_fast_assign(
  26. __assign_str(bus_name, devlink->dev->bus->name);
  27. __assign_str(dev_name, dev_name(devlink->dev));
  28. __assign_str(driver_name, devlink->dev->driver->name);
  29. __entry->incoming = incoming;
  30. __entry->type = type;
  31. memcpy(__get_dynamic_array(buf), buf, len);
  32. __entry->len = len;
  33. ),
  34. TP_printk("bus_name=%s dev_name=%s driver_name=%s incoming=%d type=%lu buf=0x[%*phD] len=%zu",
  35. __get_str(bus_name), __get_str(dev_name),
  36. __get_str(driver_name), __entry->incoming, __entry->type,
  37. (int) __entry->len, __get_dynamic_array(buf), __entry->len)
  38. );
  39. #endif /* _TRACE_DEVLINK_H */
  40. /* This part must be outside protection */
  41. #include <trace/define_trace.h>
  42. #else /* CONFIG_NET_DEVLINK */
  43. #if !defined(_TRACE_DEVLINK_H)
  44. #define _TRACE_DEVLINK_H
  45. #include <net/devlink.h>
  46. static inline void trace_devlink_hwmsg(const struct devlink *devlink,
  47. bool incoming, unsigned long type,
  48. const u8 *buf, size_t len)
  49. {
  50. }
  51. #endif /* _TRACE_DEVLINK_H */
  52. #endif