spinlock.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef __LINUX_SPINLOCK_H__
  2. #define __LINUX_SPINLOCK_H__
  3. #if defined (__GNUC__)
  4. typedef struct { } spinlock_t;
  5. #define SPIN_LOCK_UNLOCKED (spinlock_t) { }
  6. #define DEFINE_SPINLOCK(x) spinlock_t x = SPIN_LOCK_UNLOCKED
  7. #elif defined (MSVC)
  8. typedef struct {int no; } spinlock_t;
  9. #define SPIN_LOCK_UNLOCKED (spinlock_t) ( 0)
  10. #define DEFINE_SPINLOCK(x) spinlock_t x
  11. #else
  12. #error "please use a right C compiler"
  13. #endif
  14. #define spin_lock_init(lock) \
  15. CYG_MACRO_START; \
  16. CYG_UNUSED_PARAM(spinlock_t *, lock); \
  17. CYG_MACRO_END
  18. #define spin_lock(lock) \
  19. CYG_MACRO_START; \
  20. CYG_UNUSED_PARAM(spinlock_t *, lock); \
  21. CYG_MACRO_END
  22. #define spin_unlock(lock) \
  23. CYG_MACRO_START; \
  24. CYG_UNUSED_PARAM(spinlock_t *, lock); \
  25. CYG_MACRO_END
  26. #define spin_lock_bh(lock) \
  27. CYG_MACRO_START; \
  28. CYG_UNUSED_PARAM(spinlock_t *, lock); \
  29. CYG_MACRO_END
  30. #define spin_unlock_bh(lock) \
  31. CYG_MACRO_START; \
  32. CYG_UNUSED_PARAM(spinlock_t *, lock); \
  33. CYG_MACRO_END
  34. #endif /* __LINUX_SPINLOCK_H__ */