[PATCH] net: Move library functions to net/lib.c

Sascha Hauer s.hauer at pengutronix.de
Wed Jul 1 23:36:53 PDT 2015


Some network related functions are also needed when networking
is disabled. Move these to a separate file which is always compiled.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 net/Makefile |   1 +
 net/lib.c    | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 net/net.c    |  78 ------------------------------------------
 3 files changed, 109 insertions(+), 78 deletions(-)
 create mode 100644 net/lib.c

diff --git a/net/Makefile b/net/Makefile
index 58bf143..8d564e7 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -1,3 +1,4 @@
+obj-y			+= lib.o
 obj-$(CONFIG_NET)	+= eth.o
 obj-$(CONFIG_NET)	+= net.o
 obj-$(CONFIG_NET_NFS)	+= nfs.o
diff --git a/net/lib.c b/net/lib.c
new file mode 100644
index 0000000..04abfc2
--- /dev/null
+++ b/net/lib.c
@@ -0,0 +1,108 @@
+/*
+ * net.c - barebox networking support
+ *
+ * Copyright (c) 2015 Sascha Hauer <s.hauer at pengutronix.de>, Pengutronix
+ *
+ * based on U-Boot (LiMon) code
+ *
+ * Copyright 1994 - 2000 Neil Russell.
+ * Copyright 2000 Roland Borde
+ * Copyright 2000 Paolo Scaffardi
+ * Copyright 2000-2002 Wolfgang Denk, wd at denx.de
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <common.h>
+#include <net.h>
+#include <linux/ctype.h>
+
+int string_to_ethaddr(const char *str, u8 enetaddr[6])
+{
+	int reg;
+	char *e;
+
+        if (!str || strlen(str) != 17) {
+		memset(enetaddr, 0, 6);
+		return -EINVAL;
+	}
+
+        if (str[2] != ':' || str[5] != ':' || str[8] != ':' ||
+                        str[11] != ':' || str[14] != ':')
+                return -EINVAL;
+
+	for (reg = 0; reg < 6; ++reg) {
+		enetaddr[reg] = simple_strtoul (str, &e, 16);
+			str = e + 1;
+	}
+
+	return 0;
+}
+
+void ethaddr_to_string(const u8 enetaddr[6], char *str)
+{
+	sprintf(str, "%02x:%02x:%02x:%02x:%02x:%02x",
+		 enetaddr[0], enetaddr[1], enetaddr[2], enetaddr[3],
+		 enetaddr[4], enetaddr[5]);
+}
+
+void print_IPaddr (IPaddr_t x)
+{
+	puts(ip_to_string(x));
+}
+
+char *ip_to_string (IPaddr_t x)
+{
+	static char s[sizeof("xxx.xxx.xxx.xxx")];
+
+	x = ntohl (x);
+	sprintf (s, "%d.%d.%d.%d",
+		 (int) ((x >> 24) & 0xff),
+		 (int) ((x >> 16) & 0xff),
+		 (int) ((x >> 8) & 0xff), (int) ((x >> 0) & 0xff)
+	);
+	return s;
+}
+
+int string_to_ip(const char *s, IPaddr_t *ip)
+{
+	IPaddr_t addr = 0;
+	char *e;
+	int i;
+
+	if (!s)
+		return -EINVAL;
+
+	for (i = 0; i < 4; i++) {
+		unsigned long val;
+
+		if (!isdigit(*s))
+			return -EINVAL;
+
+		val = simple_strtoul(s, &e, 10);
+		if (val > 255)
+			return -EINVAL;
+
+		addr = (addr << 8) | val;
+
+		if (*e != '.' && i != 3)
+			return -EINVAL;
+
+		s = e + 1;
+	}
+
+	*ip = htonl(addr);
+	return 0;
+}
+
diff --git a/net/net.c b/net/net.c
index 75292c7..9380664 100644
--- a/net/net.c
+++ b/net/net.c
@@ -62,50 +62,6 @@ uint16_t net_checksum(unsigned char *ptr, int len)
 	return xsum & 0xffff;
 }
 
-char *ip_to_string (IPaddr_t x)
-{
-	static char s[sizeof("xxx.xxx.xxx.xxx")];
-
-	x = ntohl (x);
-	sprintf (s, "%d.%d.%d.%d",
-		 (int) ((x >> 24) & 0xff),
-		 (int) ((x >> 16) & 0xff),
-		 (int) ((x >> 8) & 0xff), (int) ((x >> 0) & 0xff)
-	);
-	return s;
-}
-
-int string_to_ip(const char *s, IPaddr_t *ip)
-{
-	IPaddr_t addr = 0;
-	char *e;
-	int i;
-
-	if (!s)
-		return -EINVAL;
-
-	for (i = 0; i < 4; i++) {
-		unsigned long val;
-
-		if (!isdigit(*s))
-			return -EINVAL;
-
-		val = simple_strtoul(s, &e, 10);
-		if (val > 255)
-			return -EINVAL;
-
-		addr = (addr << 8) | val;
-
-		if (*e != '.' && i != 3)
-			return -EINVAL;
-
-		s = e + 1;
-	}
-
-	*ip = htonl(addr);
-	return 0;
-}
-
 IPaddr_t getenv_ip(const char *name)
 {
 	IPaddr_t ip;
@@ -131,40 +87,6 @@ int setenv_ip(const char *name, IPaddr_t ip)
 	return 0;
 }
 
-void print_IPaddr (IPaddr_t x)
-{
-	puts(ip_to_string(x));
-}
-
-int string_to_ethaddr(const char *str, u8 enetaddr[6])
-{
-	int reg;
-	char *e;
-
-        if (!str || strlen(str) != 17) {
-		memset(enetaddr, 0, 6);
-		return -EINVAL;
-	}
-
-        if (str[2] != ':' || str[5] != ':' || str[8] != ':' ||
-                        str[11] != ':' || str[14] != ':')
-                return -EINVAL;
-
-	for (reg = 0; reg < 6; ++reg) {
-		enetaddr[reg] = simple_strtoul (str, &e, 16);
-			str = e + 1;
-	}
-
-	return 0;
-}
-
-void ethaddr_to_string(const u8 enetaddr[6], char *str)
-{
-	sprintf(str, "%02x:%02x:%02x:%02x:%02x:%02x",
-		 enetaddr[0], enetaddr[1], enetaddr[2], enetaddr[3],
-		 enetaddr[4], enetaddr[5]);
-}
-
 static unsigned char *arp_ether;
 static IPaddr_t arp_wait_ip;
 
-- 
2.1.4




More information about the barebox mailing list