SYSCTL type safety
John Baldwin
jhb at freebsd.org
Mon Jan 10 20:03:23 UTC 2011
On Friday, January 07, 2011 6:13:36 pm mdf at freebsd.org wrote:
> Long ago at Isilon we ran into a problem with some sysctls in the
> stock FreeBSD tree using the wrong type, like SYSCTL_ULONG on an int,
> or just mixing unsigned/signed. We have a patch that uses transparent
> unions to cause a compile-time error with a type mismatch. For a
> while I was hesitant to push this since I wasn't sure about the use of
> a gcc extension, but the SYSCTL fixes and the way to keep them sane
> came up again when we started building a new driver locally, and the
> build failed until we fixed some SYSCTL stuff.
>
> Anyways, the patch to sys/sysctl.h is at
>
> http://people.freebsd.org/~mdf/bsd-sysctl-type-safety.diff
You can't use time_t for INT and size_t for LONG. If we have sysctl's
exporting raw time_t and size_t types then we likely need to add some
SYSCTL_TIME and SYSCTL_SIZE wrappers?
--
John Baldwin
More information about the freebsd-arch
mailing list