pthrsnos.inc 22 KB

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