[Qemu-devel] [PATCH v6 03/11] dump: Add API to write vmcore
Function is used to write vmcore. If flag_flatten is specified, flatten format will be used. In flatten format, data is written block by block in vmcore. struct MakedumpfileDataHeader is used to indicate the offset and size of a data block. struct MakedumpfileDataHeader { int64_t offset; int64_t buf_size; }; Signed-off-by: Qiao Nuohan --- dump.c | 28 1 files changed, 28 insertions(+), 0 deletions(-) diff --git a/dump.c b/dump.c index 89baeab..764db39 100644 --- a/dump.c +++ b/dump.c @@ -726,6 +726,34 @@ static int write_end_flat_header(int fd) return 0; } +static int write_buffer(int fd, bool flag_flatten, off_t offset, void *buf, +size_t size) +{ +size_t written_size; +MakedumpfileDataHeader mdh; + +if (flag_flatten) { +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; +} +} else { +if (lseek(fd, offset, SEEK_SET) < 0) { +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; -- 1.7.1
Re: [Qemu-devel] [PATCH v6 03/11] dump: Add API to write vmcore
On 01/05/14 08:27, Qiao Nuohan wrote: > Function is used to write vmcore. If flag_flatten is specified, flatten format > will be used. In flatten format, data is written block by block in vmcore. > struct MakedumpfileDataHeader is used to indicate the offset and size of a > data > block. > > struct MakedumpfileDataHeader { > int64_t offset; > int64_t buf_size; > }; > > Signed-off-by: Qiao Nuohan > --- > dump.c | 28 > 1 files changed, 28 insertions(+), 0 deletions(-) > > diff --git a/dump.c b/dump.c > index 89baeab..764db39 100644 > --- a/dump.c > +++ b/dump.c > @@ -726,6 +726,34 @@ static int write_end_flat_header(int fd) > return 0; > } > > +static int write_buffer(int fd, bool flag_flatten, off_t offset, void *buf, > +size_t size) > +{ You might have wanted to const-qualify "*buf" here, but it certainly doesn't warrant a respin. Reviewed-by: Laszlo Ersek
Re: [Qemu-devel] [PATCH v6 03/11] dump: Add API to write vmcore
On 01/07/2014 02:12 AM, Laszlo Ersek wrote: @@ -726,6 +726,34 @@ static int write_end_flat_header(int fd) >return 0; >} > > +static int write_buffer(int fd, bool flag_flatten, off_t offset, void *buf, > +size_t size) > +{ You might have wanted to const-qualify "*buf" here, but it certainly doesn't warrant a respin. Acked, I will reflect it in later version. -- Regards Qiao Nuohan