xref: /openbmc/qemu/include/sysemu/dump.h (revision fda05387)
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