Hi Simon, On Mon, Jan 18, 2016 at 5:51 AM, Simon Glass <s...@chromium.org> wrote: > Move the functions which set ethernet environment variables to the common > file. > > Signed-off-by: Simon Glass <s...@chromium.org> > --- > > net/eth.c | 43 ------------------------------------------- > net/eth_common.c | 43 +++++++++++++++++++++++++++++++++++++++++++ > net/eth_internal.h | 16 ++++++++++++++++ > 3 files changed, 59 insertions(+), 43 deletions(-) > > diff --git a/net/eth.c b/net/eth.c > index 602925d..af8fcae 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 ee0b6df..3fa6d83 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 e65d898..38d8420 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 > --
Could you add some comments about the other routines (eth_parse_enetaddr, eth_getenv_enetaddr, eth_setenv_enetaddr, eth_getenv_enetaddr_by_index)? Regards, Bin _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot