Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- chardev/char-console.c | 30 ++++++++++++++++++++++++++++++ chardev/char.c | 24 ------------------------ chardev/Makefile.objs | 1 + 3 files changed, 31 insertions(+), 24 deletions(-) create mode 100644 chardev/char-console.c
diff --git a/chardev/char-console.c b/chardev/char-console.c new file mode 100644 index 0000000000..6cc8336622 --- /dev/null +++ b/chardev/char-console.c @@ -0,0 +1,30 @@ +#include "qemu/osdep.h" +#include "char-win.h" + +static void qemu_chr_open_win_con(Chardev *chr, + ChardevBackend *backend, + bool *be_opened, + Error **errp) +{ + qemu_chr_open_win_file(chr, GetStdHandle(STD_OUTPUT_HANDLE)); +} + +static void char_console_class_init(ObjectClass *oc, void *data) +{ + ChardevClass *cc = CHARDEV_CLASS(oc); + + cc->open = qemu_chr_open_win_con; +} + +static const TypeInfo char_console_type_info = { + .name = TYPE_CHARDEV_CONSOLE, + .parent = TYPE_CHARDEV_WIN, + .class_init = char_console_class_init, +}; + +static void register_types(void) +{ + type_register_static(&char_console_type_info); +} + +type_init(register_types); diff --git a/chardev/char.c b/chardev/char.c index 7421570399..3975236cd9 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -1403,27 +1403,6 @@ static void qemu_chr_open_pipe(Chardev *chr, } } -static void qemu_chr_open_win_con(Chardev *chr, - ChardevBackend *backend, - bool *be_opened, - Error **errp) -{ - qemu_chr_open_win_file(chr, GetStdHandle(STD_OUTPUT_HANDLE)); -} - -static void char_console_class_init(ObjectClass *oc, void *data) -{ - ChardevClass *cc = CHARDEV_CLASS(oc); - - cc->open = qemu_chr_open_win_con; -} - -static const TypeInfo char_console_type_info = { - .name = TYPE_CHARDEV_CONSOLE, - .parent = TYPE_CHARDEV_WIN, - .class_init = char_console_class_init, -}; - #endif /* !_WIN32 */ int qemu_chr_wait_connected(Chardev *chr, Error **errp) @@ -2319,9 +2298,6 @@ static void register_types(void) #ifdef HAVE_CHARDEV_PTY type_register_static(&char_pty_type_info); #endif -#ifdef _WIN32 - type_register_static(&char_console_type_info); -#endif type_register_static(&char_pipe_type_info); /* this must be done after machine init, since we register FEs with muxes diff --git a/chardev/Makefile.objs b/chardev/Makefile.objs index ee40e8a1d7..265a6dad5d 100644 --- a/chardev/Makefile.objs +++ b/chardev/Makefile.objs @@ -1,4 +1,5 @@ chardev-obj-y += char.o +chardev-obj-$(CONFIG_WIN32) += char-console.o chardev-obj-$(CONFIG_POSIX) += char-fd.o chardev-obj-y += char-file.o chardev-obj-y += char-io.o -- 2.11.0