diff options
author | Ulrich Ölmann <u.oelmann@pengutronix.de> | 2016-04-29 19:36:21 +0200 |
---|---|---|
committer | Steffen Trumtrar <s.trumtrar@pengutronix.de> | 2020-06-22 08:13:13 +0200 |
commit | c98507f40d39633e345230caa00f78c9065da845 (patch) | |
tree | 97a79cbc2ceb27bfb3ee327a2c57b4a1296c042c | |
parent | 7c70e8e153012ca743ffb3b967bdb112fd6ecfd5 (diff) | |
download | barebox-c98507f40d39633e345230caa00f78c9065da845.tar.gz barebox-c98507f40d39633e345230caa00f78c9065da845.tar.xz |
bootstrap_read_disk(): optionally inform the caller of the buffer size
The size of the buffer allocated in the function is needed if it shall be
inspected more closely later. Therefore optionally return it via a new pointer
argument.
Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
-rw-r--r-- | arch/arm/mach-at91/bootstrap.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-socfpga/xload.c | 2 | ||||
-rw-r--r-- | include/bootstrap.h | 4 | ||||
-rw-r--r-- | lib/bootstrap/disk.c | 5 |
4 files changed, 8 insertions, 5 deletions
diff --git a/arch/arm/mach-at91/bootstrap.c b/arch/arm/mach-at91/bootstrap.c index 90b7b33fc9..0b1567cd23 100644 --- a/arch/arm/mach-at91/bootstrap.c +++ b/arch/arm/mach-at91/bootstrap.c @@ -89,7 +89,7 @@ static void at91bootstrap_boot_mmc(void) kernel_entry_func func = NULL; printf("Boot from mmc\n"); - func = bootstrap_read_disk("disk0.0", NULL); + func = bootstrap_read_disk("disk0.0", NULL, NULL); bootstrap_boot(func, false); bootstrap_err("... failed\n"); free(func); diff --git a/arch/arm/mach-socfpga/xload.c b/arch/arm/mach-socfpga/xload.c index 8be2827e62..1131cfee41 100644 --- a/arch/arm/mach-socfpga/xload.c +++ b/arch/arm/mach-socfpga/xload.c @@ -37,7 +37,7 @@ static __noreturn int socfpga_xload(void) socfpga_cyclone5_mmc_init(); for (part = barebox_parts; part->mmc_disk; part++) { - buf = bootstrap_read_disk(barebox_parts->mmc_disk, "fat"); + buf = bootstrap_read_disk(barebox_parts->mmc_disk, "fat", NULL); if (!buf) { pr_info("failed to load barebox from MMC %s\n", part->mmc_disk); diff --git a/include/bootstrap.h b/include/bootstrap.h index 8b3bb34a03..3e006d3cc9 100644 --- a/include/bootstrap.h +++ b/include/bootstrap.h @@ -25,9 +25,9 @@ static inline void* bootstrap_read_devfs(char *devname, bool use_bb, int offset, #endif #ifdef CONFIG_BOOTSTRAP_DISK -void* bootstrap_read_disk(const char *devname, const char *fstype); +void* bootstrap_read_disk(const char *devname, char *fstype, size_t *bufsize); #else -static inline void* bootstrap_read_disk(const char *devname, const char *fstype) +static inline void* bootstrap_read_disk(const char *devname, char *fstype, size_t *bufsize) { return NULL; } diff --git a/lib/bootstrap/disk.c b/lib/bootstrap/disk.c index fd016166e6..ed8b1aa407 100644 --- a/lib/bootstrap/disk.c +++ b/lib/bootstrap/disk.c @@ -14,7 +14,7 @@ #include <libfile.h> #include <bootstrap.h> -void* bootstrap_read_disk(const char *dev, const char *fstype) +void* bootstrap_read_disk(const char *dev, char *fstype, size_t *bufsize) { int ret; void *buf; @@ -34,5 +34,8 @@ void* bootstrap_read_disk(const char *dev, const char *fstype) return NULL; } + if (bufsize) + *bufsize = len; + return buf; } |