1*9a747e4fSDavid du Colombier #include <u.h>
2*9a747e4fSDavid du Colombier #include <libc.h>
3*9a747e4fSDavid du Colombier
4*9a747e4fSDavid du Colombier /*
5*9a747e4fSDavid du Colombier * Format:
6*9a747e4fSDavid du Colombier 3 r M 4 (0000000000457def 11 00) 8192 512 /rc/lib/rcmain
7*9a747e4fSDavid du Colombier */
8*9a747e4fSDavid du Colombier
9*9a747e4fSDavid du Colombier int
iounit(int fd)10*9a747e4fSDavid du Colombier iounit(int fd)
11*9a747e4fSDavid du Colombier {
12*9a747e4fSDavid du Colombier int i, cfd;
13*9a747e4fSDavid du Colombier char buf[128], *args[10];
14*9a747e4fSDavid du Colombier
15*9a747e4fSDavid du Colombier snprint(buf, sizeof buf, "#d/%dctl", fd);
16*9a747e4fSDavid du Colombier cfd = open(buf, OREAD);
17*9a747e4fSDavid du Colombier if(cfd < 0)
18*9a747e4fSDavid du Colombier return 0;
19*9a747e4fSDavid du Colombier i = read(cfd, buf, sizeof buf-1);
20*9a747e4fSDavid du Colombier close(cfd);
21*9a747e4fSDavid du Colombier if(i <= 0)
22*9a747e4fSDavid du Colombier return 0;
23*9a747e4fSDavid du Colombier buf[i] = '\0';
24*9a747e4fSDavid du Colombier if(tokenize(buf, args, nelem(args)) != nelem(args))
25*9a747e4fSDavid du Colombier return 0;
26*9a747e4fSDavid du Colombier return atoi(args[7]);
27*9a747e4fSDavid du Colombier }
28