|
|
|
@ -33,12 +33,17 @@ |
|
|
|
|
#include <config.h> |
|
|
|
|
#include <command.h> |
|
|
|
|
|
|
|
|
|
#include "../fs/ubifs/ubifs.h" |
|
|
|
|
|
|
|
|
|
static int ubifs_initialized; |
|
|
|
|
static int ubifs_mounted; |
|
|
|
|
|
|
|
|
|
extern struct super_block *ubifs_sb; |
|
|
|
|
|
|
|
|
|
/* Prototypes */ |
|
|
|
|
int ubifs_init(void); |
|
|
|
|
int ubifs_mount(char *vol_name); |
|
|
|
|
void ubifs_umount(struct ubifs_info *c); |
|
|
|
|
int ubifs_ls(char *dir_name); |
|
|
|
|
int ubifs_load(char *filename, u32 addr, u32 size); |
|
|
|
|
|
|
|
|
@ -67,6 +72,26 @@ int do_ubifs_mount(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int do_ubifs_umount(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) |
|
|
|
|
{ |
|
|
|
|
if (argc != 1) |
|
|
|
|
return cmd_usage(cmdtp); |
|
|
|
|
|
|
|
|
|
if (ubifs_initialized == 0) { |
|
|
|
|
printf("No UBIFS volume mounted!\n"); |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (ubifs_sb) |
|
|
|
|
ubifs_umount(ubifs_sb->s_fs_info); |
|
|
|
|
|
|
|
|
|
ubifs_sb = NULL; |
|
|
|
|
ubifs_mounted = 0; |
|
|
|
|
ubifs_initialized = 0; |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int do_ubifs_ls(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) |
|
|
|
|
{ |
|
|
|
|
char *filename = "/"; |
|
|
|
@ -132,6 +157,12 @@ U_BOOT_CMD( |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
U_BOOT_CMD( |
|
|
|
|
ubifsumount, 1, 0, do_ubifs_umount, |
|
|
|
|
"unmount UBIFS volume", |
|
|
|
|
" - unmount current volume" |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
U_BOOT_CMD( |
|
|
|
|
ubifsls, 2, 0, do_ubifs_ls, |
|
|
|
|
"list files in a directory", |
|
|
|
|
"[directory]\n" |
|
|
|
|