[U-Boot] [Patch v1 1/1] jffs2: change U_BOOT_CMD ls to fsls

Suriyan Ramasami suriyan.r at gmail.com
Sun Oct 13 23:03:45 CEST 2013


Hello Wolfgang Denk,

On Sat, Oct 12, 2013 at 11:38 AM, Wolfgang Denk <wd at denx.de> wrote:
> Dear Suriyan Ramasami,
>
> In message <1381366918-17590-1-git-send-email-suriyan.r at gmail.com> you wrote:
>> multiple definitions of `_u_boot_list_2_cmd_2_ls' if CONFIG_CMD_JFFS2
>> and CONFIG_CMD_FS_GENERIC are defined.
>>
>> Signed-off-by: Suriyan Ramasami <suriyan.r at gmail.com>
>> ---
>>  common/cmd_jffs2.c |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/common/cmd_jffs2.c b/common/cmd_jffs2.c
>> index bce0983..f38455f 100644
>> --- a/common/cmd_jffs2.c
>> +++ b/common/cmd_jffs2.c
>> @@ -606,7 +606,7 @@ U_BOOT_CMD(
>>       "      with offset 'off'"
>>  );
>>  U_BOOT_CMD(
>> -     ls,     2,      1,      do_jffs2_ls,
>> +     fsls,   2,      1,      do_jffs2_ls,
>
> This makes no sense to me.  Either we mimick Unix style, then the
> command name shouldbe "ls' (where else but in a file system could you
> LiSt files?); or we implement file system specific commands, than the
> name of the file system should be recognizable.
>
> I think your problem should be fixed differently (such that "ls" also
> works with JFFS2).
>
I think I haven't defined the problem properly. I am sure you know
about the below, but am just reemphasizing so we could discuss the
issue.

The macro U_BOOT_CMD maps the user invocable commands at the u-boot
prompt to actual function calls. For example, looking at
common/cmd_ext4.c It defines the below:
ext4ls maps to do_ext4_ls()
ext4load maps to do_ext4_load()
etc.
Looking at the CMD_SYS_FS_GENERIC (common/cmd_fs.c) implementation
which works with the u-boot commands ls and load as follows:
ls maps to do_ls_wrapper()
load maps to do_load_wrapper()
Looking at CONFIG_CMD_JFFS2 with comman/cmd_jffs2.c, we see that it
defines the u-boot commands ls, fsinfo and fsload as follows:
ls maps to do_jffs_fsload()
fsload maps to do_jffs_fsload()
fsinfo maps to do_jffs2_fsinfo()

Firstly, this is a little inconsistent in the u-boot command name,
namely, ls is for ls of jffs fs, but the load and info commands have
an fs prefix - fsload, fsinfo.

Hence, we are left with two u-boot commands with the same name - ls,
one for jffs2 and the other for fs.c leading to the linking issue.


>
> Best regards,
>
> Wolfgang Denk
>
> --
> DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> backups: always in season, never out of style.


More information about the U-Boot mailing list