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 <[email protected]>
---
 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 <[email protected]>, 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, [email protected]
+ *
+ * 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


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to