summaryrefslogtreecommitdiff
path: root/mach/lock-intern.h
diff options
context:
space:
mode:
Diffstat (limited to 'mach/lock-intern.h')
-rw-r--r--mach/lock-intern.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/mach/lock-intern.h b/mach/lock-intern.h
index 0a5df7aa09..6d315bbb6b 100644
--- a/mach/lock-intern.h
+++ b/mach/lock-intern.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994-2013 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2014 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,11 +28,15 @@
/* Initialize LOCK. */
+void __spin_lock_init (__spin_lock_t *__lock);
+
+#ifdef __USE_EXTERN_INLINES
_EXTERN_INLINE void
__spin_lock_init (__spin_lock_t *__lock)
{
*__lock = __SPIN_LOCK_INITIALIZER;
}
+#endif
/* Lock LOCK, blocking if we can't get it. */
@@ -40,12 +44,16 @@ extern void __spin_lock_solid (__spin_lock_t *__lock);
/* Lock the spin lock LOCK. */
+void __spin_lock (__spin_lock_t *__lock);
+
+#ifdef __USE_EXTERN_INLINES
_EXTERN_INLINE void
__spin_lock (__spin_lock_t *__lock)
{
if (! __spin_try_lock (__lock))
__spin_lock_solid (__lock);
}
+#endif
/* Name space-clean internal interface to mutex locks.
@@ -70,27 +78,39 @@ extern void __mutex_unlock_solid (void *__lock);
/* Lock the mutex lock LOCK. */
+void __mutex_lock (void *__lock);
+
+#ifdef __USE_EXTERN_INLINES
_EXTERN_INLINE void
__mutex_lock (void *__lock)
{
if (! __spin_try_lock ((__spin_lock_t *) __lock))
__mutex_lock_solid (__lock);
}
+#endif
/* Unlock the mutex lock LOCK. */
+void __mutex_unlock (void *__lock);
+
+#ifdef __USE_EXTERN_INLINES
_EXTERN_INLINE void
__mutex_unlock (void *__lock)
{
__spin_unlock ((__spin_lock_t *) __lock);
__mutex_unlock_solid (__lock);
}
+#endif
+int __mutex_trylock (void *__lock);
+
+#ifdef __USE_EXTERN_INLINES
_EXTERN_INLINE int
__mutex_trylock (void *__lock)
{
return __spin_try_lock ((__spin_lock_t *) __lock);
}
+#endif
#endif /* lock-intern.h */