summary refs log tree commit diff stats
path: root/migration/qemu-file.c
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2015-02-05 17:11:50 +0000
committerPeter Maydell <peter.maydell@linaro.org>2015-02-05 17:11:50 +0000
commitb3cd91e0eaf5c962cf139ce6ca59392c8b00f177 (patch)
treed6221d057f8cd22f40256a0c37c022793f1d2c93 /migration/qemu-file.c
parent651621b780515f35711c5d7305310ab1d241c7e2 (diff)
parentbb426311901776b95b021cece831b69dce4ef5ee (diff)
downloadfocaccia-qemu-b3cd91e0eaf5c962cf139ce6ca59392c8b00f177.tar.gz
focaccia-qemu-b3cd91e0eaf5c962cf139ce6ca59392c8b00f177.zip
Merge remote-tracking branch 'remotes/juanquintela/tags/migration/20150205' into staging
migration/next for 20150205

# gpg: Signature made Thu 05 Feb 2015 16:17:08 GMT using RSA key ID 5872D723
# gpg: Can't check signature: public key not found

* remotes/juanquintela/tags/migration/20150205:
  fix mc146818rtc wrong subsection name to avoid vmstate_subsection_load() fail
  Tracify migration/rdma.c
  Add migration stream analyzation script
  migration: Append JSON description of migration stream
  qemu-file: Add fast ftell code path
  QJSON: Add JSON writer
  Print errors in some of the early migration failure cases.
  Migration: Add lots of trace events
  savevm: Convert fprintf to error_report
  vmstate-static-checker: update whitelist

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'migration/qemu-file.c')
-rw-r--r--migration/qemu-file.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/migration/qemu-file.c b/migration/qemu-file.c
index edc283073a..e66e55712f 100644
--- a/migration/qemu-file.c
+++ b/migration/qemu-file.c
@@ -452,6 +452,22 @@ int qemu_get_byte(QEMUFile *f)
     return result;
 }
 
+int64_t qemu_ftell_fast(QEMUFile *f)
+{
+    int64_t ret = f->pos;
+    int i;
+
+    if (f->ops->writev_buffer) {
+        for (i = 0; i < f->iovcnt; i++) {
+            ret += f->iov[i].iov_len;
+        }
+    } else {
+        ret += f->buf_index;
+    }
+
+    return ret;
+}
+
 int64_t qemu_ftell(QEMUFile *f)
 {
     qemu_fflush(f);