| #include <common.h> | 
 |  | 
 | #include <config.h> | 
 | #include <command.h> | 
 |  | 
 | #ifdef  YAFFS2_DEBUG | 
 | #define PRINTF(fmt,args...) printf (fmt ,##args) | 
 | #else | 
 | #define PRINTF(fmt,args...) | 
 | #endif | 
 |  | 
 | extern void cmd_yaffs_mount(char *mp); | 
 | extern void cmd_yaffs_umount(char *mp); | 
 | extern void cmd_yaffs_read_file(char *fn); | 
 | extern void cmd_yaffs_write_file(char *fn,char bval,int sizeOfFile); | 
 | extern void cmd_yaffs_ls(const char *mountpt, int longlist); | 
 | extern void cmd_yaffs_mwrite_file(char *fn, char *addr, int size); | 
 | extern void cmd_yaffs_mread_file(char *fn, char *addr); | 
 | extern void cmd_yaffs_mkdir(const char *dir); | 
 | extern void cmd_yaffs_rmdir(const char *dir); | 
 | extern void cmd_yaffs_rm(const char *path); | 
 | extern void cmd_yaffs_mv(const char *oldPath, const char *newPath); | 
 |  | 
 | extern int yaffs_DumpDevStruct(const char *path); | 
 |  | 
 |  | 
 | int do_ymount (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) | 
 | { | 
 |     char *mtpoint = argv[1]; | 
 |     cmd_yaffs_mount(mtpoint); | 
 |  | 
 |     return(0); | 
 | } | 
 |  | 
 | int do_yumount (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) | 
 | { | 
 |     char *mtpoint = argv[1]; | 
 |     cmd_yaffs_umount(mtpoint); | 
 |  | 
 |     return(0); | 
 | } | 
 |  | 
 | int do_yls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) | 
 | { | 
 |     char *dirname = argv[argc-1]; | 
 |  | 
 |     cmd_yaffs_ls(dirname, (argc>2)?1:0); | 
 |  | 
 |     return(0); | 
 | } | 
 |  | 
 | int do_yrd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) | 
 | { | 
 |     char *filename = argv[1]; | 
 |     printf ("Reading file %s ", filename); | 
 |  | 
 |     cmd_yaffs_read_file(filename); | 
 |  | 
 |     printf ("done\n"); | 
 |     return(0); | 
 | } | 
 |  | 
 | int do_ywr (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) | 
 | { | 
 |     char *filename = argv[1]; | 
 |     ulong value = simple_strtoul(argv[2], NULL, 16); | 
 |     ulong numValues = simple_strtoul(argv[3], NULL, 16); | 
 |  | 
 |     printf ("Writing value (%x) %x times to %s... ", value, numValues, filename); | 
 |  | 
 |     cmd_yaffs_write_file(filename,value,numValues); | 
 |  | 
 |     printf ("done\n"); | 
 |     return(0); | 
 | } | 
 |  | 
 | int do_yrdm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) | 
 | { | 
 |     char *filename = argv[1]; | 
 |     ulong addr = simple_strtoul(argv[2], NULL, 16); | 
 |  | 
 |     cmd_yaffs_mread_file(filename, (char *)addr); | 
 |  | 
 |     return(0); | 
 | } | 
 |  | 
 | int do_ywrm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) | 
 | { | 
 |     char *filename = argv[1]; | 
 |     ulong addr = simple_strtoul(argv[2], NULL, 16); | 
 |     ulong size = simple_strtoul(argv[3], NULL, 16); | 
 |  | 
 |     cmd_yaffs_mwrite_file(filename, (char *)addr, size); | 
 |  | 
 |     return(0); | 
 | } | 
 |  | 
 | int do_ymkdir (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) | 
 | { | 
 |     char *dirname = argv[1]; | 
 |  | 
 |     cmd_yaffs_mkdir(dirname); | 
 |  | 
 |     return(0); | 
 | } | 
 |  | 
 | int do_yrmdir (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) | 
 | { | 
 |     char *dirname = argv[1]; | 
 |  | 
 |     cmd_yaffs_rmdir(dirname); | 
 |  | 
 |     return(0); | 
 | } | 
 |  | 
 | int do_yrm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) | 
 | { | 
 |     char *path = argv[1]; | 
 |  | 
 |     cmd_yaffs_rm(path); | 
 |  | 
 |     return(0); | 
 | } | 
 |  | 
 | int do_ymv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) | 
 | { | 
 |     char *oldPath = argv[1]; | 
 |     char *newPath = argv[2]; | 
 |  | 
 |     cmd_yaffs_mv(newPath, oldPath); | 
 |  | 
 |     return(0); | 
 | } | 
 |  | 
 | int do_ydump (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) | 
 | { | 
 |     char *dirname = argv[1]; | 
 |     if (yaffs_DumpDevStruct(dirname) != 0) | 
 | 	printf("yaffs_DumpDevStruct returning error when dumping path: , %s\n", dirname); | 
 |     return 0; | 
 | } | 
 |  | 
 | U_BOOT_CMD( | 
 |     ymount, 3,  0,  do_ymount, | 
 |     "mount yaffs", | 
 |     "" | 
 | ); | 
 |  | 
 | U_BOOT_CMD( | 
 |     yumount, 3,  0,  do_yumount, | 
 |     "unmount yaffs", | 
 |     "" | 
 | ); | 
 |  | 
 | U_BOOT_CMD( | 
 |     yls,    4,  0,  do_yls, | 
 |     "yaffs ls", | 
 |     "[-l] name" | 
 | ); | 
 |  | 
 | U_BOOT_CMD( | 
 |     yrd,    2,  0,  do_yrd, | 
 |     "read file from yaffs", | 
 |     "filename" | 
 | ); | 
 |  | 
 | U_BOOT_CMD( | 
 |     ywr,    4,  0,  do_ywr, | 
 |     "write file to yaffs", | 
 |     "filename value num_vlues" | 
 | ); | 
 |  | 
 | U_BOOT_CMD( | 
 |     yrdm,   3,  0,  do_yrdm, | 
 |     "read file to memory from yaffs", | 
 |     "filename offset" | 
 | ); | 
 |  | 
 | U_BOOT_CMD( | 
 |     ywrm,   4,  0,  do_ywrm, | 
 |     "write file from memory to yaffs", | 
 |     "filename offset size" | 
 | ); | 
 |  | 
 | U_BOOT_CMD( | 
 |     ymkdir, 2,  0,  do_ymkdir, | 
 |     "YAFFS mkdir", | 
 |     "dirname" | 
 | ); | 
 |  | 
 | U_BOOT_CMD( | 
 |     yrmdir, 2,  0,  do_yrmdir, | 
 |     "YAFFS rmdir", | 
 |     "dirname" | 
 | ); | 
 |  | 
 | U_BOOT_CMD( | 
 |     yrm,    2,  0,  do_yrm, | 
 |     "YAFFS rm", | 
 |     "path" | 
 | ); | 
 |  | 
 | U_BOOT_CMD( | 
 |     ymv,    4,  0,  do_ymv, | 
 |     "YAFFS mv", | 
 |     "oldPath newPath" | 
 | ); | 
 |  | 
 | U_BOOT_CMD( | 
 |     ydump,  2,  0,  do_ydump, | 
 |     "YAFFS device struct", | 
 |     "dirname" | 
 | ); |