|
@@ -101,6 +101,13 @@ const
|
|
|
if (oldval CMP CMPARG)
|
|
|
wake UADDR2; }
|
|
|
|
|
|
+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}
|
|
|
+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}
|
|
|
+
|
|
|
{$ifndef FPC_USE_LIBC}
|
|
|
function futex_op(op, oparg, cmp, cmparg: cint): cint; {$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
{$endif}
|
|
@@ -480,6 +487,45 @@ begin
|
|
|
fdatasync:=do_SysCall(syscall_nr_fdatasync, fd);
|
|
|
end;
|
|
|
|
|
|
+function futex(uaddr:Pcint;op,val:cint;timeout:Ptimespec;addr2:Pcint;val3:cint):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+
|
|
|
+begin
|
|
|
+ futex:=do_syscall(syscall_nr_futex,Tsysparam(uaddr),Tsysparam(op),Tsysparam(val),Tsysparam(timeout),
|
|
|
+ Tsysparam(addr2),Tsysparam(val3));
|
|
|
+end;
|
|
|
+
|
|
|
+function futex(var uaddr;op,val:cint;timeout:Ptimespec;var addr2;val3:cint):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+
|
|
|
+begin
|
|
|
+ futex:=do_syscall(syscall_nr_futex,Tsysparam(@uaddr),Tsysparam(op),Tsysparam(val),Tsysparam(timeout),
|
|
|
+ Tsysparam(@addr2),Tsysparam(val3));
|
|
|
+end;
|
|
|
+
|
|
|
+function futex(var uaddr;op,val:cint;var timeout:Ttimespec;var addr2;val3:cint):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+
|
|
|
+begin
|
|
|
+ futex:=do_syscall(syscall_nr_futex,Tsysparam(@uaddr),Tsysparam(op),Tsysparam(val),Tsysparam(@timeout),
|
|
|
+ Tsysparam(@addr2),Tsysparam(val3));
|
|
|
+end;
|
|
|
+
|
|
|
+function futex(uaddr:Pcint;op,val:cint;timeout:Ptimespec):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+
|
|
|
+begin
|
|
|
+ futex:=do_syscall(syscall_nr_futex,Tsysparam(uaddr),Tsysparam(op),Tsysparam(val),Tsysparam(timeout));
|
|
|
+end;
|
|
|
+
|
|
|
+function futex(var uaddr;op,val:cint;timeout:Ptimespec):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+
|
|
|
+begin
|
|
|
+ futex:=do_syscall(syscall_nr_futex,Tsysparam(@uaddr),Tsysparam(op),Tsysparam(val),Tsysparam(timeout));
|
|
|
+end;
|
|
|
+
|
|
|
+function futex(var uaddr;op,val:cint;var timeout:Ttimespec):cint;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|
|
+
|
|
|
+begin
|
|
|
+ futex:=do_syscall(syscall_nr_futex,Tsysparam(@uaddr),Tsysparam(op),Tsysparam(val),Tsysparam(@timeout));
|
|
|
+end;
|
|
|
+
|
|
|
{$endif} // non-libc
|
|
|
|
|
|
{ FUTEX_OP is a macro, doesn't exist in libC as function}
|