Skip to content

Commit

Permalink
dump: simplify write_start_flat_header()
Browse files Browse the repository at this point in the history
Currently, the function
- defines and populates an auto variable of type MakedumpfileHeader
- allocates and zeroes a buffer of size MAX_SIZE_MDF_HEADER (4096)
- copies the former into the latter (covering an initial portion of the
  latter)

Fill in the MakedumpfileHeader structure in its final place (the alignment
is OK because the structure lives at the address returned by g_malloc0()).

Approximately-suggested-by: Luiz Capitulino <[email protected]>
Signed-off-by: Laszlo Ersek <[email protected]>
Reviewed-by: Paolo Bonzini <[email protected]>
Signed-off-by: Luiz Capitulino <[email protected]>
  • Loading branch information
lersek authored and Luiz Capitulino committed Jun 11, 2014
1 parent ae3f88f commit 92ba140
Showing 1 changed file with 9 additions and 11 deletions.
20 changes: 9 additions & 11 deletions dump.c
Original file line number Diff line number Diff line change
Expand Up @@ -711,27 +711,25 @@ static int create_vmcore(DumpState *s)

static int write_start_flat_header(int fd)
{
uint8_t *buf;
MakedumpfileHeader mh;
MakedumpfileHeader *mh;
int ret = 0;

memset(&mh, 0, sizeof(mh));
memcpy(mh.signature, MAKEDUMPFILE_SIGNATURE,
MIN(sizeof mh.signature, sizeof MAKEDUMPFILE_SIGNATURE));
QEMU_BUILD_BUG_ON(sizeof *mh > MAX_SIZE_MDF_HEADER);
mh = g_malloc0(MAX_SIZE_MDF_HEADER);

mh.type = cpu_to_be64(TYPE_FLAT_HEADER);
mh.version = cpu_to_be64(VERSION_FLAT_HEADER);
memcpy(mh->signature, MAKEDUMPFILE_SIGNATURE,
MIN(sizeof mh->signature, sizeof MAKEDUMPFILE_SIGNATURE));

buf = g_malloc0(MAX_SIZE_MDF_HEADER);
memcpy(buf, &mh, sizeof(mh));
mh->type = cpu_to_be64(TYPE_FLAT_HEADER);
mh->version = cpu_to_be64(VERSION_FLAT_HEADER);

size_t written_size;
written_size = qemu_write_full(fd, buf, MAX_SIZE_MDF_HEADER);
written_size = qemu_write_full(fd, mh, MAX_SIZE_MDF_HEADER);
if (written_size != MAX_SIZE_MDF_HEADER) {
ret = -1;
}

g_free(buf);
g_free(mh);
return ret;
}

Expand Down

0 comments on commit 92ba140

Please sign in to comment.