
Hi Sam,
On Thu, Jun 13, 2019 at 12:14 AM Sam Protsenko semen.protsenko@linaro.org wrote:
Extract fastboot_*_get_part_info() usage for MMC and NAND into getvar_get_part_info() function, as it will be needed further in other functions. This way we can avoid code duplication and mess with preprocessor directives across all points of usage.
Signed-off-by: Sam Protsenko semen.protsenko@linaro.org
drivers/fastboot/fb_getvar.c | 52 +++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 16 deletions(-)
diff --git a/drivers/fastboot/fb_getvar.c b/drivers/fastboot/fb_getvar.c index 4268628f5e..b23880089e 100644 --- a/drivers/fastboot/fb_getvar.c +++ b/drivers/fastboot/fb_getvar.c @@ -81,6 +81,41 @@ static const struct { } };
+#if CONFIG_IS_ENABLED(FASTBOOT_FLASH) +/**
- Universal function to get partition number and size.
- @param[in] part_name Info for which partition name to look for
- @param[in,out] response Pointer to fastboot response buffer
- @param[out] size If not NULL, will contain partition size (in blocks)
- @return Partition number or negative value on error
- */
+static int getvar_get_part_info(const char *part_name, char *response,
size_t *size)
+{
int r;
+# if CONFIG_IS_ENABLED(FASTBOOT_FLASH_MMC)
struct blk_desc *dev_desc;
disk_partition_t part_info;
r = fastboot_mmc_get_part_info(part_name, &dev_desc, &part_info,
response);
if (r >= 0 && size)
*size = part_info.size;
+# elif CONFIG_IS_ENABLED(FASTBOOT_FLASH_NAND)
struct part_info *part_info;
r = fastboot_nand_get_part_info(part_name, &part_info, response);
if (r >= 0 && size)
*size = part_info->size;
+# else
r = -ENODEV;
+# endif
return r;
+} +#endif
static void getvar_version(char *var_parameter, char *response) { fastboot_okay(FASTBOOT_VERSION, response); @@ -176,22 +211,7 @@ static void getvar_partition_size(char *part_name, char *response) int r; size_t size;
-#if CONFIG_IS_ENABLED(FASTBOOT_FLASH_MMC)
struct blk_desc *dev_desc;
disk_partition_t part_info;
r = fastboot_mmc_get_part_info(part_name, &dev_desc, &part_info,
response);
if (r >= 0)
size = part_info.size;
-#endif -#if CONFIG_IS_ENABLED(FASTBOOT_FLASH_NAND)
struct part_info *part_info;
r = fastboot_nand_get_part_info(part_name, &part_info, response);
if (r >= 0)
size = part_info->size;
-#endif
r = getvar_get_part_info(part_name, response, &size); if (r >= 0) fastboot_response("OKAY", response, "0x%016zx", size);
}
2.20.1
Reviewed-by: Igor Opaniuk igor.opaniuk@toradex.com