blackfin.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /*
  2. * Common header file for blackfin family of processors.
  3. *
  4. */
  5. #ifndef _BLACKFIN_H_
  6. #define _BLACKFIN_H_
  7. #define LO(con32) ((con32) & 0xFFFF)
  8. #define lo(con32) ((con32) & 0xFFFF)
  9. #define HI(con32) (((con32) >> 16) & 0xFFFF)
  10. #define hi(con32) (((con32) >> 16) & 0xFFFF)
  11. #include <asm/mach/blackfin.h>
  12. #include <asm/bfin-global.h>
  13. #ifndef __ASSEMBLY__
  14. /* SSYNC implementation for C file */
  15. #if defined(ANOMALY_05000312) && defined(ANOMALY_05000244)
  16. static inline void SSYNC (void)
  17. {
  18. int _tmp;
  19. __asm__ __volatile__ ("cli %0;\n\t"
  20. "nop;nop;\n\t"
  21. "ssync;\n\t"
  22. "sti %0;\n\t"
  23. :"=d"(_tmp):);
  24. }
  25. #elif defined(ANOMALY_05000312) && !defined(ANOMALY_05000244)
  26. static inline void SSYNC (void)
  27. {
  28. int _tmp;
  29. __asm__ __volatile__ ("cli %0;\n\t"
  30. "ssync;\n\t"
  31. "sti %0;\n\t"
  32. :"=d"(_tmp):);
  33. }
  34. #elif !defined(ANOMALY_05000312) && defined(ANOMALY_05000244)
  35. static inline void SSYNC (void)
  36. {
  37. __builtin_bfin_ssync();
  38. }
  39. #elif !defined(ANOMALY_05000312) && !defined(ANOMALY_05000244)
  40. static inline void SSYNC (void)
  41. {
  42. __asm__ __volatile__ ("ssync;\n\t");
  43. }
  44. #endif
  45. /* CSYNC implementation for C file */
  46. #if defined(ANOMALY_05000312) && defined(ANOMALY_05000244)
  47. static inline void CSYNC (void)
  48. {
  49. int _tmp;
  50. __asm__ __volatile__ ("cli %0;\n\t"
  51. "nop;nop;\n\t"
  52. "csync;\n\t"
  53. "sti %0;\n\t"
  54. :"=d"(_tmp):);
  55. }
  56. #elif defined(ANOMALY_05000312) && !defined(ANOMALY_05000244)
  57. static inline void CSYNC (void)
  58. {
  59. int _tmp;
  60. __asm__ __volatile__ ("cli %0;\n\t"
  61. "csync;\n\t"
  62. "sti %0;\n\t"
  63. :"=d"(_tmp):);
  64. }
  65. #elif !defined(ANOMALY_05000312) && defined(ANOMALY_05000244)
  66. static inline void CSYNC (void)
  67. {
  68. __builtin_bfin_csync();
  69. }
  70. #elif !defined(ANOMALY_05000312) && !defined(ANOMALY_05000244)
  71. static inline void CSYNC (void)
  72. {
  73. __asm__ __volatile__ ("csync;\n\t");
  74. }
  75. #endif
  76. #endif /* __ASSEMBLY__ */
  77. #endif /* _BLACKFIN_H_ */