This project contains examples that showcase the various FIDL transport options available to drivers. Each project consists of a parent driver offering the fuchsia.examples.gizmo/Service to a child driver over a given transport.
If these components are not present in your build, they can be added by appending --with //examples/drivers/transport to your fx set command. For example:
$ fx set core.x64 --with //examples/drivers/transport $ fx build
This project contains test packages to run each example parent/child driver together in the driver test realm.
The banjo directory provides parent/child drivers that communicate using a custom fuchsia.examples.gizmo/Misc protocol over the Banjo transport channel.
You can run the Banjo Transport sample inside the driver test realm using the following command:
$ fx test banjo_transport_test
The driver directory provides parent/child drivers that run co-located in the same process and communicate using a custom fuchsia.examples.gizmo/Device FIDL protocol over the in-process Driver transport channel:
driver/v1: Driver transport sample built using the DDK and DFv1.driver/v2: Driver transport sample built using driver components and DFv2.You can run the Driver transport samples inside the driver test realm using the following command:
$ fx test driver_transport_test
The zircon directory provides parent/child drivers that run in separate host processes and communicate using a custom fuchsia.examples.gizmo/Device FIDL protocol over the Zircon transport channel:
zircon/v1: Zircon transport sample built using the DDK and DFv1.zircon/v2: Zircon transport sample built using driver components and DFv2.You can run the Zircon Transport samples inside the driver test realm using the following command:
$ fx test zircon_transport_test