Skip to main content

axvirtio_common/
lib.rs

1//! # AxVirtIO Common Library
2//!
3//! This crate provides common types, traits, and utilities for VirtIO device implementations.
4//! It includes memory management, queue handling, MMIO transport, and configuration structures
5//! that are shared across different VirtIO device types.
6
7#![no_std]
8
9extern crate alloc;
10#[cfg(test)]
11extern crate ax_runtime as _;
12#[cfg(test)]
13extern crate std;
14
15/// Re-export commonly used modules
16/// VirtIO device configuration structures and utilities
17pub mod config;
18/// Common constants used across VirtIO implementations
19pub mod constants;
20mod device_type;
21/// Error types and result handling for VirtIO operations
22pub mod error;
23/// Scoped guest-memory capability used by queue operations.
24pub mod memory;
25/// MMIO transport layer for VirtIO devices
26pub mod mmio;
27/// VirtIO PCI transport state and common-config register handling.
28pub mod pci;
29/// VirtIO queue management and operations
30pub mod queue;
31
32/// Re-export commonly used types
33pub use config::VirtioConfig;
34/// Re-export commonly used constants
35pub use constants::*;
36pub use device_type::VirtioDeviceID;
37pub use error::{VirtioError, VirtioResult, map_virtio_error};
38pub use memory::{AddressSpaceMemory, DeviceContextMemory, GuestMemory, NoGuestMemoryAccessor};
39pub use mmio::state::{MmioReadOutcome, MmioWriteAction, VirtioMmioState};
40pub use pci::{
41    ActivityPermit, InterruptPublicationRequest, InterruptTransitionRequest, QueueNotification,
42    QueueNotifyOutcome, VirtioDeviceCore, VirtioPciTransport, VirtioPciWriteOutcome,
43    VirtioQueueGeneration,
44};
45pub use queue::{DescriptorChain, VirtioQueue};