xref: /inferno-os/module/readdir.m (revision 46439007cf417cbd9ac8049bb4122c890097a0fa)
1*46439007SCharles.ForsythReaddir: module
2*46439007SCharles.Forsyth{
3*46439007SCharles.Forsyth	PATH:	con	"/dis/lib/readdir.dis";
4*46439007SCharles.Forsyth
5*46439007SCharles.Forsyth	# sortkey is one of NAME, ATIME, MTIME, SIZE, or NONE
6*46439007SCharles.Forsyth	# possibly with DESCENDING or'd in
7*46439007SCharles.Forsyth
8*46439007SCharles.Forsyth	NAME, ATIME, MTIME, SIZE, NONE: con iota;
9*46439007SCharles.Forsyth	DESCENDING:	con (1<<5);
10*46439007SCharles.Forsyth
11*46439007SCharles.Forsyth	init:	fn(path: string, sortkey: int): (array of ref Sys->Dir, int);
12*46439007SCharles.Forsyth	readall:	fn(fd: ref Sys->FD, sortkey: int): (array of ref Sys->Dir, int);
13*46439007SCharles.Forsyth	sortdir:fn(a: array of ref Sys->Dir, key: int): (array of ref Sys->Dir, int);
14*46439007SCharles.Forsyth
15*46439007SCharles.Forsyth	# COMPACT can be or'd into sortkey to preserve only the first
16*46439007SCharles.Forsyth	# (by depth) of a group of duplicate names in a union
17*46439007SCharles.Forsyth
18*46439007SCharles.Forsyth	COMPACT:	con (1<<4);
19*46439007SCharles.Forsyth};
20