diff options
author | Matt Evans <matt@ozlabs.org> | 2010-05-14 14:15:09 +1000 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2010-05-19 12:18:29 +0900 |
commit | 436f1376e1621aeba54d8253244955df4865d5e9 (patch) | |
tree | ab557c57d939167e8a3217b960e7a54b95fcf18a /kexec/arch/mips/kexec-elf-mips.c | |
parent | b1dcc08ea79ca96256a9ae6ef59e5ea4e217ef1d (diff) |
kexec-tools: Fix option/argument parsing
The argument parsing is currently a bit broken as main()'s getopt_long()
knows nothing about either the architecture-specific options or, even
more specifically, the architecture-and-loader-specific options.
This patch introduces new #defines for all architectures,
KEXEC_ALL_OPTIONS and KEXEC_ALL_OPT_STR. These contain all possible
options for a given build, and the getopt_long() passes in main() and
arch_process_options() will now recognise arch- and loader-specific
options; these will not be re-ordered in argv[], there is no confusion
over which argv[] entry is the kernel filename, and using '--opt=foo' and
'--opt foo' both work.
All architectures have command line options (and #define OPT_BLAHs)
consolidated into their include/arch/option.h files. x86_64 builds
parts of i386/ as well, so now both share a single option.h file (with
a symlink).
Signed-off-by: Matt Evans <matt@ozlabs.org>
Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'kexec/arch/mips/kexec-elf-mips.c')
-rw-r--r-- | kexec/arch/mips/kexec-elf-mips.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kexec/arch/mips/kexec-elf-mips.c b/kexec/arch/mips/kexec-elf-mips.c index ce6bf0c..a9c865e 100644 --- a/kexec/arch/mips/kexec-elf-mips.c +++ b/kexec/arch/mips/kexec-elf-mips.c @@ -35,7 +35,6 @@ static const int probe_debug = 0; #define BOOTLOADER "kexec" #define MAX_COMMAND_LINE 256 #define UPSZ(X) ((sizeof(X) + 3) & ~3) -#define OPT_APPEND (OPT_ARCH_MAX+0) static char cmdline_buf[256] = "kexec "; int elf_mips_probe(const char *buf, off_t len) @@ -82,6 +81,8 @@ int elf_mips_load(int argc, char **argv, const char *buf, off_t len, unsigned long cmdline_addr; size_t i; unsigned long bss_start = 0, bss_size = 0; + + /* See options.h if adding any more options. */ static const struct option options[] = { KEXEC_ARCH_OPTIONS {"command-line", 1, 0, OPT_APPEND}, |