Message ID | 1391156905-21785-1-git-send-email-wd@denx.de |
---|---|
State | Accepted |
Delegated to: | Tom Rini |
Headers | show |
Hi Wolfgang, > Unlike other commands (for example, "fatwrite"), ext4write would > interpret the "sizebytes" as decimal number. This is not only > inconsistend and unexpected to most users, it also breaks usage > like this: > > tftp ${addr} ${name} > ext4write mmc 0:2 ${addr} ${filename} ${filesize} > > Change this to use the standard notation of base 16 input format. > See also commit b770e88 > > WARNING: this is a change to the user interface!! In other words you are breaking API :-) - but this change is more than welcome and you have got enough power to do it :-). > > Signed-off-by: Wolfgang Denk <wd@denx.de> > Cc: Uma Shankar <uma.shankar@samsung.com> > Cc: Stephen Warren <swarren@nvidia.com> > --- > common/cmd_ext4.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/common/cmd_ext4.c b/common/cmd_ext4.c > index 8289d25..68b047b 100644 > --- a/common/cmd_ext4.c > +++ b/common/cmd_ext4.c > @@ -79,8 +79,8 @@ int do_ext4_write(cmd_tbl_t *cmdtp, int flag, int > argc, /* get the address in hexadecimal format (string to int) */ > ram_address = simple_strtoul(argv[3], NULL, 16); > > - /* get the filesize in base 10 format */ > - file_size = simple_strtoul(argv[5], NULL, 10); > + /* get the filesize in hexadecimal format */ > + file_size = simple_strtoul(argv[5], NULL, 16); > > /* set the device as block device */ > ext4fs_set_blk_dev(dev_desc, &info); My only comment is to add proper description to the ext4write commend description. Now it only says: "<interface> <dev[:part]> <addr> <absolute filename path> [sizebytes]\n" and I think, that we could come up with [sizebytes - HEX] or something similar.
Dear Lukasz, In message <20140131102755.63297928@amdc2363> you wrote: > > > ext4write mmc 0:2 ${addr} ${filename} ${filesize} > > > > Change this to use the standard notation of base 16 input format. > > See also commit b770e88 > > > > WARNING: this is a change to the user interface!! > > In other words you are breaking API :-) - but this change is more than > welcome and you have got enough power to do it :-). Yes, I'm breaking the current (incorrectly implemented) ABI to fix it and make it consistend with other use (for example, "fatwrite"). As is, it can only be used from the command line, but not from any scripts that refer for example to ${filesize}. > My only comment is to add proper description to the ext4write commend > description. Now it only says: > > "<interface> <dev[:part]> <addr> <absolute filename path> [sizebytes]\n" > > and I think, that we could come up with [sizebytes - HEX] or something > similar. I do not see any such need. Hex input base is the established and documented default - ext4write is not a special command, so why should we mention this here when we do not mention it anywhere else? Best regards, Wolfgang Denk
Hi Wolfgang, > Dear Lukasz, > > In message <20140131102755.63297928@amdc2363> you wrote: > > > > > ext4write mmc 0:2 ${addr} ${filename} ${filesize} > > > > > > Change this to use the standard notation of base 16 input format. > > > See also commit b770e88 > > > > > > WARNING: this is a change to the user interface!! > > > > In other words you are breaking API :-) - but this change is more > > than welcome and you have got enough power to do it :-). > > Yes, I'm breaking the current (incorrectly implemented) ABI to fix it > and make it consistend with other use (for example, "fatwrite"). As > is, it can only be used from the command line, but not from any > scripts that refer for example to ${filesize}. And I'm totally with you with this change. > > > My only comment is to add proper description to the ext4write > > commend description. Now it only says: > > > > "<interface> <dev[:part]> <addr> <absolute filename path> > > [sizebytes]\n" > > > > and I think, that we could come up with [sizebytes - HEX] or > > something similar. > > I do not see any such need. Hex input base is the established and > documented default - ext4write is not a special command, so why should > we mention this here when we do not mention it anywhere else? If now all <fs>*write and <fs>*load commands accept only hex input, then I agree, that extra comment is not needed. > > Best regards, > > Wolfgang Denk >
Dear Lukasz, In message <20140131110818.07d79eac@amdc2363> you wrote: > > > I do not see any such need. Hex input base is the established and > > documented default - ext4write is not a special command, so why should > > we mention this here when we do not mention it anywhere else? > > If now all <fs>*write and <fs>*load commands accept only hex input, > then I agree, that extra comment is not needed. Not only these, but all other commands - with the inglorious exception of the "sleep" command (but hey - there must be a bad example somewhere, right? ;-) Best regards, Wolfgang Denk
On Fri, Jan 31, 2014 at 09:28:25AM +0100, Wolfgang Denk wrote: > Unlike other commands (for example, "fatwrite"), ext4write would > interpret the "sizebytes" as decimal number. This is not only > inconsistend and unexpected to most users, it also breaks usage > like this: > > tftp ${addr} ${name} > ext4write mmc 0:2 ${addr} ${filename} ${filesize} > > Change this to use the standard notation of base 16 input format. > See also commit b770e88 > > WARNING: this is a change to the user interface!! > > Signed-off-by: Wolfgang Denk <wd@denx.de> > Cc: Uma Shankar <uma.shankar@samsung.com> > Cc: Stephen Warren <swarren@nvidia.com> Applied to u-boot/master, thanks!
diff --git a/common/cmd_ext4.c b/common/cmd_ext4.c index 8289d25..68b047b 100644 --- a/common/cmd_ext4.c +++ b/common/cmd_ext4.c @@ -79,8 +79,8 @@ int do_ext4_write(cmd_tbl_t *cmdtp, int flag, int argc, /* get the address in hexadecimal format (string to int) */ ram_address = simple_strtoul(argv[3], NULL, 16); - /* get the filesize in base 10 format */ - file_size = simple_strtoul(argv[5], NULL, 10); + /* get the filesize in hexadecimal format */ + file_size = simple_strtoul(argv[5], NULL, 16); /* set the device as block device */ ext4fs_set_blk_dev(dev_desc, &info);
Unlike other commands (for example, "fatwrite"), ext4write would interpret the "sizebytes" as decimal number. This is not only inconsistend and unexpected to most users, it also breaks usage like this: tftp ${addr} ${name} ext4write mmc 0:2 ${addr} ${filename} ${filesize} Change this to use the standard notation of base 16 input format. See also commit b770e88 WARNING: this is a change to the user interface!! Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Uma Shankar <uma.shankar@samsung.com> Cc: Stephen Warren <swarren@nvidia.com> --- common/cmd_ext4.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)