mirror of
https://xff.cz/git/u-boot/
synced 2025-10-20 01:14:39 +02:00
fs: fix generic save command implementation
Fix a few issues with the generic "save" shell command, and fs_write() function. 1) fstypes[].write wasn't filled in for some file-systems, and isn't checked when used, which could cause crashes/... if executing save on e.g. fat/ext filesystems. 2) fs_write() requires the length argument to be non-zero, since it needs to know exactly how many bytes to write. Adjust the comments and code according to this. 3) fs_write() wasn't prototyped in <fs.h> like other generic functions; other code should be able to call this directly rather than invoking the "save" shell command. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
10
include/fs.h
10
include/fs.h
@@ -54,6 +54,16 @@ int fs_ls(const char *dirname);
|
||||
*/
|
||||
int fs_read(const char *filename, ulong addr, int offset, int len);
|
||||
|
||||
/*
|
||||
* Write file "filename" to the partition previously set by fs_set_blk_dev(),
|
||||
* from address "addr", starting at byte offset "offset", and writing "len"
|
||||
* bytes. "offset" may be 0 to write to the start of the file. Note that not
|
||||
* all filesystem types support offset!=0.
|
||||
*
|
||||
* Returns number of bytes read on success. Returns <= 0 on error.
|
||||
*/
|
||||
int fs_write(const char *filename, ulong addr, int offset, int len);
|
||||
|
||||
/*
|
||||
* Common implementation for various filesystem commands, optionally limited
|
||||
* to a specific filesystem type via the fstype parameter.
|
||||
|
Reference in New Issue
Block a user