fpc/packages/base/libc/semaphoreh.inc
michael 8a3268cddb + Last Borland Compatibility fixes
git-svn-id: trunk@847 -
2005-08-11 17:28:04 +00:00

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';