cmd_yaffs2.c 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. #include <common.h>
  2. #include <config.h>
  3. #include <command.h>
  4. #ifdef YAFFS2_DEBUG
  5. #define PRINTF(fmt,args...) printf (fmt ,##args)
  6. #else
  7. #define PRINTF(fmt,args...)
  8. #endif
  9. extern void cmd_yaffs_mount(char *mp);
  10. extern void cmd_yaffs_umount(char *mp);
  11. extern void cmd_yaffs_read_file(char *fn);
  12. extern void cmd_yaffs_write_file(char *fn,char bval,int sizeOfFile);
  13. extern void cmd_yaffs_ls(const char *mountpt, int longlist);
  14. extern void cmd_yaffs_mwrite_file(char *fn, char *addr, int size);
  15. extern void cmd_yaffs_mread_file(char *fn, char *addr);
  16. extern void cmd_yaffs_mkdir(const char *dir);
  17. extern void cmd_yaffs_rmdir(const char *dir);
  18. extern void cmd_yaffs_rm(const char *path);
  19. extern void cmd_yaffs_mv(const char *oldPath, const char *newPath);
  20. extern int yaffs_DumpDevStruct(const char *path);
  21. int do_ymount (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  22. {
  23. char *mtpoint = argv[1];
  24. cmd_yaffs_mount(mtpoint);
  25. return(0);
  26. }
  27. int do_yumount (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  28. {
  29. char *mtpoint = argv[1];
  30. cmd_yaffs_umount(mtpoint);
  31. return(0);
  32. }
  33. int do_yls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  34. {
  35. char *dirname = argv[argc-1];
  36. cmd_yaffs_ls(dirname, (argc>2)?1:0);
  37. return(0);
  38. }
  39. int do_yrd (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  40. {
  41. char *filename = argv[1];
  42. printf ("Reading file %s ", filename);
  43. cmd_yaffs_read_file(filename);
  44. printf ("done\n");
  45. return(0);
  46. }
  47. int do_ywr (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  48. {
  49. char *filename = argv[1];
  50. ulong value = simple_strtoul(argv[2], NULL, 16);
  51. ulong numValues = simple_strtoul(argv[3], NULL, 16);
  52. printf ("Writing value (%x) %x times to %s... ", value, numValues, filename);
  53. cmd_yaffs_write_file(filename,value,numValues);
  54. printf ("done\n");
  55. return(0);
  56. }
  57. int do_yrdm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  58. {
  59. char *filename = argv[1];
  60. ulong addr = simple_strtoul(argv[2], NULL, 16);
  61. cmd_yaffs_mread_file(filename, (char *)addr);
  62. return(0);
  63. }
  64. int do_ywrm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  65. {
  66. char *filename = argv[1];
  67. ulong addr = simple_strtoul(argv[2], NULL, 16);
  68. ulong size = simple_strtoul(argv[3], NULL, 16);
  69. cmd_yaffs_mwrite_file(filename, (char *)addr, size);
  70. return(0);
  71. }
  72. int do_ymkdir (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  73. {
  74. char *dirname = argv[1];
  75. cmd_yaffs_mkdir(dirname);
  76. return(0);
  77. }
  78. int do_yrmdir (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  79. {
  80. char *dirname = argv[1];
  81. cmd_yaffs_rmdir(dirname);
  82. return(0);
  83. }
  84. int do_yrm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  85. {
  86. char *path = argv[1];
  87. cmd_yaffs_rm(path);
  88. return(0);
  89. }
  90. int do_ymv (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  91. {
  92. char *oldPath = argv[1];
  93. char *newPath = argv[2];
  94. cmd_yaffs_mv(newPath, oldPath);
  95. return(0);
  96. }
  97. int do_ydump (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
  98. {
  99. char *dirname = argv[1];
  100. if (yaffs_DumpDevStruct(dirname) != 0)
  101. printf("yaffs_DumpDevStruct returning error when dumping path: , %s\n", dirname);
  102. return 0;
  103. }
  104. U_BOOT_CMD(
  105. ymount, 3, 0, do_ymount,
  106. "mount yaffs",
  107. ""
  108. );
  109. U_BOOT_CMD(
  110. yumount, 3, 0, do_yumount,
  111. "unmount yaffs",
  112. ""
  113. );
  114. U_BOOT_CMD(
  115. yls, 4, 0, do_yls,
  116. "yaffs ls",
  117. "[-l] name"
  118. );
  119. U_BOOT_CMD(
  120. yrd, 2, 0, do_yrd,
  121. "read file from yaffs",
  122. "filename"
  123. );
  124. U_BOOT_CMD(
  125. ywr, 4, 0, do_ywr,
  126. "write file to yaffs",
  127. "filename value num_vlues"
  128. );
  129. U_BOOT_CMD(
  130. yrdm, 3, 0, do_yrdm,
  131. "read file to memory from yaffs",
  132. "filename offset"
  133. );
  134. U_BOOT_CMD(
  135. ywrm, 4, 0, do_ywrm,
  136. "write file from memory to yaffs",
  137. "filename offset size"
  138. );
  139. U_BOOT_CMD(
  140. ymkdir, 2, 0, do_ymkdir,
  141. "YAFFS mkdir",
  142. "dirname"
  143. );
  144. U_BOOT_CMD(
  145. yrmdir, 2, 0, do_yrmdir,
  146. "YAFFS rmdir",
  147. "dirname"
  148. );
  149. U_BOOT_CMD(
  150. yrm, 2, 0, do_yrm,
  151. "YAFFS rm",
  152. "path"
  153. );
  154. U_BOOT_CMD(
  155. ymv, 4, 0, do_ymv,
  156. "YAFFS mv",
  157. "oldPath newPath"
  158. );
  159. U_BOOT_CMD(
  160. ydump, 2, 0, do_ydump,
  161. "YAFFS device struct",
  162. "dirname"
  163. );