mirror of
https://github.com/qemu/qemu.git
synced 2025-08-02 21:38:29 +00:00

flatten format will be used when writing kdump-compressed format. The format is also used by makedumpfile, you can refer to the following URL to get more detailed information about flatten format of kdump-compressed format: http://sourceforge.net/projects/makedumpfile/ The two functions here are used to write start flat header and end flat header to vmcore, and they will be called later when flatten format is used. struct MakedumpfileHeader stored at the head of vmcore is used to indicate the vmcore is in flatten format. struct MakedumpfileHeader { char signature[16]; /* = "makedumpfile" */ int64_t type; /* = 1 */ int64_t version; /* = 1 */ }; And struct MakedumpfileDataHeader, with offset and buf_size set to -1, is used to indicate the end of vmcore in flatten format. struct MakedumpfileDataHeader { int64_t offset; /* = -1 */ int64_t buf_size; /* = -1 */ }; Signed-off-by: Qiao Nuohan <qiaonuohan@cn.fujitsu.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
46 lines
1.3 KiB
C
46 lines
1.3 KiB
C
/*
|
|
* QEMU dump
|
|
*
|
|
* Copyright Fujitsu, Corp. 2011, 2012
|
|
*
|
|
* Authors:
|
|
* Wen Congyang <wency@cn.fujitsu.com>
|
|
*
|
|
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
|
* See the COPYING file in the top-level directory.
|
|
*
|
|
*/
|
|
|
|
#ifndef DUMP_H
|
|
#define DUMP_H
|
|
|
|
#define MAKEDUMPFILE_SIGNATURE "makedumpfile"
|
|
#define MAX_SIZE_MDF_HEADER (4096) /* max size of makedumpfile_header */
|
|
#define TYPE_FLAT_HEADER (1) /* type of flattened format */
|
|
#define VERSION_FLAT_HEADER (1) /* version of flattened format */
|
|
#define END_FLAG_FLAT_HEADER (-1)
|
|
|
|
typedef struct ArchDumpInfo {
|
|
int d_machine; /* Architecture */
|
|
int d_endian; /* ELFDATA2LSB or ELFDATA2MSB */
|
|
int d_class; /* ELFCLASS32 or ELFCLASS64 */
|
|
} ArchDumpInfo;
|
|
|
|
typedef struct QEMU_PACKED MakedumpfileHeader {
|
|
char signature[16]; /* = "makedumpfile" */
|
|
int64_t type;
|
|
int64_t version;
|
|
} MakedumpfileHeader;
|
|
|
|
typedef struct QEMU_PACKED MakedumpfileDataHeader {
|
|
int64_t offset;
|
|
int64_t buf_size;
|
|
} MakedumpfileDataHeader;
|
|
|
|
struct GuestPhysBlockList; /* memory_mapping.h */
|
|
int cpu_get_dump_info(ArchDumpInfo *info,
|
|
const struct GuestPhysBlockList *guest_phys_blocks);
|
|
ssize_t cpu_get_note_size(int class, int machine, int nr_cpus);
|
|
|
|
#endif
|