7 dirpackage(uchar *buf, long ts, Dir **d)
17 * first find number of all stats, check they look like stats, & size all associated strings
21 for(i = 0; i < ts; i += m){
22 m = BIT16SZ + GBIT16(&buf[i]);
23 if(statcheck(&buf[i], m) < 0)
32 *d = malloc(n * sizeof(Dir) + ss);
37 * then convert all buffers
39 s = (char*)*d + n * sizeof(Dir);
41 for(i = 0; i < ts; i += m){
42 m = BIT16SZ + GBIT16((uchar*)&buf[i]);
43 if(nn >= n || convM2D(&buf[i], m, *d + nn, s) != m){
56 dirread(int fd, Dir **d)
64 ts = read(fd, buf, DIRMAX);
66 ts = dirpackage(buf, ts, d);
72 dirreadall(int fd, Dir **d)
80 nbuf = realloc(buf, ts+DIRMAX);
86 n = read(fd, buf+ts, DIRMAX);
92 ts = dirpackage(buf, ts, d);