]>
Commit | Line | Data |
---|---|---|
25ae9c1d WC |
1 | /* |
2 | * QEMU dump | |
3 | * | |
4 | * Copyright Fujitsu, Corp. 2011, 2012 | |
5 | * | |
6 | * Authors: | |
7 | * Wen Congyang <wency@cn.fujitsu.com> | |
8 | * | |
352666e2 SW |
9 | * This work is licensed under the terms of the GNU GPL, version 2 or later. |
10 | * See the COPYING file in the top-level directory. | |
25ae9c1d WC |
11 | * |
12 | */ | |
13 | ||
14 | #ifndef DUMP_H | |
15 | #define DUMP_H | |
16 | ||
fda05387 QN |
17 | #define MAKEDUMPFILE_SIGNATURE "makedumpfile" |
18 | #define MAX_SIZE_MDF_HEADER (4096) /* max size of makedumpfile_header */ | |
19 | #define TYPE_FLAT_HEADER (1) /* type of flattened format */ | |
20 | #define VERSION_FLAT_HEADER (1) /* version of flattened format */ | |
21 | #define END_FLAG_FLAT_HEADER (-1) | |
22 | ||
7aad248d QN |
23 | #define ARCH_PFN_OFFSET (0) |
24 | ||
25 | #define paddr_to_pfn(X, page_shift) \ | |
26 | (((unsigned long long)(X) >> (page_shift)) - ARCH_PFN_OFFSET) | |
27 | #define pfn_to_paddr(X, page_shift) \ | |
28 | (((unsigned long long)(X) + ARCH_PFN_OFFSET) << (page_shift)) | |
29 | ||
25ae9c1d WC |
30 | typedef struct ArchDumpInfo { |
31 | int d_machine; /* Architecture */ | |
32 | int d_endian; /* ELFDATA2LSB or ELFDATA2MSB */ | |
33 | int d_class; /* ELFCLASS32 or ELFCLASS64 */ | |
34 | } ArchDumpInfo; | |
35 | ||
fda05387 QN |
36 | typedef struct QEMU_PACKED MakedumpfileHeader { |
37 | char signature[16]; /* = "makedumpfile" */ | |
38 | int64_t type; | |
39 | int64_t version; | |
40 | } MakedumpfileHeader; | |
41 | ||
42 | typedef struct QEMU_PACKED MakedumpfileDataHeader { | |
43 | int64_t offset; | |
44 | int64_t buf_size; | |
45 | } MakedumpfileDataHeader; | |
46 | ||
56c4bfb3 LE |
47 | struct GuestPhysBlockList; /* memory_mapping.h */ |
48 | int cpu_get_dump_info(ArchDumpInfo *info, | |
49 | const struct GuestPhysBlockList *guest_phys_blocks); | |
5f86146f PB |
50 | ssize_t cpu_get_note_size(int class, int machine, int nr_cpus); |
51 | ||
25ae9c1d | 52 | #endif |