|
@@ -81,11 +81,19 @@ TYPE CtlNameRec = Record
|
|
|
//
|
|
|
|
|
|
{$ifdef FPC_USE_LIBC}
|
|
|
+{$if defined(VER3_0_0) or defined(VER3_0_2)}
|
|
|
+function FPsysctl (Name: pchar; namelen:cuint; oldp:pointer;oldlenp:psize_t; newp:pointer;newlen:size_t):cint; cdecl; external name 'sysctl';
|
|
|
+{$else}
|
|
|
function FPsysctl (Name: pcint; namelen:cuint; oldp:pointer;oldlenp:psize_t; newp:pointer;newlen:size_t):cint; cdecl; external name 'sysctl';
|
|
|
+{$endif}
|
|
|
function FPsysctlbyname (Name: pchar; oldp:pointer;oldlenp:psize_t; newp:pointer;newlen:size_t):cint; cdecl; external name 'sysctlbyname';
|
|
|
function FPsysctlnametomib (Name: pchar;mibp:pcint;sizep:psize_t):cint; cdecl; external name 'sysctlnametomib';
|
|
|
{$else}
|
|
|
+{$if defined(VER3_0_0) or defined(VER3_0_2)}
|
|
|
+function FPsysctl (Name: pchar; namelen:cuint; oldp:pointer;oldlenp:psize_t; newp:pointer;newlen:size_t):cint;
|
|
|
+{$else}
|
|
|
function FPsysctl (Name: pcint; namelen:cuint; oldp:pointer;oldlenp:psize_t; newp:pointer;newlen:size_t):cint;
|
|
|
+{$endif}
|
|
|
function FPsysctlbyname (Name: pchar; oldp:pointer;oldlenp:psize_t; newp:pointer;newlen:size_t):cint;
|
|
|
function FPsysctlnametomib (Name: pchar; mibp:pcint;sizep:psize_t):cint;
|
|
|
{$endif}
|
|
@@ -101,10 +109,14 @@ Uses Syscall;
|
|
|
CONST syscall_nr___sysctl = 202;
|
|
|
{$endif}
|
|
|
|
|
|
+{$if defined(VER3_0_0) or defined(VER3_0_2)}
|
|
|
+function FPsysctl (Name: pchar; namelen:cuint; oldp:pointer;oldlenp:psize_t; newp:pointer;newlen:size_t):cint;
|
|
|
+{$else}
|
|
|
function FPsysctl (Name: pcint; namelen:cuint; oldp:pointer;oldlenp:psize_t; newp:pointer;newlen:size_t):cint;
|
|
|
+{$endif}
|
|
|
|
|
|
Begin
|
|
|
- if (name[0] <> CTL_USER) Then
|
|
|
+ if (pcint(name)[0] <> CTL_USER) Then
|
|
|
exit(do_syscall(syscall_nr___sysctl,TSysParam(name), namelen, TSysParam(oldp), TSysParam(oldlenp), TSysParam(newp), TSysParam(newlen)))
|
|
|
else
|
|
|
Exit(0);
|