|
@@ -10,10 +10,6 @@
|
|
|
#include <sys/syscall.h>
|
|
|
#if defined __NR__sysctl && (defined __USE_GNU || defined __USE_BSD)
|
|
|
|
|
|
-
|
|
|
-extern int sysctl (int *__name, int __nlen, void *__oldval,
|
|
|
- size_t *__oldlenp, void *__newval, size_t __newlen) __THROW;
|
|
|
-
|
|
|
struct __sysctl_args {
|
|
|
int *name;
|
|
|
int nlen;
|
|
@@ -24,21 +20,17 @@ struct __sysctl_args {
|
|
|
unsigned long __unused[4];
|
|
|
};
|
|
|
|
|
|
-static __always_inline
|
|
|
-_syscall1(int, _sysctl, struct __sysctl_args *, args)
|
|
|
-
|
|
|
int sysctl(int *name, int nlen, void *oldval, size_t * oldlenp,
|
|
|
void *newval, size_t newlen)
|
|
|
{
|
|
|
- struct __sysctl_args args = {
|
|
|
- .name = name,
|
|
|
- .nlen = nlen,
|
|
|
- .oldval = oldval,
|
|
|
- .oldlenp = oldlenp,
|
|
|
- .newval = newval,
|
|
|
- .newlen = newlen
|
|
|
- };
|
|
|
-
|
|
|
- return _sysctl(&args);
|
|
|
+
|
|
|
+ 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
|