Add support for pipe and poll

This commit is contained in:
LI Qing
2023-03-30 23:43:05 -04:00
committed by Tate, Hongliang Tian
parent 453d2ad0f0
commit 0fc707d38c
20 changed files with 981 additions and 177 deletions

View File

@ -1,4 +1,6 @@
use super::{DirentVisitor, FsFlags, Inode, InodeMode, InodeType, Metadata, PageCache};
use super::{
DirentVisitor, FsFlags, Inode, InodeMode, InodeType, IoEvents, Metadata, PageCache, Poller,
};
use crate::prelude::*;
use crate::rights::Full;
use crate::vm::vmo::Vmo;
@ -184,6 +186,10 @@ impl Vnode {
self.inner.read().inode.readdir_at(offset, visitor)
}
pub fn poll(&self, mask: IoEvents, poller: Option<&Poller>) -> IoEvents {
self.inner.read().inode.poll(mask, poller)
}
pub fn metadata(&self) -> Metadata {
self.inner.read().inode.metadata()
}