summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2016-01-17 14:51:58 -0700
committerJoe Hershberger <joe.hershberger@ni.com>2016-01-28 12:32:46 -0600
commit9987ecdd36da79535c4229ecc5693533aaa8d17b (patch)
treeeb71eb6e57b439f75f0bbb7b6e51c6df73869853 /net
parent818f91eb5778781083e33ce3291bba76a3f1601c (diff)
net: Move environment functions to the common file
Move the functions which set ethernet environment variables to the common file. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'net')
-rw-r--r--net/eth.c43
-rw-r--r--net/eth_common.c43
-rw-r--r--net/eth_internal.h16
3 files changed, 59 insertions, 43 deletions
diff --git a/net/eth.c b/net/eth.c
index 602925d20f..af8fcaea90 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -20,49 +20,6 @@
DECLARE_GLOBAL_DATA_PTR;
-void eth_parse_enetaddr(const char *addr, uchar *enetaddr)
-{
- char *end;
- int i;
-
- for (i = 0; i < 6; ++i) {
- enetaddr[i] = addr ? simple_strtoul(addr, &end, 16) : 0;
- if (addr)
- addr = (*end) ? end + 1 : end;
- }
-}
-
-int eth_getenv_enetaddr(const char *name, uchar *enetaddr)
-{
- eth_parse_enetaddr(getenv(name), enetaddr);
- return is_valid_ethaddr(enetaddr);
-}
-
-int eth_setenv_enetaddr(const char *name, const uchar *enetaddr)
-{
- char buf[20];
-
- sprintf(buf, "%pM", enetaddr);
-
- return setenv(name, buf);
-}
-
-int eth_getenv_enetaddr_by_index(const char *base_name, int index,
- uchar *enetaddr)
-{
- char enetvar[32];
- sprintf(enetvar, index ? "%s%daddr" : "%saddr", base_name, index);
- return eth_getenv_enetaddr(enetvar, enetaddr);
-}
-
-static inline int eth_setenv_enetaddr_by_index(const char *base_name, int index,
- uchar *enetaddr)
-{
- char enetvar[32];
- sprintf(enetvar, index ? "%s%daddr" : "%saddr", base_name, index);
- return eth_setenv_enetaddr(enetvar, enetaddr);
-}
-
static int eth_mac_skip(int index)
{
char enetvar[15];
diff --git a/net/eth_common.c b/net/eth_common.c
index ee0b6df376..3fa6d83c70 100644
--- a/net/eth_common.c
+++ b/net/eth_common.c
@@ -10,6 +10,49 @@
#include <miiphy.h>
#include "eth_internal.h"
+void eth_parse_enetaddr(const char *addr, uchar *enetaddr)
+{
+ char *end;
+ int i;
+
+ for (i = 0; i < 6; ++i) {
+ enetaddr[i] = addr ? simple_strtoul(addr, &end, 16) : 0;
+ if (addr)
+ addr = (*end) ? end + 1 : end;
+ }
+}
+
+int eth_getenv_enetaddr(const char *name, uchar *enetaddr)
+{
+ eth_parse_enetaddr(getenv(name), enetaddr);
+ return is_valid_ethaddr(enetaddr);
+}
+
+int eth_setenv_enetaddr(const char *name, const uchar *enetaddr)
+{
+ char buf[20];
+
+ sprintf(buf, "%pM", enetaddr);
+
+ return setenv(name, buf);
+}
+
+int eth_getenv_enetaddr_by_index(const char *base_name, int index,
+ uchar *enetaddr)
+{
+ char enetvar[32];
+ sprintf(enetvar, index ? "%s%daddr" : "%saddr", base_name, index);
+ return eth_getenv_enetaddr(enetvar, enetaddr);
+}
+
+int eth_setenv_enetaddr_by_index(const char *base_name, int index,
+ uchar *enetaddr)
+{
+ char enetvar[32];
+ sprintf(enetvar, index ? "%s%daddr" : "%saddr", base_name, index);
+ return eth_setenv_enetaddr(enetvar, enetaddr);
+}
+
void eth_common_init(void)
{
bootstage_mark(BOOTSTAGE_ID_NET_ETH_START);
diff --git a/net/eth_internal.h b/net/eth_internal.h
index e65d8984e8..38d84201e6 100644
--- a/net/eth_internal.h
+++ b/net/eth_internal.h
@@ -12,4 +12,20 @@
/* Do init that is common to driver model and legacy networking */
void eth_common_init(void);
+/**
+ * eth_setenv_enetaddr_by_index() - set the MAC address envrionment variable
+ *
+ * This sets up an environment variable with the given MAC address (@enetaddr).
+ * The environment variable to be set is defined by <@base_name><@index>addr.
+ * If @index is 0 it is omitted. For common Ethernet this means ethaddr,
+ * eth1addr, etc.
+ *
+ * @base_name: Base name for variable, typically "eth"
+ * @index: Index of interface being updated (>=0)
+ * @enetaddr: Pointer to MAC address to put into the variable
+ * @return 0 if OK, other value on error
+ */
+int eth_setenv_enetaddr_by_index(const char *base_name, int index,
+ uchar *enetaddr);
+
#endif