summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2007-07-05 18:01:32 +0200
committerSascha Hauer <sha@octopus.labnet.pengutronix.de>2007-07-05 18:01:32 +0200
commit259fbf0a5449af25e97c2262f62ffd2ae507ac58 (patch)
tree21f855410953197f0093857c4b218437bf0d2d71 /net
parent69eab860c2a4f72c7c882652f3c248e575d32f4e (diff)
downloadbarebox-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.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/net/net.c b/net/net.c
index ee2c00a737..da504b4561 100644
--- a/net/net.c
+++ b/net/net.c
@@ -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]);
+}
+