[Qemu-devel] [PATCH v6 03/11] dump: Add API to write vmcore

2014-01-05 Thread Qiao Nuohan
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

2014-01-06 Thread Laszlo Ersek
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

2014-01-06 Thread Qiao Nuohan

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