Improvements to comments etc.
[AROS.git] / compiler / include / aros / shcommands_notembedded.h
blob22eb6dc18352c2da696551dd40034fa894cff92d
1 /*
2 Copyright © 1995-2003, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #ifndef SHCOMMANDS_EMBEDDED_H
7 #define SHCOMMANDS_EMBEDDED_H
9 #include <dos/dos.h>
10 #include <dos/rdargs.h>
11 #include <proto/dos.h>
12 #include <proto/exec.h>
13 #include <aros/asmcall.h>
14 #include <aros/symbolsets.h>
16 #define _stringify(x) #x
17 #define stringify(x) _stringify(x)
19 #if SH_GLOBAL_SYSBASE
20 # define DECLARE_SysBase_global extern struct ExecBase *SysBase;
21 # define DEFINE_SysBase_global struct ExecBase *SysBase;
22 # define DEFINE_SysBase_local
23 #else
24 # define DECLARE_SysBase_global
25 # define DEFINE_SysBase_local struct ExecBase __unused *SysBase;
26 # define DEFINE_SysBase_global
27 #endif
29 #if SH_GLOBAL_DOSBASE
30 # define DECLARE_DOSBase_global extern struct DosLibrary *DOSBase;
31 # define DEFINE_DOSBase_global struct DosLibrary *DOSBase;
32 # define DEFINE_DOSBase_local
33 #else
34 # define DECLARE_DOSBase_global
35 # define DEFINE_DOSBase_local struct DosLibrary __unused *DOSBase;
36 # define DEFINE_DOSBase_global
37 #endif
39 #define CALL_main(name) name##_main(__shargs, __argstr, SysBase, DOSBase)
40 #define DECLARE_main(name) \
41 ULONG name##_main(IPTR *__shargs, char * __argstr, \
42 struct ExecBase *_SysBase, \
43 struct DosLibrary *_DOSBase)
44 #define DEFINE_main(name) DECLARE_main(name)
46 #define SHArg(name) (*(SHA_##name##_type *)&__shargs[SHA_##name])
47 #define SHArgLine() __argstr
49 #define __SHA_ENUM(type, abbr, name, modf, def, help) SHA_##name
50 #define __SHA_DEF(type, abbr, name, modf, def, help) (IPTR)(def)
51 #define __SHA_OPT(type, abbr, name, modf, def, help) \
52 stringify(abbr) stringify(name) stringify(modf)
53 #define __SHA_TYPEDEF(type, abbr, name, modf, def, help) \
54 typedef type SHA_##name##_type
57 #define __AROS_SH_ARGS(name, version, numargs, defl, templ, help) \
58 DECLARE_main(name); \
59 DECLARE_DOSBase_global \
61 THIS_PROGRAM_HANDLES_SYMBOLSET(LIBS) \
63 __startup static AROS_PROCH(_entry, __argstr, argsize, SysBase) \
64 { \
65 AROS_PROCFUNC_INIT \
67 DEFINE_DOSBase_local \
69 LONG __retcode = RETURN_FAIL; \
70 IPTR __shargs[numargs] = defl; \
71 struct RDArgs *__rda = NULL; \
72 struct RDArgs *__rda2 = NULL; \
74 DOSBase = (struct DosLibrary *) OpenLibrary(DOSNAME, 37); \
76 if (!DOSBase) \
77 { \
78 /* Can't use SetIOErr(), since DOSBase is not open! */ \
79 ((struct Process *)FindTask(NULL))->pr_Result2 = \
80 ERROR_INVALID_RESIDENT_LIBRARY; \
81 goto __exit; \
82 } \
84 if (help[0]) \
85 { \
86 __rda2 = (struct RDArgs *)AllocDosObject(DOS_RDARGS, NULL); \
87 if (!__rda2) \
88 { \
89 PrintFault(IoErr(), stringify(name)); \
90 goto __exit; \
91 } \
92 __rda2->RDA_ExtHelp = help; \
93 } \
95 __rda = ReadArgs(templ, __shargs, __rda2); \
97 if (!__rda) \
98 { \
99 PrintFault(IoErr(), stringify(name)); \
100 goto __exit; \
103 if (set_open_libraries()) { \
104 __retcode = CALL_main(name); \
105 set_close_libraries(); \
108 __exit: \
109 if (__rda) FreeArgs(__rda); \
110 if (help[0] && __rda2) FreeDosObject(DOS_RDARGS, __rda2); \
111 if (DOSBase) CloseLibrary((struct Library *)DOSBase); \
113 return __retcode; \
115 AROS_PROCFUNC_EXIT \
118 DEFINE_SysBase_global \
119 DEFINE_DOSBase_global \
121 __used static const UBYTE name##_version[] = "$VER: " \
122 stringify(name) " " \
123 stringify(version) " " \
124 "(" ADATE ") © The AROS Development Team\n"; \
126 DEFINE_main(name) \
128 DEFINE_SysBase_local \
129 DEFINE_DOSBase_local \
130 SysBase = _SysBase; DOSBase = _DOSBase;
132 #define AROS_SHCOMMAND_INIT
134 #define AROS_SHCOMMAND_EXIT \
138 #define __DEF(x...) {x}
140 #define __AROS_SH0(name, version, help) \
141 __AROS_SH_ARGS(name, version, 1, {0}, "", help) \
144 #define __AROS_SH1(name, version, help, a1) \
145 __AROS_SH_ARGS(name, version, 1, \
146 __DEF(__SHA_DEF(a1)), \
147 __SHA_OPT(a1), \
148 help) \
150 __SHA_TYPEDEF(a1); \
151 enum {__SHA_ENUM(a1)};
153 #define __AROS_SH2(name, version, help, a1, a2) \
154 __AROS_SH_ARGS(name, version, 2, \
155 __DEF(__SHA_DEF(a1), __SHA_DEF(a2)), \
156 __SHA_OPT(a1) "," __SHA_OPT(a2), \
157 help) \
159 __SHA_TYPEDEF(a1); \
160 __SHA_TYPEDEF(a2); \
161 enum {__SHA_ENUM(a1), __SHA_ENUM(a2)};
163 #define __AROS_SH3(name, version, help, a1, a2, a3) \
164 __AROS_SH_ARGS(name, version, 3, \
165 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
166 __SHA_DEF(a3)), \
167 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
168 __SHA_OPT(a3), \
169 help) \
171 __SHA_TYPEDEF(a1); \
172 __SHA_TYPEDEF(a2); \
173 __SHA_TYPEDEF(a3); \
174 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), \
175 __SHA_ENUM(a3)};
177 #define __AROS_SH4(name, version, help, a1, a2, a3, a4) \
178 __AROS_SH_ARGS(name, version, 4, \
179 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
180 __SHA_DEF(a3), __SHA_DEF(a4)), \
181 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
182 __SHA_OPT(a3) "," __SHA_OPT(a4), \
183 help) \
185 __SHA_TYPEDEF(a1); \
186 __SHA_TYPEDEF(a2); \
187 __SHA_TYPEDEF(a3); \
188 __SHA_TYPEDEF(a4); \
189 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), \
190 __SHA_ENUM(a3), __SHA_ENUM(a4)};
192 #define __AROS_SH5(name, version, help, a1, a2, a3, a4, a5) \
193 __AROS_SH_ARGS(name, version, 5, \
194 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
195 __SHA_DEF(a3), __SHA_DEF(a4), \
196 __SHA_DEF(a5)), \
197 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
198 __SHA_OPT(a3) "," __SHA_OPT(a4) "," \
199 __SHA_OPT(a5), \
200 help) \
202 __SHA_TYPEDEF(a1); \
203 __SHA_TYPEDEF(a2); \
204 __SHA_TYPEDEF(a3); \
205 __SHA_TYPEDEF(a4); \
206 __SHA_TYPEDEF(a5); \
207 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), __SHA_ENUM(a3), \
208 __SHA_ENUM(a4), __SHA_ENUM(a5)};
210 #define __AROS_SH6(name, version, help, a1, a2, a3, a4, a5, a6) \
211 __AROS_SH_ARGS(name, version, 6, \
212 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
213 __SHA_DEF(a3), __SHA_DEF(a4), \
214 __SHA_DEF(a5), __SHA_DEF(a6)), \
215 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
216 __SHA_OPT(a3) "," __SHA_OPT(a4) "," \
217 __SHA_OPT(a5) "," __SHA_OPT(a6), \
218 help) \
220 __SHA_TYPEDEF(a1); \
221 __SHA_TYPEDEF(a2); \
222 __SHA_TYPEDEF(a3); \
223 __SHA_TYPEDEF(a4); \
224 __SHA_TYPEDEF(a5); \
225 __SHA_TYPEDEF(a6); \
226 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), __SHA_ENUM(a3), \
227 __SHA_ENUM(a4), __SHA_ENUM(a5), __SHA_ENUM(a6)};
229 #define __AROS_SH7(name, version, help, a1, a2, a3, a4, a5, \
230 a6, a7) \
231 __AROS_SH_ARGS(name, version, 7, \
232 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
233 __SHA_DEF(a3), __SHA_DEF(a4), \
234 __SHA_DEF(a5), __SHA_DEF(a6), \
235 __SHA_DEF(a7)), \
236 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
237 __SHA_OPT(a3) "," __SHA_OPT(a4) "," \
238 __SHA_OPT(a5) "," __SHA_OPT(a6) "," \
239 __SHA_OPT(a7), \
240 help) \
242 __SHA_TYPEDEF(a1); \
243 __SHA_TYPEDEF(a2); \
244 __SHA_TYPEDEF(a3); \
245 __SHA_TYPEDEF(a4); \
246 __SHA_TYPEDEF(a5); \
247 __SHA_TYPEDEF(a6); \
248 __SHA_TYPEDEF(a7); \
249 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), __SHA_ENUM(a3), \
250 __SHA_ENUM(a4), __SHA_ENUM(a5), __SHA_ENUM(a6), \
251 __SHA_ENUM(a7)};
253 #define __AROS_SH8(name, version, help, a1, a2, a3, a4, a5, \
254 a6, a7, a8) \
255 __AROS_SH_ARGS(name, version, 8, \
256 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
257 __SHA_DEF(a3), __SHA_DEF(a4), \
258 __SHA_DEF(a5), __SHA_DEF(a6), \
259 __SHA_DEF(a7), __SHA_DEF(a8)), \
260 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
261 __SHA_OPT(a3) "," __SHA_OPT(a4) "," \
262 __SHA_OPT(a5) "," __SHA_OPT(a6) "," \
263 __SHA_OPT(a7) "," __SHA_OPT(a8), \
264 help) \
266 __SHA_TYPEDEF(a1); \
267 __SHA_TYPEDEF(a2); \
268 __SHA_TYPEDEF(a3); \
269 __SHA_TYPEDEF(a4); \
270 __SHA_TYPEDEF(a5); \
271 __SHA_TYPEDEF(a6); \
272 __SHA_TYPEDEF(a7); \
273 __SHA_TYPEDEF(a8); \
274 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), __SHA_ENUM(a3), \
275 __SHA_ENUM(a4), __SHA_ENUM(a5), __SHA_ENUM(a6), \
276 __SHA_ENUM(a7), __SHA_ENUM(a8)};
279 #define __AROS_SH10(name, version, help, a1, a2, a3, a4, a5, \
280 a6, a7, a8, a9, a10) \
281 __AROS_SH_ARGS(name, version, 10, \
282 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
283 __SHA_DEF(a3), __SHA_DEF(a4), \
284 __SHA_DEF(a5), __SHA_DEF(a6), \
285 __SHA_DEF(a7), __SHA_DEF(a8), \
286 __SHA_DEF(a9), __SHA_DEF(a10)), \
287 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
288 __SHA_OPT(a3) "," __SHA_OPT(a4) "," \
289 __SHA_OPT(a5) "," __SHA_OPT(a6) "," \
290 __SHA_OPT(a7) "," __SHA_OPT(a8) "," \
291 __SHA_OPT(a9) "," __SHA_OPT(a10), \
292 help) \
294 __SHA_TYPEDEF(a1); \
295 __SHA_TYPEDEF(a2); \
296 __SHA_TYPEDEF(a3); \
297 __SHA_TYPEDEF(a4); \
298 __SHA_TYPEDEF(a5); \
299 __SHA_TYPEDEF(a6); \
300 __SHA_TYPEDEF(a7); \
301 __SHA_TYPEDEF(a8); \
302 __SHA_TYPEDEF(a9); \
303 __SHA_TYPEDEF(a10); \
304 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), __SHA_ENUM(a3), \
305 __SHA_ENUM(a4), __SHA_ENUM(a5), __SHA_ENUM(a6), \
306 __SHA_ENUM(a7), __SHA_ENUM(a8), __SHA_ENUM(a9), \
307 __SHA_ENUM(a10)};
309 #define __AROS_SH11(name, version, help, a1, a2, a3, a4, a5, \
310 a6, a7, a8, a9, a10, \
311 a11) \
312 __AROS_SH_ARGS(name, version, 11, \
313 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
314 __SHA_DEF(a3), __SHA_DEF(a4), \
315 __SHA_DEF(a5), __SHA_DEF(a6), \
316 __SHA_DEF(a7), __SHA_DEF(a8), \
317 __SHA_DEF(a9), __SHA_DEF(a10), \
318 __SHA_DEF(a11)), \
319 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
320 __SHA_OPT(a3) "," __SHA_OPT(a4) "," \
321 __SHA_OPT(a5) "," __SHA_OPT(a6) "," \
322 __SHA_OPT(a7) "," __SHA_OPT(a8) "," \
323 __SHA_OPT(a9) "," __SHA_OPT(a10) "," \
324 __SHA_OPT(a11), help) \
326 __SHA_TYPEDEF(a1); \
327 __SHA_TYPEDEF(a2); \
328 __SHA_TYPEDEF(a3); \
329 __SHA_TYPEDEF(a4); \
330 __SHA_TYPEDEF(a5); \
331 __SHA_TYPEDEF(a6); \
332 __SHA_TYPEDEF(a7); \
333 __SHA_TYPEDEF(a8); \
334 __SHA_TYPEDEF(a9); \
335 __SHA_TYPEDEF(a10); \
336 __SHA_TYPEDEF(a11); \
337 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), __SHA_ENUM(a3), \
338 __SHA_ENUM(a4), __SHA_ENUM(a5), __SHA_ENUM(a6), \
339 __SHA_ENUM(a7), __SHA_ENUM(a8), __SHA_ENUM(a9), \
340 __SHA_ENUM(a10), __SHA_ENUM(a11)};
342 #define __AROS_SH12(name, version, help, a1, a2, a3, a4, a5, \
343 a6, a7, a8, a9, a10, \
344 a11, a12) \
345 __AROS_SH_ARGS(name, version, 12, \
346 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
347 __SHA_DEF(a3), __SHA_DEF(a4), \
348 __SHA_DEF(a5), __SHA_DEF(a6), \
349 __SHA_DEF(a7), __SHA_DEF(a8), \
350 __SHA_DEF(a9), __SHA_DEF(a10), \
351 __SHA_DEF(a11), __SHA_DEF(a12)), \
352 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
353 __SHA_OPT(a3) "," __SHA_OPT(a4) "," \
354 __SHA_OPT(a5) "," __SHA_OPT(a6) "," \
355 __SHA_OPT(a7) "," __SHA_OPT(a8) "," \
356 __SHA_OPT(a9) "," __SHA_OPT(a10) "," \
357 __SHA_OPT(a11) "," __SHA_OPT(a12), \
358 help) \
360 __SHA_TYPEDEF(a1); \
361 __SHA_TYPEDEF(a2); \
362 __SHA_TYPEDEF(a3); \
363 __SHA_TYPEDEF(a4); \
364 __SHA_TYPEDEF(a5); \
365 __SHA_TYPEDEF(a6); \
366 __SHA_TYPEDEF(a7); \
367 __SHA_TYPEDEF(a8); \
368 __SHA_TYPEDEF(a9); \
369 __SHA_TYPEDEF(a10); \
370 __SHA_TYPEDEF(a11); \
371 __SHA_TYPEDEF(a12); \
372 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), __SHA_ENUM(a3), \
373 __SHA_ENUM(a4), __SHA_ENUM(a5), __SHA_ENUM(a6), \
374 __SHA_ENUM(a7), __SHA_ENUM(a8), __SHA_ENUM(a9), \
375 __SHA_ENUM(a10), __SHA_ENUM(a11), __SHA_ENUM(a12)};
377 #define __AROS_SH13(name, version, help, a1, a2, a3, a4, a5, \
378 a6, a7, a8, a9, a10, \
379 a11, a12, a13) \
380 __AROS_SH_ARGS(name, version, 13, \
381 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
382 __SHA_DEF(a3), __SHA_DEF(a4), \
383 __SHA_DEF(a5), __SHA_DEF(a6), \
384 __SHA_DEF(a7), __SHA_DEF(a8), \
385 __SHA_DEF(a9), __SHA_DEF(a10), \
386 __SHA_DEF(a11), __SHA_DEF(a12)), \
387 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
388 __SHA_OPT(a3) "," __SHA_OPT(a4) "," \
389 __SHA_OPT(a5) "," __SHA_OPT(a6) "," \
390 __SHA_OPT(a7) "," __SHA_OPT(a8) "," \
391 __SHA_OPT(a9) "," __SHA_OPT(a10) "," \
392 __SHA_OPT(a11) "," __SHA_OPT(a12) "," \
393 __SHA_OPT(a13), \
394 help) \
396 __SHA_TYPEDEF(a1); \
397 __SHA_TYPEDEF(a2); \
398 __SHA_TYPEDEF(a3); \
399 __SHA_TYPEDEF(a4); \
400 __SHA_TYPEDEF(a5); \
401 __SHA_TYPEDEF(a6); \
402 __SHA_TYPEDEF(a7); \
403 __SHA_TYPEDEF(a8); \
404 __SHA_TYPEDEF(a9); \
405 __SHA_TYPEDEF(a10); \
406 __SHA_TYPEDEF(a11); \
407 __SHA_TYPEDEF(a12); \
408 __SHA_TYPEDEF(a13); \
409 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), __SHA_ENUM(a3), \
410 __SHA_ENUM(a4), __SHA_ENUM(a5), __SHA_ENUM(a6), \
411 __SHA_ENUM(a7), __SHA_ENUM(a8), __SHA_ENUM(a9), \
412 __SHA_ENUM(a10), __SHA_ENUM(a11), __SHA_ENUM(a12), \
413 __SHA_ENUM(a13)};
415 #define __AROS_SH14(name, version, help, a1, a2, a3, a4, a5, \
416 a6, a7, a8, a9, a10, \
417 a11, a12, a13, a14) \
418 __AROS_SH_ARGS(name, version, 14, \
419 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
420 __SHA_DEF(a3), __SHA_DEF(a4), \
421 __SHA_DEF(a5), __SHA_DEF(a6), \
422 __SHA_DEF(a7), __SHA_DEF(a8), \
423 __SHA_DEF(a9), __SHA_DEF(a10), \
424 __SHA_DEF(a11), __SHA_DEF(a12)), \
425 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
426 __SHA_OPT(a3) "," __SHA_OPT(a4) "," \
427 __SHA_OPT(a5) "," __SHA_OPT(a6) "," \
428 __SHA_OPT(a7) "," __SHA_OPT(a8) "," \
429 __SHA_OPT(a9) "," __SHA_OPT(a10) "," \
430 __SHA_OPT(a11) "," __SHA_OPT(a12) "," \
431 __SHA_OPT(a13) "," __SHA_OPT(a14), \
432 help) \
434 __SHA_TYPEDEF(a1); \
435 __SHA_TYPEDEF(a2); \
436 __SHA_TYPEDEF(a3); \
437 __SHA_TYPEDEF(a4); \
438 __SHA_TYPEDEF(a5); \
439 __SHA_TYPEDEF(a6); \
440 __SHA_TYPEDEF(a7); \
441 __SHA_TYPEDEF(a8); \
442 __SHA_TYPEDEF(a9); \
443 __SHA_TYPEDEF(a10); \
444 __SHA_TYPEDEF(a11); \
445 __SHA_TYPEDEF(a12); \
446 __SHA_TYPEDEF(a13); \
447 __SHA_TYPEDEF(a14); \
448 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), __SHA_ENUM(a3), \
449 __SHA_ENUM(a4), __SHA_ENUM(a5), __SHA_ENUM(a6), \
450 __SHA_ENUM(a7), __SHA_ENUM(a8), __SHA_ENUM(a9), \
451 __SHA_ENUM(a10), __SHA_ENUM(a11), __SHA_ENUM(a12), \
452 __SHA_ENUM(a13), __SHA_ENUM(a14)};
454 #define __AROS_SH15(name, version, help, a1, a2, a3, a4, a5, \
455 a6, a7, a8, a9, a10, \
456 a11, a12, a13, a14, \
457 a15) \
458 __AROS_SH_ARGS(name, version, 15, \
459 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
460 __SHA_DEF(a3), __SHA_DEF(a4), \
461 __SHA_DEF(a5), __SHA_DEF(a6), \
462 __SHA_DEF(a7), __SHA_DEF(a8), \
463 __SHA_DEF(a9), __SHA_DEF(a10), \
464 __SHA_DEF(a11), __SHA_DEF(a12)), \
465 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
466 __SHA_OPT(a3) "," __SHA_OPT(a4) "," \
467 __SHA_OPT(a5) "," __SHA_OPT(a6) "," \
468 __SHA_OPT(a7) "," __SHA_OPT(a8) "," \
469 __SHA_OPT(a9) "," __SHA_OPT(a10) "," \
470 __SHA_OPT(a11) "," __SHA_OPT(a12) "," \
471 __SHA_OPT(a13) "," __SHA_OPT(a14) "," \
472 __SHA_OPT(a15), \
473 help) \
475 __SHA_TYPEDEF(a1); \
476 __SHA_TYPEDEF(a2); \
477 __SHA_TYPEDEF(a3); \
478 __SHA_TYPEDEF(a4); \
479 __SHA_TYPEDEF(a5); \
480 __SHA_TYPEDEF(a6); \
481 __SHA_TYPEDEF(a7); \
482 __SHA_TYPEDEF(a8); \
483 __SHA_TYPEDEF(a9); \
484 __SHA_TYPEDEF(a10); \
485 __SHA_TYPEDEF(a11); \
486 __SHA_TYPEDEF(a12); \
487 __SHA_TYPEDEF(a13); \
488 __SHA_TYPEDEF(a14); \
489 __SHA_TYPEDEF(a15); \
490 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), __SHA_ENUM(a3), \
491 __SHA_ENUM(a4), __SHA_ENUM(a5), __SHA_ENUM(a6), \
492 __SHA_ENUM(a7), __SHA_ENUM(a8), __SHA_ENUM(a9), \
493 __SHA_ENUM(a10), __SHA_ENUM(a11), __SHA_ENUM(a12), \
494 __SHA_ENUM(a13), __SHA_ENUM(a14), __SHA_ENUM(a15)};
496 #define __AROS_SH16(name, version, help, a1, a2, a3, a4, a5, \
497 a6, a7, a8, a9, a10, \
498 a11, a12, a13, a14, \
499 a15, a16) \
500 __AROS_SH_ARGS(name, version, 16, \
501 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
502 __SHA_DEF(a3), __SHA_DEF(a4), \
503 __SHA_DEF(a5), __SHA_DEF(a6), \
504 __SHA_DEF(a7), __SHA_DEF(a8), \
505 __SHA_DEF(a9), __SHA_DEF(a10), \
506 __SHA_DEF(a11), __SHA_DEF(a12)), \
507 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
508 __SHA_OPT(a3) "," __SHA_OPT(a4) "," \
509 __SHA_OPT(a5) "," __SHA_OPT(a6) "," \
510 __SHA_OPT(a7) "," __SHA_OPT(a8) "," \
511 __SHA_OPT(a9) "," __SHA_OPT(a10) "," \
512 __SHA_OPT(a11) "," __SHA_OPT(a12) "," \
513 __SHA_OPT(a13) "," __SHA_OPT(a14) "," \
514 __SHA_OPT(a15) "," __SHA_OPT(a16), \
515 help) \
517 __SHA_TYPEDEF(a1); \
518 __SHA_TYPEDEF(a2); \
519 __SHA_TYPEDEF(a3); \
520 __SHA_TYPEDEF(a4); \
521 __SHA_TYPEDEF(a5); \
522 __SHA_TYPEDEF(a6); \
523 __SHA_TYPEDEF(a7); \
524 __SHA_TYPEDEF(a8); \
525 __SHA_TYPEDEF(a9); \
526 __SHA_TYPEDEF(a10); \
527 __SHA_TYPEDEF(a11); \
528 __SHA_TYPEDEF(a12); \
529 __SHA_TYPEDEF(a13); \
530 __SHA_TYPEDEF(a14); \
531 __SHA_TYPEDEF(a15); \
532 __SHA_TYPEDEF(a16); \
533 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), __SHA_ENUM(a3), \
534 __SHA_ENUM(a4), __SHA_ENUM(a5), __SHA_ENUM(a6), \
535 __SHA_ENUM(a7), __SHA_ENUM(a8), __SHA_ENUM(a9), \
536 __SHA_ENUM(a10), __SHA_ENUM(a11), __SHA_ENUM(a12), \
537 __SHA_ENUM(a13), __SHA_ENUM(a14), __SHA_ENUM(a15), \
538 __SHA_ENUM(a16)};
540 #define __AROS_SH17(name, version, help, a1, a2, a3, a4, a5, \
541 a6, a7, a8, a9, a10, \
542 a11, a12, a13, a14, \
543 a15, a16, a17) \
544 __AROS_SH_ARGS(name, version, 17, \
545 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
546 __SHA_DEF(a3), __SHA_DEF(a4), \
547 __SHA_DEF(a5), __SHA_DEF(a6), \
548 __SHA_DEF(a7), __SHA_DEF(a8), \
549 __SHA_DEF(a9), __SHA_DEF(a10), \
550 __SHA_DEF(a11), __SHA_DEF(a12)), \
551 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
552 __SHA_OPT(a3) "," __SHA_OPT(a4) "," \
553 __SHA_OPT(a5) "," __SHA_OPT(a6) "," \
554 __SHA_OPT(a7) "," __SHA_OPT(a8) "," \
555 __SHA_OPT(a9) "," __SHA_OPT(a10) "," \
556 __SHA_OPT(a11) "," __SHA_OPT(a12) "," \
557 __SHA_OPT(a13) "," __SHA_OPT(a14) "," \
558 __SHA_OPT(a15) "," __SHA_OPT(a16) "," \
559 __SHA_OPT(a17), \
560 help) \
562 __SHA_TYPEDEF(a1); \
563 __SHA_TYPEDEF(a2); \
564 __SHA_TYPEDEF(a3); \
565 __SHA_TYPEDEF(a4); \
566 __SHA_TYPEDEF(a5); \
567 __SHA_TYPEDEF(a6); \
568 __SHA_TYPEDEF(a7); \
569 __SHA_TYPEDEF(a8); \
570 __SHA_TYPEDEF(a9); \
571 __SHA_TYPEDEF(a10); \
572 __SHA_TYPEDEF(a11); \
573 __SHA_TYPEDEF(a12); \
574 __SHA_TYPEDEF(a13); \
575 __SHA_TYPEDEF(a14); \
576 __SHA_TYPEDEF(a15); \
577 __SHA_TYPEDEF(a16); \
578 __SHA_TYPEDEF(a17); \
579 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), __SHA_ENUM(a3), \
580 __SHA_ENUM(a4), __SHA_ENUM(a5), __SHA_ENUM(a6), \
581 __SHA_ENUM(a7), __SHA_ENUM(a8), __SHA_ENUM(a9), \
582 __SHA_ENUM(a10), __SHA_ENUM(a11), __SHA_ENUM(a12), \
583 __SHA_ENUM(a13), __SHA_ENUM(a14), __SHA_ENUM(a15), \
584 __SHA_ENUM(a16), __SHA_ENUM(a17)};
586 #define __AROS_SH18(name, version, help, a1, a2, a3, a4, a5, \
587 a6, a7, a8, a9, a10, \
588 a11, a12, a13, a14, \
589 a15, a16, a17, a18) \
590 __AROS_SH_ARGS(name, version, 18, \
591 __DEF(__SHA_DEF(a1), __SHA_DEF(a2), \
592 __SHA_DEF(a3), __SHA_DEF(a4), \
593 __SHA_DEF(a5), __SHA_DEF(a6), \
594 __SHA_DEF(a7), __SHA_DEF(a8), \
595 __SHA_DEF(a9), __SHA_DEF(a10), \
596 __SHA_DEF(a11), __SHA_DEF(a12)), \
597 __SHA_OPT(a1) "," __SHA_OPT(a2) "," \
598 __SHA_OPT(a3) "," __SHA_OPT(a4) "," \
599 __SHA_OPT(a5) "," __SHA_OPT(a6) "," \
600 __SHA_OPT(a7) "," __SHA_OPT(a8) "," \
601 __SHA_OPT(a9) "," __SHA_OPT(a10) "," \
602 __SHA_OPT(a11) "," __SHA_OPT(a12) "," \
603 __SHA_OPT(a13) "," __SHA_OPT(a14) "," \
604 __SHA_OPT(a15) "," __SHA_OPT(a16) "," \
605 __SHA_OPT(a17) "," __SHA_OPT(a18), \
606 help) \
608 __SHA_TYPEDEF(a1); \
609 __SHA_TYPEDEF(a2); \
610 __SHA_TYPEDEF(a3); \
611 __SHA_TYPEDEF(a4); \
612 __SHA_TYPEDEF(a5); \
613 __SHA_TYPEDEF(a6); \
614 __SHA_TYPEDEF(a7); \
615 __SHA_TYPEDEF(a8); \
616 __SHA_TYPEDEF(a9); \
617 __SHA_TYPEDEF(a10); \
618 __SHA_TYPEDEF(a11); \
619 __SHA_TYPEDEF(a12); \
620 __SHA_TYPEDEF(a13); \
621 __SHA_TYPEDEF(a14); \
622 __SHA_TYPEDEF(a15); \
623 __SHA_TYPEDEF(a16); \
624 __SHA_TYPEDEF(a17); \
625 __SHA_TYPEDEF(a18); \
626 enum {__SHA_ENUM(a1), __SHA_ENUM(a2), __SHA_ENUM(a3), \
627 __SHA_ENUM(a4), __SHA_ENUM(a5), __SHA_ENUM(a6), \
628 __SHA_ENUM(a7), __SHA_ENUM(a8), __SHA_ENUM(a9), \
629 __SHA_ENUM(a10), __SHA_ENUM(a11), __SHA_ENUM(a12), \
630 __SHA_ENUM(a13), __SHA_ENUM(a14), __SHA_ENUM(a15), \
631 __SHA_ENUM(a16), __SHA_ENUM(a17), __SHA_ENUM(a18)};
633 #define AROS_SHA(type, abbr, name, modf, def) type,abbr,name,modf,def,""
634 #define AROS_SHAH(type, abbr, name, modf, def, help) type,abbr,name,modf,def, __SHA_OPT(type,abbr,name,modf,def,help) "\t" help "\n"
636 #define __AROS_SHA(type, abbr, name, modf, def, help) type,abbr,name,modf,def,help
638 #define AROS_SH12(name, version, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) \
639 __AROS_SH12(name, version, "", __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8), __AROS_SHA(a9), __AROS_SHA(a10), __AROS_SHA(a11), __AROS_SHA(a12))
640 #define AROS_SH11(name, version, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) \
641 __AROS_SH11(name, version, "", __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8), __AROS_SHA(a9), __AROS_SHA(a10), __AROS_SHA(a11))
642 #define AROS_SH10(name, version, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)\
643 __AROS_SH10(name, version, "", __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8), __AROS_SHA(a9), __AROS_SHA(a10))
644 #define AROS_SH9(name, version, a1, a2, a3, a4, a5, a6, a7, a8, a9) \
645 __AROS_SH9(name, version, "", __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8), __AROS_SHA(a9))
646 #define AROS_SH8(name, version, a1, a2, a3, a4, a5, a6, a7, a8) \
647 __AROS_SH8(name, version, "", __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8))
648 #define AROS_SH7(name, version, a1, a2, a3, a4, a5, a6, a7) \
649 __AROS_SH7(name, version, "", __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7))
650 #define AROS_SH6(name, version, a1, a2, a3, a4, a5, a6) \
651 __AROS_SH6(name, version, "", __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6))
652 #define AROS_SH5(name, version, a1, a2, a3, a4, a5) \
653 __AROS_SH5(name, version, "", __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5))
654 #define AROS_SH4(name, version, a1, a2, a3, a4) \
655 __AROS_SH4(name, version, "", __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4))
656 #define AROS_SH3(name, version, a1, a2, a3) \
657 __AROS_SH3(name, version, "", __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3))
658 #define AROS_SH2(name, version, a1, a2) \
659 __AROS_SH2(name, version, "", __AROS_SHA(a1), __AROS_SHA(a2))
660 #define AROS_SH1(name, version, a1) \
661 __AROS_SH1(name, version, "", __AROS_SHA(a1))
662 #define AROS_SH0(name, version) \
663 __AROS_SH0(name, version, "")
665 #define __SH_HELP(name, help) stringify(name) ": " help "\n"
666 #define __SHA_HELP(type, abbr, name, modf, def, help) help
668 #define AROS_SH18H(name, version, help, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) \
669 __AROS_SH18(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4) __SHA_HELP(a5) __SHA_HELP(a6) __SHA_HELP(a7) __SHA_HELP(a8) __SHA_HELP(a9) __SHA_HELP(a10) __SHA_HELP(a11) __SHA_HELP(a12) __SHA_HELP(a13) __SHA_HELP(a14) __SHA_HELP(a15) __SHA_HELP(a16) __SHA_HELP(a17) __SHA_HELP(a18), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8), __AROS_SHA(a9), __AROS_SHA(a10), __AROS_SHA(a11), __AROS_SHA(a12), __AROS_SHA(a13), __AROS_SHA(a14), __AROS_SHA(a15), __AROS_SHA(a16), __AROS_SHA(a17), __AROS_SHA(a18))
670 #define AROS_SH17H(name, version, help, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) \
671 __AROS_SH17(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4) __SHA_HELP(a5) __SHA_HELP(a6) __SHA_HELP(a7) __SHA_HELP(a8) __SHA_HELP(a9) __SHA_HELP(a10) __SHA_HELP(a11) __SHA_HELP(a12) __SHA_HELP(a13) __SHA_HELP(a14) __SHA_HELP(a15) __SHA_HELP(a16) __SHA_HELP(a17), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8), __AROS_SHA(a9), __AROS_SHA(a10), __AROS_SHA(a11), __AROS_SHA(a12), __AROS_SHA(a13), __AROS_SHA(a14), __AROS_SHA(a15), __AROS_SHA(a16), __AROS_SHA(a17))
672 #define AROS_SH16H(name, version, help, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) \
673 __AROS_SH16(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4) __SHA_HELP(a5) __SHA_HELP(a6) __SHA_HELP(a7) __SHA_HELP(a8) __SHA_HELP(a9) __SHA_HELP(a10) __SHA_HELP(a11) __SHA_HELP(a12) __SHA_HELP(a13) __SHA_HELP(a14) __SHA_HELP(a15) __SHA_HELP(a16), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8), __AROS_SHA(a9), __AROS_SHA(a10), __AROS_SHA(a11), __AROS_SHA(a12), __AROS_SHA(a13), __AROS_SHA(a14), __AROS_SHA(a15), __AROS_SHA(a16))
674 #define AROS_SH15H(name, version, help, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) \
675 __AROS_SH15(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4) __SHA_HELP(a5) __SHA_HELP(a6) __SHA_HELP(a7) __SHA_HELP(a8) __SHA_HELP(a9) __SHA_HELP(a10) __SHA_HELP(a11) __SHA_HELP(a12) __SHA_HELP(a13) __SHA_HELP(a14) __SHA_HELP(a15), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8), __AROS_SHA(a9), __AROS_SHA(a10), __AROS_SHA(a11), __AROS_SHA(a12), __AROS_SHA(a13), __AROS_SHA(a14), __AROS_SHA(a15))
676 #define AROS_SH14H(name, version, help, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) \
677 __AROS_SH14(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4) __SHA_HELP(a5) __SHA_HELP(a6) __SHA_HELP(a7) __SHA_HELP(a8) __SHA_HELP(a9) __SHA_HELP(a10) __SHA_HELP(a11) __SHA_HELP(a12) __SHA_HELP(a13) __SHA_HELP(a14), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8), __AROS_SHA(a9), __AROS_SHA(a10), __AROS_SHA(a11), __AROS_SHA(a12), __AROS_SHA(a13), __AROS_SHA(a14))
678 #define AROS_SH13H(name, version, help, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) \
679 __AROS_SH13(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4) __SHA_HELP(a5) __SHA_HELP(a6) __SHA_HELP(a7) __SHA_HELP(a8) __SHA_HELP(a9) __SHA_HELP(a10) __SHA_HELP(a11) __SHA_HELP(a12) __SHA_HELP(a13), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8), __AROS_SHA(a9), __AROS_SHA(a10), __AROS_SHA(a11), __AROS_SHA(a12), __AROS_SHA(a13))
680 #define AROS_SH12H(name, version, help, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) \
681 __AROS_SH12(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4) __SHA_HELP(a5) __SHA_HELP(a6) __SHA_HELP(a7) __SHA_HELP(a8) __SHA_HELP(a9) __SHA_HELP(a10) __SHA_HELP(a11) __SHA_HELP(a12), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8), __AROS_SHA(a9), __AROS_SHA(a10), __AROS_SHA(a11), __AROS_SHA(a12))
682 #define AROS_SH11H(name, version, help, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) \
683 __AROS_SH11(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4) __SHA_HELP(a5) __SHA_HELP(a6) __SHA_HELP(a7) __SHA_HELP(a8) __SHA_HELP(a9) __SHA_HELP(a10) __SHA_HELP(a11), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8), __AROS_SHA(a9), __AROS_SHA(a10), __AROS_SHA(a11))
684 #define AROS_SH10H(name, version, help, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \
685 __AROS_SH10(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4) __SHA_HELP(a5) __SHA_HELP(a6) __SHA_HELP(a7) __SHA_HELP(a8) __SHA_HELP(a9) __SHA_HELP(a10), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8), __AROS_SHA(a9), __AROS_SHA(a10))
686 #define AROS_SH9H(name, version, help, a1, a2, a3, a4, a5, a6, a7, a8, a9) \
687 __AROS_SH9(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4) __SHA_HELP(a5) __SHA_HELP(a6) __SHA_HELP(a7) __SHA_HELP(a8) __SHA_HELP(a9), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8), __AROS_SHA(a9))
688 #define AROS_SH8H(name, version, help, a1, a2, a3, a4, a5, a6, a7, a8) \
689 __AROS_SH8(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4) __SHA_HELP(a5) __SHA_HELP(a6) __SHA_HELP(a7) __SHA_HELP(a8), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7), __AROS_SHA(a8))
690 #define AROS_SH7H(name, version, help, a1, a2, a3, a4, a5, a6, a7) \
691 __AROS_SH7(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4) __SHA_HELP(a5) __SHA_HELP(a6) __SHA_HELP(a7), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6), __AROS_SHA(a7))
692 #define AROS_SH6H(name, version, help, a1, a2, a3, a4, a5, a6) \
693 __AROS_SH6(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4) __SHA_HELP(a5) __SHA_HELP(a6), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5), __AROS_SHA(a6))
694 #define AROS_SH5H(name, version, help, a1, a2, a3, a4, a5) \
695 __AROS_SH5(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4) __SHA_HELP(a5), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4), __AROS_SHA(a5))
696 #define AROS_SH4H(name, version, help, a1, a2, a3, a4) \
697 __AROS_SH4(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3) __SHA_HELP(a4), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3), __AROS_SHA(a4))
698 #define AROS_SH3H(name, version, help, a1, a2, a3) \
699 __AROS_SH3(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2) __SHA_HELP(a3), __AROS_SHA(a1), __AROS_SHA(a2), __AROS_SHA(a3))
700 #define AROS_SH2H(name, version, help, a1, a2) \
701 __AROS_SH2(name, version, __SH_HELP(name, help) __SHA_HELP(a1) __SHA_HELP(a2), __AROS_SHA(a1), __AROS_SHA(a2))
702 #define AROS_SH1H(name, version, help, a1) \
703 __AROS_SH1(name, version, __SH_HELP(name, help) __SHA_HELP(a1), __AROS_SHA(a1))
704 #define AROS_SH0H(name, version, help) \
705 __AROS_SH0(name, version, __SH_HELP(name, help))
707 #endif /* SHCOMMANDS_NOTEMBEDDED_H */