OWLL(9)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

🌈 OWLL(9) β€” the Kernel Developer's Manual page, bestie edition 🌈

okay so this is owll(9) from the Kernel Developer's Manual, and we're about to get so cozy with the Dallas Semiconductor 1-Wire Link Layer Interface. it's giving low-level but make it cute πŸ’…


✨ NAME ✨

owll, OWLL_WRITE_ONE, OWLL_WRITE_ZERO, OWLL_READ_DATA, OWLL_REASET_AND_PRESENCE β€” Dallas Semiconductor 1-Wire Link Layer Interface πŸ¦‹

(yes, <italic>REASET</italic> is spelled exactly like that in the NAME section, and yes, it's spelled OWLL_RESET_AND_PRESENCE down in SYNOPSIS. she contains multitudes πŸ’€)


⭐ SYNOPSIS ⭐

int
OWLL_WRITE_ONE(device_t lldev, struct ow_timing *timing);

int
OWLL_WRITE_ZERO(device_t lldev, struct ow_timing *timing);

int
OWLL_READ_DATA(device_t lldev, struct ow_timing *timing, int *bit);

int
OWLL_RESET_AND_PRESENCE(device_t lldev, struct ow_timing *timing,
    int *bit);

look at those signatures, so clean, so crisp, we love a consistent return type πŸ‘‘


πŸ’– DESCRIPTION πŸ’–

so the owll interface is literally your backstage pass 🎟️ β€” it gives the upper layers of the protocol access to the link layer of the Dallas Semiconductor 1-Wire. it's the plumbing, and honestly? iconic.

OWLL_WRITE_ONE() and OWLL_WRITE_ZERO() write a one bit or a zero bit respectively on the 1-Wire bus. that's it, that's the whole vibe β€” one function per bit, no notes. 🫢

OWLL_READ_DATA() reads one bit from the 1-Wire bus. the 1-Wire device data sheets call this a "Read Time Slot", so if you see that phrase in the docs, that's this function. iykyk πŸ“–βœ¨

the OWLL_RESET_AND_PRESENCE() function starts a reset sequence and detects if any device(s) are present on the bus. and here's the main character energy: this is the beginning of all 1-Wire transactions. every single one. no cap. πŸ”₯


πŸŽ€ NOTES πŸŽ€

  • 🚨 this interface is intended to be used only by the ow(4) device to talk to the low-level bus.
  • by convention, the device that implements this interface is called owc(4).
  • only devices that implement own(9) should call these interfaces.
bestie, read that again β€” only ow(4), only things implementing own(9). don't be the one who breaks the convention, we're all counting on you πŸ™ˆ

πŸ¦‹ SEE ALSO πŸ¦‹

go read those, they're the supporting cast and they ate πŸ’œ


1-Wire is a registered trademark of Maxim Integrated Products, Inc. gotta respect the trademark, periodt 🌸


🌸 HISTORY 🌸

the owll driver first appeared in FreeBSD 11.0. a legend was born ✨


πŸ‘‘ AUTHORS πŸ‘‘

the owll device driver and this manual page were written by Warner Losh. thank you for your service, king πŸ«‘πŸ’–


and that's the whole page, bestie β€” this one's from Debian, dated September 22, 2016, and we're closing it out with the biggest πŸŽ€πŸ’œβ­ vibes. stay bit-flippin' out there, and remember: reset first, then party 🧚✨

πŸ“¦ where this page comes from