1*df6ad731Slogwang /*
2*df6ad731Slogwang * ----------------------------------------------------------------------------
3*df6ad731Slogwang * "THE BEER-WARE LICENSE" (Revision 42):
4*df6ad731Slogwang * <[email protected]> wrote this file. As long as you retain this notice you
5*df6ad731Slogwang * can do whatever you want with this stuff. If we meet some day, and you think
6*df6ad731Slogwang * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
7*df6ad731Slogwang * ----------------------------------------------------------------------------
8*df6ad731Slogwang *
9*df6ad731Slogwang */
10*df6ad731Slogwang
11*df6ad731Slogwang #include <sys/cdefs.h>
12*df6ad731Slogwang #ifndef FSTACK
13*df6ad731Slogwang __FBSDID("$FreeBSD$");
14*df6ad731Slogwang #endif
15*df6ad731Slogwang
16*df6ad731Slogwang #include <sys/types.h>
17*df6ad731Slogwang #include <sys/sysctl.h>
18*df6ad731Slogwang
19*df6ad731Slogwang int
sysctlbyname(const char * name,void * oldp,size_t * oldlenp,const void * newp,size_t newlen)20*df6ad731Slogwang sysctlbyname(const char *name, void *oldp, size_t *oldlenp,
21*df6ad731Slogwang const void *newp, size_t newlen)
22*df6ad731Slogwang {
23*df6ad731Slogwang int real_oid[CTL_MAXNAME+2];
24*df6ad731Slogwang size_t oidlen;
25*df6ad731Slogwang
26*df6ad731Slogwang oidlen = sizeof(real_oid) / sizeof(int);
27*df6ad731Slogwang if (sysctlnametomib(name, real_oid, &oidlen) < 0)
28*df6ad731Slogwang return (-1);
29*df6ad731Slogwang return (sysctl(real_oid, oidlen, oldp, oldlenp, newp, newlen));
30*df6ad731Slogwang }
31