In principle this can fail, e.g. if the index is out of range. Adjust the driver signature to allow returning an error code.
Signed-off-by: Simon Glass <s...@chromium.org> --- env/dataflash.c | 2 +- env/eeprom.c | 2 +- env/nvram.c | 2 +- include/environment.h | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/env/dataflash.c b/env/dataflash.c index 28dcf6fa1c..afa08f8fd5 100644 --- a/env/dataflash.c +++ b/env/dataflash.c @@ -14,7 +14,7 @@ DECLARE_GLOBAL_DATA_PTR; -static unsigned char env_dataflash_get_char(int index) +static int env_dataflash_get_char(int index) { uchar c; diff --git a/env/eeprom.c b/env/eeprom.c index 39adccabbe..fbe4fd4efc 100644 --- a/env/eeprom.c +++ b/env/eeprom.c @@ -61,7 +61,7 @@ static int eeprom_bus_write(unsigned dev_addr, unsigned offset, return rcode; } -static uchar env_eeprom_get_char(int index) +static int env_eeprom_get_char(int index) { uchar c; unsigned int off = CONFIG_ENV_OFFSET; diff --git a/env/nvram.c b/env/nvram.c index ac389ace62..85af37d4a0 100644 --- a/env/nvram.c +++ b/env/nvram.c @@ -41,7 +41,7 @@ env_t *env_ptr = (env_t *)CONFIG_ENV_ADDR; #endif #ifdef CONFIG_SYS_NVRAM_ACCESS_ROUTINE -static uchar env_nvram_get_char(int index) +static int env_nvram_get_char(int index) { uchar c; diff --git a/include/environment.h b/include/environment.h index faf4d6adbb..6889089d38 100644 --- a/include/environment.h +++ b/include/environment.h @@ -227,9 +227,9 @@ struct env_driver { * will read from gd->env_addr. * * @index: Index of character to read (0=first) - * @return character read + * @return character read, or -ve on error */ - unsigned char (*get_char)(int index); + int (*get_char)(int index); /** * load() - Load the environment from storage -- 2.13.2.725.g09c95d1e9-goog _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot