xref: /plan9/sys/src/libip/myetheraddr.c (revision 6a1f785e2ba0f3e3a4f59f73656cec0a075c018c)
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