From c81b3e1533fcfe1529942681121d7b40a663bf85 Mon Sep 17 00:00:00 2001 From: Justin Weiss Date: Sat, 29 Aug 2020 20:48:12 -0700 Subject: [3DS] Enable threading for the SPU --- frontend/3ds/semaphore.h | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 frontend/3ds/semaphore.h (limited to 'frontend/3ds/semaphore.h') diff --git a/frontend/3ds/semaphore.h b/frontend/3ds/semaphore.h new file mode 100644 index 0000000..6eddd98 --- /dev/null +++ b/frontend/3ds/semaphore.h @@ -0,0 +1,35 @@ + +#ifndef _3DS_SEMAPHORE_WRAP__ +#define _3DS_SEMAPHORE_WRAP__ + +#include +#include +#include + +#include "3ds_utils.h" + +typedef uint32_t sem_t; + +static inline int sem_init(sem_t *sem, int pshared, unsigned int value) +{ + return svcCreateSemaphore(sem, value, INT32_MAX); +} + +static inline int sem_post(sem_t *sem) +{ + int32_t count; + return svcReleaseSemaphore(&count, *sem, 1); +} + +static inline int sem_wait(sem_t *sem) +{ + return svcWaitSynchronization(*sem, INT64_MAX); +} + +static inline int sem_destroy(sem_t *sem) +{ + return svcCloseHandle(*sem); +} + +#endif //_3DS_SEMAPHORE_WRAP__ + -- cgit v1.2.3