[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 18/41] QEMUFile: add qemu_file_fd() for later use
From: |
Isaku Yamahata |
Subject: |
[Qemu-devel] [PATCH v2 18/41] QEMUFile: add qemu_file_fd() for later use |
Date: |
Mon, 4 Jun 2012 18:57:20 +0900 |
Signed-off-by: Isaku Yamahata <address@hidden>
---
qemu-file.h | 1 +
savevm.c | 12 ++++++++++++
2 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/qemu-file.h b/qemu-file.h
index 331ac8b..98a8023 100644
--- a/qemu-file.h
+++ b/qemu-file.h
@@ -71,6 +71,7 @@ QEMUFile *qemu_fopen_socket(int fd);
QEMUFile *qemu_popen(FILE *popen_file, const char *mode);
QEMUFile *qemu_popen_cmd(const char *command, const char *mode);
int qemu_stdio_fd(QEMUFile *f);
+int qemu_file_fd(QEMUFile *f);
void qemu_fflush(QEMUFile *f);
void qemu_buffered_file_drain(QEMUFile *f);
int qemu_fclose(QEMUFile *f);
diff --git a/savevm.c b/savevm.c
index fb47529..cba1a69 100644
--- a/savevm.c
+++ b/savevm.c
@@ -178,6 +178,7 @@ struct QEMUFile {
uint8_t buf[IO_BUF_SIZE];
int last_error;
+ int fd; /* -1 means fd isn't associated */
};
typedef struct QEMUFileStdio
@@ -276,6 +277,7 @@ QEMUFile *qemu_popen(FILE *stdio_file, const char *mode)
s->file = qemu_fopen_ops(s, stdio_put_buffer, NULL, stdio_pclose,
NULL, NULL, NULL);
}
+ s->file->fd = fileno(stdio_file);
return s->file;
}
@@ -291,6 +293,7 @@ QEMUFile *qemu_popen_cmd(const char *command, const char
*mode)
return qemu_popen(popen_file, mode);
}
+/* TODO: replace this with qemu_file_fd() */
int qemu_stdio_fd(QEMUFile *f)
{
QEMUFileStdio *p;
@@ -325,6 +328,7 @@ QEMUFile *qemu_fdopen(int fd, const char *mode)
s->file = qemu_fopen_ops(s, stdio_put_buffer, NULL, stdio_fclose,
NULL, NULL, NULL);
}
+ s->file->fd = fd;
return s->file;
fail:
@@ -339,6 +343,7 @@ QEMUFile *qemu_fopen_socket(int fd)
s->fd = fd;
s->file = qemu_fopen_ops(s, NULL, socket_get_buffer, socket_close,
NULL, NULL, NULL);
+ s->file->fd = fd;
return s->file;
}
@@ -381,6 +386,7 @@ QEMUFile *qemu_fopen(const char *filename, const char *mode)
s->file = qemu_fopen_ops(s, NULL, file_get_buffer, stdio_fclose,
NULL, NULL, NULL);
}
+ s->file->fd = fileno(s->stdio_file);
return s->file;
fail:
g_free(s);
@@ -431,10 +437,16 @@ QEMUFile *qemu_fopen_ops(void *opaque,
QEMUFilePutBufferFunc *put_buffer,
f->set_rate_limit = set_rate_limit;
f->get_rate_limit = get_rate_limit;
f->is_write = 0;
+ f->fd = -1;
return f;
}
+int qemu_file_fd(QEMUFile *f)
+{
+ return f->fd;
+}
+
int qemu_file_get_error(QEMUFile *f)
{
return f->last_error;
--
1.7.1.1
- [Qemu-devel] [PATCH v2 00/41] postcopy live migration, Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 16/41] savevm: qemu_pending_size() to return pending buffered size, Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 04/41] arch_init: refactor host_from_stream_offset(), Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 06/41] arch_init: refactor ram_save_block(), Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 03/41] arch_init/ram_save: introduce constant for ram save version = 4, Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 17/41] savevm, buffered_file: introduce method to drain buffer of buffered file, Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 20/41] savevm/QEMUFileSocket: drop duplicated member fd, Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 01/41] arch_init: export sort_ram_list() and ram_save_block(), Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 18/41] QEMUFile: add qemu_file_fd() for later use,
Isaku Yamahata <=
- [Qemu-devel] [PATCH v2 24/41] migration: export migrate_fd_completed() and migrate_fd_cleanup(), Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 05/41] arch_init/ram_save_live: factor out RAM_SAVE_FLAG_MEM_SIZE case, Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 31/41] configure: add CONFIG_POSTCOPY option, Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 22/41] savevm/QEMUFile: introduce qemu_fopen_fd, Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 09/41] arch_init: introduce helper function to find ram block with id string, Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 02/41] arch_init: export RAM_SAVE_xxx flags for postcopy, Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 13/41] exec.c: factor out qemu_get_ram_ptr(), Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 21/41] savevm: rename QEMUFileSocket to QEMUFileFD, socket_close to fd_close, Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 11/41] arch_init: factor out counting transferred bytes, Isaku Yamahata, 2012/06/04
- [Qemu-devel] [PATCH v2 27/41] buffered_file: Introduce QEMUFileNonblock for nonblock write, Isaku Yamahata, 2012/06/04