⚠️ VeridianOS Kernel Documentation - This is low-level kernel code. All functions are unsafe unless explicitly marked otherwise. no_std

veridian_kernel/drivers/
mod.rs

1//! Device drivers module
2//!
3//! Contains all device drivers including bus drivers, network drivers, and
4//! device-specific drivers.
5
6pub mod ahci;
7pub mod bluetooth;
8pub mod console;
9pub mod e1000;
10pub mod evdev;
11pub mod gpu;
12pub mod gpu_amdgpu;
13pub mod gpu_i915;
14pub mod gpu_nouveau;
15pub mod input;
16pub mod input_event;
17pub mod iommu;
18pub mod keyboard;
19pub mod mouse;
20pub mod network;
21pub mod nvme;
22pub mod pci;
23pub mod ramfb;
24pub mod storage;
25pub mod terminal;
26pub mod usb;
27pub mod v4l2;
28pub mod virtio;
29pub mod virtio_gpu;
30pub mod virtio_net;
31
32// Phase 8 Wave 2: Networking v2
33pub mod iscsi;
34pub mod raid;
35pub mod wifi;
36
37pub use console::{ConsoleDevice, ConsoleDriver, SerialConsole, VgaConsole};
38pub use gpu::GpuDriver;
39pub use network::{EthernetDriver, LoopbackDriver, NetworkDevice};
40pub use pci::{PciBus, PciDevice};
41pub use storage::{AtaDriver, StorageDevice};
42pub use usb::{UsbBus, UsbDevice};
43
44pub use crate::graphics::PixelFormat;
45
46/// Initialize all drivers
47pub fn init() {
48    crate::println!("[DRIVERS] Initializing device drivers...");
49
50    // Initialize terminal state (before console, so read paths can query it)
51    terminal::init();
52
53    // Initialize bus drivers
54    pci::init();
55    usb::init();
56
57    // Initialize device drivers
58    network::init();
59    console::init();
60    storage::init();
61    virtio::blk::init();
62    if let Err(_e) = gpu::init() {
63        crate::println!("[DRIVERS] Warning: GPU init failed: {:?}", _e);
64    }
65
66    // Initialize VirtIO GPU driver (PCI discovery, 2D framebuffer)
67    if let Err(_e) = virtio_gpu::init() {
68        crate::println!("[DRIVERS] Warning: VirtIO GPU init failed: {:?}", _e);
69    }
70
71    // Initialize AHCI/SATA controller driver
72    if let Err(_e) = ahci::init() {
73        crate::println!("[DRIVERS] Warning: AHCI init failed: {:?}", _e);
74    }
75
76    // Initialize mouse driver (x86_64: PS/2 aux port, others: stub)
77    mouse::init();
78
79    crate::println!("[DRIVERS] Device drivers initialized");
80}