diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2007-07-05 18:01:32 +0200 |
---|---|---|
committer | Sascha Hauer <sha@octopus.labnet.pengutronix.de> | 2007-07-05 18:01:32 +0200 |
commit | 259fbf0a5449af25e97c2262f62ffd2ae507ac58 (patch) | |
tree | 21f855410953197f0093857c4b218437bf0d2d71 /net | |
parent | 69eab860c2a4f72c7c882652f3c248e575d32f4e (diff) | |
download | barebox-259fbf0a5449af25e97c2262f62ffd2ae507ac58.tar.gz barebox-259fbf0a5449af25e97c2262f62ffd2ae507ac58.tar.xz |
svn_rev_197
add string_to_enet_addr()/enet_addr_to_string()
Diffstat (limited to 'net')
-rw-r--r-- | net/net.c | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -1578,3 +1578,31 @@ ushort getenv_VLAN(char *var) { return (string_to_VLAN(getenv(var))); } + +int string_to_enet_addr(char *str, char *enetaddr) +{ + ulong reg; + char *e; + + if (strlen(str) != 17) + return -1; + + if (str[2] != ':' || str[5] != ':' || str[8] != ':' || + str[11] != ':' || str[14] != ':') + return -1; + + for (reg = 0; reg < 6; ++reg) { + enetaddr[reg] = simple_strtoul (str, &e, 16); + str = e + 1; + } + + return 0; +} + +void enet_addr_to_string(char *enetaddr, char *str) +{ + sprintf (str, "%02X:%02X:%02X:%02X:%02X:%02X", + enetaddr[0], enetaddr[1], enetaddr[2], enetaddr[3], + enetaddr[4], enetaddr[5]); +} + |