19c17d615SPaolo Bonzini /* 29c17d615SPaolo Bonzini * QEMU dump 39c17d615SPaolo Bonzini * 49c17d615SPaolo Bonzini * Copyright Fujitsu, Corp. 2011, 2012 59c17d615SPaolo Bonzini * 69c17d615SPaolo Bonzini * Authors: 79c17d615SPaolo Bonzini * Wen Congyang <wency@cn.fujitsu.com> 89c17d615SPaolo Bonzini * 99c17d615SPaolo Bonzini * This work is licensed under the terms of the GNU GPL, version 2 or later. 109c17d615SPaolo Bonzini * See the COPYING file in the top-level directory. 119c17d615SPaolo Bonzini * 129c17d615SPaolo Bonzini */ 139c17d615SPaolo Bonzini 149c17d615SPaolo Bonzini #ifndef DUMP_H 159c17d615SPaolo Bonzini #define DUMP_H 169c17d615SPaolo Bonzini 17*fda05387Sqiaonuohan #define MAKEDUMPFILE_SIGNATURE "makedumpfile" 18*fda05387Sqiaonuohan #define MAX_SIZE_MDF_HEADER (4096) /* max size of makedumpfile_header */ 19*fda05387Sqiaonuohan #define TYPE_FLAT_HEADER (1) /* type of flattened format */ 20*fda05387Sqiaonuohan #define VERSION_FLAT_HEADER (1) /* version of flattened format */ 21*fda05387Sqiaonuohan #define END_FLAG_FLAT_HEADER (-1) 22*fda05387Sqiaonuohan 239c17d615SPaolo Bonzini typedef struct ArchDumpInfo { 249c17d615SPaolo Bonzini int d_machine; /* Architecture */ 259c17d615SPaolo Bonzini int d_endian; /* ELFDATA2LSB or ELFDATA2MSB */ 269c17d615SPaolo Bonzini int d_class; /* ELFCLASS32 or ELFCLASS64 */ 279c17d615SPaolo Bonzini } ArchDumpInfo; 289c17d615SPaolo Bonzini 29*fda05387Sqiaonuohan typedef struct QEMU_PACKED MakedumpfileHeader { 30*fda05387Sqiaonuohan char signature[16]; /* = "makedumpfile" */ 31*fda05387Sqiaonuohan int64_t type; 32*fda05387Sqiaonuohan int64_t version; 33*fda05387Sqiaonuohan } MakedumpfileHeader; 34*fda05387Sqiaonuohan 35*fda05387Sqiaonuohan typedef struct QEMU_PACKED MakedumpfileDataHeader { 36*fda05387Sqiaonuohan int64_t offset; 37*fda05387Sqiaonuohan int64_t buf_size; 38*fda05387Sqiaonuohan } MakedumpfileDataHeader; 39*fda05387Sqiaonuohan 4056c4bfb3SLaszlo Ersek struct GuestPhysBlockList; /* memory_mapping.h */ 4156c4bfb3SLaszlo Ersek int cpu_get_dump_info(ArchDumpInfo *info, 4256c4bfb3SLaszlo Ersek const struct GuestPhysBlockList *guest_phys_blocks); 439c17d615SPaolo Bonzini ssize_t cpu_get_note_size(int class, int machine, int nr_cpus); 449c17d615SPaolo Bonzini 459c17d615SPaolo Bonzini #endif 46