From 059ebbe89ee7bbc9060d5628f6335c41fc63eb44 Mon Sep 17 00:00:00 2001 From: marco Date: Mon, 6 May 2002 09:35:09 +0000 Subject: [PATCH] * Some stuff from 1.0.x ported --- rtl/freebsd/sysconst.inc | 11 ++++++++++- rtl/freebsd/sysnr.inc | 11 ++++++++--- rtl/freebsd/unixsysc.inc | 40 +++++++++++++++++++++++++++++++++++++++- 3 files changed, 57 insertions(+), 5 deletions(-) diff --git a/rtl/freebsd/sysconst.inc b/rtl/freebsd/sysconst.inc index 5acb3e1217..269f46fbed 100644 --- a/rtl/freebsd/sysconst.inc +++ b/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 diff --git a/rtl/freebsd/sysnr.inc b/rtl/freebsd/sysnr.inc index 05c5ec6eec..2a573f3a35 100644 --- a/rtl/freebsd/sysnr.inc +++ b/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 diff --git a/rtl/freebsd/unixsysc.inc b/rtl/freebsd/unixsysc.inc index 98dadc0f47..ad4bc8f068 100644 --- a/rtl/freebsd/unixsysc.inc +++ b/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