cio_debug.h 984 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef CIO_DEBUG_H
  2. #define CIO_DEBUG_H
  3. #include <asm/debug.h>
  4. /* for use of debug feature */
  5. extern debug_info_t *cio_debug_msg_id;
  6. extern debug_info_t *cio_debug_trace_id;
  7. extern debug_info_t *cio_debug_crw_id;
  8. #define CIO_TRACE_EVENT(imp, txt) do { \
  9. debug_text_event(cio_debug_trace_id, imp, txt); \
  10. } while (0)
  11. #define CIO_MSG_EVENT(imp, args...) do { \
  12. debug_sprintf_event(cio_debug_msg_id, imp , ##args); \
  13. } while (0)
  14. #define CIO_CRW_EVENT(imp, args...) do { \
  15. debug_sprintf_event(cio_debug_crw_id, imp , ##args); \
  16. } while (0)
  17. static inline void
  18. CIO_HEX_EVENT(int level, void *data, int length)
  19. {
  20. if (unlikely(!cio_debug_trace_id))
  21. return;
  22. while (length > 0) {
  23. debug_event(cio_debug_trace_id, level, data, length);
  24. length -= cio_debug_trace_id->buf_size;
  25. data += cio_debug_trace_id->buf_size;
  26. }
  27. }
  28. #define CIO_DEBUG(printk_level,event_level,msg...) ({ \
  29. if (cio_show_msg) printk(printk_level msg); \
  30. CIO_MSG_EVENT (event_level, msg); \
  31. })
  32. #endif