All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	Amit Shah <amit.shah@redhat.com>,
	Juan Quintela <quintela@redhat.com>,
	"Daniel P. Berrange" <berrange@redhat.com>
Subject: [Qemu-devel] [PATCH v6 for-2.7 01/28] s390: use FILE instead of QEMUFile for creating text file
Date: Wed, 27 Apr 2016 11:04:51 +0100	[thread overview]
Message-ID: <1461751518-12128-2-git-send-email-berrange@redhat.com> (raw)
In-Reply-To: <1461751518-12128-1-git-send-email-berrange@redhat.com>

The s390 skeys monitor command needs to write out a plain text
file. Currently it is using the QEMUFile class for this, but
work is ongoing to refactor QEMUFile and eliminate much code
related to it. The only feature qemu_fopen() gives over fopen()
is support for QEMU FD passing, but this can be achieved with
qemu_open() + fdopen() too. Switching to regular stdio FILE
APIs avoids the need to sprintf via an intermedia buffer which
slightly simplifies the code.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 hw/s390x/s390-skeys.c | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c
index 6528ffe..1d4e537 100644
--- a/hw/s390x/s390-skeys.c
+++ b/hw/s390x/s390-skeys.c
@@ -46,15 +46,11 @@ void s390_skeys_init(void)
     qdev_init_nofail(DEVICE(obj));
 }
 
-static void write_keys(QEMUFile *f, uint8_t *keys, uint64_t startgfn,
+static void write_keys(FILE *f, uint8_t *keys, uint64_t startgfn,
                        uint64_t count, Error **errp)
 {
     uint64_t curpage = startgfn;
     uint64_t maxpage = curpage + count - 1;
-    const char *fmt = "page=%03" PRIx64 ": key(%d) => ACC=%X, FP=%d, REF=%d,"
-                      " ch=%d, reserved=%d\n";
-    char buf[128];
-    int len;
 
     for (; curpage <= maxpage; curpage++) {
         uint8_t acc = (*keys & 0xF0) >> 4;
@@ -63,10 +59,9 @@ static void write_keys(QEMUFile *f, uint8_t *keys, uint64_t startgfn,
         int ch = (*keys & 0x02);
         int res = (*keys & 0x01);
 
-        len = snprintf(buf, sizeof(buf), fmt, curpage,
-                       *keys, acc, fp, ref, ch, res);
-        assert(len < sizeof(buf));
-        qemu_put_buffer(f, (uint8_t *)buf, len);
+        fprintf(f, "page=%03" PRIx64 ": key(%d) => ACC=%X, FP=%d, REF=%d,"
+                " ch=%d, reserved=%d\n",
+                curpage, *keys, acc, fp, ref, ch, res);
         keys++;
     }
 }
@@ -115,7 +110,8 @@ void qmp_dump_skeys(const char *filename, Error **errp)
     vaddr cur_gfn = 0;
     uint8_t *buf;
     int ret;
-    QEMUFile *f;
+    int fd;
+    FILE *f;
 
     /* Quick check to see if guest is using storage keys*/
     if (!skeyclass->skeys_enabled(ss)) {
@@ -124,8 +120,14 @@ void qmp_dump_skeys(const char *filename, Error **errp)
         return;
     }
 
-    f = qemu_fopen(filename, "wb");
+    fd = qemu_open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0600);
+    if (fd < 0) {
+        error_setg_file_open(errp, errno, filename);
+        return;
+    }
+    f = fdopen(fd, "wb");
     if (!f) {
+        close(fd);
         error_setg_file_open(errp, errno, filename);
         return;
     }
@@ -161,7 +163,7 @@ out_free:
     error_propagate(errp, lerr);
     g_free(buf);
 out:
-    qemu_fclose(f);
+    fclose(f);
 }
 
 static void qemu_s390_skeys_init(Object *obj)
-- 
2.5.5

  reply	other threads:[~2016-04-27 10:05 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-27 10:04 [Qemu-devel] [PATCH v6 for-2.7 00/28] Convert migration to QIOChannel & support Daniel P. Berrange
2016-04-27 10:04 ` Daniel P. Berrange [this message]
2016-05-04 10:43   ` [Qemu-devel] [PATCH v6 for-2.7 01/28] s390: use FILE instead of QEMUFile for creating text file Juan Quintela
2016-04-27 10:04 ` [Qemu-devel] [PATCH v6 for-2.7 02/28] io: avoid double-free when closing QIOChannelBuffer Daniel P. Berrange
2016-05-04 10:43   ` Juan Quintela
2016-04-27 10:04 ` [Qemu-devel] [PATCH v6 for-2.7 03/28] migration: remove use of qemu_bufopen from vmstate tests Daniel P. Berrange
2016-05-04 10:45   ` Juan Quintela
2016-04-27 10:04 ` [Qemu-devel] [PATCH v6 for-2.7 04/28] migration: ensure qemu_fflush() always writes full data amount Daniel P. Berrange
2016-05-04 10:46   ` Juan Quintela
2016-04-27 10:04 ` [Qemu-devel] [PATCH v6 for-2.7 05/28] migration: split migration hooks out of QEMUFileOps Daniel P. Berrange
2016-05-04 10:48   ` Juan Quintela
2016-04-27 10:04 ` [Qemu-devel] [PATCH v6 for-2.7 06/28] migration: introduce set_blocking function in QEMUFileOps Daniel P. Berrange
2016-05-04 10:49   ` Juan Quintela
2016-04-27 10:04 ` [Qemu-devel] [PATCH v6 for-2.7 07/28] migration: force QEMUFile to blocking mode for outgoing migration Daniel P. Berrange
2016-05-04 10:49   ` Juan Quintela
2016-04-27 10:04 ` [Qemu-devel] [PATCH v6 for-2.7 08/28] migration: introduce a new QEMUFile impl based on QIOChannel Daniel P. Berrange
2016-04-27 10:04 ` [Qemu-devel] [PATCH v6 for-2.7 09/28] migration: add helpers for creating QEMUFile from a QIOChannel Daniel P. Berrange
2016-05-04 10:56   ` Juan Quintela
2016-05-04 11:02   ` Juan Quintela
2016-05-24  6:01     ` Amit Shah
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 10/28] migration: add reporting of errors for outgoing migration Daniel P. Berrange
2016-05-04 10:53   ` Juan Quintela
2016-05-26 12:37   ` Eric Blake
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 11/28] migration: convert post-copy to use QIOChannelBuffer Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 12/28] migration: convert unix socket protocol to use QIOChannel Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 13/28] migration: rename unix.c to socket.c Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 14/28] migration: convert tcp socket protocol to use QIOChannel Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 15/28] migration: convert fd " Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 16/28] migration: convert exec " Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 17/28] migration: convert RDMA to use QIOChannel interface Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 18/28] migration: convert savevm to use QIOChannel for writing to files Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 19/28] migration: delete QEMUFile buffer implementation Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 20/28] migration: delete QEMUSizedBuffer struct Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 21/28] migration: delete QEMUFile sockets implementation Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 22/28] migration: delete QEMUFile stdio implementation Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 23/28] migration: move definition of struct QEMUFile back into qemu-file.c Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 24/28] migration: don't use an array for storing migrate parameters Daniel P. Berrange
2016-05-25 11:10   ` Amit Shah
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 25/28] migration: define 'tls-creds' and 'tls-hostname' migration parameters Daniel P. Berrange
2016-05-25 11:53   ` Amit Shah
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 26/28] migration: add support for encrypting data with TLS Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 27/28] migration: remove support for non-iovec based write handlers Daniel P. Berrange
2016-04-27 10:05 ` [Qemu-devel] [PATCH v6 for-2.7 28/28] migration: remove qemu_get_fd method from QEMUFile Daniel P. Berrange
2016-05-26  6:17 ` [Qemu-devel] [PATCH v6 for-2.7 00/28] Convert migration to QIOChannel & support Amit Shah
2016-05-31  9:21   ` Daniel P. Berrange

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1461751518-12128-2-git-send-email-berrange@redhat.com \
    --to=berrange@redhat.com \
    --cc=amit.shah@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.