|
@@ -21,7 +21,7 @@
|
|
|
|
|
|
const
|
|
|
PTHREAD_EXPLICIT_SCHED = 0;
|
|
|
- PTHREAD_CREATE_DETACHED = 1;
|
|
|
+ PTHREAD_CREATE_DETACHED = $40;
|
|
|
PTHREAD_SCOPE_PROCESS = 0;
|
|
|
|
|
|
type
|
|
@@ -32,51 +32,61 @@
|
|
|
end;
|
|
|
|
|
|
pthread_attr_t = record
|
|
|
- __detachstate: cint;
|
|
|
- __schedpolicy: cint;
|
|
|
- __schedparam: sched_param;
|
|
|
- __inheritsched: cint;
|
|
|
- __scope: cint;
|
|
|
- __guardsize: size_t;
|
|
|
- __stackaddr_set: cint;
|
|
|
- __stackaddr: pointer;
|
|
|
- __stacksize: size_t;
|
|
|
- end;
|
|
|
-
|
|
|
- _pthread_fastlock = record
|
|
|
- __status: clong;
|
|
|
- __spinlock: cint;
|
|
|
+ __pthread_attrp : pointer;
|
|
|
end;
|
|
|
|
|
|
pthread_mutexattr_t = record
|
|
|
- __mutexkind: cint;
|
|
|
+ __pthread_mutexattrp : pointer;
|
|
|
end;
|
|
|
|
|
|
pthread_cond_t = record
|
|
|
- __c_lock: _pthread_fastlock;
|
|
|
- __c_waiting: pointer;
|
|
|
- __padding: array[0..48-1-sizeof(_pthread_fastlock)-sizeof(pointer)-sizeof(clonglong)] of byte;
|
|
|
- __align: clonglong;
|
|
|
+ __pthread_cond_flags : record
|
|
|
+ __pthread_cond_flag : array[0..3] of byte;
|
|
|
+ __pthread_cond_type : uint16_t;
|
|
|
+ __pthread_cond_magic : uint16_t;
|
|
|
+ end;
|
|
|
+ __pthread_cond_data : upad64_t;
|
|
|
end;
|
|
|
|
|
|
pthread_condattr_t = record
|
|
|
- __dummy: cint;
|
|
|
+ __pthread_condattrp : pointer;
|
|
|
end;
|
|
|
|
|
|
pthread_key_t = cuint;
|
|
|
|
|
|
+ pthread_mutex_t = record
|
|
|
+ __pthread_mutex_flags : record
|
|
|
+ __pthread_mutex_flag1 : word;
|
|
|
+ __pthread_mutex_flag2 : byte;
|
|
|
+ __pthread_mutex_ceiling : byte;
|
|
|
+ __pthread_mutex_type : word;
|
|
|
+ __pthread_mutex_magic : word;
|
|
|
+ end;
|
|
|
+ __pthread_mutex_lock : record
|
|
|
+ case longint of
|
|
|
+ 0 : ( __pthread_mutex_lock64 : record
|
|
|
+ __pthread_mutex_pad : array[0..7] of byte;
|
|
|
+ end );
|
|
|
+ 1 : ( __pthread_mutex_lock32 : record
|
|
|
+ __pthread_ownerpid : dword;
|
|
|
+ __pthread_lockword : dword;
|
|
|
+ end );
|
|
|
+ 2 : ( __pthread_mutex_owner64 : qword );
|
|
|
+ end;
|
|
|
+ __pthread_mutex_data : qword;
|
|
|
+ end;
|
|
|
+
|
|
|
pthread_rwlock_t = record
|
|
|
- __rw_readers: cint;
|
|
|
- __rw_writer: pointer;
|
|
|
- __rw_read_waiting: pointer;
|
|
|
- __rw_write_waiting: pointer;
|
|
|
- __rw_kind: cint;
|
|
|
- __rw_pshared: cint;
|
|
|
+ __pthread_rwlock_readers : int32_t;
|
|
|
+ __pthread_rwlock_type : uint16_t;
|
|
|
+ __pthread_rwlock_magic : uint16_t;
|
|
|
+ __pthread_rwlock_mutex : pthread_mutex_t;
|
|
|
+ __pthread_rwlock_readercv : pthread_cond_t;
|
|
|
+ __pthread_rwlock_writercv : pthread_cond_t;
|
|
|
end;
|
|
|
|
|
|
pthread_rwlockattr_t = record
|
|
|
- __lockkind: cint;
|
|
|
- __pshared: cint;
|
|
|
+ __pthread_rwlockattrp : pointer;
|
|
|
end;
|
|
|
|
|
|
sem_t = record
|
|
@@ -87,7 +97,7 @@
|
|
|
sem_pad2 : array[0..1] of upad64_t;
|
|
|
end;
|
|
|
|
|
|
- psem_t = ^sem_t;
|
|
|
+ psem_t = ^sem_t;
|
|
|
TSemaphore = sem_t;
|
|
|
PSemaphore = ^TSemaphore;
|
|
|
|
|
@@ -102,28 +112,6 @@
|
|
|
ppthread_cond_t = ^pthread_cond_t;
|
|
|
ppthread_condattr_t = ^pthread_condattr_t;
|
|
|
|
|
|
- pthread_mutex_t = record
|
|
|
- __pthread_mutex_flags : record
|
|
|
- __pthread_mutex_flag1 : word;
|
|
|
- __pthread_mutex_flag2 : byte;
|
|
|
- __pthread_mutex_ceiling : byte;
|
|
|
- __pthread_mutex_type : word;
|
|
|
- __pthread_mutex_magic : word;
|
|
|
- end;
|
|
|
- __pthread_mutex_lock : record
|
|
|
- case longint of
|
|
|
- 0 : ( __pthread_mutex_lock64 : record
|
|
|
- __pthread_mutex_pad : array[0..7] of byte;
|
|
|
- end );
|
|
|
- 1 : ( __pthread_mutex_lock32 : record
|
|
|
- __pthread_ownerpid : dword;
|
|
|
- __pthread_lockword : dword;
|
|
|
- end );
|
|
|
- 2 : ( __pthread_mutex_owner64 : qword );
|
|
|
- end;
|
|
|
- __pthread_mutex_data : qword;
|
|
|
- end;
|
|
|
-
|
|
|
pthread_spinlock_t = pthread_mutex_t;
|
|
|
|
|
|
_once = record
|