1use axfs_vfs::{VfsNodeAttr, VfsNodeOps, VfsNodePerm, VfsNodeType, VfsResult};
2
3pub struct NullDev;
7
8impl VfsNodeOps for NullDev {
9 fn get_attr(&self) -> VfsResult<VfsNodeAttr> {
10 Ok(VfsNodeAttr::new(
11 VfsNodePerm::default_file(),
12 VfsNodeType::CharDevice,
13 0,
14 0,
15 ))
16 }
17
18 fn read_at(&self, _offset: u64, _buf: &mut [u8]) -> VfsResult<usize> {
19 Ok(0)
20 }
21
22 fn write_at(&self, _offset: u64, buf: &[u8]) -> VfsResult<usize> {
23 Ok(buf.len())
24 }
25
26 fn truncate(&self, _size: u64) -> VfsResult {
27 Ok(())
28 }
29
30 axfs_vfs::impl_vfs_non_dir_default! {}
31}