4 * Copyright Fujitsu, Corp. 2011, 2012
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.
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)
23 #define ARCH_PFN_OFFSET (0)
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))
30 typedef struct ArchDumpInfo {
31 int d_machine; /* Architecture */
32 int d_endian; /* ELFDATA2LSB or ELFDATA2MSB */
33 int d_class; /* ELFCLASS32 or ELFCLASS64 */
36 typedef struct QEMU_PACKED MakedumpfileHeader {
37 char signature[16]; /* = "makedumpfile" */
42 typedef struct QEMU_PACKED MakedumpfileDataHeader {
45 } MakedumpfileDataHeader;
47 struct GuestPhysBlockList; /* memory_mapping.h */
48 int cpu_get_dump_info(ArchDumpInfo *info,
49 const struct GuestPhysBlockList *guest_phys_blocks);
50 ssize_t cpu_get_note_size(int class, int machine, int nr_cpus);