mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 18:29:28 +02:00
+ Add libc version of futex
git-svn-id: trunk@15811 -
This commit is contained in:
parent
534fdb2e8c
commit
da77c0c190
@ -101,9 +101,15 @@ const
|
||||
if (oldval CMP CMPARG)
|
||||
wake UADDR2; }
|
||||
|
||||
{$ifndef FPC_USE_LIBC}
|
||||
function futex(uaddr:Pcint;op,val:cint;timeout:Ptimespec;addr2:Pcint;val3:cint):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function futex(var uaddr;op,val:cint;timeout:Ptimespec;var addr2;val3:cint):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function futex(var uaddr;op,val:cint;var timeout:Ttimespec;var addr2;val3:cint):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
{$else}
|
||||
function futex(uaddr:Pcint;op,val:cint;timeout:Ptimespec;addr2:Pcint;val3:cint):cint; cdecl; external name 'futex';
|
||||
function futex(var uaddr;op,val:cint;timeout:Ptimespec;var addr2;val3:cint):cint; cdecl; external name 'futex';
|
||||
function futex(var uaddr;op,val:cint;var timeout:Ttimespec;var addr2;val3:cint):cint; cdecl; external name 'futex';
|
||||
{$endif}
|
||||
function futex(uaddr:Pcint;op,val:cint;timeout:Ptimespec):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function futex(var uaddr;op,val:cint;timeout:Ptimespec):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
function futex(var uaddr;op,val:cint;var timeout:Ttimespec):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
@ -526,6 +532,28 @@ begin
|
||||
futex:=do_syscall(syscall_nr_futex,Tsysparam(@uaddr),Tsysparam(op),Tsysparam(val),Tsysparam(@timeout));
|
||||
end;
|
||||
|
||||
{$else}
|
||||
|
||||
{Libc case.}
|
||||
|
||||
function futex(uaddr:Pcint;op,val:cint;timeout:Ptimespec):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
|
||||
begin
|
||||
futex:=futex(uaddr,op,val,nil,nil,0);
|
||||
end;
|
||||
|
||||
function futex(var uaddr;op,val:cint;timeout:Ptimespec):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
|
||||
begin
|
||||
futex:=futex(@uaddr,op,val,nil,nil,0);
|
||||
end;
|
||||
|
||||
function futex(var uaddr;op,val:cint;var timeout:Ttimespec):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
|
||||
begin
|
||||
futex:=futex(@uaddr,op,val,@timeout,nil,0);
|
||||
end;
|
||||
|
||||
{$endif} // non-libc
|
||||
|
||||
{ FUTEX_OP is a macro, doesn't exist in libC as function}
|
||||
|
Loading…
Reference in New Issue
Block a user