Add two-claused BSD license.
Wrap FreeBSD-specific code
Use cleanup() instead of manual code.
Cosmetics
Wrap FreeBSD-specific code
errno values are positive, so negate them in init_hardware() to
indicate an error situation (positive return values are file descriptors).