12345678910111213141516171819202122232425262728293031323334353637 |
- /*
- * _sysctl() for uClibc
- *
- * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
- *
- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- */
- #include <sys/syscall.h>
- #if defined __NR__sysctl && (defined __USE_GNU || defined __USE_BSD)
- /* psm: including sys/sysctl.h would depend on kernel headers */
- struct __sysctl_args {
- int *name;
- int nlen;
- void *oldval;
- size_t *oldlenp;
- void *newval;
- size_t newlen;
- unsigned long __unused[4];
- };
- extern int sysctl (int *__name, int __nlen, void *__oldval,
- size_t *__oldlenp, void *__newval, size_t __newlen) __THROW;
- int sysctl(int *name, int nlen, void *oldval, size_t * oldlenp,
- void *newval, size_t newlen)
- {
- /* avoid initializing on the stack as gcc will call memset() */
- struct __sysctl_args args;
- args.name = name;
- args.nlen = nlen;
- args.oldval = oldval;
- args.oldlenp = oldlenp;
- args.newval = newval;
- args.newlen = newlen;
- return INLINE_SYSCALL(_sysctl, 1, &args);
- }
- #endif
|