diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2008-08-13 15:54:53 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2008-08-13 16:29:17 +0200 |
commit | 932b57873db47db89989b86789b216e50a753478 (patch) | |
tree | 45121689cbab9b60340f62e6148405fdbea53163 /commands | |
parent | 0dd24dc17d561fa0a9f8d5b2ffb5c31e1cf7985c (diff) | |
download | barebox-932b57873db47db89989b86789b216e50a753478.tar.gz barebox-932b57873db47db89989b86789b216e50a753478.tar.xz |
move several commands into extra files
move false, true, help, insmod, lsmod, version into extra files
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands')
-rw-r--r-- | commands/Kconfig | 40 | ||||
-rw-r--r-- | commands/Makefile | 6 | ||||
-rw-r--r-- | commands/false.c | 37 | ||||
-rw-r--r-- | commands/help.c | 71 | ||||
-rw-r--r-- | commands/insmod.c | 45 | ||||
-rw-r--r-- | commands/lsmod.c | 19 | ||||
-rw-r--r-- | commands/true.c | 37 | ||||
-rw-r--r-- | commands/version.c | 39 |
8 files changed, 290 insertions, 4 deletions
diff --git a/commands/Kconfig b/commands/Kconfig index 19b96f206b..0e405eea57 100644 --- a/commands/Kconfig +++ b/commands/Kconfig @@ -2,6 +2,7 @@ config REGINFO bool menu "Commands " + depends on COMMAND menu "scripting " @@ -36,14 +37,19 @@ config CMD_PRINTENV tristate prompt "printenv" -config CMD_HELP +config CMD_READLINE + tristate + prompt "readline" + +config CMD_TRUE tristate default y - prompt "help" + prompt "true" -config CMD_READLINE +config CMD_FALSE tristate - prompt "readline" + default y + prompt "false" endmenu @@ -238,4 +244,30 @@ config CMD_REGINFO tristate prompt "reginfo" +config CMD_VERSION + tristate + default y + prompt "version" + +config CMD_HELP + tristate + default y + prompt "help" + +config CMD_DEVINFO + tristate + default y + prompt "devinfo" + +config CMD_INSMOD + bool + depends on MODULES + default y + prompt "insmod" + +config CMD_LSMOD + bool + depends on MODULES + prompt "lsmod" + endmenu diff --git a/commands/Makefile b/commands/Makefile index 1b3565f915..a828061abf 100644 --- a/commands/Makefile +++ b/commands/Makefile @@ -39,3 +39,9 @@ obj-$(CONFIG_CMD_PRINTENV) += printenv.o obj-$(CONFIG_CMD_SAVEENV) += saveenv.o obj-$(CONFIG_CMD_LOADENV) += loadenv.o obj-$(CONFIG_CMD_NAND) += nand.o +obj-$(CONFIG_CMD_TRUE) += true.o +obj-$(CONFIG_CMD_FALSE) += false.o +obj-$(CONFIG_CMD_VERSION) += version.o +obj-$(CONFIG_CMD_HELP) += help.o +obj-$(CONFIG_CMD_LSMOD) += lsmod.o +obj-$(CONFIG_CMD_INSMOD) += insmod.o diff --git a/commands/false.c b/commands/false.c new file mode 100644 index 0000000000..67651c4bd8 --- /dev/null +++ b/commands/false.c @@ -0,0 +1,37 @@ +/* + * (C) Copyright 2000-2003 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include <common.h> +#include <command.h> + +static int do_false (cmd_tbl_t *cmdtp, int argc, char *argv[]) +{ + return 1; +} + +U_BOOT_CMD_START(false) + .maxargs = 1, + .cmd = do_false, + .usage = "do nothing, unsuccessfully", +U_BOOT_CMD_END + diff --git a/commands/help.c b/commands/help.c new file mode 100644 index 0000000000..ddb2aa8409 --- /dev/null +++ b/commands/help.c @@ -0,0 +1,71 @@ +/* + * (C) Copyright 2000-2003 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include <common.h> +#include <command.h> + +/* + * Use puts() instead of printf() to avoid printf buffer overflow + * for long help messages + */ +static int do_help (cmd_tbl_t * cmdtp, int argc, char *argv[]) +{ + if (argc == 1) { /* show list of commands */ + for_each_command(cmdtp) { + if (!cmdtp->usage) + continue; + printf("%10s - %s\n", cmdtp->name, cmdtp->usage); + } + return 0; + } + + /* command help (long version) */ + if ((cmdtp = find_cmd(argv[1])) != NULL) { + u_boot_cmd_usage(cmdtp); + return 0; + } else { + printf ("Unknown command '%s' - try 'help'" + " without arguments for list of all" + " known commands\n\n", argv[1] + ); + return 1; + } +} + +static const __maybe_unused char cmd_help_help[] = +"Show help information (for 'command')\n" +"'help' prints online help for the monitor commands.\n\n" +"Without arguments, it prints a short usage message for all commands.\n\n" +"To get detailed help information for specific commands you can type\n" +"'help' with one or more command names as arguments.\n"; + +static const char *help_aliases[] = { "?", NULL}; + +U_BOOT_CMD_START(help) + .maxargs = 2, + .cmd = do_help, + .aliases = help_aliases, + .usage = "print online help", + U_BOOT_CMD_HELP(cmd_help_help) +U_BOOT_CMD_END + diff --git a/commands/insmod.c b/commands/insmod.c new file mode 100644 index 0000000000..28a59ead56 --- /dev/null +++ b/commands/insmod.c @@ -0,0 +1,45 @@ +#include <common.h> +#include <command.h> +#include <module.h> +#include <errno.h> +#include <fs.h> +#include <malloc.h> + +static int do_insmod (cmd_tbl_t *cmdtp, int argc, char *argv[]) +{ + struct module *module; + void *buf; + int len; + + if (argc < 2) { + u_boot_cmd_usage(cmdtp); + return 1; + } + + buf = read_file(argv[1], &len); + if (!buf) { + perror("insmod"); + return 1; + } + + module = load_module(buf, len); + + free(buf); + + if (module) { + if (module->init) + module->init(); + } + + return 0; +} + +static const __maybe_unused char cmd_insmod_help[] = +"Usage: insmod <module>\n"; + +U_BOOT_CMD_START(insmod) + .maxargs = 2, + .cmd = do_insmod, + .usage = "insert a module", + U_BOOT_CMD_HELP(cmd_insmod_help) +U_BOOT_CMD_END diff --git a/commands/lsmod.c b/commands/lsmod.c new file mode 100644 index 0000000000..9909724cb2 --- /dev/null +++ b/commands/lsmod.c @@ -0,0 +1,19 @@ +#include <common.h> +#include <command.h> +#include <module.h> + +static int do_lsmod (cmd_tbl_t *cmdtp, int argc, char *argv[]) +{ + struct module *mod; + + for_each_module(mod) + printf("%s\n", mod->name); + + return 0; +} + +U_BOOT_CMD_START(lsmod) + .maxargs = 1, + .cmd = do_lsmod, + .usage = "list modules", +U_BOOT_CMD_END diff --git a/commands/true.c b/commands/true.c new file mode 100644 index 0000000000..1ec59330bf --- /dev/null +++ b/commands/true.c @@ -0,0 +1,37 @@ +/* + * (C) Copyright 2000-2003 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include <common.h> +#include <command.h> + +static int do_true (cmd_tbl_t *cmdtp, int argc, char *argv[]) +{ + return 0; +} + +U_BOOT_CMD_START(true) + .maxargs = 1, + .cmd = do_true, + .usage = "do nothing, successfully", +U_BOOT_CMD_END + diff --git a/commands/version.c b/commands/version.c new file mode 100644 index 0000000000..b9075b9668 --- /dev/null +++ b/commands/version.c @@ -0,0 +1,39 @@ +/* + * (C) Copyright 2000-2003 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include <common.h> +#include <command.h> + +static int do_version (cmd_tbl_t *cmdtp, int argc, char *argv[]) +{ + extern char version_string[]; + printf ("\n%s\n", version_string); + return 0; +} + +U_BOOT_CMD_START(version) + .maxargs = 1, + .cmd = do_version, + .usage = "print monitor version", +U_BOOT_CMD_END + |