diff --git a/rtl/linux/linux.pp b/rtl/linux/linux.pp index 96003c3763..b2d83bcfaa 100644 --- a/rtl/linux/linux.pp +++ b/rtl/linux/linux.pp @@ -25,21 +25,25 @@ uses ctypes; type - TSysinfo = packed record - uptime : longint; - loads : array[1..3] of longint; - totalram, - freeram, - sharedram, - bufferram, - totalswap, - freeswap : longint; - procs : integer; - s : string[18]; + SysInfo = record + uptime: clong; //* Seconds since boot */ + loads: array[0..2] of culong; //* 1, 5, and 15 minute load averages */ + totalram: culong; //* Total usable main memory size */ + freeram: culong; //* Available memory size */ + sharedram: culong; //* Amount of shared memory */ + bufferram: culong; //* Memory used by buffers */ + totalswap: culong; //* Total swap space size */ + freeswap: culong; //* swap space still available */ + procs: cushort; //* Number of current processes */ + pad: cushort; //* explicit padding for m68k */ + totalhigh: culong; //* Total high memory size */ + freehigh: culong; //* Available high memory size */ + mem_unit: cuint; //* Memory unit size in bytes */ + _f: array[0..19-2*sizeof(clong)-sizeof(cint)] of cChar; //* Padding: libc5 uses this.. */ end; PSysInfo = ^TSysInfo; -function Sysinfo(var Info:TSysinfo):Boolean; {$ifdef FPC_USE_LIBC} cdecl; external name 'sysinfo'; {$endif} +function Sysinfo(Info: PSysinfo): cInt; {$ifdef FPC_USE_LIBC} cdecl; external name 'sysinfo'; {$endif} const CSIGNAL = $000000ff; // signal mask to be sent at exit @@ -294,13 +298,10 @@ implementation {$ifndef FPC_USE_LIBC} Uses Syscall; -Function Sysinfo(var Info:TSysinfo):Boolean; -{ - Get system info -} -Begin - Sysinfo:=do_SysCall(SysCall_nr_Sysinfo,TSysParam(@info))=0; -End; +function Sysinfo(Info: PSysinfo): cInt; +begin + Sysinfo := do_SysCall(SysCall_nr_Sysinfo, TSysParam(info)); +end; {$ifdef clone_implemented} function clone(func:TCloneFunc;sp:pointer;flags:longint;args:pointer):longint;