diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/machine-lock.h | 12 | ||||
-rw-r--r-- | sysdeps/mach/i386/machine-lock.h | 12 |
2 files changed, 24 insertions, 0 deletions
diff --git a/sysdeps/generic/machine-lock.h b/sysdeps/generic/machine-lock.h index 4aa2287ada..b3e6724ed3 100644 --- a/sysdeps/generic/machine-lock.h +++ b/sysdeps/generic/machine-lock.h @@ -34,14 +34,21 @@ typedef volatile int __spin_lock_t; /* Unlock LOCK. */ +extern void __spin_unlock (__spin_lock_t *__lock); + +#if defined __USE_EXTERN_INLINES && defined _LIBC _EXTERN_INLINE void __spin_unlock (__spin_lock_t *__lock) { *__lock = 0; } +#endif /* Try to lock LOCK; return nonzero if we locked it, zero if another has. */ +extern int __spin_try_lock (__spin_lock_t *__lock); + +#if defined __USE_EXTERN_INLINES && defined _LIBC _EXTERN_INLINE int __spin_try_lock (__spin_lock_t *__lock) { @@ -50,14 +57,19 @@ __spin_try_lock (__spin_lock_t *__lock) *__lock = 1; return 1; } +#endif /* Return nonzero if LOCK is locked. */ +extern int __spin_lock_locked (__spin_lock_t *__lock); + +#if defined __USE_EXTERN_INLINES && defined _LIBC _EXTERN_INLINE int __spin_lock_locked (__spin_lock_t *__lock) { return *__lock != 0; } +#endif #endif /* machine-lock.h */ diff --git a/sysdeps/mach/i386/machine-lock.h b/sysdeps/mach/i386/machine-lock.h index 8a6a9ee4cc..3c12021eb2 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. */ +extern void __spin_unlock (__spin_lock_t *__lock); + +#if defined __USE_EXTERN_INLINES && defined _LIBC _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. */ +extern int __spin_try_lock (__spin_lock_t *__lock); + +#if defined __USE_EXTERN_INLINES && defined _LIBC _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. */ +extern int __spin_lock_locked (__spin_lock_t *__lock); + +#if defined __USE_EXTERN_INLINES && defined _LIBC _EXTERN_INLINE int __spin_lock_locked (__spin_lock_t *__lock) { return *__lock != 0; } +#endif #endif /* machine-lock.h */ |