28 #include "SDL_thread.h"
30 #include <pspthreadman.h>
31 #include <pspkerror.h>
33 struct SDL_semaphore {
46 sem->semid = sceKernelCreateSema(
"SDL sema", 0, initial_value, 255,
NULL);
64 sceKernelDeleteSema(sem->semid);
87 res = sceKernelPollSema(sem->semid, 1);
101 res = sceKernelWaitSema(sem->semid, 1, pTimeout);
103 case SCE_KERNEL_ERROR_OK:
105 case SCE_KERNEL_ERROR_WAIT_TIMEOUT:
125 SceKernelSemaInfo info;
132 if (sceKernelReferSemaStatus(sem->semid, &info) >= 0) {
133 return info.currentCount;
147 res = sceKernelSignalSema(sem->semid, 1);
DECLSPEC SDL_sem *SDLCALL SDL_CreateSemaphore(Uint32 initial_value)
#define SDL_MUTEX_MAXWAIT
DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem *sem)
struct SDL_semaphore SDL_sem
DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem *sem, Uint32 ms)
DECLSPEC int SDLCALL SDL_SemWait(SDL_sem *sem)
uint32_t Uint32
An unsigned 32-bit integer type.
DECLSPEC Uint32 SDLCALL SDL_SemValue(SDL_sem *sem)
DECLSPEC int SDLCALL SDL_SetError(const char *fmt,...)
GLbitfield GLuint64 timeout
DECLSPEC void SDLCALL SDL_DestroySemaphore(SDL_sem *sem)
#define SDL_OutOfMemory()
#define SDL_MUTEX_TIMEDOUT
DECLSPEC int SDLCALL SDL_SemPost(SDL_sem *sem)