os/device/block/mod.rs
1//! 块设备模块
2//!
3//! 包含块设备相关的驱动接口和实现
4
5use super::Driver;
6
7pub mod ram_disk;
8pub mod virtio_blk;
9
10/// 块设备驱动程序接口
11pub trait BlockDriver: Driver {
12 /// 读取块设备数据
13 /// # 参数:
14 /// * `block_id` - 块设备的块号
15 /// * `buf` - 用于存储读取数据的缓冲区
16 /// # 返回值:
17 /// 如果读取成功则返回 true,否则返回 false
18 fn read_block(&self, _block_id: usize, _buf: &mut [u8]) -> bool {
19 unimplemented!("not a block driver")
20 }
21
22 /// 写入块设备数据
23 /// # 参数:
24 /// * `block_id` - 块设备的块号
25 /// * `buf` - 包含要写入数据的缓冲区
26 /// # 返回值:
27 /// 如果写入成功则返回 true,否则返回 false
28 fn write_block(&self, _block_id: usize, _buf: &[u8]) -> bool {
29 unimplemented!("not a block driver")
30 }
31
32 /// 刷新到磁盘
33 /// # 返回值:
34 /// 如果刷新成功则返回 true,否则返回 false
35 fn flush(&self) -> bool {
36 unimplemented!("not a block driver")
37 }
38
39 /// 获取块大小(字节)
40 /// # 返回值:
41 /// 块大小
42 fn block_size(&self) -> usize {
43 unimplemented!("not a block driver")
44 }
45
46 /// 获取总块数
47 /// # 返回值:
48 /// 总块数
49 fn total_blocks(&self) -> usize {
50 unimplemented!("not a block driver")
51 }
52}