pthrsnos.inc 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. {
  2. Automatically converted by H2Pas 1.0.0 from pthread.h
  3. The following command line parameters were used:
  4. pthread.h
  5. -D
  6. -c
  7. -s
  8. }
  9. type
  10. { from sem.h }
  11. sem_t = cint;
  12. psem_t = ^sem_t;
  13. TSemaphore = sem_t;
  14. PSemaphore = ^TSemaphore;
  15. const
  16. External_library='c'; {Setup as you need}
  17. Type
  18. ppthread_t = ^pthread_t;
  19. ppthread_key_t = ^pthread_key_t;
  20. ppthread_mutex_t = ^pthread_mutex_t;
  21. ppthread_attr_t = ^pthread_attr_t;
  22. __destr_func_t = procedure (p :pointer);cdecl;
  23. __startroutine_t = function (p :pointer):pointer;cdecl;
  24. ppthread_mutexattr_t = ^pthread_mutexattr_t;
  25. ppthread_cond_t = ^pthread_cond_t;
  26. ppthread_condattr_t = ^pthread_condattr_t;
  27. {already in unixtype
  28. pthread_t = culong
  29. }
  30. sched_param = record
  31. __sched_priority: cint;
  32. end;
  33. pthread_attr_t = record
  34. __pthread_attrp : pointer;
  35. end;
  36. { already in unixtype
  37. pthread_mutex_t = record
  38. __pthread_mutex_flags : record
  39. __pthread_mutex_flag1 : word;
  40. __pthread_mutex_flag2 : byte;
  41. __pthread_mutex_ceiling : byte;
  42. __pthread_mutex_type : word;
  43. __pthread_mutex_magic : word;
  44. end;
  45. __pthread_mutex_lock : record
  46. case longint of
  47. 0 : ( __pthread_mutex_lock64 : record
  48. __pthread_mutex_pad : array[0..7] of byte;
  49. end );
  50. 1 : ( __pthread_mutex_lock32 : record
  51. __pthread_ownerpid : dword;
  52. __pthread_lockword : dword;
  53. end );
  54. 2 : ( __pthread_mutex_owner64 : qword );
  55. end;
  56. __pthread_mutex_data : qword;
  57. end;
  58. }
  59. pthread_spinlock_t = pthread_mutex_t;
  60. { already in unix type
  61. pthread_mutexattr_t = record
  62. __pthread_mutexattrp : pointer;
  63. end;
  64. }
  65. { already in unix type
  66. pthread_cond_t = record
  67. __pthread_cond_flags : record
  68. __pthread_cond_flag : array[0..3] of byte;
  69. __pthread_cond_type : uint16_t;
  70. __pthread_cond_magic : uint16_t;
  71. end;
  72. __pthread_cond_data : upad64_t;
  73. end;
  74. pthread_condattr_t = record
  75. __pthread_condattrp : pointer;
  76. end;
  77. pthread_key_t = cuint;
  78. pthread_rwlock_t = record
  79. __pthread_rwlock_readers : int32_t;
  80. __pthread_rwlock_type : uint16_t;
  81. __pthread_rwlock_magic : uint16_t;
  82. __pthread_rwlock_mutex : pthread_mutex_t;
  83. __pthread_rwlock_readercv : pthread_cond_t;
  84. __pthread_rwlock_writercv : pthread_cond_t;
  85. end;
  86. }
  87. pthread_rwlockattr_t = record
  88. __pthread_rwlockattrp : pointer;
  89. end;
  90. _once = record
  91. __pthread_once_pad : array[0..3] of upad64_t;
  92. end;
  93. pthread_once_t = _once;
  94. pthread_barrier_t = record
  95. __pthread_barrier_count : uint32_t;
  96. __pthread_barrier_current : uint32_t;
  97. __pthread_barrier_cycle : upad64_t;
  98. __pthread_barrier_reserved : upad64_t;
  99. __pthread_barrier_lock : pthread_mutex_t;
  100. __pthread_barrier_cond : pthread_cond_t;
  101. end;
  102. pthread_barrierattr_t = record
  103. __pthread_barrierattrp : pointer;
  104. end;
  105. P_cleanup_t = ^_cleanup_t;
  106. Pclockid_t = ^clockid_t;
  107. Plongint = ^longint;
  108. Ppthread_barrier_t = ^pthread_barrier_t;
  109. Ppthread_barrierattr_t = ^pthread_barrierattr_t;
  110. Ppthread_once_t = ^pthread_once_t;
  111. Ppthread_rwlock_t = ^pthread_rwlock_t;
  112. Ppthread_rwlockattr_t = ^pthread_rwlockattr_t;
  113. Ppthread_spinlock_t = ^pthread_spinlock_t;
  114. Psched_param = ^sched_param;
  115. Psize_t = ^size_t;
  116. Ptimespec = ^timespec;
  117. _cleanup = record
  118. pthread_cleanup_pad : array[0..3] of uintptr_t;
  119. end;
  120. _cleanup_t = _cleanup;
  121. const
  122. PTHREAD_CREATE_DETACHED = $40;
  123. PTHREAD_CREATE_JOINABLE = 0;
  124. PTHREAD_SCOPE_SYSTEM = $01;
  125. PTHREAD_SCOPE_PROCESS = 0;
  126. PTHREAD_INHERIT_SCHED = 1;
  127. PTHREAD_EXPLICIT_SCHED = 0;
  128. PTHREAD_PROCESS_SHARED = 1;
  129. PTHREAD_PROCESS_PRIVATE = 0;
  130. _DEFAULT_TYPE = PTHREAD_PROCESS_PRIVATE;
  131. const
  132. DEFAULT_TYPE = _DEFAULT_TYPE;
  133. const
  134. PTHREAD_MUTEX_NORMAL = $0;
  135. PTHREAD_MUTEX_ERRORCHECK = $2;
  136. PTHREAD_MUTEX_RECURSIVE = $4;
  137. PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL;
  138. PTHREAD_PRIO_NONE = $0;
  139. PTHREAD_PRIO_INHERIT = $10;
  140. PTHREAD_PRIO_PROTECT = $20;
  141. PTHREAD_MUTEX_STALL_NP = $0;
  142. PTHREAD_MUTEX_ROBUST_NP = $40;
  143. PTHREAD_CANCEL_ENABLE = $00;
  144. PTHREAD_CANCEL_DISABLE = $01;
  145. PTHREAD_CANCEL_DEFERRED = $00;
  146. PTHREAD_CANCEL_ASYNCHRONOUS = $02;
  147. PTHREAD_CANCELED = pointer(-(19));
  148. PTHREAD_ONCE_NOTDONE = 0;
  149. PTHREAD_ONCE_DONE = 1;
  150. PTHREAD_BARRIER_SERIAL_THREAD = -(2);
  151. type
  152. _Voidfp = procedure (_para1:pointer);cdecl;
  153. _fp = procedure;cdecl;
  154. P_Voidfp = ^_Voidfp;
  155. procedure __pthread_cleanup_push(_para1:_Voidfp; _para2:pointer; _para3:caddr_t; _para4:P_cleanup_t);cdecl;external External_library name '__pthread_cleanup_push';
  156. procedure __pthread_cleanup_pop(_para1:longint; _para2:P_cleanup_t);cdecl;external External_library name '__pthread_cleanup_pop';
  157. function _getfp:caddr_t;cdecl;external External_library name '_getfp';
  158. function pthread_atfork(_para1:_fp ; _para2:_fp ; _para3:_fp ):longint;cdecl;external External_library name 'pthread_atfork';
  159. function pthread_attr_init(_para1:Ppthread_attr_t):longint;cdecl;external External_library name 'pthread_attr_init';
  160. function pthread_attr_destroy(_para1:Ppthread_attr_t):longint;cdecl;external External_library name 'pthread_attr_destroy';
  161. function pthread_attr_setstack(_para1:Ppthread_attr_t; _para2:pointer; _para3:size_t):longint;cdecl;external External_library name 'pthread_attr_setstack';
  162. (* Const before type ignored *)
  163. function pthread_attr_getstack(_RESTRICT_KYWD1:Ppthread_attr_t; _RESTRICT_KYWD2:Ppointer; _RESTRICT_KYWD3:Psize_t):longint;cdecl;external External_library name 'pthread_attr_getstack';
  164. function pthread_attr_setstacksize(_para1:Ppthread_attr_t; _para2:size_t):longint;cdecl;external External_library name 'pthread_attr_setstacksize';
  165. (* Const before type ignored *)
  166. function pthread_attr_getstacksize(_RESTRICT_KYWD1:Ppthread_attr_t; _RESTRICT_KYWD2:Psize_t):longint;cdecl;external External_library name 'pthread_attr_getstacksize';
  167. function pthread_attr_setstackaddr(_para1:Ppthread_attr_t; _para2:pointer):longint;cdecl;external External_library name 'pthread_attr_setstackaddr';
  168. (* Const before type ignored *)
  169. function pthread_attr_getstackaddr(_RESTRICT_KYWD1:Ppthread_attr_t; _RESTRICT_KYWD2:Ppointer):longint;cdecl;external External_library name 'pthread_attr_getstackaddr';
  170. function pthread_attr_setdetachstate(_para1:Ppthread_attr_t; _para2:longint):longint;cdecl;external External_library name 'pthread_attr_setdetachstate';
  171. (* Const before type ignored *)
  172. function pthread_attr_getdetachstate(_para1:Ppthread_attr_t; _para2:Plongint):longint;cdecl;external External_library name 'pthread_attr_getdetachstate';
  173. function pthread_attr_setscope(_para1:Ppthread_attr_t; _para2:longint):longint;cdecl;external External_library name 'pthread_attr_setscope';
  174. (* Const before type ignored *)
  175. function pthread_attr_getscope(_RESTRICT_KYWD1:Ppthread_attr_t; _RESTRICT_KYWD2:Plongint):longint;cdecl;external External_library name 'pthread_attr_getscope';
  176. function pthread_attr_setinheritsched(_para1:Ppthread_attr_t; _para2:longint):longint;cdecl;external External_library name 'pthread_attr_setinheritsched';
  177. (* Const before type ignored *)
  178. function pthread_attr_getinheritsched(_RESTRICT_KYWD1:Ppthread_attr_t; _RESTRICT_KYWD2:Plongint):longint;cdecl;external External_library name 'pthread_attr_getinheritsched';
  179. function pthread_attr_setschedpolicy(_para1:Ppthread_attr_t; _para2:longint):longint;cdecl;external External_library name 'pthread_attr_setschedpolicy';
  180. (* Const before type ignored *)
  181. function pthread_attr_getschedpolicy(_RESTRICT_KYWD1:Ppthread_attr_t; _RESTRICT_KYWD2:Plongint):longint;cdecl;external External_library name 'pthread_attr_getschedpolicy';
  182. (* Const before type ignored *)
  183. function pthread_attr_setschedparam(_RESTRICT_KYWD1:Ppthread_attr_t; _RESTRICT_KYWD2:Psched_param):longint;cdecl;external External_library name 'pthread_attr_setschedparam';
  184. (* Const before type ignored *)
  185. function pthread_attr_getschedparam(_RESTRICT_KYWD1:Ppthread_attr_t; _RESTRICT_KYWD2:Psched_param):longint;cdecl;external External_library name 'pthread_attr_getschedparam';
  186. (* Const before type ignored *)
  187. function pthread_create(_RESTRICT_KYWD1:Ppthread_t; _RESTRICT_KYWD2:Ppthread_attr_t; _para3:P_Voidfp ; _RESTRICT_KYWD3:pointer):longint;cdecl;external External_library name 'pthread_create';
  188. function pthread_once(_para1:Ppthread_once_t; _para2:_fp ):longint;cdecl;external External_library name 'pthread_once';
  189. function pthread_join(_para1:pthread_t; _para2:Ppointer):longint;cdecl;external External_library name 'pthread_join';
  190. function pthread_detach(_para1:pthread_t):longint;cdecl;external External_library name 'pthread_detach';
  191. procedure pthread_exit(_para1:pointer);cdecl;external External_library name 'pthread_exit';
  192. function pthread_cancel(_para1:pthread_t):longint;cdecl;external External_library name 'pthread_cancel';
  193. (* Const before type ignored *)
  194. function pthread_setschedparam(_para1:pthread_t; _para2:longint; _para3:Psched_param):longint;cdecl;external External_library name 'pthread_setschedparam';
  195. function pthread_getschedparam(_para1:pthread_t; _RESTRICT_KYWD1:Plongint; _RESTRICT_KYWD2:Psched_param):longint;cdecl;external External_library name 'pthread_getschedparam';
  196. function pthread_setschedprio(_para1:pthread_t; _para2:longint):longint;cdecl;external External_library name 'pthread_setschedprio';
  197. function pthread_setcancelstate(_para1:longint; _para2:Plongint):longint;cdecl;external External_library name 'pthread_setcancelstate';
  198. function pthread_setcanceltype(_para1:longint; _para2:Plongint):longint;cdecl;external External_library name 'pthread_setcanceltype';
  199. procedure pthread_testcancel;cdecl;external External_library name 'pthread_testcancel';
  200. function pthread_equal(_para1:pthread_t; _para2:pthread_t):longint;cdecl;external External_library name 'pthread_equal';
  201. function pthread_key_create(_para1:Ppthread_key_t; _para2:_Voidfp):longint;cdecl;external External_library name 'pthread_key_create';
  202. function pthread_key_delete(_para1:pthread_key_t):longint;cdecl;external External_library name 'pthread_key_delete';
  203. (* Const before type ignored *)
  204. function pthread_setspecific(_para1:pthread_key_t; _para2:pointer):longint;cdecl;external External_library name 'pthread_setspecific';
  205. function pthread_getspecific(_para1:pthread_key_t):pointer;cdecl;external External_library name 'pthread_getspecific';
  206. function pthread_self:pthread_t;cdecl;external External_library name 'pthread_self';
  207. function pthread_mutexattr_init(_para1:Ppthread_mutexattr_t):longint;cdecl;external External_library name 'pthread_mutexattr_init';
  208. function pthread_mutexattr_destroy(_para1:Ppthread_mutexattr_t):longint;cdecl;external External_library name 'pthread_mutexattr_destroy';
  209. function pthread_mutexattr_setpshared(_para1:Ppthread_mutexattr_t; _para2:longint):longint;cdecl;external External_library name 'pthread_mutexattr_setpshared';
  210. (* Const before type ignored *)
  211. function pthread_mutexattr_getpshared(_RESTRICT_KYWD1:Ppthread_mutexattr_t; _RESTRICT_KYWD2:Plongint):longint;cdecl;external External_library name 'pthread_mutexattr_getpshared';
  212. function pthread_mutexattr_setprotocol(_para1:Ppthread_mutexattr_t; _para2:longint):longint;cdecl;external External_library name 'pthread_mutexattr_setprotocol';
  213. (* Const before type ignored *)
  214. function pthread_mutexattr_getprotocol(_RESTRICT_KYWD1:Ppthread_mutexattr_t; _RESTRICT_KYWD2:Plongint):longint;cdecl;external External_library name 'pthread_mutexattr_getprotocol';
  215. function pthread_mutexattr_setprioceiling(_para1:Ppthread_mutexattr_t; _para2:longint):longint;cdecl;external External_library name 'pthread_mutexattr_setprioceiling';
  216. (* Const before type ignored *)
  217. function pthread_mutexattr_getprioceiling(_RESTRICT_KYWD1:Ppthread_mutexattr_t; _RESTRICT_KYWD2:Plongint):longint;cdecl;external External_library name 'pthread_mutexattr_getprioceiling';
  218. function pthread_mutexattr_setrobust_np(_para1:Ppthread_mutexattr_t; _para2:longint):longint;cdecl;external External_library name 'pthread_mutexattr_setrobust_np';
  219. (* Const before type ignored *)
  220. function pthread_mutexattr_getrobust_np(_RESTRICT_KYWD1:Ppthread_mutexattr_t; _RESTRICT_KYWD2:Plongint):longint;cdecl;external External_library name 'pthread_mutexattr_getrobust_np';
  221. (* Const before type ignored *)
  222. function pthread_mutex_init(_RESTRICT_KYWD1:Ppthread_mutex_t; _RESTRICT_KYWD2:Ppthread_mutexattr_t):longint;cdecl;external External_library name 'pthread_mutex_init';
  223. function pthread_mutex_consistent_np(_para1:Ppthread_mutex_t):longint;cdecl;external External_library name 'pthread_mutex_consistent_np';
  224. function pthread_mutex_destroy(_para1:Ppthread_mutex_t):longint;cdecl;external External_library name 'pthread_mutex_destroy';
  225. function pthread_mutex_lock(_para1:Ppthread_mutex_t):longint;cdecl;external External_library name 'pthread_mutex_lock';
  226. (* Const before type ignored *)
  227. function pthread_mutex_timedlock(_RESTRICT_KYWD1:Ppthread_mutex_t; _RESTRICT_KYWD2:Ptimespec):longint;cdecl;external External_library name 'pthread_mutex_timedlock';
  228. (* Const before type ignored *)
  229. function pthread_mutex_reltimedlock_np(_RESTRICT_KYWD1:Ppthread_mutex_t; _RESTRICT_KYWD2:Ptimespec):longint;cdecl;external External_library name 'pthread_mutex_reltimedlock_np';
  230. function pthread_mutex_unlock(_para1:Ppthread_mutex_t):longint;cdecl;external External_library name 'pthread_mutex_unlock';
  231. function pthread_mutex_trylock(_para1:Ppthread_mutex_t):longint;cdecl;external External_library name 'pthread_mutex_trylock';
  232. function pthread_mutex_setprioceiling(_RESTRICT_KYWD1:Ppthread_mutex_t; _para2:longint; _RESTRICT_KYWD2:Plongint):longint;cdecl;external External_library name 'pthread_mutex_setprioceiling';
  233. (* Const before type ignored *)
  234. function pthread_mutex_getprioceiling(_RESTRICT_KYWD1:Ppthread_mutex_t; _RESTRICT_KYWD2:Plongint):longint;cdecl;external External_library name 'pthread_mutex_getprioceiling';
  235. function pthread_condattr_init(_para1:Ppthread_condattr_t):longint;cdecl;external External_library name 'pthread_condattr_init';
  236. function pthread_condattr_destroy(_para1:Ppthread_condattr_t):longint;cdecl;external External_library name 'pthread_condattr_destroy';
  237. function pthread_condattr_setclock(_para1:Ppthread_condattr_t; _para2:clockid_t):longint;cdecl;external External_library name 'pthread_condattr_setclock';
  238. (* Const before type ignored *)
  239. function pthread_condattr_getclock(_RESTRICT_KYWD1:Ppthread_condattr_t; _RESTRICT_KYWD2:Pclockid_t):longint;cdecl;external External_library name 'pthread_condattr_getclock';
  240. function pthread_condattr_setpshared(_para1:Ppthread_condattr_t; _para2:longint):longint;cdecl;external External_library name 'pthread_condattr_setpshared';
  241. (* Const before type ignored *)
  242. function pthread_condattr_getpshared(_RESTRICT_KYWD1:Ppthread_condattr_t; _RESTRICT_KYWD2:Plongint):longint;cdecl;external External_library name 'pthread_condattr_getpshared';
  243. (* Const before type ignored *)
  244. function pthread_cond_init(_RESTRICT_KYWD1:Ppthread_cond_t; _RESTRICT_KYWD2:Ppthread_condattr_t):longint;cdecl;external External_library name 'pthread_cond_init';
  245. function pthread_cond_destroy(_para1:Ppthread_cond_t):longint;cdecl;external External_library name 'pthread_cond_destroy';
  246. function pthread_cond_broadcast(_para1:Ppthread_cond_t):longint;cdecl;external External_library name 'pthread_cond_broadcast';
  247. function pthread_cond_signal(_para1:Ppthread_cond_t):longint;cdecl;external External_library name 'pthread_cond_signal';
  248. function pthread_cond_wait(_RESTRICT_KYWD1:Ppthread_cond_t; _RESTRICT_KYWD2:Ppthread_mutex_t):longint;cdecl;external External_library name 'pthread_cond_wait';
  249. (* Const before type ignored *)
  250. function pthread_cond_timedwait(_RESTRICT_KYWD1:Ppthread_cond_t; _RESTRICT_KYWD2:Ppthread_mutex_t; _RESTRICT_KYWD3:Ptimespec):longint;cdecl;external External_library name 'pthread_cond_timedwait';
  251. (* Const before type ignored *)
  252. function pthread_cond_reltimedwait_np(_RESTRICT_KYWD1:Ppthread_cond_t; _RESTRICT_KYWD2:Ppthread_mutex_t; _RESTRICT_KYWD3:Ptimespec):longint;cdecl;external External_library name 'pthread_cond_reltimedwait_np';
  253. (* Const before type ignored *)
  254. function pthread_attr_getguardsize(_RESTRICT_KYWD1:Ppthread_attr_t; _RESTRICT_KYWD2:Psize_t):longint;cdecl;external External_library name 'pthread_attr_getguardsize';
  255. function pthread_attr_setguardsize(_para1:Ppthread_attr_t; _para2:size_t):longint;cdecl;external External_library name 'pthread_attr_setguardsize';
  256. function pthread_getconcurrency:longint;cdecl;external External_library name 'pthread_getconcurrency';
  257. function pthread_setconcurrency(_para1:longint):longint;cdecl;external External_library name 'pthread_setconcurrency';
  258. function pthread_mutexattr_settype(_para1:Ppthread_mutexattr_t; _para2:longint):longint;cdecl;external External_library name 'pthread_mutexattr_settype';
  259. (* Const before type ignored *)
  260. function pthread_mutexattr_gettype(_RESTRICT_KYWD1:Ppthread_mutexattr_t; _RESTRICT_KYWD2:Plongint):longint;cdecl;external External_library name 'pthread_mutexattr_gettype';
  261. (* Const before type ignored *)
  262. function pthread_rwlock_init(_RESTRICT_KYWD1:Ppthread_rwlock_t; _RESTRICT_KYWD2:Ppthread_rwlockattr_t):longint;cdecl;external External_library name 'pthread_rwlock_init';
  263. function pthread_rwlock_destroy(_para1:Ppthread_rwlock_t):longint;cdecl;external External_library name 'pthread_rwlock_destroy';
  264. function pthread_rwlock_rdlock(_para1:Ppthread_rwlock_t):longint;cdecl;external External_library name 'pthread_rwlock_rdlock';
  265. (* Const before type ignored *)
  266. function pthread_rwlock_timedrdlock(_RESTRICT_KYWD1:Ppthread_rwlock_t; _RESTRICT_KYWD2:Ptimespec):longint;cdecl;external External_library name 'pthread_rwlock_timedrdlock';
  267. (* Const before type ignored *)
  268. function pthread_rwlock_reltimedrdlock_np(_RESTRICT_KYWD1:Ppthread_rwlock_t; _RESTRICT_KYWD2:Ptimespec):longint;cdecl;external External_library name 'pthread_rwlock_reltimedrdlock_np';
  269. function pthread_rwlock_tryrdlock(_para1:Ppthread_rwlock_t):longint;cdecl;external External_library name 'pthread_rwlock_tryrdlock';
  270. function pthread_rwlock_wrlock(_para1:Ppthread_rwlock_t):longint;cdecl;external External_library name 'pthread_rwlock_wrlock';
  271. (* Const before type ignored *)
  272. function pthread_rwlock_timedwrlock(_RESTRICT_KYWD1:Ppthread_rwlock_t; _RESTRICT_KYWD2:Ptimespec):longint;cdecl;external External_library name 'pthread_rwlock_timedwrlock';
  273. (* Const before type ignored *)
  274. function pthread_rwlock_reltimedwrlock_np(_RESTRICT_KYWD1:Ppthread_rwlock_t; _RESTRICT_KYWD2:Ptimespec):longint;cdecl;external External_library name 'pthread_rwlock_reltimedwrlock_np';
  275. function pthread_rwlock_trywrlock(_para1:Ppthread_rwlock_t):longint;cdecl;external External_library name 'pthread_rwlock_trywrlock';
  276. function pthread_rwlock_unlock(_para1:Ppthread_rwlock_t):longint;cdecl;external External_library name 'pthread_rwlock_unlock';
  277. function pthread_rwlockattr_init(_para1:Ppthread_rwlockattr_t):longint;cdecl;external External_library name 'pthread_rwlockattr_init';
  278. function pthread_rwlockattr_destroy(_para1:Ppthread_rwlockattr_t):longint;cdecl;external External_library name 'pthread_rwlockattr_destroy';
  279. (* Const before type ignored *)
  280. function pthread_rwlockattr_getpshared(_RESTRICT_KYWD1:Ppthread_rwlockattr_t; _RESTRICT_KYWD2:Plongint):longint;cdecl;external External_library name 'pthread_rwlockattr_getpshared';
  281. function pthread_rwlockattr_setpshared(_para1:Ppthread_rwlockattr_t; _para2:longint):longint;cdecl;external External_library name 'pthread_rwlockattr_setpshared';
  282. function pthread_spin_init(_para1:Ppthread_spinlock_t; _para2:longint):longint;cdecl;external External_library name 'pthread_spin_init';
  283. function pthread_spin_destroy(_para1:Ppthread_spinlock_t):longint;cdecl;external External_library name 'pthread_spin_destroy';
  284. function pthread_spin_lock(_para1:Ppthread_spinlock_t):longint;cdecl;external External_library name 'pthread_spin_lock';
  285. function pthread_spin_trylock(_para1:Ppthread_spinlock_t):longint;cdecl;external External_library name 'pthread_spin_trylock';
  286. function pthread_spin_unlock(_para1:Ppthread_spinlock_t):longint;cdecl;external External_library name 'pthread_spin_unlock';
  287. function pthread_barrierattr_init(_para1:Ppthread_barrierattr_t):longint;cdecl;external External_library name 'pthread_barrierattr_init';
  288. function pthread_barrierattr_destroy(_para1:Ppthread_barrierattr_t):longint;cdecl;external External_library name 'pthread_barrierattr_destroy';
  289. function pthread_barrierattr_setpshared(_para1:Ppthread_barrierattr_t; _para2:longint):longint;cdecl;external External_library name 'pthread_barrierattr_setpshared';
  290. (* Const before type ignored *)
  291. function pthread_barrierattr_getpshared(_RESTRICT_KYWD1:Ppthread_barrierattr_t; _RESTRICT_KYWD2:Plongint):longint;cdecl;external External_library name 'pthread_barrierattr_getpshared';
  292. (* Const before type ignored *)
  293. function pthread_barrier_init(_RESTRICT_KYWD1:Ppthread_barrier_t; _RESTRICT_KYWD2:Ppthread_barrierattr_t; _para3:uint_t):longint;cdecl;external External_library name 'pthread_barrier_init';
  294. function pthread_barrier_destroy(_para1:Ppthread_barrier_t):longint;cdecl;external External_library name 'pthread_barrier_destroy';
  295. function pthread_barrier_wait(_para1:Ppthread_barrier_t):longint;cdecl;external External_library name 'pthread_barrier_wait';
  296. function sem_init(__sem:Psem_t; __pshared:cint;__value:cuint):cint;cdecl; external 'c' name 'sem_init';
  297. function sem_destroy(__sem:Psem_t):cint;cdecl;external 'c' name 'sem_destroy';
  298. function sem_close(__sem:Psem_t):cint;cdecl;external 'c' name 'sem_close';
  299. function sem_unlink(__name:Pchar):cint;cdecl;external 'c' name 'sem_unlink';
  300. function sem_wait(__sem:Psem_t):cint;cdecl;external 'c' name 'sem_wait';
  301. function sem_trywait(__sem:Psem_t):cint;cdecl;external 'c' name 'sem_trywait';
  302. function sem_post(__sem:Psem_t):cint;cdecl;external 'c' name 'sem_post';
  303. function sem_getvalue(__sem:Psem_t; __sval:Pcint):cint;cdecl;external 'c' name 'sem_getvalue';
  304. type
  305. { redefinitions }
  306. TThreadAttr = pthread_attr_t;
  307. PThreadAttr = ^TThreadAttr;
  308. TMutexAttribute = pthread_mutexattr_t;
  309. PMutexAttribute = ^TMutexAttribute;
  310. TPthreadMutex = pthread_mutex_t;
  311. PPthreadMutex = ^TPthreadMutex;