diff options
Diffstat (limited to 'extern/sdlew/include/SDL2/SDL_thread.h')
-rw-r--r-- | extern/sdlew/include/SDL2/SDL_thread.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/extern/sdlew/include/SDL2/SDL_thread.h b/extern/sdlew/include/SDL2/SDL_thread.h new file mode 100644 index 00000000000..d7662713e51 --- /dev/null +++ b/extern/sdlew/include/SDL2/SDL_thread.h @@ -0,0 +1,90 @@ + +#ifndef _SDL_thread_h +#define _SDL_thread_h + +#include "SDL_stdinc.h" +#include "SDL_error.h" + +#include "SDL_atomic.h" +#include "SDL_mutex.h" + +#include "begin_code.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct SDL_Thread; +typedef struct SDL_Thread SDL_Thread; + +typedef unsigned long SDL_threadID; + +typedef unsigned int SDL_TLSID; + +typedef enum { + SDL_THREAD_PRIORITY_LOW, + SDL_THREAD_PRIORITY_NORMAL, + SDL_THREAD_PRIORITY_HIGH +} SDL_ThreadPriority; + +typedef int (SDLCALL * SDL_ThreadFunction) (void *data); + +#if defined(__WIN32__) && !defined(HAVE_LIBC) + +#define SDL_PASSED_BEGINTHREAD_ENDTHREAD +#include <process.h> + +typedef uintptr_t(__cdecl * pfnSDL_CurrentBeginThread) (void *, unsigned, + unsigned (__stdcall * + func) (void + *), + void *arg, unsigned, + unsigned *threadID); +typedef void (__cdecl * pfnSDL_CurrentEndThread) (unsigned code); + +extern DECLSPEC SDL_Thread *SDLCALL +SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, + pfnSDL_CurrentBeginThread pfnBeginThread, + pfnSDL_CurrentEndThread pfnEndThread); + +#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)_beginthreadex, (pfnSDL_CurrentEndThread)_endthreadex) + +#else + +extern DECLSPEC SDL_Thread *SDLCALL +SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data); + +#endif + +typedef const char * SDLCALL tSDL_GetThreadName(SDL_Thread *thread); + +typedef SDL_threadID SDLCALL tSDL_ThreadID(void); + +typedef SDL_threadID SDLCALL tSDL_GetThreadID(SDL_Thread * thread); + +typedef int SDLCALL tSDL_SetThreadPriority(SDL_ThreadPriority priority); + +typedef void SDLCALL tSDL_WaitThread(SDL_Thread * thread, int *status); + +typedef SDL_TLSID SDLCALL tSDL_TLSCreate(void); + +typedef void * SDLCALL tSDL_TLSGet(SDL_TLSID id); + +typedef int SDLCALL tSDL_TLSSet(SDL_TLSID id, const void *value, void (*destructor)(void*)); + +extern tSDL_GetThreadName *SDL_GetThreadName; +extern tSDL_ThreadID *SDL_ThreadID; +extern tSDL_GetThreadID *SDL_GetThreadID; +extern tSDL_SetThreadPriority *SDL_SetThreadPriority; +extern tSDL_WaitThread *SDL_WaitThread; +extern tSDL_TLSCreate *SDL_TLSCreate; +extern tSDL_TLSGet *SDL_TLSGet; +extern tSDL_TLSSet *SDL_TLSSet; + +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif + |