qdio_debug.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright IBM Corp. 2008
  4. *
  5. * Author: Jan Glauber (jang@linux.vnet.ibm.com)
  6. */
  7. #ifndef QDIO_DEBUG_H
  8. #define QDIO_DEBUG_H
  9. #include <asm/debug.h>
  10. #include <asm/qdio.h>
  11. #include "qdio.h"
  12. /* that gives us 15 characters in the text event views */
  13. #define QDIO_DBF_LEN 32
  14. extern debug_info_t *qdio_dbf_setup;
  15. extern debug_info_t *qdio_dbf_error;
  16. #define DBF_ERR 3 /* error conditions */
  17. #define DBF_WARN 4 /* warning conditions */
  18. #define DBF_INFO 6 /* informational */
  19. #undef DBF_EVENT
  20. #undef DBF_ERROR
  21. #undef DBF_DEV_EVENT
  22. #define DBF_EVENT(text...) \
  23. do { \
  24. char debug_buffer[QDIO_DBF_LEN]; \
  25. snprintf(debug_buffer, QDIO_DBF_LEN, text); \
  26. debug_text_event(qdio_dbf_setup, DBF_ERR, debug_buffer); \
  27. } while (0)
  28. static inline void DBF_HEX(void *addr, int len)
  29. {
  30. debug_event(qdio_dbf_setup, DBF_ERR, addr, len);
  31. }
  32. #define DBF_ERROR(text...) \
  33. do { \
  34. char debug_buffer[QDIO_DBF_LEN]; \
  35. snprintf(debug_buffer, QDIO_DBF_LEN, text); \
  36. debug_text_event(qdio_dbf_error, DBF_ERR, debug_buffer); \
  37. } while (0)
  38. static inline void DBF_ERROR_HEX(void *addr, int len)
  39. {
  40. debug_event(qdio_dbf_error, DBF_ERR, addr, len);
  41. }
  42. #define DBF_DEV_EVENT(level, device, text...) \
  43. do { \
  44. char debug_buffer[QDIO_DBF_LEN]; \
  45. if (debug_level_enabled(device->debug_area, level)) { \
  46. snprintf(debug_buffer, QDIO_DBF_LEN, text); \
  47. debug_text_event(device->debug_area, level, debug_buffer); \
  48. } \
  49. } while (0)
  50. static inline void DBF_DEV_HEX(struct qdio_irq *dev, void *addr,
  51. int len, int level)
  52. {
  53. debug_event(dev->debug_area, level, addr, len);
  54. }
  55. int qdio_allocate_dbf(struct qdio_initialize *init_data,
  56. struct qdio_irq *irq_ptr);
  57. void qdio_setup_debug_entries(struct qdio_irq *irq_ptr,
  58. struct ccw_device *cdev);
  59. void qdio_shutdown_debug_entries(struct qdio_irq *irq_ptr);
  60. int qdio_debug_init(void);
  61. void qdio_debug_exit(void);
  62. #endif