forked from pool/elilo
57 lines
2.0 KiB
Diff
57 lines
2.0 KiB
Diff
|
---
|
||
|
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;
|
||
|
|