mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-29 20:04:57 +01:00
sysctl: make sys/sysctl.h self contained
sys/sysctl.h only needs u_int and size_t from sys/types.h. When the sysctl interface was designed, having one more more prerequisites (especially sys/types.h) was the norm. Times have changed, and to make things more portable, make sys/types.h optional. We do this by including sys/_types.h, defining size_t if needed, and changing u_int to 'unsigned int' in a prototype for userland builds. For kernel builds, sys/types.h is still required. Sponsored by: Netflix Reviewed by: kib, jhb Differential Revision: https://reviews.freebsd.org/D31827
This commit is contained in:
1 parent
e8f26e5dc8
commit
56ee5c551f
1 file changed
+6
-1
+6
-1
@@ -1180,9 +1180,14 @@ struct sbuf *sbuf_new_for_sysctl(struct sbuf *, char *, int,
|
||||
struct sysctl_req *);
|
||||
#else /* !_KERNEL */
|
||||
#include <sys/cdefs.h>
|
||||
#include <sys/_types.h>
|
||||
#ifndef _SIZE_T_DECLARED
|
||||
typedef __size_t size_t;
|
||||
#define _SIZE_T_DECLARED
|
||||
#endif
|
||||
|
||||
__BEGIN_DECLS
|
||||
int sysctl(const int *, u_int, void *, size_t *, const void *, size_t);
|
||||
int sysctl(const int *, unsigned int, void *, size_t *, const void *, size_t);
|
||||
int sysctlbyname(const char *, void *, size_t *, const void *, size_t);
|
||||
int sysctlnametomib(const char *, int *, size_t *);
|
||||
__END_DECLS
|
||||
|
||||
Reference in new issue
Block a user