aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2005-06-25 17:58:02 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-25 19:24:50 -0400
commit5234f5eb04abbbfa306ccfbc2ccbb6e73f515b15 (patch)
tree60f4701fdc501955ccff198f84913b96e3bbf5bf /include
parentd89559589a588d1a654329d8cd9a3ad33aaad9be (diff)
[PATCH] kexec: x86_64 kexec implementation
This is the x86_64 implementation of machine kexec. 32bit compatibility support has been implemented, and machine_kexec has been enhanced to not care about the changing internal kernel paget table structures. From: Alexander Nyberg <alexn@dsv.su.se> build fix Signed-off-by: Eric Biederman <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-x86_64/kexec.h28
-rw-r--r--include/asm-x86_64/unistd.h2
2 files changed, 29 insertions, 1 deletions
diff --git a/include/asm-x86_64/kexec.h b/include/asm-x86_64/kexec.h
new file mode 100644
index 000000000000..dc33646dc7dd
--- /dev/null
+++ b/include/asm-x86_64/kexec.h
@@ -0,0 +1,28 @@
1#ifndef _X86_64_KEXEC_H
2#define _X86_64_KEXEC_H
3
4#include <asm/page.h>
5#include <asm/proto.h>
6
7/*
8 * KEXEC_SOURCE_MEMORY_LIMIT maximum page get_free_page can return.
9 * I.e. Maximum page that is mapped directly into kernel memory,
10 * and kmap is not required.
11 *
12 * So far x86_64 is limited to 40 physical address bits.
13 */
14
15/* Maximum physical address we can use pages from */
16#define KEXEC_SOURCE_MEMORY_LIMIT (0xFFFFFFFFFFUL)
17/* Maximum address we can reach in physical address mode */
18#define KEXEC_DESTINATION_MEMORY_LIMIT (0xFFFFFFFFFFUL)
19/* Maximum address we can use for the control pages */
20#define KEXEC_CONTROL_MEMORY_LIMIT (0xFFFFFFFFFFUL)
21
22/* Allocate one page for the pdp and the second for the code */
23#define KEXEC_CONTROL_CODE_SIZE (4096UL + 4096UL)
24
25/* The native architecture */
26#define KEXEC_ARCH KEXEC_ARCH_X86_64
27
28#endif /* _X86_64_KEXEC_H */
diff --git a/include/asm-x86_64/unistd.h b/include/asm-x86_64/unistd.h
index 3c9af6fd4332..d767adcbf0ff 100644
--- a/include/asm-x86_64/unistd.h
+++ b/include/asm-x86_64/unistd.h
@@ -552,7 +552,7 @@ __SYSCALL(__NR_mq_notify, sys_mq_notify)
552#define __NR_mq_getsetattr 245 552#define __NR_mq_getsetattr 245
553__SYSCALL(__NR_mq_getsetattr, sys_mq_getsetattr) 553__SYSCALL(__NR_mq_getsetattr, sys_mq_getsetattr)
554#define __NR_kexec_load 246 554#define __NR_kexec_load 246
555__SYSCALL(__NR_kexec_load, sys_ni_syscall) 555__SYSCALL(__NR_kexec_load, sys_kexec_load)
556#define __NR_waitid 247 556#define __NR_waitid 247
557__SYSCALL(__NR_waitid, sys_waitid) 557__SYSCALL(__NR_waitid, sys_waitid)
558#define __NR_add_key 248 558#define __NR_add_key 248