Implement lock_init{_recursive} newlib syscalls

This commit is contained in:
fincs 2017-11-08 20:37:50 +01:00
parent f27685b7b3
commit 03674bba85
2 changed files with 14 additions and 0 deletions

View File

@ -5,8 +5,20 @@
typedef _LOCK_T Mutex;
typedef _LOCK_RECURSIVE_T RMutex;
static inline void mutexInit(Mutex* m)
{
*m = 0;
}
void mutexLock(Mutex* m);
void mutexUnlock(Mutex* m);
static inline void rmutexInit(RMutex* m)
{
m->lock = 0;
m->thread_tag = 0;
m->counter = 0;
}
void rmutexLock(RMutex* m);
void rmutexUnlock(RMutex* m);

View File

@ -11,8 +11,10 @@ void newlibSetup() {
__syscalls.exit = __libnx_exit;
// Register locking syscalls
__syscalls.lock_init = mutexInit;
__syscalls.lock_acquire = mutexLock;
__syscalls.lock_release = mutexUnlock;
__syscalls.lock_init_recursive = rmutexInit;
__syscalls.lock_acquire_recursive = rmutexLock;
__syscalls.lock_release_recursive = rmutexUnlock;
}