spinlock_types_up.h
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef __LINUX_SPINLOCK_TYPES_UP_H
  2. #define __LINUX_SPINLOCK_TYPES_UP_H
  3. #ifndef __LINUX_SPINLOCK_TYPES_H
  4. # error "please don't include this file directly"
  5. #endif
  6. /*
  7.  * include/linux/spinlock_types_up.h - spinlock type definitions for UP
  8.  *
  9.  * portions Copyright 2005, Red Hat, Inc., Ingo Molnar
  10.  * Released under the General Public License (GPL).
  11.  */
  12. #ifdef CONFIG_DEBUG_SPINLOCK
  13. typedef struct {
  14. volatile unsigned int slock;
  15. } raw_spinlock_t;
  16. #define __RAW_SPIN_LOCK_UNLOCKED { 1 }
  17. #else
  18. /*
  19.  * All gcc 2.95 versions and early versions of 2.96 have a nasty bug
  20.  * with empty initializers.
  21.  */
  22. #if (__GNUC__ > 2)
  23. typedef struct { } raw_spinlock_t;
  24. #define __RAW_SPIN_LOCK_UNLOCKED { }
  25. #else
  26. typedef struct { int gcc_is_buggy; } raw_spinlock_t;
  27. #define __RAW_SPIN_LOCK_UNLOCKED (raw_spinlock_t) { 0 }
  28. #endif
  29. #endif
  30. #if (__GNUC__ > 2)
  31. typedef struct {
  32. /* no debug version on UP */
  33. } raw_rwlock_t;
  34. #define __RAW_RW_LOCK_UNLOCKED { }
  35. #else
  36. typedef struct { int gcc_is_buggy; } raw_rwlock_t;
  37. #define __RAW_RW_LOCK_UNLOCKED (raw_rwlock_t) { 0 }
  38. #endif
  39. #endif /* __LINUX_SPINLOCK_TYPES_UP_H */