diff --git a/rtl/bsd/ossysc.inc b/rtl/bsd/ossysc.inc index 246ba744cd..1ecd145327 100644 --- a/rtl/bsd/ossysc.inc +++ b/rtl/bsd/ossysc.inc @@ -545,3 +545,13 @@ begin fpreadlink:=do_syscall(syscall_nr_readlink, TSysParam(name),TSysParam(linkname),maxlen); end; +function FpGetRLimit(resource:cint;rlim:PRLimit):cint; [public, alias : 'FPC_SYSC_GETRLIMIT']; +begin + fpgetrlimit:=do_syscall(syscall_nr_getrlimit,TSysParam(Resource),TSysParam(rlim)); +end; + +function FpSetRLimit(Resource:cint;rlim:PRLimit):cint; [public, alias : 'FPC_SYSC_SETRLIMIT']; +begin + fpsetrlimit:=do_syscall(syscall_nr_getrlimit,TSysParam(Resource),TSysParam(rlim)); +end; + diff --git a/rtl/freebsd/sysnr.inc b/rtl/freebsd/sysnr.inc index ae330db77f..4b2e2f54e1 100644 --- a/rtl/freebsd/sysnr.inc +++ b/rtl/freebsd/sysnr.inc @@ -337,5 +337,7 @@ syscall_nr_getdirentries =196; syscall_nr_kse_thr_interrupt = 382; syscall_nr_kse_release = 383; syscall_nr_kse_switchin = 440; + syscall_nr_getrlimit = 194; + syscall_nr_setrlimit = 195; diff --git a/rtl/linux/system.pp b/rtl/linux/system.pp index 198f3fbcb3..6508aa42ad 100644 --- a/rtl/linux/system.pp +++ b/rtl/linux/system.pp @@ -302,6 +302,13 @@ begin GetProcessID := SizeUInt (fpGetPID); end; +{$ifdef FPC_USE_LIBC} +{$ifdef HAS_UGETRLIMIT} + { there is no ugetrlimit libc call, just map it to the getrlimit call in these cases } +function FpUGetRLimit(resource : cInt; rlim : PRLimit) : cInt; cdecl; external clib name 'getrlimit'; +{$endif} +{$endif} + function CheckInitialStkLen(stklen : SizeUInt) : SizeUInt; var limits : TRLimit; diff --git a/rtl/unix/oscdeclh.inc b/rtl/unix/oscdeclh.inc index 5be1403572..91af837527 100644 --- a/rtl/unix/oscdeclh.inc +++ b/rtl/unix/oscdeclh.inc @@ -134,10 +134,6 @@ const // function fpsettimeofday(tp:ptimeval;tzp:ptimezone):cint; {$endif} function FpGetRLimit(resource : cInt; rlim : PRLimit) : cInt; cdecl; external clib name 'getrlimit'; - {$ifdef HAS_UGETRLIMIT} - { there is no ugetrlimit libc call, just map it to the getrlimit call in these cases } - function FpUGetRLimit(resource : cInt; rlim : PRLimit) : cInt; cdecl; external clib name 'getrlimit'; - {$endif} {$ifdef linux} {$ifndef FPC_IS_SYSTEM}