diff options
author | Stephen Warren <swarren@nvidia.com> | 2014-06-11 12:47:26 -0600 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-08-09 11:16:57 -0400 |
commit | cf6598193aed5de8855eaf70c1994f2bc437255a (patch) | |
tree | 4effb602945b18ad9c639cfd7b5e9f17eb02ffa4 /common | |
parent | e76b933e02e1b38e48754c435e9dba1c0deeb3c6 (diff) | |
download | u-boot-cf6598193aed5de8855eaf70c1994f2bc437255a.zip u-boot-cf6598193aed5de8855eaf70c1994f2bc437255a.tar.gz u-boot-cf6598193aed5de8855eaf70c1994f2bc437255a.tar.bz2 |
fs: implement size/fatsize/ext4size
These commands may be used to determine the size of a file without
actually reading the whole file content into memory. This may be used
to determine if the file will fit into the memory buffer that will
contain it. In particular, the DFU code will use it for this purpose
in the next commit.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Diffstat (limited to 'common')
-rw-r--r-- | common/cmd_ext4.c | 14 | ||||
-rw-r--r-- | common/cmd_fat.c | 13 | ||||
-rw-r--r-- | common/cmd_fs.c | 13 |
3 files changed, 40 insertions, 0 deletions
diff --git a/common/cmd_ext4.c b/common/cmd_ext4.c index 68b047b..6d75dd2 100644 --- a/common/cmd_ext4.c +++ b/common/cmd_ext4.c @@ -42,6 +42,12 @@ #include <usb.h> #endif +int do_ext4_size(cmd_tbl_t *cmdtp, int flag, int argc, + char *const argv[]) +{ + return do_size(cmdtp, flag, argc, argv, FS_TYPE_EXT); +} + int do_ext4_load(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { @@ -113,6 +119,14 @@ U_BOOT_CMD(ext4write, 6, 1, do_ext4_write, #endif +U_BOOT_CMD( + ext4size, 4, 0, do_ext4_size, + "determine a file's size", + "<interface> <dev[:part]> <filename>\n" + " - Find file 'filename' from 'dev' on 'interface'\n" + " and determine its size." +); + U_BOOT_CMD(ext4ls, 4, 1, do_ext4_ls, "list files in a directory (default /)", "<interface> <dev[:part]> [directory]\n" diff --git a/common/cmd_fat.c b/common/cmd_fat.c index a478017..633fbf1 100644 --- a/common/cmd_fat.c +++ b/common/cmd_fat.c @@ -18,6 +18,19 @@ #include <fat.h> #include <fs.h> +int do_fat_size(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +{ + return do_size(cmdtp, flag, argc, argv, FS_TYPE_FAT); +} + +U_BOOT_CMD( + fatsize, 4, 0, do_fat_size, + "determine a file's size", + "<interface> <dev[:part]> <filename>\n" + " - Find file 'filename' from 'dev' on 'interface'\n" + " and determine its size." +); + int do_fat_fsload (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { return do_load(cmdtp, flag, argc, argv, FS_TYPE_FAT); diff --git a/common/cmd_fs.c b/common/cmd_fs.c index 78590d2..6754340 100644 --- a/common/cmd_fs.c +++ b/common/cmd_fs.c @@ -20,6 +20,19 @@ #include <command.h> #include <fs.h> +static int do_size_wrapper(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +{ + return do_size(cmdtp, flag, argc, argv, FS_TYPE_ANY); +} + +U_BOOT_CMD( + size, 4, 0, do_size_wrapper, + "determine a file's size", + "<interface> <dev[:part]> <filename>\n" + " - Find file 'filename' from 'dev' on 'interface'\n" + " and determine its size." +); + static int do_load_wrapper(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { |