Hi Bin, On Monday, 28 September 2015, Bin Meng <bmeng...@gmail.com> wrote: > > There are fields in VxWorks bootline for netmask and gatewayip. > We can get these from U-Boot environment variables and pass them > to VxWorks, just like ipaddr and serverip. > > Signed-off-by: Bin Meng <bmeng...@gmail.com> > > --- > > Changes in v2: > - Fix the endian issue for netmask > > common/cmd_elf.c | 16 ++++++++++++++-- > 1 file changed, 14 insertions(+), 2 deletions(-) > > diff --git a/common/cmd_elf.c b/common/cmd_elf.c > index 62863df..9e6aa01 100644 > --- a/common/cmd_elf.c > +++ b/common/cmd_elf.c > @@ -287,13 +287,25 @@ int do_bootvx(cmd_tbl_t *cmdtp, int flag, int argc, > char * const argv[]) > "%s:file ", CONFIG_SYS_VXWORKS_SERVERNAME); > > tmp = getenv("ipaddr");
Can we avoid all these calls to strlen() by having a ptr variable? ptr = sprintf(...) ptr += sprintf(build_buf + ptr, ...) ptr += sprintf(build_buf + ptr, ...) > > - if (tmp) > - sprintf(&build_buf[strlen(build_buf)], "e=%s ", tmp); > + if (tmp) { > + sprintf(&build_buf[strlen(build_buf)], "e=%s", tmp); > + tmp = getenv("netmask"); > + if (tmp) > + sprintf(&build_buf[strlen(build_buf)], > + ":%08x ", > + ntohl(getenv_ip("netmask").s_addr)); > + else > + sprintf(&build_buf[strlen(build_buf)], " "); > + } > > tmp = getenv("serverip"); > if (tmp) > sprintf(&build_buf[strlen(build_buf)], "h=%s ", tmp); > > + tmp = getenv("gatewayip"); > + if (tmp) > + sprintf(&build_buf[strlen(build_buf)], "g=%s ", tmp); > + > tmp = getenv("hostname"); > if (tmp) > sprintf(&build_buf[strlen(build_buf)], "tn=%s ", tmp); > -- > 1.8.2.1 > Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot