summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-01-25 17:10:39 -0800
committerH. Peter Anvin <hpa@zytor.com>2009-01-25 17:13:06 -0800
commit4b533a0066a26b82c36d58af05c3bbeabf7e3b95 (patch)
tree44db70959f740a3d5817d77b91df9594df0fe681
parent36390f9712ac56be1dce7a635322bd96e15620c1 (diff)
downloadsyslinux-4b533a0066a26b82c36d58af05c3bbeabf7e3b95.tar.gz
config.c32: new module to just load a configuration file
Trivial module to load a new configuration file from the command line.
-rw-r--r--com32/modules/Makefile3
-rw-r--r--com32/modules/config.c38
2 files changed, 40 insertions, 1 deletions
diff --git a/com32/modules/Makefile b/com32/modules/Makefile
index 1c0cd47a..1bce20b4 100644
--- a/com32/modules/Makefile
+++ b/com32/modules/Makefile
@@ -17,7 +17,8 @@
topdir = ../..
include ../MCONFIG
-MODULES = chain.c32 ethersel.c32 mboot.c32 dmitest.c32 cpuidtest.c32 \
+MODULES = chain.c32 config.c32 ethersel.c32 mboot.c32 dmitest.c32 \
+ cpuidtest.c32 \
pcitest.c32 elf.c32 linux.c32 reboot.c32 pmload.c32 meminfo.c32 \
sdi.c32 sanboot.c32 ifcpu64.c32 vesainfo.c32
diff --git a/com32/modules/config.c b/com32/modules/config.c
new file mode 100644
index 00000000..214e3eae
--- /dev/null
+++ b/com32/modules/config.c
@@ -0,0 +1,38 @@
+/* ----------------------------------------------------------------------- *
+ *
+ * Copyright 2009 H. Peter Anvin - All Rights Reserved
+ *
+ * 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, Inc., 51 Franklin St, Fifth Floor,
+ * Boston MA 02110-1301, USA; either version 2 of the License, or
+ * (at your option) any later version; incorporated herein by reference.
+ *
+ * ----------------------------------------------------------------------- */
+
+/*
+ * config.c
+ *
+ * Loads a new configuration file
+ *
+ * Usage: config filename
+ */
+
+#include <stdio.h>
+#include <console.h>
+#include <syslinux/boot.h>
+
+int main(int argc, char *argv[])
+{
+ openconsole(&dev_null_r, &dev_stdcon_w);
+
+ if (argc != 2) {
+ fprintf(stderr, "Usage: config <filename>\n");
+ return 1;
+ }
+
+ syslinux_run_kernel_image(argv[1], "", 0, IMAGE_TYPE_CONFIG);
+
+ fprintf(stderr, "config: %s: failed to load (missing file?)\n", argv[1]);
+ return 1;
+}