mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-14 10:09:48 +00:00
d35f6548e6
Use them in some existing code that is vulnerable to roundoff errors. The existing constant SBT_1NS is a honeypot, luring unsuspecting folks into writing code such as long_timeout_ns*SBT_1NS to generate the argument for a sleep call. The actual value of 1ns in sbt units is ~4.3, leading to a large roundoff error giving a shorter sleep than expected when multiplying by the trucated value of 4 in SBT_1NS. (The evil honeypot aspect becomes clear after you waste a whole day figuring out why your sleeps return early.) |
||
---|---|---|
.. | ||
ow_temp.c | ||
ow.c | ||
ow.h | ||
owc_gpiobus.c | ||
owll_if.m | ||
owll.h | ||
own_if.m | ||
own.h | ||
README.txt |
Quick Design Document for 1-wire bus In new bus terms, 1-wire devices are attached to 1-wire buses (ow) which are attached to a one wire bridge (owc). The implementation follows the terminology used in the Maxim AN927 Application note which defines the 1-wire bus as implemented for the iButton product. This is considered to be the canonical definition of the 1-wire bus. This means that the 1-wire bridge will implement the owll(9) interface. ow is one wire. ll is for Link Level to mirror the ISO stack terminology used by AN927. The 1-wire bus is implemented in the ow(4) device, which implements the own(9) interface (n for network, the layer described in the AN927). The presentation layer and above is the responsibility of the client device drivers to implement. Client drivers may only call the own(9) interface. The ow(4) driver calls the owll(9) interface and implements the own(9). $FreeBSD$