Expand description

Write Machina virtio devices in Rust.

This crate aims to simplify the writing of virtio devices as out of process FIDL services by automating boiler plate and providing common wrappers for Machina/Fuchsia specifics.

The primary helper is the Device object that wraps most of the common other helpers, and this must be constructed via the DeviceBuilder, although any of the individual helpers can be used independently without Device if desired.

Structs

State for managing a virtio device and its queues using futures.
Helper to process device messages and build a Device
Wrapper for receiving bell traps from the guest.
Provide access to guest memory.
Wraps a zx::Event and implements [DriverNotify]
Raw queue configuration from a VirtioDeviceRequest::ConfigureQueue
Wrapper around a [DescChainStream]

Enums

Traits

Describes the queues that are expected and valid for a device

Functions

Construct a DeviceBuilder from the provided StartInfo
Process a VirtioDeviceRequestStream to configure all the queues.
Construct a DeviceBuilder and GuestMem from the provided StartInfo
Construct a new GuestMem containing the given zx::Vmo
Helper for constructing a [QueueMemory]