[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 20/45] qemu-char: append opt to stop truncation of se
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 20/45] qemu-char: append opt to stop truncation of serial file |
Date: |
Thu, 17 Dec 2015 18:46:16 +0100 |
From: Olga Krishtal <address@hidden>
Our QA team wants to preserve serial output of the guest in between QEMU
runs to perform post-analysis.
By default this behavior is off (file is truncated each time QEMU is
started or device is plugged).
Signed-off-by: Olga Krishtal <address@hidden>
Signed-off-by: Denis V. Lunev <address@hidden>
CC: Eric Blake <address@hidden>
CC: Markus Armbruster <address@hidden>
CC: Paolo Bonzini <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
qapi-schema.json | 5 ++++-
qemu-char.c | 14 +++++++++++++-
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/qapi-schema.json b/qapi-schema.json
index f014a80..516b145 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3102,11 +3102,14 @@
#
# @in: #optional The name of the input file
# @out: The name of the output file
+# @append: #optional Open the file in append mode (default false to
+# truncate) (Since 2.6)
#
# Since: 1.4
##
{ 'struct': 'ChardevFile', 'data': { '*in' : 'str',
- 'out' : 'str' } }
+ 'out' : 'str',
+ '*append': 'bool' } }
##
# @ChardevHostdev:
diff --git a/qemu-char.c b/qemu-char.c
index 2969c44..66703e3 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -3484,6 +3484,9 @@ static void qemu_chr_parse_file_out(QemuOpts *opts,
ChardevBackend *backend,
}
backend->u.file = g_new0(ChardevFile, 1);
backend->u.file->out = g_strdup(path);
+
+ backend->u.file->has_append = true;
+ backend->u.file->append = qemu_opt_get_bool(opts, "append", false);
}
static void qemu_chr_parse_stdio(QemuOpts *opts, ChardevBackend *backend,
@@ -4041,6 +4044,9 @@ QemuOptsList qemu_chardev_opts = {
},{
.name = "chardev",
.type = QEMU_OPT_STRING,
+ },{
+ .name = "append",
+ .type = QEMU_OPT_BOOL,
},
{ /* end of list */ }
},
@@ -4101,7 +4107,13 @@ static CharDriverState *qmp_chardev_open_file(const char
*id,
ChardevFile *file = backend->u.file;
int flags, in = -1, out;
- flags = O_WRONLY | O_TRUNC | O_CREAT | O_BINARY;
+ flags = O_WRONLY | O_CREAT | O_BINARY;
+ if (file->has_append && file->append) {
+ flags |= O_APPEND;
+ } else {
+ flags |= O_TRUNC;
+ }
+
out = qmp_chardev_open_file_source(file->out, flags, errp);
if (out < 0) {
return NULL;
--
2.5.0
- [Qemu-devel] [PULL 10/45] vmw_pvscsi: The pvscsi device is a PCIE endpoint, (continued)
- [Qemu-devel] [PULL 10/45] vmw_pvscsi: The pvscsi device is a PCIE endpoint, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 11/45] vmw_pvscsi: Introduce 'x-disable-pcie' backword compatability property, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 14/45] kvm: Hyper-V SynIC irq routing support, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 13/45] target-i386/kvm: Hyper-V SynIC MSR's support, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 15/45] target-i386/hyperv: Hyper-V SynIC SINT routing and vcpu exit, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 12/45] linux-headers: update from kvm/next, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 16/45] hw/misc: Hyper-V test device 'hyperv-testdev', Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 18/45] kvm: add support for -machine kernel_irqchip=split, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 17/45] target-i386/kvm: Hyper-V SynIC timers MSR's support, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 20/45] qemu-char: append opt to stop truncation of serial file,
Paolo Bonzini <=
- [Qemu-devel] [PULL 19/45] kvm: x86: add support for KVM_CAP_SPLIT_IRQCHIP, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 23/45] cris: avoid "naked" qemu_log, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 22/45] alpha: convert "naked" qemu_log to tracepoint, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 24/45] microblaze: avoid "naked" qemu_log, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 21/45] qemu-log: introduce qemu_log_separate, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 27/45] tricore: avoid "naked" qemu_log, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 25/45] s390x: avoid "naked" qemu_log, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 26/45] ppc: cleanup logging, Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 29/45] user: introduce "-d page", Paolo Bonzini, 2015/12/17
- [Qemu-devel] [PULL 32/45] exec: always call qemu_get_ram_ptr within rcu_read_lock, Paolo Bonzini, 2015/12/17