blob: 44b02a853a511723fa19d5ad6c57141389f13b9e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include <u.h>
#include <base.h>
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, dir->buf, arrlen(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;
}
|