MCPcopy Create free account
hub / github.com/Starry-OS/StarryOS / read_dir

Method read_dir

api/src/vfs/tmp.rs:344–366  ·  view source on GitHub ↗
(&self, offset: u64, sink: &mut dyn DirEntrySink)

Source from the content-addressed store, hash-verified

342
343impl DirNodeOps for MemoryNode {
344 fn read_dir(&self, offset: u64, sink: &mut dyn DirEntrySink) -> VfsResult<usize> {
345 let mut count = 0;
346 for (i, (name, entry)) in self
347 .inode
348 .as_dir()?
349 .entries
350 .lock()
351 .iter()
352 .enumerate()
353 .skip(offset as usize)
354 {
355 if !sink.accept(
356 &name.0,
357 entry.ino,
358 entry.get().metadata.lock().node_type,
359 i as u64 + 1,
360 ) {
361 return Ok(count);
362 }
363 count += 1;
364 }
365 Ok(count)
366 }
367
368 fn lookup(&self, name: &str) -> VfsResult<DirEntry> {
369 let dir = self.inode.as_dir()?;

Callers 1

sys_getdents64Function · 0.45

Calls 2

as_dirMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected