Commit 0b443dee6b0a74ac59fdbeda7b5a667c209a5948
Committed by
Tom Rini
1 parent
fd1000b9c1
Exists in
v2017.01-smarct4x
and in
29 other branches
mkimage: Move argument processing into its own function
At present main() is very long. Split out the argument processing to make it easier to follow. Signed-off-by: Simon Glass <sjg@chromium.org>
Showing 1 changed file with 32 additions and 24 deletions Side-by-side Diff
tools/mkimage.c
... | ... | @@ -67,19 +67,10 @@ |
67 | 67 | fprintf(stderr, "\n"); |
68 | 68 | } |
69 | 69 | |
70 | -int main(int argc, char **argv) | |
70 | +static void process_args(int argc, char **argv) | |
71 | 71 | { |
72 | - int ifd = -1; | |
73 | - struct stat sbuf; | |
74 | 72 | char *ptr; |
75 | - int retval = 0; | |
76 | - struct image_type_params *tparams = NULL; | |
77 | - int pad_len = 0; | |
78 | - int dfd; | |
79 | 73 | |
80 | - params.cmdname = *argv; | |
81 | - params.addr = params.ep = 0; | |
82 | - | |
83 | 74 | while (--argc > 0 && **++argv == '-') { |
84 | 75 | while (*++*argv) { |
85 | 76 | switch (**argv) { |
... | ... | @@ -90,7 +81,7 @@ |
90 | 81 | if ((--argc <= 0) || |
91 | 82 | (params.arch = |
92 | 83 | genimg_get_arch_id (*++argv)) < 0) |
93 | - usage (); | |
84 | + usage(); | |
94 | 85 | goto NXTARG; |
95 | 86 | case 'c': |
96 | 87 | if (--argc <= 0) |
97 | 88 | |
... | ... | @@ -101,11 +92,11 @@ |
101 | 92 | if ((--argc <= 0) || |
102 | 93 | (params.comp = |
103 | 94 | genimg_get_comp_id (*++argv)) < 0) |
104 | - usage (); | |
95 | + usage(); | |
105 | 96 | goto NXTARG; |
106 | 97 | case 'D': |
107 | 98 | if (--argc <= 0) |
108 | - usage (); | |
99 | + usage(); | |
109 | 100 | params.dtc = *++argv; |
110 | 101 | goto NXTARG; |
111 | 102 | |
... | ... | @@ -113,7 +104,7 @@ |
113 | 104 | if ((--argc <= 0) || |
114 | 105 | (params.os = |
115 | 106 | genimg_get_os_id (*++argv)) < 0) |
116 | - usage (); | |
107 | + usage(); | |
117 | 108 | goto NXTARG; |
118 | 109 | case 'T': |
119 | 110 | params.type = -1; |
... | ... | @@ -128,7 +119,7 @@ |
128 | 119 | goto NXTARG; |
129 | 120 | case 'a': |
130 | 121 | if (--argc <= 0) |
131 | - usage (); | |
122 | + usage(); | |
132 | 123 | params.addr = strtoull(*++argv, &ptr, 16); |
133 | 124 | if (*ptr) { |
134 | 125 | fprintf (stderr, |
135 | 126 | |
... | ... | @@ -139,13 +130,13 @@ |
139 | 130 | goto NXTARG; |
140 | 131 | case 'd': |
141 | 132 | if (--argc <= 0) |
142 | - usage (); | |
133 | + usage(); | |
143 | 134 | params.datafile = *++argv; |
144 | 135 | params.dflag = 1; |
145 | 136 | goto NXTARG; |
146 | 137 | case 'e': |
147 | 138 | if (--argc <= 0) |
148 | - usage (); | |
139 | + usage(); | |
149 | 140 | params.ep = strtoull(*++argv, &ptr, 16); |
150 | 141 | if (*ptr) { |
151 | 142 | fprintf (stderr, |
... | ... | @@ -157,7 +148,7 @@ |
157 | 148 | goto NXTARG; |
158 | 149 | case 'f': |
159 | 150 | if (--argc <= 0) |
160 | - usage (); | |
151 | + usage(); | |
161 | 152 | params.datafile = *++argv; |
162 | 153 | /* no break */ |
163 | 154 | case 'F': |
... | ... | @@ -180,7 +171,7 @@ |
180 | 171 | goto NXTARG; |
181 | 172 | case 'n': |
182 | 173 | if (--argc <= 0) |
183 | - usage (); | |
174 | + usage(); | |
184 | 175 | params.imagename = *++argv; |
185 | 176 | goto NXTARG; |
186 | 177 | case 'r': |
187 | 178 | |
188 | 179 | |
... | ... | @@ -208,15 +199,34 @@ |
208 | 199 | params.xflag++; |
209 | 200 | break; |
210 | 201 | default: |
211 | - usage (); | |
202 | + usage(); | |
212 | 203 | } |
213 | 204 | } |
214 | 205 | NXTARG: ; |
215 | 206 | } |
216 | 207 | |
217 | 208 | if (argc != 1) |
218 | - usage (); | |
209 | + usage(); | |
210 | + params.imagefile = *argv; | |
211 | +} | |
219 | 212 | |
213 | + | |
214 | +int main(int argc, char **argv) | |
215 | +{ | |
216 | + int ifd = -1; | |
217 | + struct stat sbuf; | |
218 | + char *ptr; | |
219 | + int retval = 0; | |
220 | + struct image_type_params *tparams = NULL; | |
221 | + int pad_len = 0; | |
222 | + int dfd; | |
223 | + | |
224 | + params.cmdname = *argv; | |
225 | + params.addr = 0; | |
226 | + params.ep = 0; | |
227 | + | |
228 | + process_args(argc, argv); | |
229 | + | |
220 | 230 | /* set tparams as per input type_id */ |
221 | 231 | tparams = imagetool_get_type(params.type); |
222 | 232 | if (tparams == NULL) { |
... | ... | @@ -231,7 +241,7 @@ |
231 | 241 | */ |
232 | 242 | if (tparams->check_params) |
233 | 243 | if (tparams->check_params (¶ms)) |
234 | - usage (); | |
244 | + usage(); | |
235 | 245 | |
236 | 246 | if (!params.eflag) { |
237 | 247 | params.ep = params.addr; |
... | ... | @@ -239,8 +249,6 @@ |
239 | 249 | if (params.xflag) |
240 | 250 | params.ep += tparams->header_size; |
241 | 251 | } |
242 | - | |
243 | - params.imagefile = *argv; | |
244 | 252 | |
245 | 253 | if (params.fflag){ |
246 | 254 | if (tparams->fflag_handle) |