[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 01/39] char: add qemu_chr_free()
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH 01/39] char: add qemu_chr_free() |
Date: |
Fri, 26 Jun 2015 16:49:07 +0200 |
If a chardev is allowed to be created outside of QMP, then it must be
also possible to free it. This is useful for ivshmem that creates
chardev anonymously and must be able to free them.
Signed-off-by: Marc-André Lureau <address@hidden>
---
include/sysemu/char.h | 10 +++++++++-
qemu-char.c | 9 +++++++--
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/include/sysemu/char.h b/include/sysemu/char.h
index 832b7fe..5fd0a09 100644
--- a/include/sysemu/char.h
+++ b/include/sysemu/char.h
@@ -128,11 +128,19 @@ CharDriverState *qemu_chr_new(const char *label, const
char *filename,
/**
* @qemu_chr_delete:
*
- * Destroy a character backend.
+ * Destroy a character backend and remove it from the list of
+ * identified character backends.
*/
void qemu_chr_delete(CharDriverState *chr);
/**
+ * @qemu_chr_free:
+ *
+ * Destroy a character backend.
+ */
+void qemu_chr_free(CharDriverState *chr);
+
+/**
* @qemu_chr_fe_set_echo:
*
* Ask the backend to override its normal echo setting. This only really
diff --git a/qemu-char.c b/qemu-char.c
index 617e034..16040e9 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -3837,9 +3837,8 @@ void qemu_chr_fe_release(CharDriverState *s)
s->avail_connections++;
}
-void qemu_chr_delete(CharDriverState *chr)
+void qemu_chr_free(CharDriverState *chr)
{
- QTAILQ_REMOVE(&chardevs, chr, next);
if (chr->chr_close) {
chr->chr_close(chr);
}
@@ -3849,6 +3848,12 @@ void qemu_chr_delete(CharDriverState *chr)
g_free(chr);
}
+void qemu_chr_delete(CharDriverState *chr)
+{
+ QTAILQ_REMOVE(&chardevs, chr, next);
+ qemu_chr_free(chr);
+}
+
ChardevInfoList *qmp_query_chardev(Error **errp)
{
ChardevInfoList *chr_list = NULL;
--
2.4.3
- [Qemu-devel] [PATCH 00/39] ivshmem server/client, cleanups & test, Marc-André Lureau, 2015/06/26
- [Qemu-devel] [PATCH 01/39] char: add qemu_chr_free(),
Marc-André Lureau <=
- [Qemu-devel] [PATCH 02/39] msix: add VMSTATE_MSIX_TEST, Marc-André Lureau, 2015/06/26
- [Qemu-devel] [PATCH 04/39] ivshmem: fix number of bytes to push to fifo, Marc-André Lureau, 2015/06/26
- [Qemu-devel] [PATCH 05/39] ivshmem: factor out the incoming fifo handling, Marc-André Lureau, 2015/06/26
- [Qemu-devel] [PATCH 03/39] ivhsmem: read do not accept more than sizeof(long), Marc-André Lureau, 2015/06/26
- [Qemu-devel] [PATCH 07/39] ivshmem: remove superflous ivshmem_attr field, Marc-André Lureau, 2015/06/26
- [Qemu-devel] [PATCH 08/39] ivshmem: remove useless doorbell field, Marc-André Lureau, 2015/06/26
- [Qemu-devel] [PATCH 06/39] ivshmem: remove unnecessary dup(), Marc-André Lureau, 2015/06/26
- [Qemu-devel] [PATCH 09/39] ivshmem: more qdev conversion, Marc-André Lureau, 2015/06/26
- [Qemu-devel] [PATCH 10/39] ivshmem: remove last exit(1), Marc-André Lureau, 2015/06/26
- [Qemu-devel] [PATCH 11/39] ivshmem: increase_dynamic_storage() improvements, Marc-André Lureau, 2015/06/26