diff options
Diffstat (limited to 'sysdeps/mach/i386/machine-lock.h')
-rw-r--r-- | sysdeps/mach/i386/machine-lock.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sysdeps/mach/i386/machine-lock.h b/sysdeps/mach/i386/machine-lock.h index 408c2b39cf..ea8d6f1f70 100644 --- a/sysdeps/mach/i386/machine-lock.h +++ b/sysdeps/mach/i386/machine-lock.h @@ -34,6 +34,9 @@ typedef volatile int __spin_lock_t; /* Unlock LOCK. */ +void __spin_unlock (__spin_lock_t *__lock); + +#ifdef __USE_EXTERN_INLINES _EXTERN_INLINE void __spin_unlock (__spin_lock_t *__lock) { @@ -42,9 +45,13 @@ __spin_unlock (__spin_lock_t *__lock) : "=&r" (__unlocked), "=m" (*__lock) : "0" (0) : "memory"); } +#endif /* Try to lock LOCK; return nonzero if we locked it, zero if another has. */ +int __spin_try_lock (__spin_lock_t *__lock); + +#ifdef __USE_EXTERN_INLINES _EXTERN_INLINE int __spin_try_lock (__spin_lock_t *__lock) { @@ -54,14 +61,19 @@ __spin_try_lock (__spin_lock_t *__lock) : "memory"); return !__locked; } +#endif /* Return nonzero if LOCK is locked. */ +int __spin_lock_locked (__spin_lock_t *__lock); + +#ifdef __USE_EXTERN_INLINES _EXTERN_INLINE int __spin_lock_locked (__spin_lock_t *__lock) { return *__lock != 0; } +#endif #endif /* machine-lock.h */ |