This commit was manufactured by cvs2svn to create branch
[linux-2.6.git] / include / asm-x86_64 / diskdump.h
1 /*
2  * include/asm-x86_64/diskdump.h
3  *
4  * Copyright (C) Hitachi, Ltd. 2004
5  * Written by Satoshi Oshima (oshima@sdl.hitachi.co.jp)
6  *
7  * Derived from include/asm-i386/diskdump.h
8  * Copyright (c) 2004 FUJITSU LIMITED
9  * Copyright (c) 2003 Red Hat, Inc. All rights reserved.
10  *
11  */
12
13 #ifndef _ASM_X86_64_DISKDUMP_H
14 #define _ASM_X86_64_DISKDUMP_H
15
16 #ifdef __KERNEL__
17
18 #include <linux/elf.h>
19 #include <asm/crashdump.h>
20
21 const static int platform_supports_diskdump = 1;
22
23 struct disk_dump_sub_header {
24         elf_gregset_t           elf_regs;
25 };
26
27 #define size_of_sub_header()    ((sizeof(struct disk_dump_sub_header) + PAGE_SIZE - 1) / DUMP_BLOCK_SIZE)
28
29 #define write_sub_header()                                              \
30 ({                                                                      \
31         int ret;                                                        \
32                                                                         \
33         ELF_CORE_COPY_REGS(dump_sub_header.elf_regs, (&myregs));        \
34         clear_page(scratch);                                            \
35         memcpy(scratch, &dump_sub_header, sizeof(dump_sub_header));     \
36                                                                         \
37         if ((ret = write_blocks(dump_part, 2, scratch, 1)) >= 0)        \
38                 ret = 1; /* size of sub header in page */;              \
39         ret;                                                            \
40 })
41
42 #endif /* __KERNEL__ */
43
44 #endif /* _ASM_X86_64_DISKDUMP_H */