From: Dmitry V. Levin Date: Thu, 19 Feb 2015 21:16:45 +0000 (+0000) Subject: Remove linux/kexec.h X-Git-Tag: v4.10~95 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ff6a55dee9113f4d5f239a97f827d223d3633c08;p=strace Remove linux/kexec.h * linux/kexec.h: Remove. * Makefile.am (EXTRA_DIST): Remove it. * kexec.c: Do not include . * xlat/kexec_arch_values.in: Add default values. * xlat/kexec_flags.in: Rename to kexec_load_flags.in, add default values. --- diff --git a/Makefile.am b/Makefile.am index 3531930a..80dddfe5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -219,7 +219,6 @@ EXTRA_DIST = \ linux/ia64/syscallent.h \ linux/ia64/userent.h \ linux/inet_diag.h \ - linux/kexec.h \ linux/keyctl.h \ linux/m68k/ioctls_arch0.h \ linux/m68k/ioctls_inc0.h \ diff --git a/kexec.c b/kexec.c index f95bea2d..e277668d 100644 --- a/kexec.c +++ b/kexec.c @@ -1,8 +1,14 @@ #include "defs.h" -#include +#include "xlat/kexec_load_flags.h" #include "xlat/kexec_arch_values.h" -#include "xlat/kexec_flags.h" + +#ifndef KEXEC_ARCH_MASK +# define KEXEC_ARCH_MASK 0xffff0000 +#endif +#ifndef KEXEC_SEGMENT_MAX +# define KEXEC_SEGMENT_MAX 16 +#endif static void print_kexec_segments(struct tcb *tcp, unsigned long addr, unsigned long len) @@ -23,7 +29,12 @@ print_kexec_segments(struct tcb *tcp, unsigned long addr, unsigned long len) # define seg_memsz \ (current_wordsize == 4 ? (uint64_t) seg.seg32.memsz : seg.seg64.memsz) #else - struct kexec_segment seg; + struct { + void *buf; + size_t bufsz; + void *mem; + size_t memsz; + } seg; # define sizeof_seg sizeof(seg) # define seg_buf seg.buf # define seg_bufsz seg.bufsz @@ -83,7 +94,7 @@ sys_kexec_load(struct tcb *tcp) n &= ~KEXEC_ARCH_MASK; if (n) { tprints("|"); - printflags(kexec_flags, n, "KEXEC_???"); + printflags(kexec_load_flags, n, "KEXEC_???"); } return 0; diff --git a/linux/kexec.h b/linux/kexec.h deleted file mode 100644 index 767ccb51..00000000 --- a/linux/kexec.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef LINUX_KEXEC_H -#define LINUX_KEXEC_H - -/* kexec system call - It loads the new kernel to boot into. - * kexec does not sync, or unmount filesystems so if you need - * that to happen you need to do that yourself. - */ - -/* kexec flags for different usage scenarios */ -#define KEXEC_ON_CRASH 0x00000001 -#define KEXEC_PRESERVE_CONTEXT 0x00000002 -#define KEXEC_ARCH_MASK 0xffff0000 - -/* These values match the ELF architecture values. - * Unless there is a good reason that should continue to be the case. - */ -#define KEXEC_ARCH_DEFAULT ( 0 << 16) -#define KEXEC_ARCH_386 ( 3 << 16) -#define KEXEC_ARCH_X86_64 (62 << 16) -#define KEXEC_ARCH_PPC (20 << 16) -#define KEXEC_ARCH_PPC64 (21 << 16) -#define KEXEC_ARCH_IA_64 (50 << 16) -#define KEXEC_ARCH_ARM (40 << 16) -#define KEXEC_ARCH_S390 (22 << 16) -#define KEXEC_ARCH_SH (42 << 16) -#define KEXEC_ARCH_MIPS_LE (10 << 16) -#define KEXEC_ARCH_MIPS ( 8 << 16) - -/* The artificial cap on the number of segments passed to kexec_load. */ -#define KEXEC_SEGMENT_MAX 16 - -/* - * This structure is used to hold the arguments that are used when - * loading kernel binaries. - */ -struct kexec_segment { - const void *buf; - size_t bufsz; - const void *mem; - size_t memsz; -}; - -/* Load a new kernel image as described by the kexec_segment array - * consisting of passed number of segments at the entry-point address. - * The flags allow different useage types. - */ -extern int kexec_load(void *, size_t, struct kexec_segment *, - unsigned long int); - -#endif /* LINUX_KEXEC_H */ diff --git a/xlat/kexec_arch_values.in b/xlat/kexec_arch_values.in index 92ae8ae6..66d25bf4 100644 --- a/xlat/kexec_arch_values.in +++ b/xlat/kexec_arch_values.in @@ -1,11 +1,12 @@ -KEXEC_ARCH_DEFAULT -KEXEC_ARCH_386 -KEXEC_ARCH_X86_64 -KEXEC_ARCH_PPC -KEXEC_ARCH_PPC64 -KEXEC_ARCH_IA_64 -KEXEC_ARCH_ARM -KEXEC_ARCH_S390 -KEXEC_ARCH_SH -KEXEC_ARCH_MIPS_LE -KEXEC_ARCH_MIPS +KEXEC_ARCH_DEFAULT ( 0 << 16) +KEXEC_ARCH_386 ( 3 << 16) +KEXEC_ARCH_68K ( 4 << 16) +KEXEC_ARCH_X86_64 (62 << 16) +KEXEC_ARCH_PPC (20 << 16) +KEXEC_ARCH_PPC64 (21 << 16) +KEXEC_ARCH_IA_64 (50 << 16) +KEXEC_ARCH_ARM (40 << 16) +KEXEC_ARCH_S390 (22 << 16) +KEXEC_ARCH_SH (42 << 16) +KEXEC_ARCH_MIPS_LE (10 << 16) +KEXEC_ARCH_MIPS ( 8 << 16) diff --git a/xlat/kexec_flags.in b/xlat/kexec_flags.in deleted file mode 100644 index 43eb4978..00000000 --- a/xlat/kexec_flags.in +++ /dev/null @@ -1,2 +0,0 @@ -KEXEC_ON_CRASH -KEXEC_PRESERVE_CONTEXT diff --git a/xlat/kexec_load_flags.in b/xlat/kexec_load_flags.in new file mode 100644 index 00000000..4fa8b68b --- /dev/null +++ b/xlat/kexec_load_flags.in @@ -0,0 +1,2 @@ +KEXEC_ON_CRASH 0x00000001 +KEXEC_PRESERVE_CONTEXT 0x00000002