Bläddra i källkod

* Some stuff from 1.0.x ported

marco 23 år sedan
förälder
incheckning
059ebbe89e
3 ändrade filer med 57 tillägg och 5 borttagningar
  1. 10 1
      rtl/freebsd/sysconst.inc
  2. 8 3
      rtl/freebsd/sysnr.inc
  3. 39 1
      rtl/freebsd/unixsysc.inc

+ 10 - 1
rtl/freebsd/sysconst.inc

@@ -100,12 +100,21 @@ Const
   CLONE_FILES   = $00000400; // set if open files shared between processes
   CLONE_SIGHAND = $00000800; // set if signal handlers shared
   CLONE_PID     = $00001000; // set if pid shared
+
+  ITimer_Real    =0;
+  ITimer_Virtual =1;
+  ITimer_Prof    =2;
+
 type
   TCloneFunc=function(args:pointer):longint;cdecl;
 
+
 {
   $Log$
-  Revision 1.5  2001-10-14 13:33:20  peter
+  Revision 1.6  2002-05-06 09:35:09  marco
+   * Some stuff from 1.0.x ported
+
+  Revision 1.5  2001/10/14 13:33:20  peter
     * start of thread support for linux
 
   Revision 1.4  2001/06/19 08:34:16  marco

+ 8 - 3
rtl/freebsd/sysnr.inc

@@ -80,9 +80,8 @@ const
  syscall_nr_setgroups                   = 80;
  syscall_nr_getpgrp                     = 81;
  syscall_nr_setpgid                     = 82;
- syscall_nr_setitimer                   = 83;
  syscall_nr_swapon                      = 85;
- syscall_nr_getitimer                   = 86;
+
  syscall_nr_getdtablesize               = 89;
  syscall_nr_dup2                        = 90;
  syscall_nr_fcntl                       = 92;
@@ -242,6 +241,9 @@ syscall_nr_getdirentries                =196;
 }
 
 {More or less checked BSD syscalls}
+ syscall_nr_getitimer                   = 86;
+ syscall_nr_setitimer                   = 83;
+
  syscall_nr_sysarch                     = 165;
  syscall_nr_accept                      =  30;
  syscall_nr_access                      =  33;
@@ -316,7 +318,10 @@ syscall_nr_getdirentries                =196;
 
 {
   $Log$
-  Revision 1.4  2001-01-22 07:25:10  marco
+  Revision 1.5  2002-05-06 09:35:09  marco
+   * Some stuff from 1.0.x ported
+
+  Revision 1.4  2001/01/22 07:25:10  marco
    * IOPERM for FreeBSD. Port routines moved from linsysca to Unix again .
 
   Revision 1.3  2000/10/26 23:00:12  peter

+ 39 - 1
rtl/freebsd/unixsysc.inc

@@ -746,9 +746,47 @@ begin
   LinuxError:=ErrNo;
 end;
 
+Function SetITimer(Which : Longint;Const value : ItimerVal; VarOValue:ItimerVal):Longint;
+
+Begin
+ SetItimer:=Do_Syscall(syscall_nr_setitimer,Which,Longint(@Value),longint(@value));
+ LinuxError:=ErrNo;
+End;
+
+
+Function GetITimer(Which : Longint;Var value : ItimerVal):Longint;
+
+Begin
+ GetItimer:=Do_Syscall(syscall_nr_getItimer,Which,Longint(@value));
+ LinuxError:=ErrNo;
+End;
+
+
+Function Alarm(Sec: Longint):Longint;
+
+Var it,oitv : Itimerval;
+    
+Begin
+//	register struct itimerval *itp = ⁢
+  
+ it.it_interval.sec:=0; 
+ it.it_interval.usec:=0;
+ it.it_value.sec:=sec; 
+ it.it_value.usec:=0;
+ If SetITimer(ITIMER_REAL,it,oitv)<0 Then
+   Exit(-1);
+ 
+ if oitv.it_value.usec<>0 Then
+   Inc(oitv.it_value.sec);
+ Alarm:=oitv.it_value.sec;
+End; 
+
 {
   $Log$
-  Revision 1.3  2001-06-19 08:59:01  marco
+  Revision 1.4  2002-05-06 09:35:09  marco
+   * Some stuff from 1.0.x ported
+
+  Revision 1.3  2001/06/19 08:59:01  marco
    * Fixes from Unix merge and changes of socketh.inc
 
   Revision 1.2  2001/06/02 00:31:30  peter