Reconstruct utime-like syscalls and fix filetime implementations

This commit is contained in:
Fabing Li
2024-06-13 14:53:09 +08:00
committed by Tate, Hongliang Tian
parent 3de8a9330a
commit 5edc110f9d
21 changed files with 328 additions and 88 deletions

View File

@ -10,6 +10,7 @@ use crate::{
events::{IoEvents, Observer},
prelude::*,
process::{signal::Poller, Gid, Uid},
time::clocks::RealTimeCoarseClock,
};
pub struct PipeReader {
@ -44,15 +45,16 @@ impl FileLike for PipeReader {
}
fn metadata(&self) -> Metadata {
let now = RealTimeCoarseClock::get().read_time();
Metadata {
dev: 0,
ino: 0,
size: 0,
blk_size: 0,
blocks: 0,
atime: Default::default(),
mtime: Default::default(),
ctime: Default::default(),
atime: now,
mtime: now,
ctime: now,
type_: InodeType::NamedPipe,
mode: InodeMode::from_bits_truncate(0o400),
nlinks: 1,
@ -110,15 +112,16 @@ impl FileLike for PipeWriter {
}
fn metadata(&self) -> Metadata {
let now = RealTimeCoarseClock::get().read_time();
Metadata {
dev: 0,
ino: 0,
size: 0,
blk_size: 0,
blocks: 0,
atime: Default::default(),
mtime: Default::default(),
ctime: Default::default(),
atime: now,
mtime: now,
ctime: now,
type_: InodeType::NamedPipe,
mode: InodeMode::from_bits_truncate(0o200),
nlinks: 1,