From f81a276536b09339dabd113444a9586f64d9fae0 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Tue, 11 Jul 2017 21:26:35 -0700 Subject: [PATCH] Implement fstat() for pipe scheme --- src/scheme/pipe.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/scheme/pipe.rs b/src/scheme/pipe.rs index 802b748..022ec96 100644 --- a/src/scheme/pipe.rs +++ b/src/scheme/pipe.rs @@ -6,8 +6,9 @@ use scheme::{AtomicSchemeId, ATOMIC_SCHEMEID_INIT, SchemeId}; use sync::WaitCondition; use syscall::error::{Error, Result, EAGAIN, EBADF, EINVAL, EPIPE}; -use syscall::flag::{F_GETFL, F_SETFL, O_ACCMODE, O_NONBLOCK}; +use syscall::flag::{F_GETFL, F_SETFL, O_ACCMODE, O_NONBLOCK, MODE_CHR}; use syscall::scheme::Scheme; +use syscall::data::Stat; /// Pipes list pub static PIPE_SCHEME_ID: AtomicSchemeId = ATOMIC_SCHEMEID_INIT; @@ -122,6 +123,15 @@ impl Scheme for PipeScheme { Ok(i) } + fn fstat(&self, _id: usize, stat: &mut Stat) -> Result { + *stat = Stat { + st_mode: MODE_CHR | 0o666, + ..Default::default() + }; + + Ok(0) + } + fn fsync(&self, _id: usize) -> Result { Ok(0) }