Browse Source

+ semtimedop() for Linux, marked as "platform" (last part of patch from
mantis #14075)

git-svn-id: trunk@16339 -

Jonas Maebe 14 years ago
parent
commit
0cb2fa1baf
3 changed files with 12 additions and 0 deletions
  1. 5 0
      rtl/linux/ipccall.inc
  2. 4 0
      rtl/linux/ipcsys.inc
  3. 3 0
      rtl/unix/ipc.pp

+ 5 - 0
rtl/linux/ipccall.inc

@@ -124,3 +124,8 @@ begin
   semctl:=ipccall(CALL_SEMCTL,semid,semnum,cmd,@arg,0);
   semctl:=ipccall(CALL_SEMCTL,semid,semnum,cmd,@arg,0);
 end;
 end;
 
 
+Function semtimedop(semid:cint; sops: psembuf; nsops: cuint; timeOut: ptimespec): cint;
+begin
+  semtimedop:=ipccall(CALL_SEMTIMEDOP,semid,culong(nsops),culong(0),Pointer(sops),clong(timeOut));
+end;
+

+ 4 - 0
rtl/linux/ipcsys.inc

@@ -81,5 +81,9 @@ begin
   semctl:=do_syscall(syscall_nr_SEMCTL,TSysParam(semid),TSysParam(semnum),TSysParam(cmd),TSysParam(arg));
   semctl:=do_syscall(syscall_nr_SEMCTL,TSysParam(semid),TSysParam(semnum),TSysParam(cmd),TSysParam(arg));
 end;
 end;
 
 
+Function semtimedop(semid:cint; sops: psembuf; nsops: cuint; timeOut: ptimespec): cint;
+begin
+  semtimedop:=do_syscall( syscall_nr_SEMTIMEDOP,TSysParam(semid),TSysParam(sops),TSysParam(nsops),TSysParam(timeOut));
+end;
 
 
 
 

+ 3 - 0
rtl/unix/ipc.pp

@@ -550,6 +550,9 @@ Type
 Function semget(key:Tkey; nsems:cint; semflg:cint): cint; {$ifdef FPC_USE_LIBC} cdecl; external clib name 'semget'; {$endif}
 Function semget(key:Tkey; nsems:cint; semflg:cint): cint; {$ifdef FPC_USE_LIBC} cdecl; external clib name 'semget'; {$endif}
 Function semop(semid:cint; sops: psembuf; nsops: cuint): cint; {$ifdef FPC_USE_LIBC} cdecl; external clib name 'semop'; {$endif}
 Function semop(semid:cint; sops: psembuf; nsops: cuint): cint; {$ifdef FPC_USE_LIBC} cdecl; external clib name 'semop'; {$endif}
 Function semctl(semid:cint; semnum:cint; cmd:cint; var arg: tsemun): cint;
 Function semctl(semid:cint; semnum:cint; cmd:cint; var arg: tsemun): cint;
+{$ifdef linux}
+Function semtimedop(semid:cint; sops: psembuf; nsops: cuint; timeOut: ptimespec): cint; platform; {$ifdef FPC_USE_LIBC} cdecl; external name 'semtimedop'; {$endif}
+{$endif}
 
 
 implementation
 implementation