diff options
-rw-r--r-- | common/cmd_net.c | 9 | ||||
-rw-r--r-- | common/cmd_pxe.c | 2 | ||||
-rw-r--r-- | common/update.c | 7 | ||||
-rw-r--r-- | include/net.h | 9 | ||||
-rw-r--r-- | net/bootp.c | 27 | ||||
-rw-r--r-- | net/bootp.h | 1 | ||||
-rw-r--r-- | net/eth.c | 3 | ||||
-rw-r--r-- | net/net.c | 26 | ||||
-rw-r--r-- | net/nfs.c | 19 | ||||
-rw-r--r-- | net/tftp.c | 29 |
10 files changed, 70 insertions, 62 deletions
diff --git a/common/cmd_net.c b/common/cmd_net.c index 53760a2..d75718c 100644 --- a/common/cmd_net.c +++ b/common/cmd_net.c @@ -201,11 +201,13 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc, if (end == (argv[1] + strlen(argv[1]))) load_addr = addr; else - copy_filename(BootFile, argv[1], sizeof(BootFile)); + copy_filename(net_boot_file_name, argv[1], + sizeof(net_boot_file_name)); break; case 3: load_addr = simple_strtoul(argv[1], NULL, 16); - copy_filename(BootFile, argv[2], sizeof(BootFile)); + copy_filename(net_boot_file_name, argv[2], + sizeof(net_boot_file_name)); break; @@ -216,7 +218,8 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc, printf("Invalid address/size\n"); return CMD_RET_USAGE; } - copy_filename(BootFile, argv[3], sizeof(BootFile)); + copy_filename(net_boot_file_name, argv[3], + sizeof(net_boot_file_name)); break; #endif default: diff --git a/common/cmd_pxe.c b/common/cmd_pxe.c index 9eac5c6..5cde5b6 100644 --- a/common/cmd_pxe.c +++ b/common/cmd_pxe.c @@ -1568,7 +1568,7 @@ do_pxe_boot(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) destroy_pxe_menu(cfg); - copy_filename(BootFile, "", sizeof(BootFile)); + copy_filename(net_boot_file_name, "", sizeof(net_boot_file_name)); return 0; } diff --git a/common/update.c b/common/update.c index cc830a7..bc0c48f 100644 --- a/common/update.c +++ b/common/update.c @@ -58,7 +58,7 @@ static int update_load(char *filename, ulong msec_max, int cnt_max, ulong addr) saved_timeout_msecs = TftpRRQTimeoutMSecs; saved_timeout_count = TftpRRQTimeoutCountMax; saved_netretry = strdup(getenv("netretry")); - saved_bootfile = strdup(BootFile); + saved_bootfile = strdup(net_boot_file_name); /* set timeouts for auto-update */ TftpRRQTimeoutMSecs = msec_max; @@ -69,7 +69,7 @@ static int update_load(char *filename, ulong msec_max, int cnt_max, ulong addr) /* download the update file */ load_addr = addr; - copy_filename(BootFile, filename, sizeof(BootFile)); + copy_filename(net_boot_file_name, filename, sizeof(net_boot_file_name)); size = NetLoop(TFTPGET); if (size < 0) @@ -86,7 +86,8 @@ static int update_load(char *filename, ulong msec_max, int cnt_max, ulong addr) free(saved_netretry); if (saved_bootfile != NULL) { - copy_filename(BootFile, saved_bootfile, sizeof(BootFile)); + copy_filename(net_boot_file_name, saved_bootfile, + sizeof(net_boot_file_name)); free(saved_bootfile); } diff --git a/include/net.h b/include/net.h index a19f7a1..c16744a 100644 --- a/include/net.h +++ b/include/net.h @@ -476,9 +476,7 @@ extern struct in_addr net_dns_server2; extern char NetOurNISDomain[32]; /* Our NIS domain */ extern char NetOurHostName[32]; /* Our hostname */ extern char NetOurRootPath[64]; /* Our root path */ -extern ushort NetBootFileSize; /* Our boot file size in blocks */ /** END OF BOOTP EXTENTIONS **/ -extern ulong NetBootFileXferSize; /* size of bootfile in bytes */ extern uchar NetOurEther[6]; /* Our ethernet address */ extern uchar NetServerEther[6]; /* Boot server enet address */ extern struct in_addr net_ip; /* Our IP addr (0 = unknown) */ @@ -507,8 +505,11 @@ enum proto_t { TFTPSRV, TFTPPUT, LINKLOCAL }; -/* from net/net.c */ -extern char BootFile[128]; /* Boot File name */ +extern char net_boot_file_name[128];/* Boot File name */ +/* The actual transferred size of the bootfile (in bytes) */ +extern u32 net_boot_file_size; +/* Boot file size in blocks as reported by the DHCP server */ +extern u32 net_boot_file_expected_size_in_blocks; #if defined(CONFIG_CMD_DNS) extern char *NetDNSResolve; /* The host to resolve */ diff --git a/net/bootp.c b/net/bootp.c index a56ed4c..0148c19 100644 --- a/net/bootp.c +++ b/net/bootp.c @@ -146,16 +146,17 @@ static void BootpCopyNetParams(struct Bootp_t *bp) net_copy_ip(&net_server_ip, &bp->bp_siaddr); memcpy(NetServerEther, ((struct ethernet_hdr *)NetRxPacket)->et_src, 6); if (strlen(bp->bp_file) > 0) - copy_filename(BootFile, bp->bp_file, sizeof(BootFile)); + copy_filename(net_boot_file_name, bp->bp_file, + sizeof(net_boot_file_name)); - debug("Bootfile: %s\n", BootFile); + debug("net_boot_file_name: %s\n", net_boot_file_name); /* Propagate to environment: * don't delete exising entry when BOOTP / DHCP reply does * not contain a new value */ - if (*BootFile) - setenv("bootfile", BootFile); + if (*net_boot_file_name) + setenv("bootfile", net_boot_file_name); #endif net_copy_ip(&net_ip, &bp->bp_yiaddr); } @@ -179,7 +180,7 @@ static void BootpVendorFieldProcess(u8 *ext) debug("[BOOTP] Processing extension %d... (%d bytes)\n", *ext, *(ext + 1)); - NetBootFileSize = 0; + net_boot_file_expected_size_in_blocks = 0; switch (*ext) { /* Fixed length fields */ @@ -228,9 +229,11 @@ static void BootpVendorFieldProcess(u8 *ext) break; case 13: /* Boot file size */ if (size == 2) - NetBootFileSize = ntohs(*(ushort *) (ext + 2)); + net_boot_file_expected_size_in_blocks = + ntohs(*(ushort *)(ext + 2)); else if (size == 4) - NetBootFileSize = ntohl(*(ulong *) (ext + 2)); + net_boot_file_expected_size_in_blocks = + ntohl(*(ulong *)(ext + 2)); break; case 14: /* Merit dump file - Not yet supported */ break; @@ -303,8 +306,9 @@ static void BootpVendorProcess(u8 *ext, int size) if (net_gateway.s_addr) debug("net_gateway : %pI4", &net_gateway); - if (NetBootFileSize) - debug("NetBootFileSize : %d\n", NetBootFileSize); + if (net_boot_file_expected_size_in_blocks) + debug("net_boot_file_expected_size_in_blocks : %d\n", + net_boot_file_expected_size_in_blocks); if (NetOurHostName[0]) debug("NetOurHostName : %s\n", NetOurHostName); @@ -315,9 +319,6 @@ static void BootpVendorProcess(u8 *ext, int size) if (NetOurNISDomain[0]) debug("NetOurNISDomain : %s\n", NetOurNISDomain); - if (NetBootFileSize) - debug("NetBootFileSize: %d\n", NetBootFileSize); - #if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_NTPSERVER) if (net_ntp_server) debug("net_ntp_server : %pI4\n", &net_ntp_server); @@ -716,7 +717,7 @@ BootpRequest(void) net_write_ip(&bp->bp_siaddr, zero_ip); net_write_ip(&bp->bp_giaddr, zero_ip); memcpy(bp->bp_chaddr, NetOurEther, 6); - copy_filename(bp->bp_file, BootFile, sizeof(bp->bp_file)); + copy_filename(bp->bp_file, net_boot_file_name, sizeof(bp->bp_file)); /* Request additional information from the BOOTP/DHCP server */ #if defined(CONFIG_CMD_DHCP) diff --git a/net/bootp.h b/net/bootp.h index 16f40dc..8c591a6 100644 --- a/net/bootp.h +++ b/net/bootp.h @@ -60,7 +60,6 @@ struct Bootp_t { /* bootp.c */ extern ulong BootpID; /* ID of cur BOOTP request */ -extern char BootFile[128]; /* Boot file name */ extern int BootpTry; @@ -66,7 +66,8 @@ static void eth_env_init(void) s = getenv("bootfile"); if (s != NULL) - copy_filename(BootFile, s, sizeof(BootFile)); + copy_filename(net_boot_file_name, s, + sizeof(net_boot_file_name)); } static int eth_mac_skip(int index) @@ -127,8 +127,6 @@ char NetOurNISDomain[32] = {0,}; char NetOurHostName[32] = {0,}; /* Our bootpath */ char NetOurRootPath[64] = {0,}; -/* Our bootfile size in blocks */ -ushort NetBootFileSize; #ifdef CONFIG_MCAST_TFTP /* Multicast TFTP */ struct in_addr net_mcast_addr; @@ -136,8 +134,6 @@ struct in_addr net_mcast_addr; /** END OF BOOTP EXTENTIONS **/ -/* The actual transferred size of the bootfile (in bytes) */ -ulong NetBootFileXferSize; /* Our ethernet address */ uchar NetOurEther[6]; /* Boot server enet address */ @@ -174,7 +170,11 @@ ushort NetOurVLAN = 0xFFFF; ushort NetOurNativeVLAN = 0xFFFF; /* Boot File name */ -char BootFile[128]; +char net_boot_file_name[128]; +/* The actual transferred size of the bootfile (in bytes) */ +u32 net_boot_file_size; +/* Boot file size in blocks as reported by the DHCP server */ +u32 net_boot_file_expected_size_in_blocks; #if defined(CONFIG_CMD_SNTP) /* NTP server IP address */ @@ -222,7 +222,8 @@ static int on_bootfile(const char *name, const char *value, enum env_op op, switch (op) { case env_op_create: case env_op_overwrite: - copy_filename(BootFile, value, sizeof(BootFile)); + copy_filename(net_boot_file_name, value, + sizeof(net_boot_file_name)); break; default: break; @@ -380,7 +381,7 @@ restart: case 0: NetDevExists = 1; - NetBootFileXferSize = 0; + net_boot_file_size = 0; switch (protocol) { case TFTPGET: #ifdef CONFIG_CMD_TFTPPUT @@ -551,11 +552,10 @@ restart: case NETLOOP_SUCCESS: net_cleanup_loop(); - if (NetBootFileXferSize > 0) { - printf("Bytes transferred = %ld (%lx hex)\n", - NetBootFileXferSize, - NetBootFileXferSize); - setenv_hex("filesize", NetBootFileXferSize); + if (net_boot_file_size > 0) { + printf("Bytes transferred = %d (%x hex)\n", + net_boot_file_size, net_boot_file_size); + setenv_hex("filesize", net_boot_file_size); setenv_hex("fileaddr", load_addr); } if (protocol != NETCONS) @@ -565,7 +565,7 @@ restart: eth_set_last_protocol(protocol); - ret = NetBootFileXferSize; + ret = net_boot_file_size; debug_cond(DEBUG_INT_STATE, "--- NetLoop Success!\n"); goto done; @@ -100,8 +100,8 @@ store_block(uchar *src, unsigned offset, unsigned len) unmap_sysmem(ptr); } - if (NetBootFileXferSize < (offset+len)) - NetBootFileXferSize = newsize; + if (net_boot_file_size < (offset + len)) + net_boot_file_size = newsize; return 0; } @@ -724,7 +724,7 @@ NfsStart(void) return; } - if (BootFile[0] == '\0') { + if (net_boot_file_name[0] == '\0') { sprintf(default_filename, "/nfsroot/%02X%02X%02X%02X.img", net_ip.s_addr & 0xFF, (net_ip.s_addr >> 8) & 0xFF, @@ -735,16 +735,16 @@ NfsStart(void) printf("*** Warning: no boot file name; using '%s'\n", nfs_path); } else { - char *p = BootFile; + char *p = net_boot_file_name; p = strchr(p, ':'); if (p != NULL) { - nfs_server_ip = string_to_ip(BootFile); + nfs_server_ip = string_to_ip(net_boot_file_name); ++p; strcpy(nfs_path, p); } else { - strcpy(nfs_path, BootFile); + strcpy(nfs_path, net_boot_file_name); } } @@ -769,9 +769,10 @@ NfsStart(void) } printf("\nFilename '%s/%s'.", nfs_path, nfs_filename); - if (NetBootFileSize) { - printf(" Size is 0x%x Bytes = ", NetBootFileSize<<9); - print_size(NetBootFileSize<<9, ""); + if (net_boot_file_expected_size_in_blocks) { + printf(" Size is 0x%x Bytes = ", + net_boot_file_expected_size_in_blocks << 9); + print_size(net_boot_file_expected_size_in_blocks << 9, ""); } printf("\nLoad address: 0x%lx\n" "Loading: *\b", load_addr); @@ -197,8 +197,8 @@ store_block(int block, uchar *src, unsigned len) ext2_set_bit(block, Bitmap); #endif - if (NetBootFileXferSize < newsize) - NetBootFileXferSize = newsize; + if (net_boot_file_size < newsize) + net_boot_file_size = newsize; } /* Clear our state ready for a new transfer */ @@ -227,7 +227,7 @@ static int load_block(unsigned block, uchar *dst, unsigned len) ulong offset = ((int)block - 1) * len + TftpBlockWrapOffset; ulong tosend = len; - tosend = min(NetBootFileXferSize - offset, tosend); + tosend = min(net_boot_file_size - offset, tosend); (void)memcpy(dst, (void *)(save_addr + offset), tosend); debug("%s: block=%d, offset=%ld, len=%d, tosend=%ld\n", __func__, block, offset, len, tosend); @@ -311,7 +311,7 @@ static void tftp_complete(void) time_start = get_timer(time_start); if (time_start > 0) { puts("\n\t "); /* Line up with "Loading: " */ - print_size(NetBootFileXferSize / + print_size(net_boot_file_size / time_start * 1000, "/s"); } puts("\ndone\n"); @@ -361,8 +361,8 @@ TftpSend(void) debug("send option \"timeout %s\"\n", (char *)pkt); pkt += strlen((char *)pkt) + 1; #ifdef CONFIG_TFTP_TSIZE - pkt += sprintf((char *)pkt, "tsize%c%lu%c", - 0, NetBootFileXferSize, 0); + pkt += sprintf((char *)pkt, "tsize%c%u%c", + 0, net_boot_file_size, 0); #endif /* try for more effic. blk size */ pkt += sprintf((char *)pkt, "blksize%c%d%c", @@ -720,7 +720,7 @@ void TftpStart(enum proto_t protocol) TftpBlkSizeOption, TftpTimeoutMSecs); tftp_remote_ip = net_server_ip; - if (BootFile[0] == '\0') { + if (net_boot_file_name[0] == '\0') { sprintf(default_filename, "%02X%02X%02X%02X.img", net_ip.s_addr & 0xFF, (net_ip.s_addr >> 8) & 0xFF, @@ -733,13 +733,13 @@ void TftpStart(enum proto_t protocol) printf("*** Warning: no boot file name; using '%s'\n", tftp_filename); } else { - char *p = strchr(BootFile, ':'); + char *p = strchr(net_boot_file_name, ':'); if (p == NULL) { - strncpy(tftp_filename, BootFile, MAX_LEN); + strncpy(tftp_filename, net_boot_file_name, MAX_LEN); tftp_filename[MAX_LEN-1] = 0; } else { - tftp_remote_ip = string_to_ip(BootFile); + tftp_remote_ip = string_to_ip(net_boot_file_name); strncpy(tftp_filename, p + 1, MAX_LEN); tftp_filename[MAX_LEN-1] = 0; } @@ -768,9 +768,10 @@ void TftpStart(enum proto_t protocol) printf("Filename '%s'.", tftp_filename); - if (NetBootFileSize) { - printf(" Size is 0x%x Bytes = ", NetBootFileSize<<9); - print_size(NetBootFileSize<<9, ""); + if (net_boot_file_expected_size_in_blocks) { + printf(" Size is 0x%x Bytes = ", + net_boot_file_expected_size_in_blocks << 9); + print_size(net_boot_file_expected_size_in_blocks << 9, ""); } putc('\n'); @@ -779,7 +780,7 @@ void TftpStart(enum proto_t protocol) if (TftpWriting) { printf("Save address: 0x%lx\n", save_addr); printf("Save size: 0x%lx\n", save_size); - NetBootFileXferSize = save_size; + net_boot_file_size = save_size; puts("Saving: *\b"); TftpState = STATE_SEND_WRQ; new_transfer(); |