diff options
Diffstat (limited to 'src/lib/syscall_mutex.C')
| -rw-r--r-- | src/lib/syscall_mutex.C | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/src/lib/syscall_mutex.C b/src/lib/syscall_mutex.C deleted file mode 100644 index 8ac392792..000000000 --- a/src/lib/syscall_mutex.C +++ /dev/null @@ -1,33 +0,0 @@ -#include <sys/mutex.h> -#include <sys/syscall.h> -#include <kernel/usermutex.H> - -using namespace Systemcalls; - -mutex_t mutex_create() -{ - return (mutex_t) _syscall0(MUTEX_CREATE); -} - -int mutex_destroy(mutex_t m) -{ - return (int64_t)_syscall1(MUTEX_DESTROY, m); -} - -int mutex_lock(mutex_t m) -{ - uint64_t oldvalue = __sync_fetch_and_add(&((UserMutex*)m)->value, 1); - if (0 == oldvalue) - return 0; - else - return (int64_t)_syscall1(MUTEX_LOCK_CONTESTED, m); -} - -int mutex_unlock(mutex_t m) -{ - uint64_t oldvalue = __sync_fetch_and_sub(&((UserMutex*)m)->value, 1); - if (1 == oldvalue) - return 0; - else - return (int64_t)_syscall1(MUTEX_UNLOCK_CONTESTED, m); -} |

