mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 01:03:55 -06:00
char: make chr_fe_deinit() optionaly delete backend
This simplifies removing a backend for a frontend user (no need to retrieve the associated driver and separate delete call etc). NB: many frontends have questionable handling of ending a chardev. They should probably delete the backend to prevent broken reusage. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
This commit is contained in:
parent
a9b1ca38c2
commit
1ce2610c10
16 changed files with 34 additions and 58 deletions
|
@ -97,8 +97,7 @@ static void char_stdio_test_subprocess(void)
|
|||
ret = qemu_chr_fe_write(&be, (void *)"buf", 4);
|
||||
g_assert_cmpint(ret, ==, 4);
|
||||
|
||||
qemu_chr_fe_deinit(&be);
|
||||
object_unparent(OBJECT(chr));
|
||||
qemu_chr_fe_deinit(&be, true);
|
||||
}
|
||||
|
||||
static void char_stdio_test(void)
|
||||
|
@ -146,8 +145,7 @@ static void char_ringbuf_test(void)
|
|||
g_assert_cmpstr(data, ==, "");
|
||||
g_free(data);
|
||||
|
||||
qemu_chr_fe_deinit(&be);
|
||||
object_unparent(OBJECT(chr));
|
||||
qemu_chr_fe_deinit(&be, true);
|
||||
|
||||
/* check alias */
|
||||
opts = qemu_opts_create(qemu_find_opts("chardev"), "memory-label",
|
||||
|
@ -231,9 +229,8 @@ static void char_mux_test(void)
|
|||
g_assert_cmpint(strlen(data), !=, 0);
|
||||
g_free(data);
|
||||
|
||||
qemu_chr_fe_deinit(&chr_be1);
|
||||
qemu_chr_fe_deinit(&chr_be2);
|
||||
object_unparent(OBJECT(chr));
|
||||
qemu_chr_fe_deinit(&chr_be1, false);
|
||||
qemu_chr_fe_deinit(&chr_be2, true);
|
||||
}
|
||||
|
||||
typedef struct SocketIdleData {
|
||||
|
@ -396,8 +393,7 @@ static void char_pipe_test(void)
|
|||
g_assert_cmpint(fe.read_count, ==, 8);
|
||||
g_assert_cmpstr(fe.read_buf, ==, "pipe-in");
|
||||
|
||||
qemu_chr_fe_deinit(&be);
|
||||
object_unparent(OBJECT(chr));
|
||||
qemu_chr_fe_deinit(&be, true);
|
||||
|
||||
g_assert(g_unlink(in) == 0);
|
||||
g_assert(g_unlink(out) == 0);
|
||||
|
@ -511,8 +507,7 @@ static void char_file_test(void)
|
|||
|
||||
g_assert_cmpint(fe.read_count, ==, 8);
|
||||
g_assert_cmpstr(fe.read_buf, ==, "fifo-in");
|
||||
qemu_chr_fe_deinit(&be);
|
||||
object_unref(OBJECT(chr));
|
||||
qemu_chr_fe_deinit(&be, true);
|
||||
g_unlink(fifo);
|
||||
g_free(fifo);
|
||||
}
|
||||
|
@ -549,7 +544,7 @@ static void char_null_test(void)
|
|||
error_free_or_abort(&err);
|
||||
|
||||
/* deinit & reinit */
|
||||
qemu_chr_fe_deinit(&be);
|
||||
qemu_chr_fe_deinit(&be, false);
|
||||
qemu_chr_fe_init(&be, chr, &error_abort);
|
||||
|
||||
qemu_chr_fe_set_open(&be, true);
|
||||
|
@ -563,8 +558,7 @@ static void char_null_test(void)
|
|||
ret = qemu_chr_fe_write(&be, (void *)"buf", 4);
|
||||
g_assert_cmpint(ret, ==, 4);
|
||||
|
||||
qemu_chr_fe_deinit(&be);
|
||||
object_unparent(OBJECT(chr));
|
||||
qemu_chr_fe_deinit(&be, true);
|
||||
}
|
||||
|
||||
static void char_invalid_test(void)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue