os/fs/proc/generators/
uptime.rs

1use alloc::format;
2use alloc::vec::Vec;
3
4use crate::fs::proc::inode::ContentGenerator;
5use crate::vfs::FsError;
6
7pub struct UptimeGenerator;
8
9impl ContentGenerator for UptimeGenerator {
10    fn generate(&self) -> Result<Vec<u8>, FsError> {
11        // 获取系统运行时间(秒)
12        let uptime_ms = crate::arch::timer::get_time_ms();
13        let uptime_sec = uptime_ms / 1000;
14        let uptime_frac = (uptime_ms % 1000) / 10; // 保留2位小数
15
16        // TODO: 获取空闲时间
17        let idle_sec = 0;
18        let idle_frac = 0;
19
20        let content = format!(
21            "{}.{:02} {}.{:02}\n",
22            uptime_sec, uptime_frac, idle_sec, idle_frac
23        );
24
25        Ok(content.into_bytes())
26    }
27}