Date: Wed, 9 Jan 2008 17:00:37 -0500 From: John Baldwin <jhb@freebsd.org> To: freebsd-arch@freebsd.org Subject: Re: kernel features MIB Message-ID: <200801091700.37594.jhb@freebsd.org> In-Reply-To: <200712281745.08144.jhb@freebsd.org> References: <200712271704.44796.jhb@FreeBSD.org> <200712281745.08144.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 28 December 2007 05:45:07 pm John Baldwin wrote: > On Thursday 27 December 2007 05:04:44 pm John Baldwin wrote: > > At work we don't have a pretty API for this at all, but I'm thinking for > > FreeBSD we can do this: > > > > FEATURE(foo, "description of foo") > > > > which is a macro to create the 'kern.features.foo' node and set it to 1. Then > > we could have a routine in libc: > > > > int feature_present(const char *name); > > > > That returns a boolean to indicate if a given feature is present or not by > > invoking sysctlbyname(3), etc. > > > > Any objections to the idea? > > So here's a bikeshed question I have no idea for. Which header should > feature_present()'s prototype go in? I anticipate this routine being > used in libc itself, so I don't think it can go into libutil. I went with the _BSD_VISIBLE portion of <unistd.h> since it is sort of similar to sysconf(3) which is also in that header and we already have several other prototypes in the _BSD_VISIBLE section. I think I still prefer feature_present(3) to adding new sysconf(3) constants as this is simpler to maintain (don't have to add a new constant that maps to a sysctl for each feature). Patch is at http://www.FreeBSD.org/~jhb/patches/feature_present.patch -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200801091700.37594.jhb>