myetheraddr.c 382 B

12345678910111213141516171819202122232425262728
  1. #include <u.h>
  2. #include <libc.h>
  3. #include <ip.h>
  4. int
  5. myetheraddr(uchar *to, char *dev)
  6. {
  7. int n, fd;
  8. char buf[256];
  9. if(*dev == '/')
  10. sprint(buf, "%s/addr", dev);
  11. else
  12. sprint(buf, "/net/%s/addr", dev);
  13. fd = open(buf, OREAD);
  14. if(fd < 0)
  15. return -1;
  16. n = read(fd, buf, sizeof buf -1 );
  17. close(fd);
  18. if(n <= 0)
  19. return -1;
  20. buf[n] = 0;
  21. parseether(to, buf);
  22. return 0;
  23. }