]> git.proxmox.com Git - qemu.git/commitdiff
qemu-char: Add fe_open tracking
authorHans de Goede <hdegoede@redhat.com>
Tue, 26 Mar 2013 10:07:55 +0000 (11:07 +0100)
committerAnthony Liguori <aliguori@us.ibm.com>
Wed, 27 Mar 2013 15:26:49 +0000 (10:26 -0500)
Add tracking of the fe_open state to struct CharDriverState.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Message-id: 1364292483-16564-4-git-send-email-hdegoede@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
include/char/char.h
qemu-char.c

index e9d2c108a8276c87fe12bb5a440c3d297ac87167..dbb1b89f8c4f3f829c6b500f077e0f5debf0a3ff 100644 (file)
@@ -75,6 +75,7 @@ struct CharDriverState {
     char *label;
     char *filename;
     int be_open;
+    int fe_open;
     int avail_connections;
     QemuOpts *opts;
     QTAILQ_ENTRY(CharDriverState) next;
index 345fd67fca57d1a9abd39a014202b73df1be42c8..c9890ad20f763706fc1825a117f3b7ca28ecd9da 100644 (file)
@@ -3412,6 +3412,10 @@ void qemu_chr_fe_set_echo(struct CharDriverState *chr, bool echo)
 
 void qemu_chr_fe_open(struct CharDriverState *chr)
 {
+    if (chr->fe_open) {
+        return;
+    }
+    chr->fe_open = 1;
     if (chr->chr_guest_open) {
         chr->chr_guest_open(chr);
     }
@@ -3419,6 +3423,10 @@ void qemu_chr_fe_open(struct CharDriverState *chr)
 
 void qemu_chr_fe_close(struct CharDriverState *chr)
 {
+    if (!chr->fe_open) {
+        return;
+    }
+    chr->fe_open = 0;
     if (chr->chr_guest_close) {
         chr->chr_guest_close(chr);
     }