freebsd-dev/sys/dev/ow
Kyle Evans c79cee7136 kernel: provide panicky version of __unreachable
__builtin_unreachable doesn't raise any compile-time warnings/errors on its
own, so problems with its usage can't be easily detected. While it would be
nice for this situation to change and compilers to at least add a warning
for trivial cases where local state means the instruction can't be reached,
this isn't the case at the moment and likely will not happen.

This commit adds an __assert_unreachable, whose intent is incredibly clear:
it asserts that this instruction is unreachable. On INVARIANTS builds, it's
a panic(), and on non-INVARIANTS it expands to  __unreachable().

Existing users of __unreachable() are converted to __assert_unreachable,
to improve debuggability if this assumption is violated.

Reviewed by:	mjg
Differential Revision:	https://reviews.freebsd.org/D23793
2020-05-13 18:07:37 +00:00
..
ow_temp.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
ow.c kernel: provide panicky version of __unreachable 2020-05-13 18:07:37 +00:00
ow.h Regularize my copyright notice 2019-12-04 16:56:11 +00:00
owc_gpiobus.c Update owc_gpiobus (one-wire over gpio) to the modern gpio_pin interface. 2019-12-17 15:56:48 +00:00
owll_if.m Regularize my copyright notice 2019-12-04 16:56:11 +00:00
owll.h Regularize my copyright notice 2019-12-04 16:56:11 +00:00
own_if.m Regularize my copyright notice 2019-12-04 16:56:11 +00:00
own.h Regularize my copyright notice 2019-12-04 16:56:11 +00:00
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$