summaryrefslogtreecommitdiffstats
path: root/commands/insmod.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2008-08-13 15:54:53 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2008-08-13 16:29:17 +0200
commit932b57873db47db89989b86789b216e50a753478 (patch)
tree45121689cbab9b60340f62e6148405fdbea53163 /commands/insmod.c
parent0dd24dc17d561fa0a9f8d5b2ffb5c31e1cf7985c (diff)
downloadbarebox-932b57873db47db89989b86789b216e50a753478.tar.gz
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/insmod.c')
-rw-r--r--commands/insmod.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/commands/insmod.c b/commands/insmod.c
new file mode 100644
index 0000000..28a59ea
--- /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