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