[U-Boot] [PATCH v6 2/6] fs: interface changes to accomodate files greater than 2GB

Pavel Machek pavel at denx.de
Tue Nov 4 20:26:43 CET 2014


On Mon 2014-11-03 18:49:58, Suriyan Ramasami wrote:
> Change the interface for the generic FS functions to take in an extra
> parameter of type "loff_t *" to return the size. The return values of
> these funtions now serve as an indicator of error conditions alone.
> 
> Signed-off-by: Suriyan Ramasami <suriyan.r at gmail.com>
> ---
> 
> Changes in v6:
> * Simon - Split this into a separate patch
> 
> Changes in v5:
> * Simon - update fs.h with comments for fs_read/fs_write/fs_size
> 
>  common/cmd_fs.c | 17 +++++++++++++
>  fs/fs.c         | 77 ++++++++++++++++++++++++++++++++++-----------------------
>  include/fs.h    | 41 ++++++++++++++++++------------
>  3 files changed, 88 insertions(+), 47 deletions(-)
> 
> diff --git a/common/cmd_fs.c b/common/cmd_fs.c
> index 6754340..f70cb8a 100644
> --- a/common/cmd_fs.c
> +++ b/common/cmd_fs.c
> @@ -51,6 +51,23 @@ U_BOOT_CMD(
>  	"      If 'pos' is 0 or omitted, the file is read from the start."
>  )
>  
> +static int do_save_wrapper(cmd_tbl_t *cmdtp, int flag, int argc,
> +				char * const argv[])
> +{
> +	return do_save(cmdtp, flag, argc, argv, FS_TYPE_ANY);
> +}
> +
> +U_BOOT_CMD(
> +	save,	7,	0,	do_save_wrapper,
> +	"save file to a filesystem",
> +	"<interface> [<dev[:part]> [<addr> [<filename> [bytes [pos]]]]]\n"

That's not correct, AFAICT.

int do_save(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
                int fstype)
{
	unsigned long addr;
	const char *filename;
        unsigned long bytes;
	unsigned long pos;
	int len;
        unsigned long time;

	if (argc < 6 || argc > 7)
                return CMD_RET_USAGE;

More arguments are mandatory then you describe here.

> +	"    - Save binary file 'filename' to partition 'part' on device\n"
> +	"      type 'interface' instance 'dev' from addr 'addr' in memory.\n"
> +	"      'bytes' gives the size to save in bytes and is mandatory.\n"
> +	"      'pos' gives the file byte position to start writing to.\n"
> +	"      If 'pos' is 0 or omitted, the file is written from the start."

Plus maybe note if it can extend existing files and create files if
they don't exit would be nice here?

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


More information about the U-Boot mailing list