diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-06 21:22:38 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-06 21:41:20 +0200 |
commit | 5b1f20b73f410544f06353d4e81d5097c21ceac9 (patch) | |
tree | 7697935c04ad4567b1e1a58b967c39e5561269c6 /rtemsbsd/rtems/rtems-kernel-sysctlbyname.c | |
parent | Add kernel namespace exception for mbstat (diff) | |
download | rtems-libbsd-5b1f20b73f410544f06353d4e81d5097c21ceac9.tar.bz2 |
Rename files for kernel namespace script
This makes it easier to create the kernel namespace header.
Diffstat (limited to 'rtemsbsd/rtems/rtems-kernel-sysctlbyname.c')
-rw-r--r-- | rtemsbsd/rtems/rtems-kernel-sysctlbyname.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/rtemsbsd/rtems/rtems-kernel-sysctlbyname.c b/rtemsbsd/rtems/rtems-kernel-sysctlbyname.c new file mode 100644 index 00000000..ab3e8083 --- /dev/null +++ b/rtemsbsd/rtems/rtems-kernel-sysctlbyname.c @@ -0,0 +1,44 @@ +/** + * @file + * + * @ingroup rtems_bsd_rtems + * + * @brief TODO. + * + * File origin from FreeBSD 'lib/libc/gen/sysctlbyname.c'. + */ + +/* + * ---------------------------------------------------------------------------- + * "THE BEER-WARE LICENSE" (Revision 42): + * <phk@FreeBSD.org> wrote this file. As long as you retain this notice you + * can do whatever you want with this stuff. If we meet some day, and you think + * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp + * ---------------------------------------------------------------------------- + * + */ + +#include <machine/rtems-bsd-kernel-space.h> +#include <machine/rtems-bsd-syscall-api.h> + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <rtems/bsd/sys/types.h> +#include <sys/sysctl.h> + +int +sysctlbyname(const char *name, void *oldp, size_t *oldlenp, + const void *newp, size_t newlen) +{ + int real_oid[CTL_MAXNAME+2]; + int error; + size_t oidlen; + + oidlen = sizeof(real_oid) / sizeof(int); + error = sysctlnametomib(name, real_oid, &oidlen); + if (error < 0) + return (error); + error = sysctl(real_oid, oidlen, oldp, oldlenp, newp, newlen); + return (error); +} |