net: tftpput: move common code into separate functions

We want to show block markers on completion of get and put, so
move this common code into separate functions.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2011-10-24 18:00:03 +00:00 committed by Wolfgang Denk
parent e4bf0c5cfe
commit f5329bbc3f

View File

@ -195,6 +195,40 @@ static void TftpTimeout(void);
/**********************************************************************/
static void show_block_marker(void)
{
#ifdef CONFIG_TFTP_TSIZE
if (TftpTsize) {
ulong pos = TftpBlock * TftpBlkSize + TftpBlockWrapOffset;
while (TftpNumchars < pos * 50 / TftpTsize) {
putc('#');
TftpNumchars++;
}
}
#endif
else {
if (((TftpBlock - 1) % 10) == 0)
putc('#');
else if ((TftpBlock % (10 * HASHES_PER_LINE)) == 0)
puts("\n\t ");
}
}
/* The TFTP get or put is complete */
static void tftp_complete(void)
{
#ifdef CONFIG_TFTP_TSIZE
/* Print hash marks for the last packet received */
while (TftpTsize && TftpNumchars < 49) {
putc('#');
TftpNumchars++;
}
#endif
puts("\ndone\n");
NetState = NETLOOP_SUCCESS;
}
static void
TftpSend(void)
{
@ -400,21 +434,8 @@ TftpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
TftpBlkSize * TFTP_SEQUENCE_SIZE;
printf("\n\t %lu MB received\n\t ",
TftpBlockWrapOffset>>20);
}
#ifdef CONFIG_TFTP_TSIZE
else if (TftpTsize) {
while (TftpNumchars <
NetBootFileXferSize * 50 / TftpTsize) {
putc('#');
TftpNumchars++;
}
}
#endif
else {
if (((TftpBlock - 1) % 10) == 0)
putc('#');
else if ((TftpBlock % (10 * HASHES_PER_LINE)) == 0)
puts("\n\t ");
} else {
show_block_marker();
}
if (TftpState == STATE_SEND_RRQ)
@ -498,21 +519,8 @@ TftpHandler(uchar *pkt, unsigned dest, IPaddr_t sip, unsigned src,
}
else
#endif
if (len < TftpBlkSize) {
/*
* We received the whole thing. Try to
* run it.
*/
#ifdef CONFIG_TFTP_TSIZE
/* Print hash marks for the last packet received */
while (TftpTsize && TftpNumchars < 49) {
putc('#');
TftpNumchars++;
}
#endif
puts("\ndone\n");
NetState = NETLOOP_SUCCESS;
}
if (len < TftpBlkSize)
tftp_complete();
break;
case TFTP_ERROR: