[haiku-commits] haiku: hrev47492 - headers/private/shared src/system/libroot/os/locks

  • From: julian.harnath@xxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 13 Jul 2014 16:23:17 +0200 (CEST)

hrev47492 adds 1 changeset to branch 'master'
old head: 2e75b75292d3f68d0fa8152e7cf153deb995da2f
new head: b916156a835cd4f1c16990c33d69190014df77b7
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=b916156+%5E2e75b75

----------------------------------------------------------------------------

b916156: Move libroot synchronization functions to private namespace
  
  * Prefix lock functions with __ to mark them as private. Add
    forwarding macros to keep existing code working.
  
  * Avoids symbol name clashes with kernel lock APIs, occuring when
    using kernellandemu-lib in userlandfs. Thanks to Ingo for the
    suggestion.

                          [ Julian Harnath <julian.harnath@xxxxxxxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev47492
Commit:      b916156a835cd4f1c16990c33d69190014df77b7
URL:         http://cgit.haiku-os.org/haiku/commit/?id=b916156
Author:      Julian Harnath <julian.harnath@xxxxxxxxxxxxxx>
Date:        Sun Jul 13 14:19:08 2014 UTC

----------------------------------------------------------------------------

4 files changed, 59 insertions(+), 36 deletions(-)
headers/private/shared/locks.h                 | 59 +++++++++++++++-------
src/system/libroot/os/locks/mutex.cpp          | 10 ++--
src/system/libroot/os/locks/recursive_lock.cpp | 12 ++---
src/system/libroot/os/locks/rw_lock.cpp        | 14 ++---

----------------------------------------------------------------------------

diff --git a/headers/private/shared/locks.h b/headers/private/shared/locks.h
index 27da7fc..efea590 100644
--- a/headers/private/shared/locks.h
+++ b/headers/private/shared/locks.h
@@ -21,11 +21,17 @@ typedef struct mutex {
 #define MUTEX_FLAG_ADAPTIVE                    0x2
 #define MUTEX_INITIALIZER(name)                { name, 0, 0 }
 
-void           mutex_init(mutex *lock, const char *name);
-void           mutex_init_etc(mutex *lock, const char *name, uint32 flags);
-void           mutex_destroy(mutex *lock);
-status_t       mutex_lock(mutex *lock);
-void           mutex_unlock(mutex *lock);
+#define mutex_init(lock, name)            __mutex_init(lock, name)
+#define mutex_init_etc(lock, name, flags) __mutex_init_etc(lock, name, flags)
+#define mutex_destroy(lock)               __mutex_destroy(lock)
+#define mutex_lock(lock)                  __mutex_lock(lock)
+#define mutex_unlock(lock)                __mutex_unlock(lock)
+
+void           __mutex_init(mutex *lock, const char *name);
+void           __mutex_init_etc(mutex *lock, const char *name, uint32 flags);
+void           __mutex_destroy(mutex *lock);
+status_t       __mutex_lock(mutex *lock);
+void           __mutex_unlock(mutex *lock);
 
 
 typedef struct rw_lock {
@@ -42,13 +48,22 @@ typedef struct rw_lock {
 #define RW_LOCK_INITIALIZER(name)              { MUTEX_INITIALIZER(name), 
NULL, \
                                                                                
        NULL, -1, 0, 0, 0 }
 
-void           rw_lock_init(rw_lock *lock, const char *name);
-void           rw_lock_init_etc(rw_lock *lock, const char *name, uint32 flags);
-void           rw_lock_destroy(rw_lock *lock);
-status_t       rw_lock_read_lock(rw_lock *lock);
-status_t       rw_lock_read_unlock(rw_lock *lock);
-status_t       rw_lock_write_lock(rw_lock *lock);
-status_t       rw_lock_write_unlock(rw_lock *lock);
+#define rw_lock_init(lock, name)   __rw_lock_init(lock, name)
+#define rw_lock_init_etc(lock, name, flags) \
+      __rw_lock_init_etc(lock, name, flags)
+#define rw_lock_destroy(lock)      __rw_lock_destroy(lock)
+#define rw_lock_read_lock(lock)    __rw_lock_read_lock(lock)
+#define rw_lock_read_unlock(lock)  __rw_lock_read_unlock(lock)
+#define rw_lock_write_lock(lock)   __rw_lock_write_lock(lock)
+#define rw_lock_write_unlock(lock) __rw_lock_write_unlock(lock)
+
+void           __rw_lock_init(rw_lock *lock, const char *name);
+void           __rw_lock_init_etc(rw_lock *lock, const char *name, uint32 
flags);
+void           __rw_lock_destroy(rw_lock *lock);
+status_t       __rw_lock_read_lock(rw_lock *lock);
+status_t       __rw_lock_read_unlock(rw_lock *lock);
+status_t       __rw_lock_write_lock(rw_lock *lock);
+status_t       __rw_lock_write_unlock(rw_lock *lock);
 
 
 typedef struct recursive_lock {
@@ -60,13 +75,21 @@ typedef struct recursive_lock {
 #define RECURSIVE_LOCK_FLAG_CLONE_NAME         MUTEX_FLAG_CLONE_NAME
 #define RECURSIVE_LOCK_INITIALIZER(name)       { MUTEX_INITIALIZER(name), -1, 
0 }
 
-void           recursive_lock_init(recursive_lock *lock, const char *name);
-void           recursive_lock_init_etc(recursive_lock *lock, const char *name,
+#define recursive_lock_init(lock, name)    __recursive_lock_init(lock, name)
+#define recursive_lock_init_etc(lock, name, flags) \
+      __recursive_lock_init_etc(lock, name, flags)
+#define recursive_lock_destroy(lock)       __recursive_lock_destroy(lock)
+#define recursive_lock_lock(lock)          __recursive_lock_lock(lock)
+#define recursive_lock_unlock(lock)        __recursive_lock_unlock(lock)
+#define recursive_lock_get_recursion(lock) __recursive_lock_get_recursion(lock)
+
+void           __recursive_lock_init(recursive_lock *lock, const char *name);
+void           __recursive_lock_init_etc(recursive_lock *lock, const char 
*name,
                                uint32 flags);
-void           recursive_lock_destroy(recursive_lock *lock);
-status_t       recursive_lock_lock(recursive_lock *lock);
-void           recursive_lock_unlock(recursive_lock *lock);
-int32          recursive_lock_get_recursion(recursive_lock *lock);
+void           __recursive_lock_destroy(recursive_lock *lock);
+status_t       __recursive_lock_lock(recursive_lock *lock);
+void           __recursive_lock_unlock(recursive_lock *lock);
+int32          __recursive_lock_get_recursion(recursive_lock *lock);
 
 
 #define                INIT_ONCE_UNINITIALIZED -1
diff --git a/src/system/libroot/os/locks/mutex.cpp 
b/src/system/libroot/os/locks/mutex.cpp
index 93fca56..ac074a6 100644
--- a/src/system/libroot/os/locks/mutex.cpp
+++ b/src/system/libroot/os/locks/mutex.cpp
@@ -28,7 +28,7 @@ extern int32 __gCPUCount;
 
 
 void
-mutex_init(mutex *lock, const char *name)
+__mutex_init(mutex *lock, const char *name)
 {
        lock->name = name;
        lock->lock = 0;
@@ -37,7 +37,7 @@ mutex_init(mutex *lock, const char *name)
 
 
 void
-mutex_init_etc(mutex *lock, const char *name, uint32 flags)
+__mutex_init_etc(mutex *lock, const char *name, uint32 flags)
 {
        lock->name = (flags & MUTEX_FLAG_CLONE_NAME) != 0 ? strdup(name) : name;
        lock->lock = 0;
@@ -49,7 +49,7 @@ mutex_init_etc(mutex *lock, const char *name, uint32 flags)
 
 
 void
-mutex_destroy(mutex *lock)
+__mutex_destroy(mutex *lock)
 {
        if ((lock->flags & MUTEX_FLAG_CLONE_NAME) != 0)
                free(const_cast<char*>(lock->name));
@@ -57,7 +57,7 @@ mutex_destroy(mutex *lock)
 
 
 status_t
-mutex_lock(mutex *lock)
+__mutex_lock(mutex *lock)
 {
        uint32 count = 0;
        const uint32 kMaxCount
@@ -87,7 +87,7 @@ mutex_lock(mutex *lock)
 
 
 void
-mutex_unlock(mutex *lock)
+__mutex_unlock(mutex *lock)
 {
        // clear the locked flag
        int32 oldValue = atomic_and(&lock->lock, ~(int32)B_USER_MUTEX_LOCKED);
diff --git a/src/system/libroot/os/locks/recursive_lock.cpp 
b/src/system/libroot/os/locks/recursive_lock.cpp
index bd3b130..6401eb7 100644
--- a/src/system/libroot/os/locks/recursive_lock.cpp
+++ b/src/system/libroot/os/locks/recursive_lock.cpp
@@ -18,7 +18,7 @@
 
 
 int32
-recursive_lock_get_recursion(recursive_lock *lock)
+__recursive_lock_get_recursion(recursive_lock *lock)
 {
        if (lock->holder == find_thread(NULL))
                return lock->recursion;
@@ -28,14 +28,14 @@ recursive_lock_get_recursion(recursive_lock *lock)
 
 
 void
-recursive_lock_init(recursive_lock *lock, const char *name)
+__recursive_lock_init(recursive_lock *lock, const char *name)
 {
        recursive_lock_init_etc(lock, name, 0);
 }
 
 
 void
-recursive_lock_init_etc(recursive_lock *lock, const char *name, uint32 flags)
+__recursive_lock_init_etc(recursive_lock *lock, const char *name, uint32 flags)
 {
        lock->holder = -1;
        lock->recursion = 0;
@@ -44,7 +44,7 @@ recursive_lock_init_etc(recursive_lock *lock, const char 
*name, uint32 flags)
 
 
 void
-recursive_lock_destroy(recursive_lock *lock)
+__recursive_lock_destroy(recursive_lock *lock)
 {
        if (lock == NULL)
                return;
@@ -54,7 +54,7 @@ recursive_lock_destroy(recursive_lock *lock)
 
 
 status_t
-recursive_lock_lock(recursive_lock *lock)
+__recursive_lock_lock(recursive_lock *lock)
 {
        thread_id thread = find_thread(NULL);
 
@@ -69,7 +69,7 @@ recursive_lock_lock(recursive_lock *lock)
 
 
 void
-recursive_lock_unlock(recursive_lock *lock)
+__recursive_lock_unlock(recursive_lock *lock)
 {
        if (find_thread(NULL) != lock->holder) {
                debugger("recursive_lock unlocked by non-holder thread!\n");
diff --git a/src/system/libroot/os/locks/rw_lock.cpp 
b/src/system/libroot/os/locks/rw_lock.cpp
index c66adc5..bc8c6fc 100644
--- a/src/system/libroot/os/locks/rw_lock.cpp
+++ b/src/system/libroot/os/locks/rw_lock.cpp
@@ -80,14 +80,14 @@ rw_lock_unblock(rw_lock *lock)
 
 
 void
-rw_lock_init(rw_lock *lock, const char *name)
+__rw_lock_init(rw_lock *lock, const char *name)
 {
        rw_lock_init_etc(lock, name, 0);
 }
 
 
 void
-rw_lock_init_etc(rw_lock *lock, const char *name, uint32 flags)
+__rw_lock_init_etc(rw_lock *lock, const char *name, uint32 flags)
 {
        lock->waiters = NULL;
        lock->holder = -1;
@@ -99,7 +99,7 @@ rw_lock_init_etc(rw_lock *lock, const char *name, uint32 
flags)
 
 
 void
-rw_lock_destroy(rw_lock *lock)
+__rw_lock_destroy(rw_lock *lock)
 {
        mutex_lock(&lock->lock);
 
@@ -114,7 +114,7 @@ rw_lock_destroy(rw_lock *lock)
 
 
 status_t
-rw_lock_read_lock(rw_lock *lock)
+__rw_lock_read_lock(rw_lock *lock)
 {
        MutexLocker locker(lock->lock);
 
@@ -133,7 +133,7 @@ rw_lock_read_lock(rw_lock *lock)
 
 
 status_t
-rw_lock_read_unlock(rw_lock *lock)
+__rw_lock_read_unlock(rw_lock *lock)
 {
        MutexLocker locker(lock->lock);
 
@@ -161,7 +161,7 @@ rw_lock_read_unlock(rw_lock *lock)
 
 
 status_t
-rw_lock_write_lock(rw_lock *lock)
+__rw_lock_write_lock(rw_lock *lock)
 {
        MutexLocker locker(lock->lock);
 
@@ -194,7 +194,7 @@ rw_lock_write_lock(rw_lock *lock)
 
 
 status_t
-rw_lock_write_unlock(rw_lock *lock)
+__rw_lock_write_unlock(rw_lock *lock)
 {
        MutexLocker locker(lock->lock);
 


Other related posts:

  • » [haiku-commits] haiku: hrev47492 - headers/private/shared src/system/libroot/os/locks - julian . harnath