blob: 6f244e6290c6f3d1e7e97c4bded8ec4328363d0c (
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
25
26
27
28
29
30
31
32
33
34
35
|
#include "dat.h"
#include "fns.h"
#include "error.h"
extern Dev* devtab[];
long
devtabread(Chan *c, void* buf, long n, vlong off)
{
int i;
Dev *dev;
char *alloc, *e, *p;
USED(c);
alloc = malloc(READSTR);
if(alloc == nil)
error(Enomem);
p = alloc;
e = p + READSTR;
for(i = 0; devtab[i] != nil; i++){
dev = devtab[i];
p = seprint(p, e, "#%C %s\n", dev->dc, dev->name);
}
if(waserror()){
free(alloc);
nexterror();
}
n = readstr(off, buf, n, alloc);
free(alloc);
poperror();
return n;
}
|