File elilo-blocksize.diff of Package elilo

---
 config.c   |    4 ++++
 elilo.h    |    2 ++
 fs/netfs.c |    3 ++-
 3 files changed, 8 insertions(+), 1 deletion(-)

--- a/config.c
+++ b/config.c
@@ -119,6 +119,7 @@ typedef struct {
 	UINTN timeout;
 	UINTN verbose;
 	UINTN edd30_no_force; /* don't force EDD30 if not set */
+	UINTN blocksize;
 } global_config_t;
 
 /*
@@ -143,6 +144,7 @@ static config_option_t global_common_opt
 {OPT_STR,	OPT_GLOBAL, 	L"default",	NULL,		NULL,			global_config.default_image_name},
 {OPT_NUM,	OPT_GLOBAL,	L"timeout",	NULL, 		NULL,			&global_config.timeout},
 {OPT_NUM,	OPT_GLOBAL,	L"delay",	NULL,		NULL,			&global_config.delay},
+{OPT_NUM,	OPT_GLOBAL,	L"block-size",	NULL,		NULL,			&global_config.blocksize},
 {OPT_BOOL,	OPT_GLOBAL,	L"debug",	NULL,		NULL,			&global_config.debug},
 {OPT_BOOL,	OPT_GLOBAL,	L"prompt",	NULL,		NULL,			&global_config.prompt},
 {OPT_NUM,	OPT_GLOBAL,	L"verbose",	NULL,		check_verbosity,	&global_config.verbose},
@@ -827,6 +829,8 @@ update_elilo_opt(VOID)
 
 	if (global_config.debug) elilo_opt.debug   = 1;
 	if (global_config.prompt) elilo_opt.prompt = 1;
+	if (global_config.blocksize)
+		elilo_opt.blocksize = global_config.blocksize;
 
 	/*
 	 * update only if not set on command line
--- a/elilo.h
+++ b/elilo.h
@@ -105,6 +105,8 @@ typedef struct {
 	UINTN prompt;		/* enter interactive mode */
 	UINTN parse_only;	/* only parses the config file */
 	UINTN timeout;		/* timeout before leaving interactive mode*/
+	UINTN blocksize;	/* user-specified block-size for I/O */
+				/* (currently only used for TFTP!) */
 
 	image_opt_t img_opt;	/* architecture independent per image options*/
 
--- a/fs/netfs.c
+++ b/fs/netfs.c
@@ -517,7 +517,8 @@ netfs_open(netfs_interface_t *this, CHAR
 	netfs_fd_t	   *f;
 	EFI_STATUS	   status;
 	CHAR8		   ascii_name[FILENAME_MAXLEN];
-	UINTN 		   blocksize = NETFS_DEFAULT_BLOCKSIZE;
+	UINTN 		   blocksize = (elilo_opt.blocksize > 0) ?
+				elilo_opt.blocksize : NETFS_DEFAULT_BLOCKSIZE;
 	UINTN		   prev_netbufsize, retries = 0;
 	BOOLEAN		   server_provided_filesize = FALSE;