mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-02 05:54:09 +02:00
53 lines
2.5 KiB
PHP
53 lines
2.5 KiB
PHP
|
|
type
|
|
Psem_t = ^sem_t;
|
|
sem_t = record
|
|
__sem_lock : _pthread_fastlock;
|
|
__sem_value : longint;
|
|
__sem_waiting : _pthread_descr;
|
|
end;
|
|
|
|
|
|
Const
|
|
SEM_FAILED = Psem_t(nil);
|
|
SEM_VALUE_MAX = ((not 0) shr 1);
|
|
|
|
function sem_init(__sem:Psem_t; __pshared:longint; __value:dword):longint;cdecl;external threadslib name 'sem_init';
|
|
function sem_destroy(__sem:Psem_t):longint;cdecl;external threadslib name 'sem_destroy';
|
|
function sem_open(__name:Pchar; __oflag:longint; args:array of const):Psem_t;cdecl;external threadslib name 'sem_open';
|
|
function sem_open(__name:Pchar; __oflag:longint):Psem_t;cdecl;external threadslib name 'sem_open';
|
|
function sem_close(__sem:Psem_t):longint;cdecl;external threadslib name 'sem_close';
|
|
function sem_unlink(__name:Pchar):longint;cdecl;external threadslib name 'sem_unlink';
|
|
function sem_wait(__sem:Psem_t):longint;cdecl;external threadslib name 'sem_wait';
|
|
function sem_timedwait(__sem:Psem_t; __abstime:Ptimespec):longint;cdecl;external threadslib name 'sem_timedwait';
|
|
function sem_trywait(__sem:Psem_t):longint;cdecl;external threadslib name 'sem_trywait';
|
|
function sem_post(__sem:Psem_t):longint;cdecl;external threadslib name 'sem_post';
|
|
function sem_getvalue(__sem:Psem_t; __sval:Plongint):longint;cdecl;external threadslib name 'sem_getvalue';
|
|
|
|
{ ---------------------------------------------------------------------
|
|
Borland compatibility types
|
|
---------------------------------------------------------------------}
|
|
|
|
Type
|
|
TSemaphore = sem_t;
|
|
PSemaphore = ^TSemaphore;
|
|
|
|
__sem_lock_t = record { Not in header file - anonymous , should equal _pthread_fastlock}
|
|
status: Longint;
|
|
spinlock: Integer;
|
|
end;
|
|
|
|
TPCharArray = System.TPCharArray;
|
|
PPCharArray = System.PPCharArray;
|
|
|
|
function sem_init(var __sem: sem_t; __pshared:longint; __value:dword):longint;cdecl;external threadslib name 'sem_init';
|
|
function sem_destroy(var __sem: sem_t):longint;cdecl;external threadslib name 'sem_destroy';
|
|
function sem_close(var __sem: sem_t):longint;cdecl;external threadslib name 'sem_close';
|
|
function sem_wait(var __sem: sem_t):longint;cdecl;external threadslib name 'sem_wait';
|
|
function sem_timedwait(var __sem: sem_t; __abstime:Ptimespec):longint;cdecl;external threadslib name 'sem_timedwait';
|
|
function sem_trywait(var __sem: sem_t):longint;cdecl;external threadslib name 'sem_trywait';
|
|
function sem_post(var __sem: sem_t):longint;cdecl;external threadslib name 'sem_post';
|
|
function sem_getvalue(var __sem: sem_t; __sval:Plongint):longint;cdecl;external threadslib name 'sem_getvalue';
|
|
|
|
|