[PATCH 2/4] sf: Tidy up code to avoid #ifdef
Heinrich Schuchardt
xypron.glpk at gmx.de
Tue Apr 6 13:32:44 CEST 2021
On 06.04.21 12:22, Pratyush Yadav wrote:
> On 06/04/21 04:30PM, Simon Glass wrote:
>> Update this code to use IS_ENABLED() instead.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> ---
>>
>> cmd/sf.c | 32 ++++++++++++++------------------
>> 1 file changed, 14 insertions(+), 18 deletions(-)
>>
>> diff --git a/cmd/sf.c b/cmd/sf.c
>> index 46346fb9d43..d4f5ecee38c 100644
>> --- a/cmd/sf.c
>> +++ b/cmd/sf.c
>> @@ -384,7 +384,6 @@ static int do_spi_protect(int argc, char *const argv[])
>> return ret == 0 ? 0 : 1;
>> }
>>
>> -#ifdef CONFIG_CMD_SF_TEST
>> enum {
>> STAGE_ERASE,
>> STAGE_CHECK,
>> @@ -394,7 +393,7 @@ enum {
>> STAGE_COUNT,
>> };
>>
>> -static char *stage_name[STAGE_COUNT] = {
>> +static const char *stage_name[STAGE_COUNT] = {
>> "erase",
>> "check",
>> "write",
>> @@ -548,7 +547,6 @@ static int do_spi_flash_test(int argc, char *const argv[])
>>
>> return 0;
>> }
>> -#endif /* CONFIG_CMD_SF_TEST */
>
> Won't this cause all the test related functions to always be compiled
> into the binary? Then what's the point of having it behind a config at
> all?
We compile all functions into separate sections. The linker eliminates
unused functions. Look for -ffunction-sections in files
arch/<arch>/config.mk.
Best regards
Heinrich
>
>>
>> static int do_spi_flash(struct cmd_tbl *cmdtp, int flag, int argc,
>> char *const argv[])
>> @@ -582,10 +580,8 @@ static int do_spi_flash(struct cmd_tbl *cmdtp, int flag, int argc,
>> ret = do_spi_flash_erase(argc, argv);
>> else if (strcmp(cmd, "protect") == 0)
>> ret = do_spi_protect(argc, argv);
>> -#ifdef CONFIG_CMD_SF_TEST
>> - else if (!strcmp(cmd, "test"))
>> + else if (IS_ENABLED(CONFIG_CMD_SF_TEST) && !strcmp(cmd, "test"))
>> ret = do_spi_flash_test(argc, argv);
>> -#endif
>> else
>> ret = -1;
>>
>> @@ -597,16 +593,8 @@ usage:
>> return CMD_RET_USAGE;
>> }
>>
>> -#ifdef CONFIG_CMD_SF_TEST
>> -#define SF_TEST_HELP "\nsf test offset len " \
>> - "- run a very basic destructive test"
>> -#else
>> -#define SF_TEST_HELP
>> -#endif
>> -
>> -U_BOOT_CMD(
>> - sf, 5, 1, do_spi_flash,
>> - "SPI flash sub-system",
>> +#ifdef CONFIG_SYS_LONGHELP
>> +static const char long_help[] =
>> "probe [[bus:]cs] [hz] [mode] - init flash device on given SPI bus\n"
>> " and chip select\n"
>> "sf read addr offset|partition len - read `len' bytes starting at\n"
>> @@ -622,6 +610,14 @@ U_BOOT_CMD(
>> " at `addr' to flash at `offset'\n"
>> " or to start of mtd `partition'\n"
>> "sf protect lock/unlock sector len - protect/unprotect 'len' bytes starting\n"
>> - " at address 'sector'\n"
>> - SF_TEST_HELP
>> + " at address 'sector'"
>> +#ifdef CONFIG_CMD_SF_TEST
>> + "\nsf test offset len - run a very basic destructive test"
>> +#endif
>> +#endif /* CONFIG_SYS_LONGHELP */
>> + ;
>> +
>> +U_BOOT_CMD(
>> + sf, 5, 1, do_spi_flash,
>> + "SPI flash sub-system", long_help
>> );
>> --
>> 2.31.0.208.g409f899ff0-goog
>>
>
More information about the U-Boot
mailing list