Mercurial > sdl-ios-xcode
comparison include/SDL_mutex.h @ 337:9154ec9ca3d2
Explicitly specify the SDL API calling convention (C by default)
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Thu, 11 Apr 2002 14:35:16 +0000 |
parents | f6ffac90895c |
children | 04ec6995f75d |
comparison
equal
deleted
inserted
replaced
336:745873ea091f | 337:9154ec9ca3d2 |
---|---|
58 /* The SDL mutex structure, defined in SDL_mutex.c */ | 58 /* The SDL mutex structure, defined in SDL_mutex.c */ |
59 struct SDL_mutex; | 59 struct SDL_mutex; |
60 typedef struct SDL_mutex SDL_mutex; | 60 typedef struct SDL_mutex SDL_mutex; |
61 | 61 |
62 /* Create a mutex, initialized unlocked */ | 62 /* Create a mutex, initialized unlocked */ |
63 extern DECLSPEC SDL_mutex * SDL_CreateMutex(void); | 63 extern DECLSPEC SDL_mutex * SDLCALL SDL_CreateMutex(void); |
64 | 64 |
65 /* Lock the mutex (Returns 0, or -1 on error) */ | 65 /* Lock the mutex (Returns 0, or -1 on error) */ |
66 #define SDL_LockMutex(m) SDL_mutexP(m) | 66 #define SDL_LockMutex(m) SDL_mutexP(m) |
67 extern DECLSPEC int SDL_mutexP(SDL_mutex *mutex); | 67 extern DECLSPEC int SDLCALL SDL_mutexP(SDL_mutex *mutex); |
68 | 68 |
69 /* Unlock the mutex (Returns 0, or -1 on error) */ | 69 /* Unlock the mutex (Returns 0, or -1 on error) */ |
70 #define SDL_UnlockMutex(m) SDL_mutexV(m) | 70 #define SDL_UnlockMutex(m) SDL_mutexV(m) |
71 extern DECLSPEC int SDL_mutexV(SDL_mutex *mutex); | 71 extern DECLSPEC int SDLCALL SDL_mutexV(SDL_mutex *mutex); |
72 | 72 |
73 /* Destroy a mutex */ | 73 /* Destroy a mutex */ |
74 extern DECLSPEC void SDL_DestroyMutex(SDL_mutex *mutex); | 74 extern DECLSPEC void SDLCALL SDL_DestroyMutex(SDL_mutex *mutex); |
75 | 75 |
76 | 76 |
77 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | 77 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
78 /* Semaphore functions */ | 78 /* Semaphore functions */ |
79 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | 79 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
81 /* The SDL semaphore structure, defined in SDL_sem.c */ | 81 /* The SDL semaphore structure, defined in SDL_sem.c */ |
82 struct SDL_semaphore; | 82 struct SDL_semaphore; |
83 typedef struct SDL_semaphore SDL_sem; | 83 typedef struct SDL_semaphore SDL_sem; |
84 | 84 |
85 /* Create a semaphore, initialized with value, returns NULL on failure. */ | 85 /* Create a semaphore, initialized with value, returns NULL on failure. */ |
86 extern DECLSPEC SDL_sem * SDL_CreateSemaphore(Uint32 initial_value); | 86 extern DECLSPEC SDL_sem * SDLCALL SDL_CreateSemaphore(Uint32 initial_value); |
87 | 87 |
88 /* Destroy a semaphore */ | 88 /* Destroy a semaphore */ |
89 extern DECLSPEC void SDL_DestroySemaphore(SDL_sem *sem); | 89 extern DECLSPEC void SDLCALL SDL_DestroySemaphore(SDL_sem *sem); |
90 | 90 |
91 /* This function suspends the calling thread until the semaphore pointed | 91 /* This function suspends the calling thread until the semaphore pointed |
92 * to by sem has a positive count. It then atomically decreases the semaphore | 92 * to by sem has a positive count. It then atomically decreases the semaphore |
93 * count. | 93 * count. |
94 */ | 94 */ |
95 extern DECLSPEC int SDL_SemWait(SDL_sem *sem); | 95 extern DECLSPEC int SDLCALL SDL_SemWait(SDL_sem *sem); |
96 | 96 |
97 /* Non-blocking variant of SDL_SemWait(), returns 0 if the wait succeeds, | 97 /* Non-blocking variant of SDL_SemWait(), returns 0 if the wait succeeds, |
98 SDL_MUTEX_TIMEDOUT if the wait would block, and -1 on error. | 98 SDL_MUTEX_TIMEDOUT if the wait would block, and -1 on error. |
99 */ | 99 */ |
100 extern DECLSPEC int SDL_SemTryWait(SDL_sem *sem); | 100 extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem *sem); |
101 | 101 |
102 /* Variant of SDL_SemWait() with a timeout in milliseconds, returns 0 if | 102 /* Variant of SDL_SemWait() with a timeout in milliseconds, returns 0 if |
103 the wait succeeds, SDL_MUTEX_TIMEDOUT if the wait does not succeed in | 103 the wait succeeds, SDL_MUTEX_TIMEDOUT if the wait does not succeed in |
104 the allotted time, and -1 on error. | 104 the allotted time, and -1 on error. |
105 On some platforms this function is implemented by looping with a delay | 105 On some platforms this function is implemented by looping with a delay |
106 of 1 ms, and so should be avoided if possible. | 106 of 1 ms, and so should be avoided if possible. |
107 */ | 107 */ |
108 extern DECLSPEC int SDL_SemWaitTimeout(SDL_sem *sem, Uint32 ms); | 108 extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem *sem, Uint32 ms); |
109 | 109 |
110 /* Atomically increases the semaphore's count (not blocking), returns 0, | 110 /* Atomically increases the semaphore's count (not blocking), returns 0, |
111 or -1 on error. | 111 or -1 on error. |
112 */ | 112 */ |
113 extern DECLSPEC int SDL_SemPost(SDL_sem *sem); | 113 extern DECLSPEC int SDLCALL SDL_SemPost(SDL_sem *sem); |
114 | 114 |
115 /* Returns the current count of the semaphore */ | 115 /* Returns the current count of the semaphore */ |
116 extern DECLSPEC Uint32 SDL_SemValue(SDL_sem *sem); | 116 extern DECLSPEC Uint32 SDLCALL SDL_SemValue(SDL_sem *sem); |
117 | 117 |
118 | 118 |
119 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | 119 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
120 /* Condition variable functions */ | 120 /* Condition variable functions */ |
121 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | 121 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ |
123 /* The SDL condition variable structure, defined in SDL_cond.c */ | 123 /* The SDL condition variable structure, defined in SDL_cond.c */ |
124 struct SDL_cond; | 124 struct SDL_cond; |
125 typedef struct SDL_cond SDL_cond; | 125 typedef struct SDL_cond SDL_cond; |
126 | 126 |
127 /* Create a condition variable */ | 127 /* Create a condition variable */ |
128 extern DECLSPEC SDL_cond * SDL_CreateCond(void); | 128 extern DECLSPEC SDL_cond * SDLCALL SDL_CreateCond(void); |
129 | 129 |
130 /* Destroy a condition variable */ | 130 /* Destroy a condition variable */ |
131 extern DECLSPEC void SDL_DestroyCond(SDL_cond *cond); | 131 extern DECLSPEC void SDLCALL SDL_DestroyCond(SDL_cond *cond); |
132 | 132 |
133 /* Restart one of the threads that are waiting on the condition variable, | 133 /* Restart one of the threads that are waiting on the condition variable, |
134 returns 0 or -1 on error. | 134 returns 0 or -1 on error. |
135 */ | 135 */ |
136 extern DECLSPEC int SDL_CondSignal(SDL_cond *cond); | 136 extern DECLSPEC int SDLCALL SDL_CondSignal(SDL_cond *cond); |
137 | 137 |
138 /* Restart all threads that are waiting on the condition variable, | 138 /* Restart all threads that are waiting on the condition variable, |
139 returns 0 or -1 on error. | 139 returns 0 or -1 on error. |
140 */ | 140 */ |
141 extern DECLSPEC int SDL_CondBroadcast(SDL_cond *cond); | 141 extern DECLSPEC int SDLCALL SDL_CondBroadcast(SDL_cond *cond); |
142 | 142 |
143 /* Wait on the condition variable, unlocking the provided mutex. | 143 /* Wait on the condition variable, unlocking the provided mutex. |
144 The mutex must be locked before entering this function! | 144 The mutex must be locked before entering this function! |
145 Returns 0 when it is signaled, or -1 on error. | 145 Returns 0 when it is signaled, or -1 on error. |
146 */ | 146 */ |
147 extern DECLSPEC int SDL_CondWait(SDL_cond *cond, SDL_mutex *mut); | 147 extern DECLSPEC int SDLCALL SDL_CondWait(SDL_cond *cond, SDL_mutex *mut); |
148 | 148 |
149 /* Waits for at most 'ms' milliseconds, and returns 0 if the condition | 149 /* Waits for at most 'ms' milliseconds, and returns 0 if the condition |
150 variable is signaled, SDL_MUTEX_TIMEDOUT if the condition is not | 150 variable is signaled, SDL_MUTEX_TIMEDOUT if the condition is not |
151 signaled in the allotted time, and -1 on error. | 151 signaled in the allotted time, and -1 on error. |
152 On some platforms this function is implemented by looping with a delay | 152 On some platforms this function is implemented by looping with a delay |
153 of 1 ms, and so should be avoided if possible. | 153 of 1 ms, and so should be avoided if possible. |
154 */ | 154 */ |
155 extern DECLSPEC int SDL_CondWaitTimeout(SDL_cond *cond, SDL_mutex *mutex, Uint32 ms); | 155 extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond *cond, SDL_mutex *mutex, Uint32 ms); |
156 | 156 |
157 /* Ends C function definitions when using C++ */ | 157 /* Ends C function definitions when using C++ */ |
158 #ifdef __cplusplus | 158 #ifdef __cplusplus |
159 } | 159 } |
160 #endif | 160 #endif |