Ver código fonte

Make modules public rather than re-exporting all their contents.

The crate namespace is getting rather full and difficult to follow. The
Rustdoc is easier to read if we expose some of the modules directly.
Andrew Walbran 2 anos atrás
pai
commit
cdeb49198d

+ 8 - 5
examples/aarch64/src/main.rs

@@ -16,12 +16,15 @@ use hal::HalImpl;
 use log::{debug, error, info, trace, warn, LevelFilter};
 use psci::system_off;
 use virtio_drivers::{
-    pci::{
-        bus::{BarInfo, Cam, Command, DeviceFunction, MemoryBarType, PciRoot},
-        virtio_device_type, PciTransport,
+    device::{blk::VirtIOBlk, console::VirtIOConsole, gpu::VirtIOGpu, net::VirtIONet},
+    transport::{
+        mmio::{MmioTransport, VirtIOHeader},
+        pci::{
+            bus::{BarInfo, Cam, Command, DeviceFunction, MemoryBarType, PciRoot},
+            virtio_device_type, PciTransport,
+        },
+        DeviceType, Transport,
     },
-    DeviceType, MmioTransport, Transport, VirtIOBlk, VirtIOConsole, VirtIOGpu, VirtIOHeader,
-    VirtIONet,
 };
 
 #[no_mangle]

+ 7 - 1
examples/riscv/src/main.rs

@@ -9,7 +9,13 @@ use alloc::vec;
 use core::ptr::NonNull;
 use fdt::{node::FdtNode, standard_nodes::Compatible, Fdt};
 use log::{info, warn, LevelFilter};
-use virtio_drivers::*;
+use virtio_drivers::{
+    device::{blk::VirtIOBlk, gpu::VirtIOGpu, input::VirtIOInput, net::VirtIONet},
+    transport::{
+        mmio::{MmioTransport, VirtIOHeader},
+        DeviceType, Transport,
+    },
+};
 use virtio_impl::HalImpl;
 
 mod virtio_impl;

+ 6 - 3
src/device/blk.rs

@@ -21,8 +21,9 @@ const QUEUE: u16 = 0;
 /// # Example
 ///
 /// ```
-/// # use virtio_drivers::{Error, Hal, Transport};
-/// use virtio_drivers::{VirtIOBlk, SECTOR_SIZE};
+/// # use virtio_drivers::{Error, Hal};
+/// # use virtio_drivers::transport::Transport;
+/// use virtio_drivers::device::blk::{VirtIOBlk, SECTOR_SIZE};
 /// # fn example<HalImpl: Hal, T: Transport>(transport: T) -> Result<(), Error> {
 /// let mut disk = VirtIOBlk::<HalImpl, _>::new(transport)?;
 ///
@@ -139,7 +140,9 @@ impl<H: Hal, T: Transport> VirtIOBlk<H, T> {
     /// request. Once it has, the caller can then read the response and dispose of the buffers.
     ///
     /// ```
-    /// # use virtio_drivers::{BlkReq, BlkResp, Error, Hal, RespStatus, Transport, VirtIOBlk};
+    /// # use virtio_drivers::{Error, Hal};
+    /// # use virtio_drivers::device::blk::{BlkReq, BlkResp, RespStatus, VirtIOBlk};
+    /// # use virtio_drivers::transport::Transport;
     /// # fn example<H: Hal, T: Transport>(blk: &mut VirtIOBlk<H, T>) -> Result<(), Error> {
     /// let mut request = BlkReq::default();
     /// let mut buffer = [0; 512];

+ 5 - 2
src/device/console.rs

@@ -21,8 +21,8 @@ const QUEUE_SIZE: u16 = 2;
 /// # Example
 ///
 /// ```
-/// # use virtio_drivers::{Error, Hal, Transport};
-/// use virtio_drivers::VirtIOConsole;
+/// # use virtio_drivers::{Error, Hal, transport::Transport};
+/// use virtio_drivers::device::console::VirtIOConsole;
 /// # fn example<HalImpl: Hal, T: Transport>(transport: T) -> Result<(), Error> {
 /// let mut console = VirtIOConsole::<HalImpl, _>::new(transport)?;
 ///
@@ -54,8 +54,11 @@ pub struct VirtIOConsole<'a, H: Hal, T: Transport> {
 /// Information about a console device, read from its configuration space.
 #[derive(Clone, Debug, Eq, PartialEq)]
 pub struct ConsoleInfo {
+    /// The console height in characters.
     pub rows: u16,
+    /// The console width in characters.
     pub columns: u16,
+    /// The maxumum number of ports supported by the console device.
     pub max_ports: u32,
 }
 

+ 2 - 11
src/lib.rs

@@ -8,22 +8,13 @@
 #[cfg(any(feature = "alloc", test))]
 extern crate alloc;
 
-mod device;
+pub mod device;
 mod hal;
 mod queue;
-mod transport;
+pub mod transport;
 mod volatile;
 
-pub use self::device::blk::{BlkReq, BlkResp, RespStatus, VirtIOBlk, SECTOR_SIZE};
-pub use self::device::console::VirtIOConsole;
-pub use self::device::gpu::VirtIOGpu;
-#[cfg(feature = "alloc")]
-pub use self::device::input::{InputConfigSelect, InputEvent, VirtIOInput};
-pub use self::device::net::VirtIONet;
 pub use self::hal::{Hal, PhysAddr, VirtAddr};
-pub use self::transport::mmio::{MmioError, MmioTransport, MmioVersion, VirtIOHeader};
-pub use self::transport::pci;
-pub use self::transport::{DeviceStatus, DeviceType, Transport};
 
 /// The page size in bytes supported by the library (4 KiB).
 pub const PAGE_SIZE: usize = 0x1000;

+ 2 - 2
src/transport/fake.rs

@@ -1,7 +1,7 @@
-use super::{DeviceStatus, Transport};
+use super::{DeviceStatus, DeviceType, Transport};
 use crate::{
     queue::{fake_write_to_queue, Descriptor},
-    DeviceType, PhysAddr, Result,
+    PhysAddr, Result,
 };
 use alloc::{sync::Arc, vec::Vec};
 use core::{any::TypeId, ptr::NonNull};

+ 2 - 0
src/transport/mmio.rs

@@ -1,3 +1,5 @@
+//! MMIO transport for VirtIO.
+
 use super::{DeviceStatus, DeviceType, Transport};
 use crate::{
     align_up,

+ 2 - 0
src/transport/mod.rs

@@ -1,3 +1,5 @@
+//! VirtIO transports.
+
 #[cfg(test)]
 pub mod fake;
 pub mod mmio;