trace.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * Common header file for blackfin family of processors.
  3. *
  4. */
  5. #ifndef _BLACKFIN_TRACE_
  6. #define _BLACKFIN_TRACE_
  7. #ifndef __ASSEMBLY__
  8. /* Trace Macros for C files */
  9. #define trace_buffer_save(x) \
  10. do { \
  11. (x) = bfin_read_TBUFCTL(); \
  12. bfin_write_TBUFCTL((x) & ~TBUFEN); \
  13. } while (0)
  14. #define trace_buffer_restore(x) \
  15. do { \
  16. bfin_write_TBUFCTL((x)); \
  17. } while (0)
  18. #else
  19. /* Trace Macros for Assembly files */
  20. #define TRACE_BUFFER_START(preg, dreg) trace_buffer_start(preg, dreg)
  21. #define TRACE_BUFFER_STOP(preg, dreg) trace_buffer_stop(preg, dreg)
  22. #define trace_buffer_stop(preg, dreg) \
  23. preg.L = LO(TBUFCTL); \
  24. preg.H = HI(TBUFCTL); \
  25. dreg = 0x1; \
  26. [preg] = dreg;
  27. #define trace_buffer_start(preg, dreg) \
  28. preg.L = LO(TBUFCTL); \
  29. preg.H = HI(TBUFCTL); \
  30. dreg = 0x13; \
  31. [preg] = dreg;
  32. #ifdef CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE
  33. # define DEBUG_START_HWTRACE(preg, dreg) trace_buffer_start(preg, dreg)
  34. # define DEBUG_STOP_HWTRACE(preg, dreg) trace_buffer_stop(preg, dreg)
  35. #else
  36. # define DEBUG_START_HWTRACE(preg, dreg)
  37. # define DEBUG_STOP_HWTRACE(preg, dreg)
  38. #endif
  39. #endif /* __ASSEMBLY__ */
  40. #endif /* _BLACKFIN_TRACE_ */