net: Always build the string_to_enetaddr() helper
authorJoe Hershberger <joe.hershberger@ni.com>
Sat, 14 Sep 2019 00:21:16 +0000 (19:21 -0500)
committerJoe Hershberger <joe.hershberger@ni.com>
Mon, 9 Dec 2019 15:47:41 +0000 (09:47 -0600)
Part of the env cleanup moved this out of the environment code and into
the net code. However, this helper is sometimes needed even when the net
stack isn't included.

Move the helper to lib/net_utils.c like it's similarly-purposed
string_to_ip(). Also rename the moved function to similar naming.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reported-by: Ondrej Jirman <megous@megous.com>
12 files changed:
arch/arm/mach-tegra/cboot.c
board/renesas/sh7752evb/sh7752evb.c
board/renesas/sh7753evb/sh7753evb.c
board/renesas/sh7757lcr/sh7757lcr.c
cmd/ethsw.c
cmd/nvedit.c
doc/README.enetaddr
include/net.h
lib/net_utils.c
net/eth-uclass.c
net/eth_legacy.c
net/net.c

index 0433081c6c55ce69925441a32f37946bac0919fd..0762144ecf4a3e843d79e9a0fdf00e68aa8e9bea 100644 (file)
@@ -495,7 +495,7 @@ static int cboot_get_ethaddr_legacy(const void *fdt, uint8_t mac[ETH_ALEN])
                return -ENOENT;
        }
 
-       eth_parse_enetaddr(prop, mac);
+       string_to_enetaddr(prop, mac);
 
        if (!is_valid_ethaddr(mac)) {
                printf("Invalid MAC address: %s\n", prop);
index d675f65c127132b1b8c2edb9e0552152bc0759e7..203eecf3d6d82c8c9fdbf45ebfaec65df50fcced 100644 (file)
@@ -94,7 +94,7 @@ static void set_mac_to_sh_giga_eth_register(int channel, char *mac_string)
        unsigned char mac[6];
        unsigned long val;
 
-       eth_parse_enetaddr(mac_string, mac);
+       string_to_enetaddr(mac_string, mac);
 
        if (!channel)
                ether = GETHER0_MAC_BASE;
index 43e13829f38c6f957aba478ebac60b97482307d7..0b118b2f65df6c26fed066af8b583d3d22879e2c 100644 (file)
@@ -101,7 +101,7 @@ static void set_mac_to_sh_giga_eth_register(int channel, char *mac_string)
        unsigned char mac[6];
        unsigned long val;
 
-       eth_parse_enetaddr(mac_string, mac);
+       string_to_enetaddr(mac_string, mac);
 
        if (!channel)
                ether = GETHER0_MAC_BASE;
index 1d7ed9977ee9d7a12c99de817df1873a28e383a2..e8d1fdd03fa206862e67a96d43505835b606c511 100644 (file)
@@ -141,7 +141,7 @@ static void set_mac_to_sh_eth_register(int channel, char *mac_string)
        unsigned char mac[6];
        unsigned long val;
 
-       eth_parse_enetaddr(mac_string, mac);
+       string_to_enetaddr(mac_string, mac);
 
        if (!channel)
                ether = ETHER0_MAC_BASE;
@@ -160,7 +160,7 @@ static void set_mac_to_sh_giga_eth_register(int channel, char *mac_string)
        unsigned char mac[6];
        unsigned long val;
 
-       eth_parse_enetaddr(mac_string, mac);
+       string_to_enetaddr(mac_string, mac);
 
        if (!channel)
                ether = GETHER0_MAC_BASE;
index 884680579975f6911bfdfb3b713b93c91e2f090f..8d271ce1f3cd49efeb0e1d51466b063ea5a66af1 100644 (file)
@@ -864,7 +864,7 @@ static int keyword_match_mac_addr(enum ethsw_keyword_id key_id, int argc,
                return 0;
        }
 
-       eth_parse_enetaddr(argv[*argc_nr + 1], parsed_cmd->ethaddr);
+       string_to_enetaddr(argv[*argc_nr + 1], parsed_cmd->ethaddr);
 
        if (is_broadcast_ethaddr(parsed_cmd->ethaddr)) {
                memset(parsed_cmd->ethaddr, 0xFF, sizeof(parsed_cmd->ethaddr));
index 3420e0b985b984fd50a581666f787592d10c5d06..81d94cd193c6dd6c03d4c843cc6cae2a1284575a 100644 (file)
@@ -361,7 +361,7 @@ ulong env_get_hex(const char *varname, ulong default_val)
 
 int eth_env_get_enetaddr(const char *name, uint8_t *enetaddr)
 {
-       eth_parse_enetaddr(env_get(name), enetaddr);
+       string_to_enetaddr(env_get(name), enetaddr);
        return is_valid_ethaddr(enetaddr);
 }
 
index f9264859866c1ca57cd927b00d96e3960fbad756..5baa9f21798777859f7f919048bb78890e113307 100644 (file)
@@ -76,12 +76,12 @@ To assist in the management of these layers, a few helper functions exist.  You
 should use these rather than attempt to do any kind of parsing/manipulation
 yourself as many common errors have arisen in the past.
 
-       * void eth_parse_enetaddr(const char *addr, uchar *enetaddr);
+       * void string_to_enetaddr(const char *addr, uchar *enetaddr);
 
 Convert a string representation of a MAC address to the binary version.
 char *addr = "00:11:22:33:44:55";
 uchar enetaddr[6];
-eth_parse_enetaddr(addr, enetaddr);
+string_to_enetaddr(addr, enetaddr);
 /* enetaddr now equals { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55 } */
 
        * int eth_env_get_enetaddr(char *name, uchar *enetaddr);
index 11eca1bc6c33d3eedf1a80b614af542e08e6fcf2..22c83bc21375fa8cd30de5bccef2946f0f103000 100644 (file)
@@ -826,6 +826,19 @@ static inline void net_random_ethaddr(uchar *addr)
        addr[0] |= 0x02;        /* set local assignment bit (IEEE802) */
 }
 
+/**
+ * string_to_enetaddr() - Parse a MAC address
+ *
+ * Convert a string MAC address
+ *
+ * Implemented in lib/net_utils.c (built unconditionally)
+ *
+ * @addr: MAC address in aa:bb:cc:dd:ee:ff format, where each part is a 2-digit
+ *     hex value
+ * @enetaddr: Place to put MAC address (6 bytes)
+ */
+void string_to_enetaddr(const char *addr, uint8_t *enetaddr);
+
 /* Convert an IP address to a string */
 void ip_to_string(struct in_addr x, char *s);
 
@@ -880,19 +893,6 @@ unsigned int random_port(void);
  */
 int update_tftp(ulong addr, char *interface, char *devstring);
 
-/**********************************************************************/
-
-/**
- * eth_parse_enetaddr() - Parse a MAC address
- *
- * Convert a string MAC address
- *
- * @addr: MAC address in aa:bb:cc:dd:ee:ff format, where each part is a 2-digit
- *     hex value
- * @enetaddr: Place to put MAC address (6 bytes)
- */
-void eth_parse_enetaddr(const char *addr, uint8_t *enetaddr);
-
 /**
  * env_get_ip() - Convert an environment value to to an ip address
  *
@@ -905,5 +905,4 @@ static inline struct in_addr env_get_ip(char *var)
 {
        return string_to_ip(env_get(var));
 }
-
 #endif /* __NET_H__ */
index 9fb9d4a4b05fc19a492f3f4bb66e9826879600d0..ed5044c3deca90a05fee272cf119c4a4512dd2ed 100644 (file)
@@ -41,3 +41,18 @@ struct in_addr string_to_ip(const char *s)
        addr.s_addr = htonl(addr.s_addr);
        return addr;
 }
+
+void string_to_enetaddr(const char *addr, uint8_t *enetaddr)
+{
+       char *end;
+       int i;
+
+       if (!enetaddr)
+               return;
+
+       for (i = 0; i < 6; ++i) {
+               enetaddr[i] = addr ? simple_strtoul(addr, &end, 16) : 0;
+               if (addr)
+                       addr = (*end) ? end + 1 : end;
+       }
+}
index 3bd98b01ad32ac097754c5c3ff78b1b485a32cfb..9fe4096120ea1985876f2f30b653315167d914ce 100644 (file)
@@ -227,7 +227,7 @@ static int on_ethaddr(const char *name, const char *value, enum env_op op,
                switch (op) {
                case env_op_create:
                case env_op_overwrite:
-                       eth_parse_enetaddr(value, pdata->enetaddr);
+                       string_to_enetaddr(value, pdata->enetaddr);
                        eth_write_hwaddr(dev);
                        break;
                case env_op_delete:
index 41f52635266280360a6e848f752556c7aed011f6..5d6b0d7d7f4599a640668b28bcfa462a8de4c987 100644 (file)
@@ -117,7 +117,7 @@ static int on_ethaddr(const char *name, const char *value, enum env_op op,
                        switch (op) {
                        case env_op_create:
                        case env_op_overwrite:
-                               eth_parse_enetaddr(value, dev->enetaddr);
+                               string_to_enetaddr(value, dev->enetaddr);
                                eth_write_hwaddr(dev, "eth", dev->index);
                                break;
                        case env_op_delete:
index 0513444eb78fc670d3d24cde8ff94472d13ab467..284ae1bd6bff7536780e93541235f22cd60de871 100644 (file)
--- a/net/net.c
+++ b/net/net.c
@@ -1625,15 +1625,3 @@ ushort env_get_vlan(char *var)
 {
        return string_to_vlan(env_get(var));
 }
-
-void eth_parse_enetaddr(const char *addr, uint8_t *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;
-       }
-}