]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - avr/cmd_sd.c
Recursive cmd_find(), new command table flag: CTBL_RPT
[z180-stamp.git] / avr / cmd_sd.c
index f3c5df418604acff0e98d708e76867623c53ac20..ba4c8357bee98dd11201e3277380e085f84e0d10 100644 (file)
@@ -4,10 +4,8 @@
  * SPDX-License-Identifier:    GPL-2.0
  */
 
-#include "common.h"
-//#include <stdlib.h>
+#include "cmd_sd.h"
 
-#include "command.h"
 #include "diskio.h"
 #include "ff.h"
 #include "eval_arg.h"
@@ -316,48 +314,45 @@ command_ret_t do_ioctl_sync(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char
 }
 
 
-static
-command_ret_t do_help(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[]);
-
-cmd_tbl_t cmd_sd_sub[] = {
+cmd_tbl_t cmd_tbl_sd[] = {
 CMD_TBL_ITEM(
-       status, 2,                      CTBL_REPEAT,    do_status,
+       status, 2,                      CTBL_RPT,       do_status,
        "Socket staus",
        "drive"
 ),
 CMD_TBL_ITEM(
-       init,   2,                      CTBL_REPEAT,    do_init,
+       init,   2,                      CTBL_RPT,       do_init,
        "Initialize disk",
        "drive"
 ),
 CMD_TBL_ITEM(
-       info,   2,                      CTBL_REPEAT,    do_info,
+       info,   2,                      CTBL_RPT,       do_info,
        "Disk info",
        "drive"
 ),
 CMD_TBL_ITEM(
-       dump,   CONFIG_SYS_MAXARGS,     CTBL_REPEAT,    do_dump,
+       dump,   CONFIG_SYS_MAXARGS,     CTBL_RPT,       do_dump,
        "Dump sector(s)",
        "drive [sector [count ]]"
 ),
 CMD_TBL_ITEM(
-       read,   2,                      CTBL_REPEAT,    do_read,
+       read,   2,                      CTBL_RPT,       do_read,
        "Read disk sector(s) into meomory",
        "drive [sector [count [memaddr]]]"
 ),
 CMD_TBL_ITEM(
-       write,  2,                      CTBL_REPEAT,    do_write,
+       write,  2,                      CTBL_RPT,       do_write,
        "Write sector(s) from meomory to disk",
        "drive [sector [count [memaddr]]]"
 ),
 CMD_TBL_ITEM(
-       sync,   2,                      CTBL_REPEAT,    do_ioctl_sync,
+       sync,   2,                      CTBL_RPT,       do_ioctl_sync,
        "Device control: SYNC",
        "drive"
 ),
 
 CMD_TBL_ITEM(
-       help,   CONFIG_SYS_MAXARGS,     CTBL_REPEAT,    do_help,
+       help,   CONFIG_SYS_MAXARGS,     CTBL_RPT,       do_help,
        "Print sub command description/usage",
        "\n"
        "       - print brief description of all sub commands\n"
@@ -371,34 +366,18 @@ CMD_TBL_ITEM(
 #ifdef  CONFIG_SYS_LONGHELP
        FSTR(""),
 #endif /* CONFIG_SYS_LONGHELP */
+       NULL,
 #ifdef CONFIG_AUTO_COMPLETE
-       0,
+       NULL,
 #endif
 },
+/* Mark end of table */
+CMD_TBL_END(cmd_tbl_sd)
 };
 
-static
-command_ret_t do_help(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
-{
-       return _do_help(cmd_sd_sub, ARRAY_SIZE(cmd_sd_sub), cmdtp, flag, argc, argv);
-}
-
 
 command_ret_t do_sd(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * const argv[])
 {
-       cmd_tbl_t *cp;
-
-       if (argc < 2)
-               return CMD_RET_USAGE;
-
-       /* drop initial "sd" arg */
-       argc--;
-       argv++;
-
-       cp = find_cmd_tbl(argv[0], cmd_sd_sub, ARRAY_SIZE(cmd_sd_sub));
-
-       if (cp)
-               return cp->cmd(cmdtp, flag, argc, argv);
-
+       puts_P(PSTR("Huch?"));
        return CMD_RET_USAGE;
 }