summaryrefslogtreecommitdiff
path: root/kexec/kexec-syscall.h
diff options
context:
space:
mode:
authorMaxim Uvarov <muvarov@gmail.com>2010-03-03 14:05:53 +0300
committerSimon Horman <horms@verge.net.au>2010-03-08 11:47:40 +1100
commit6adc05c6e3fdbc8b9f5d915af78ca05d0a09cb17 (patch)
treee7f77201ba84a243898a5984f9426626912b8eca /kexec/kexec-syscall.h
parent5996651eccbffb7c195c2911f37fda2f2258e48d (diff)
some kexec MIPS improvements
- using simple mips* ) in configure.ac to make it compilable on mips2 and mips64 - remove kexec/arch/mips/mips-setup-simple.S which prepares cmdline for new kernel, it is better to move this work to kernel code. BTW this code was compilable only on o32 because of t4 is not defined on 64-64 or n32 MIPS ABIs. - simple put cmdline as string, kernel code should catch cmdline like this int board_kexec_prepare(struct kimage *image) { int i; char *bootloader = "kexec"; board_boot_desc_ptr->argc = 0; for(i=0;i<image->nr_segments;i++) { printk("segment %d if (!strncmp(bootloader, (char*)image->segment[i].buf, strlen(bootloader))) { /* * convert command line string to array * of parameters (as bootloader does). */ int argc = 0, offt; char *str = (char *)image->segment[i].buf; char *ptr = strchr(str, ' '); while (ptr && (ARGV_MAX_ARGS > argc)) { *ptr = '\0'; if (ptr[1] != ' ') { offt = (int)(ptr - str + 1); boot_desc_ptr->argv[argc] = image->segment[i].mem + offt; argc++; } ptr = strchr(ptr + 1, ' '); } boot_desc_ptr->argc = argc; break; } } Keep it as string make code simple and more readable. - add crashdump support - do not redefine syscalls numbers if they defined in system remove fixups for /proc/iomem. If your board provides wrong /proc/iomem please fix kernel, or at least you local version of kexec. No need to support it in main line. At least add option --fake-iomem - some minor fixes Signed-off-by: Maxim Uvarov <muvarov@gmail.com> Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'kexec/kexec-syscall.h')
-rw-r--r--kexec/kexec-syscall.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h
index 69c9686..7f41a1b 100644
--- a/kexec/kexec-syscall.h
+++ b/kexec/kexec-syscall.h
@@ -22,6 +22,7 @@
#define LINUX_REBOOT_CMD_KEXEC_OLD2 0x18263645
#define LINUX_REBOOT_CMD_KEXEC 0x45584543
+#ifndef __NR_kexec_load
#ifdef __i386__
#define __NR_kexec_load 283
#endif
@@ -60,6 +61,7 @@
#ifndef __NR_kexec_load
#error Unknown processor architecture. Needs a kexec_load syscall number.
#endif
+#endif /*ifndef __NR_kexec_load*/
struct kexec_segment;