X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=cmd%2Fnet.c;h=25390b0474f4c9032cea1c678a1053e9d195a3f5;hb=09140113108541b95d340f3c7b6ee597d31ccc73;hp=eca6dd8918ec07c49111b6b278e3b7547359df63;hpb=d4c7a9348f27c8e3fdb1b754d8f0d1fa27375d1c;p=oweals%2Fu-boot.git diff --git a/cmd/net.c b/cmd/net.c index eca6dd8918..25390b0474 100644 --- a/cmd/net.c +++ b/cmd/net.c @@ -8,13 +8,17 @@ * Boot support */ #include +#include #include +#include +#include #include -static int netboot_common(enum proto_t, cmd_tbl_t *, int, char * const []); +static int netboot_common(enum proto_t, struct cmd_tbl *, int, char * const []); #ifdef CONFIG_CMD_BOOTP -static int do_bootp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +static int do_bootp(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) { return netboot_common(BOOTP, cmdtp, argc, argv); } @@ -27,7 +31,7 @@ U_BOOT_CMD( #endif #ifdef CONFIG_CMD_TFTPBOOT -int do_tftpb(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +int do_tftpb(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { int ret; @@ -45,7 +49,8 @@ U_BOOT_CMD( #endif #ifdef CONFIG_CMD_TFTPPUT -static int do_tftpput(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +static int do_tftpput(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) { return netboot_common(TFTPPUT, cmdtp, argc, argv); } @@ -58,7 +63,8 @@ U_BOOT_CMD( #endif #ifdef CONFIG_CMD_TFTPSRV -static int do_tftpsrv(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) +static int do_tftpsrv(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) { return netboot_common(TFTPSRV, cmdtp, argc, argv); } @@ -75,7 +81,7 @@ U_BOOT_CMD( #ifdef CONFIG_CMD_RARP -int do_rarpb(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +int do_rarpb(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { return netboot_common(RARP, cmdtp, argc, argv); } @@ -88,7 +94,8 @@ U_BOOT_CMD( #endif #if defined(CONFIG_CMD_DHCP) -static int do_dhcp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +static int do_dhcp(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) { return netboot_common(DHCP, cmdtp, argc, argv); } @@ -101,7 +108,8 @@ U_BOOT_CMD( #endif #if defined(CONFIG_CMD_NFS) -static int do_nfs(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +static int do_nfs(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) { return netboot_common(NFS, cmdtp, argc, argv); } @@ -174,8 +182,8 @@ static void netboot_update_env(void) #endif } -static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc, - char * const argv[]) +static int netboot_common(enum proto_t proto, struct cmd_tbl *cmdtp, int argc, + char *const argv[]) { char *s; char *end; @@ -185,13 +193,16 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc, net_boot_file_name_explicit = false; - /* pre-set load_addr */ + /* pre-set image_load_addr */ s = env_get("loadaddr"); if (s != NULL) - load_addr = simple_strtoul(s, NULL, 16); + image_load_addr = simple_strtoul(s, NULL, 16); switch (argc) { case 1: + /* refresh bootfile name from env */ + copy_filename(net_boot_file_name, env_get("bootfile"), + sizeof(net_boot_file_name)); break; case 2: /* @@ -202,7 +213,10 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc, */ addr = simple_strtoul(argv[1], &end, 16); if (end == (argv[1] + strlen(argv[1]))) { - load_addr = addr; + image_load_addr = addr; + /* refresh bootfile name from env */ + copy_filename(net_boot_file_name, env_get("bootfile"), + sizeof(net_boot_file_name)); } else { net_boot_file_name_explicit = true; copy_filename(net_boot_file_name, argv[1], @@ -211,7 +225,7 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc, break; case 3: - load_addr = simple_strtoul(argv[1], NULL, 16); + image_load_addr = simple_strtoul(argv[1], NULL, 16); net_boot_file_name_explicit = true; copy_filename(net_boot_file_name, argv[2], sizeof(net_boot_file_name)); @@ -220,8 +234,8 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc, #ifdef CONFIG_CMD_TFTPPUT case 4: - if (strict_strtoul(argv[1], 16, &save_addr) < 0 || - strict_strtoul(argv[2], 16, &save_size) < 0) { + if (strict_strtoul(argv[1], 16, &image_save_addr) < 0 || + strict_strtoul(argv[2], 16, &image_save_size) < 0) { printf("Invalid address/size\n"); return CMD_RET_USAGE; } @@ -264,7 +278,8 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc, } #if defined(CONFIG_CMD_PING) -static int do_ping(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +static int do_ping(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) { if (argc < 2) return CMD_RET_USAGE; @@ -312,7 +327,7 @@ static void cdp_update_env(void) } } -int do_cdp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +int do_cdp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { int r; @@ -335,7 +350,7 @@ U_BOOT_CMD( #endif #if defined(CONFIG_CMD_SNTP) -int do_sntp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +int do_sntp(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { char *toff; @@ -376,7 +391,7 @@ U_BOOT_CMD( #endif #if defined(CONFIG_CMD_DNS) -int do_dns(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +int do_dns(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { if (argc == 1) return CMD_RET_USAGE; @@ -422,8 +437,8 @@ U_BOOT_CMD( #endif /* CONFIG_CMD_DNS */ #if defined(CONFIG_CMD_LINK_LOCAL) -static int do_link_local(cmd_tbl_t *cmdtp, int flag, int argc, - char * const argv[]) +static int do_link_local(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) { char tmp[22];