[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v7 13/35] hostmem-file: use whole file size if possi
From: |
Xiao Guangrong |
Subject: |
[Qemu-devel] [PATCH v7 13/35] hostmem-file: use whole file size if possible |
Date: |
Mon, 2 Nov 2015 17:13:15 +0800 |
Use the whole file size if @size is not specified which is useful
if we want to directly pass a file to guest
Signed-off-by: Xiao Guangrong <address@hidden>
---
backends/hostmem-file.c | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/backends/hostmem-file.c b/backends/hostmem-file.c
index 9097a57..ea355c1 100644
--- a/backends/hostmem-file.c
+++ b/backends/hostmem-file.c
@@ -38,15 +38,29 @@ file_backend_memory_alloc(HostMemoryBackend *backend, Error
**errp)
{
HostMemoryBackendFile *fb = MEMORY_BACKEND_FILE(backend);
- if (!backend->size) {
- error_setg(errp, "can't create backend with size 0");
- return;
- }
if (!fb->mem_path) {
error_setg(errp, "mem-path property not set");
return;
}
+ if (!backend->size) {
+ Error *local_err = NULL;
+
+ /*
+ * use the whole file size if @size is not specified.
+ */
+ backend->size = qemu_file_getlength(fb->mem_path, &local_err);
+ if (local_err) {
+ error_propagate(errp, local_err);
+ return;
+ }
+ }
+
+ if (!backend->size) {
+ error_setg(errp, "can't create backend on the file whose size is 0");
+ return;
+ }
+
backend->force_prealloc = mem_prealloc;
memory_region_init_ram_from_file(&backend->mr, OBJECT(backend),
object_get_canonical_path(OBJECT(backend)),
--
1.8.3.1
[Qemu-devel] [PATCH v7 13/35] hostmem-file: use whole file size if possible,
Xiao Guangrong <=
[Qemu-devel] [PATCH v7 14/35] pc-dimm: remove DEFAULT_PC_DIMMSIZE, Xiao Guangrong, 2015/11/02
[Qemu-devel] [PATCH v7 12/35] util: let qemu_fd_getlength support block device, Xiao Guangrong, 2015/11/02
Re: [Qemu-devel] [PATCH v7 12/35] util: let qemu_fd_getlength support block device, Eduardo Habkost, 2015/11/06
Re: [Qemu-devel] [PATCH v7 12/35] util: let qemu_fd_getlength support block device, Eduardo Habkost, 2015/11/06