mirror of https://gitee.com/openkylin/qemu.git
dump: add API to write vmcore
Function is used to write vmcore in flatten format. In flatten format, data is written block by block, and in front of each block, a struct MakedumpfileDataHeader is stored there to indicate the offset and size of the data block. struct MakedumpfileDataHeader { int64_t offset; int64_t buf_size; }; Signed-off-by: Qiao Nuohan <qiaonuohan@cn.fujitsu.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
fda053875e
commit
5d31babe5c
21
dump.c
21
dump.c
|
@ -728,6 +728,27 @@ static int write_end_flat_header(int fd)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int write_buffer(int fd, off_t offset, const void *buf, size_t size)
|
||||
{
|
||||
size_t written_size;
|
||||
MakedumpfileDataHeader mdh;
|
||||
|
||||
mdh.offset = cpu_to_be64(offset);
|
||||
mdh.buf_size = cpu_to_be64(size);
|
||||
|
||||
written_size = qemu_write_full(fd, &mdh, sizeof(mdh));
|
||||
if (written_size != sizeof(mdh)) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
written_size = qemu_write_full(fd, buf, size);
|
||||
if (written_size != size) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ram_addr_t get_start_block(DumpState *s)
|
||||
{
|
||||
GuestPhysBlock *block;
|
||||
|
|
Loading…
Reference in New Issue