diff options
author | Justin Weiss | 2020-08-29 20:48:12 -0700 |
---|---|---|
committer | Justin Weiss | 2020-10-10 23:36:23 -0700 |
commit | c81b3e1533fcfe1529942681121d7b40a663bf85 (patch) | |
tree | 14a6d38b403bbcf92f8e8f5f59b664d6ea4bbb34 /frontend/3ds/semaphore.h | |
parent | 03f41c38234fece3e1b4efefb9f4efb381e24b46 (diff) | |
download | pcsx_rearmed-c81b3e1533fcfe1529942681121d7b40a663bf85.tar.gz pcsx_rearmed-c81b3e1533fcfe1529942681121d7b40a663bf85.tar.bz2 pcsx_rearmed-c81b3e1533fcfe1529942681121d7b40a663bf85.zip |
[3DS] Enable threading for the SPU
Diffstat (limited to 'frontend/3ds/semaphore.h')
-rw-r--r-- | frontend/3ds/semaphore.h | 35 |
1 files changed, 35 insertions, 0 deletions
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 <stdlib.h> +#include <string.h> +#include <stdio.h> + +#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__ + |