os/fs/proc/generators/
cpuinfo.rs

1use alloc::format;
2use alloc::vec::Vec;
3
4use crate::fs::proc::inode::ContentGenerator;
5use crate::vfs::FsError;
6
7pub struct CpuinfoGenerator;
8
9impl ContentGenerator for CpuinfoGenerator {
10    fn generate(&self) -> Result<Vec<u8>, FsError> {
11        #[cfg(target_arch = "riscv64")]
12        {
13            let content = format!(
14                "processor\t: 0\n\
15                 hart\t\t: 0\n\
16                 isa\t\t: rv64imafdcsu\n\
17                 mmu\t\t: sv39\n\
18                 uarch\t\t: qemu,virt\n\n"
19            );
20            Ok(content.into_bytes())
21        }
22
23        #[cfg(not(target_arch = "riscv64"))]
24        {
25            Ok(b"processor\t: 0\n\n".to_vec())
26        }
27    }
28}