#include #include #include int fs·read(fs·Directory *dir, fs·DirEntry **ent) { int err; uintptr n; fs·DirEntry *de; if(dir->pos >= dir->end){ if((err=sys·direntry(dir->fd, arrlen(dir->buf), dir->buf, &n))) return err; dir->pos = 0; dir->end = n; } de = (fs·DirEntry *)(dir->buf + dir->pos); dir->pos += de->len; dir->off = de->off; *ent = de; return 0; }