diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2005-06-25 17:58:02 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-25 19:24:50 -0400 |
commit | 5234f5eb04abbbfa306ccfbc2ccbb6e73f515b15 (patch) | |
tree | 60f4701fdc501955ccff198f84913b96e3bbf5bf /include | |
parent | d89559589a588d1a654329d8cd9a3ad33aaad9be (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.h | 28 | ||||
-rw-r--r-- | include/asm-x86_64/unistd.h | 2 |
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 |