Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
[linux-2.6] / include / asm-x86_64 / kexec.h
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 #define MAX_NOTE_BYTES 1024
29 typedef u32 note_buf_t[MAX_NOTE_BYTES/4];
30
31 extern note_buf_t crash_notes[];
32
33 #endif /* _X86_64_KEXEC_H */