diff --git a/debug/sysctl.c b/debug/sysctl.c index 8d0390d..9a3f143 100644 --- a/debug/sysctl.c +++ b/debug/sysctl.c @@ -2,11 +2,15 @@ #include #include #include +#include -int mib[2]; +int mib[CTL_MAXNAME]; +//int mib[2]; size_t len; char *p; +static int name2oid(const char *name, int *oidp); + int main() { printf("SYSCTL\n"); @@ -56,4 +60,30 @@ printf("[%s]\n", p); + size_t j; + + j = name2oid("vm.overcommit", mib); + + printf("j:[%i]\n", j); + + for (int i = 0; i < j; i++) + printf("[%i]", mib[i]); + printf("\n"); +} + +static int name2oid(const char *name, int *oidp) +{ + int oid[2]; + int i; + size_t j; + + oid[0] = 0; + oid[1] = 3; + + j = CTL_MAXNAME * sizeof(int); + i = sysctl(oid, 2, oidp, &j, name, strlen(name)); + if (i < 0) + return (i); + j /= sizeof(int); + return (j); } diff --git a/sys/Makefile.incl b/sys/Makefile.incl index c3eb38f..71ba64b 100644 --- a/sys/Makefile.incl +++ b/sys/Makefile.incl @@ -9,6 +9,6 @@ INCLUDES = -I${INCLUDE} -CFLAGS = ${KFLAGS} -O -Wall -nostdlib -nostdinc -fno-builtin -fno-exceptions -ffreestanding +CFLAGS = ${KFLAGS} -DDEBUG_SYSCTL -O -Wall -nostdlib -nostdinc -fno-builtin -fno-exceptions -ffreestanding ROOT=/ubixos diff --git a/sys/kernel/kern_sysctl.c b/sys/kernel/kern_sysctl.c index a90aa56..0ab8ae8 100644 --- a/sys/kernel/kern_sysctl.c +++ b/sys/kernel/kern_sysctl.c @@ -252,7 +252,7 @@ if (args->namelen == 2 && args->name[0] == 0 && args->name[1] == 3) { #ifdef DEBUG_SYSCTL - kprintf("name_to_mib: %s", args->newp); + kprintf("%s:%i>name_to_mib: %s", __FILE__,__LINE__,args->newp); #endif // tmpCtl = sysctl_findMib(args->newp, args->namelen); td->td_retval[0] = ENOENT;