13e12c5d1SDavid du Colombier #include <u.h>
23e12c5d1SDavid du Colombier #include <libc.h>
37dd7cddfSDavid du Colombier #include <ip.h>
43e12c5d1SDavid du Colombier
53e12c5d1SDavid du Colombier int
myetheraddr(uchar * to,char * dev)63e12c5d1SDavid du Colombier myetheraddr(uchar *to, char *dev)
73e12c5d1SDavid du Colombier {
83e12c5d1SDavid du Colombier int n, fd;
9*6a1f785eSDavid du Colombier char buf[256];
103e12c5d1SDavid du Colombier
113432ceaeSDavid du Colombier if(*dev == '/')
12*6a1f785eSDavid du Colombier sprint(buf, "%s/addr", dev);
133432ceaeSDavid du Colombier else
14*6a1f785eSDavid du Colombier sprint(buf, "/net/%s/addr", dev);
153432ceaeSDavid du Colombier
163432ceaeSDavid du Colombier fd = open(buf, OREAD);
173e12c5d1SDavid du Colombier if(fd < 0)
183e12c5d1SDavid du Colombier return -1;
197dd7cddfSDavid du Colombier
20*6a1f785eSDavid du Colombier n = read(fd, buf, sizeof buf -1 );
213e12c5d1SDavid du Colombier close(fd);
223e12c5d1SDavid du Colombier if(n <= 0)
233e12c5d1SDavid du Colombier return -1;
243e12c5d1SDavid du Colombier buf[n] = 0;
253e12c5d1SDavid du Colombier
26*6a1f785eSDavid du Colombier parseether(to, buf);
273e12c5d1SDavid du Colombier return 0;
283e12c5d1SDavid du Colombier }
29