diff --git a/scheme/user.rs b/scheme/user.rs index a02b2b7bf11725a52f1b1468feb684716ad4d88e..e91fb0975e381368e54f0ea565a80b354ac390c0 100644 --- a/scheme/user.rs +++ b/scheme/user.rs @@ -247,6 +247,14 @@ impl Scheme for UserScheme { inner.call(SYS_FEVENT, file, flags, 0) } + fn fpath(&self, file: usize, buf: &mut [u8]) -> Result<usize> { + let inner = self.inner.upgrade().ok_or(Error::new(ENODEV))?; + let address = inner.capture_mut(buf)?; + let result = inner.call(SYS_FPATH, file, address, buf.len()); + let _ = inner.release(address); + result + } + fn fstat(&self, file: usize, stat: &mut Stat) -> Result<usize> { let inner = self.inner.upgrade().ok_or(Error::new(ENODEV))?; let address = inner.capture_mut(stat)?;