blob: 0db4ff06744f22f4199b177bfd5f44f961ff8178 [file] [log] [blame] [view]
# Banjo in drivers
Devices may implement protocols, which are Banjo ABIs used by child devices
to interact with parent devices in a device-specific manner. The
[PCI Protocol](/sdk/banjo/fuchsia.hardware.pci/pci.banjo),
[USB Protocol](/sdk/banjo/fuchsia.hardware.usb/usb.banjo),
[Block Core Protocol](/sdk/banjo/fuchsia.hardware.block/block.banjo), and
[Ethernet Protocol](/sdk/banjo/fuchsia.hardware.ethernet/ethernet.banjo), are
examples of these. Protocols are usually in-process interactions between
devices in the same driver host, but in cases of driver isolation, they may take
place through RPC to another driver host (through proxy).
See [Banjo Tutorial](/docs/development/drivers/tutorials/banjo-tutorial.md) to learn how to use Banjo.