[U-Boot] [PATCH 5/8] tftpput: support selecting get/put for tftp

Simon Glass sjg at chromium.org
Sat Oct 22 06:51:37 CEST 2011


TftpStart should support starting either a get or a put.

Signed-off-by: Simon Glass <sjg at chromium.org>
---
 include/net.h |    4 ++--
 net/bootp.c   |    2 +-
 net/tftp.c    |    5 +++--
 net/tftp.h    |    2 +-
 4 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/include/net.h b/include/net.h
index 3dfe073..2e5a898 100644
--- a/include/net.h
+++ b/include/net.h
@@ -349,8 +349,8 @@ extern int		NetRestartWrap;		/* Tried all network devices	*/
 
 enum {
 	BOOTP, RARP, ARP, TFTPGET, DHCP, PING, DNS, NFS, CDP, NETCONS, SNTP,
-	TFTPSRV
-};
+	TFTPSRV, TFTPPUT
+} proto_t;
 
 /* from net/net.c */
 extern char	BootFile[128];			/* Boot File name		*/
diff --git a/net/bootp.c b/net/bootp.c
index a003c42..068b037 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -165,7 +165,7 @@ static void auto_load(void)
 		}
 #endif
 	}
-	TftpStart();
+	TftpStart(TFTPGET);
 }
 
 #if !defined(CONFIG_CMD_DHCP)
diff --git a/net/tftp.c b/net/tftp.c
index 4ad85a5..3a58e32 100644
--- a/net/tftp.c
+++ b/net/tftp.c
@@ -81,6 +81,7 @@ static int	TftpTsize;
 /* The number of hashes we printed */
 static short	TftpNumchars;
 #endif
+static int	TftpWriting;	/* 1 if writing, else 0 */
 
 #define STATE_SEND_RRQ	1
 #define STATE_DATA	2
@@ -572,8 +573,7 @@ TftpTimeout(void)
 }
 
 
-void
-TftpStart(void)
+void TftpStart(proto_t protocol)
 {
 	char *ep;             /* Environment pointer */
 
@@ -648,6 +648,7 @@ TftpStart(void)
 	}
 
 	putc('\n');
+	TftpWriting = (protocol == TFTPPUT);
 
 	printf("Load address: 0x%lx\n", load_addr);
 
diff --git a/net/tftp.h b/net/tftp.h
index 3abdf7b..2d5d594 100644
--- a/net/tftp.h
+++ b/net/tftp.h
@@ -16,7 +16,7 @@
  */
 
 /* tftp.c */
-extern void	TftpStart (void);	/* Begin TFTP get */
+void TftpStart(proto_t protocol);	/* Begin TFTP get/put */
 
 #ifdef CONFIG_CMD_TFTPSRV
 extern void	TftpStartServer(void);	/* Wait for incoming TFTP put */
-- 
1.7.3.1



More information about the U-Boot mailing list