1# This file makes most of the thread related macros look like 2# functions, which they really were, if possible easy. 3 4# default thread implementation 5 6<MACRO> 7<NAME>G_THREADS_IMPL_POSIX</NAME> 8#define G_THREADS_IMPL_POSIX 9</MACRO> 10 11<MACRO> 12<NAME>G_THREADS_IMPL_NONE</NAME> 13#define G_THREADS_IMPL_NONE 14</MACRO> 15 16# threads supported? 17 18<FUNCTION> 19<NAME>g_thread_supported</NAME> 20<RETURNS>gboolean</RETURNS> 21</FUNCTION> 22 23# GMutex 24 25<FUNCTION> 26<NAME>g_mutex_new</NAME> 27<RETURNS>GMutex *</RETURNS> 28</FUNCTION> 29 30<FUNCTION> 31<NAME>g_mutex_lock</NAME> 32<RETURNS>void</RETURNS> 33GMutex *mutex 34</FUNCTION> 35 36<FUNCTION> 37<NAME>g_mutex_trylock</NAME> 38<RETURNS>gboolean</RETURNS> 39GMutex *mutex 40</FUNCTION> 41 42<FUNCTION> 43<NAME>g_mutex_unlock</NAME> 44<RETURNS>void</RETURNS> 45GMutex *mutex 46</FUNCTION> 47 48<FUNCTION> 49<NAME>g_mutex_free</NAME> 50<RETURNS>void</RETURNS> 51GMutex *mutex 52</FUNCTION> 53 54# GStaticMutex 55 56<STRUCT> 57<NAME>GStaticMutex</NAME> 58</STRUCT> 59 60<MACRO> 61<NAME>G_STATIC_MUTEX_INIT</NAME> 62#define G_STATIC_MUTEX_INIT 63</MACRO> 64 65<FUNCTION> 66<NAME>g_static_mutex_lock</NAME> 67<RETURNS>void</RETURNS> 68GStaticMutex* mutex 69</FUNCTION> 70 71<FUNCTION> 72<NAME>g_static_mutex_trylock</NAME> 73<RETURNS>gboolean</RETURNS> 74GStaticMutex* mutex 75</FUNCTION> 76 77<FUNCTION> 78<NAME>g_static_mutex_unlock</NAME> 79<RETURNS>void</RETURNS> 80GStaticMutex* mutex 81</FUNCTION> 82 83<FUNCTION> 84<NAME>g_static_mutex_get_mutex</NAME> 85<RETURNS>GMutex *</RETURNS> 86GStaticMutex* mutex 87</FUNCTION> 88 89# GThread 90 91<FUNCTION> 92<NAME>g_thread_yield</NAME> 93<RETURNS>void</RETURNS> 94</FUNCTION> 95 96<FUNCTION> 97<NAME>g_thread_create</NAME> 98<RETURNS>GThread *</RETURNS> 99GThreadFunc func 100gpointer data, 101gboolean joinable, 102GError **error 103</FUNCTION> 104 105# G_LOCK_* macros 106 107<MACRO> 108<NAME>G_LOCK_DEFINE</NAME> 109#define G_LOCK_DEFINE(name) 110</MACRO> 111 112<MACRO> 113<NAME>G_LOCK_DEFINE_STATIC</NAME> 114#define G_LOCK_DEFINE_STATIC(name) 115</MACRO> 116 117<MACRO> 118<NAME>G_LOCK_EXTERN</NAME> 119#define G_LOCK_EXTERN(name) 120</MACRO> 121 122<MACRO> 123<NAME>G_LOCK</NAME> 124#define G_LOCK(name) 125</MACRO> 126 127<MACRO> 128<NAME>G_UNLOCK</NAME> 129#define G_UNLOCK(name) 130</MACRO> 131 132<MACRO> 133<NAME>G_TRYLOCK</NAME> 134#define G_TRYLOCK(name) 135</MACRO> 136 137# GCond 138 139<FUNCTION> 140<NAME>g_cond_new</NAME> 141<RETURNS>GCond*</RETURNS> 142</FUNCTION> 143 144<FUNCTION> 145<NAME>g_cond_signal</NAME> 146<RETURNS>void</RETURNS> 147GCond *cond 148</FUNCTION> 149 150<FUNCTION> 151<NAME>g_cond_broadcast</NAME> 152<RETURNS>void</RETURNS> 153GCond *cond 154</FUNCTION> 155 156<FUNCTION> 157<NAME>g_cond_wait</NAME> 158<RETURNS>void</RETURNS> 159GCond *cond, GMutex *mutex 160</FUNCTION> 161 162<FUNCTION> 163<NAME>g_cond_timed_wait</NAME> 164<RETURNS>gboolean</RETURNS> 165GCond *cond, GMutex *mutex, GTimeVal *abs_time 166</FUNCTION> 167 168<FUNCTION> 169<NAME>g_cond_free</NAME> 170<RETURNS>void</RETURNS> 171GCond *cond 172</FUNCTION> 173 174# GPrivate 175 176<FUNCTION> 177<NAME>g_private_new</NAME> 178<RETURNS>GPrivate*</RETURNS> 179GDestroyNotify destructor 180</FUNCTION> 181 182<FUNCTION> 183<NAME>g_private_get</NAME> 184<RETURNS>gpointer</RETURNS> 185GPrivate *private_key 186</FUNCTION> 187 188<FUNCTION> 189<NAME>g_private_set</NAME> 190<RETURNS>void</RETURNS> 191GPrivate *private_key, gpointer data 192</FUNCTION> 193 194# GStaticPrivate 195 196<MACRO> 197<NAME>G_STATIC_PRIVATE_INIT</NAME> 198#define G_STATIC_PRIVATE_INIT 199</MACRO> 200 201# Definitions for different operating systems 202 203<MACRO> 204<NAME>G_OS_UNIX</NAME> 205#define G_OS_UNIX 206</MACRO> 207 208<MACRO> 209<NAME>G_OS_WIN32</NAME> 210#define G_OS_WIN32 211</MACRO> 212 213<MACRO> 214<NAME>G_OS_BEOS</NAME> 215#define G_OS_BEOS 216</MACRO> 217 218# g_ascii_isxxx 219 220<FUNCTION> 221<NAME>g_ascii_isalnum</NAME> 222<RETURNS>gboolean</RETURNS> 223gchar c 224</FUNCTION> 225 226<FUNCTION> 227<NAME>g_ascii_isalpha</NAME> 228<RETURNS>gboolean</RETURNS> 229gchar c 230</FUNCTION> 231 232<FUNCTION> 233<NAME>g_ascii_iscntrl</NAME> 234<RETURNS>gboolean</RETURNS> 235gchar c 236</FUNCTION> 237 238<FUNCTION> 239<NAME>g_ascii_isdigit</NAME> 240<RETURNS>gboolean</RETURNS> 241gchar c 242</FUNCTION> 243 244<FUNCTION> 245<NAME>g_ascii_isgraph</NAME> 246<RETURNS>gboolean</RETURNS> 247gchar c 248</FUNCTION> 249 250<FUNCTION> 251<NAME>g_ascii_islower</NAME> 252<RETURNS>gboolean</RETURNS> 253gchar c 254</FUNCTION> 255 256<FUNCTION> 257<NAME>g_ascii_isprint</NAME> 258<RETURNS>gboolean</RETURNS> 259gchar c 260</FUNCTION> 261 262<FUNCTION> 263<NAME>g_ascii_ispunct</NAME> 264<RETURNS>gboolean</RETURNS> 265gchar c 266</FUNCTION> 267 268<FUNCTION> 269<NAME>g_ascii_isspace</NAME> 270<RETURNS>gboolean</RETURNS> 271gchar c 272</FUNCTION> 273 274<FUNCTION> 275<NAME>g_ascii_isupper</NAME> 276<RETURNS>gboolean</RETURNS> 277gchar c 278</FUNCTION> 279 280<FUNCTION> 281<NAME>g_ascii_isxdigit</NAME> 282<RETURNS>gboolean</RETURNS> 283gchar c 284</FUNCTION> 285 286# g_atomic 287 288<FUNCTION> 289<NAME>g_atomic_int_inc</NAME> 290<RETURNS>void</RETURNS> 291gint *atomic 292</FUNCTION> 293 294<FUNCTION> 295<NAME>g_atomic_int_dec_and_test</NAME> 296<RETURNS>gboolean</RETURNS> 297gint *atomic 298</FUNCTION> 299 300<STRUCT> 301<NAME>GIConv</NAME> 302</STRUCT> 303 304<MACRO> 305<NAME>G_VA_COPY</NAME> 306#define G_VA_COPY(ap1,ap2) 307</MACRO> 308