chardev fixes

-----BEGIN PGP SIGNATURE-----
 
 iQJQBAABCAA6FiEEh6m9kz+HxgbSdvYt2ujhCXWWnOUFAmN7KeQcHG1hcmNhbmRy
 ZS5sdXJlYXVAcmVkaGF0LmNvbQAKCRDa6OEJdZac5TSbD/4vqW5PGyXZw2q9h46S
 TuQ76IxPdN81j5dZg6wt+yq8XTTDGnufYTE8WLA3b9zCQCEJbPXbS7d1Zrx9gJrW
 UuRC19p6b9FR9iU4w/SKWN/XKUpmM+3qCCwad1N/Rn3I2cRU1YsWFR6hL1L7IQLA
 3LEImZIPKBWQ2Sf2mgYmxlmO+xMuAxPefQ1/t/62yKjYrFzWkjIduKO1oUXfFlE2
 GYrz5x1+AaZ00GOnOJpvEBZdqZEVePIrd/AJAPTrmdRjiZWbq93a0ss5nZq2OT2V
 25QG+CXzBht8gDAXZ9aIrFP5muarCuHrz5dvuTAkcGa+SfgkXiFovb7Mp2OE2nef
 COP4emq50WJWUM8+k2W9jc93Rg27tQhXt3JC9v8Cm6mgs00QZpCvPB/EhhEa46fz
 Gq/+g084Urb2JnTX2g/eog6+yboLsXhAq/Ke3FT7gzsD/JwkawnG5LG8gmEztnzG
 yjlX5HLsgS7dhg9BAfM2d3oVQM4Y1G8O8Xr3dfGQocRS3AYTHMw69AeIfxPb4Ax9
 1vd+viS+dtabGpDYmKyT58ZVFOREYtTPTcU2ym5CxbR+B6DDUXwMhM7CESXwB96R
 +iv2La5g7HbXemgUWa54/HqIGJtgJAEHWdgcZ6mzYMtyGAJL7YC7I/Yx93M1A21G
 o5BpcgZ2ZzbUot6vISs2r4SE2A==
 =AcEH
 -----END PGP SIGNATURE-----

Merge tag 'chr-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging

chardev fixes

# -----BEGIN PGP SIGNATURE-----
#
# iQJQBAABCAA6FiEEh6m9kz+HxgbSdvYt2ujhCXWWnOUFAmN7KeQcHG1hcmNhbmRy
# ZS5sdXJlYXVAcmVkaGF0LmNvbQAKCRDa6OEJdZac5TSbD/4vqW5PGyXZw2q9h46S
# TuQ76IxPdN81j5dZg6wt+yq8XTTDGnufYTE8WLA3b9zCQCEJbPXbS7d1Zrx9gJrW
# UuRC19p6b9FR9iU4w/SKWN/XKUpmM+3qCCwad1N/Rn3I2cRU1YsWFR6hL1L7IQLA
# 3LEImZIPKBWQ2Sf2mgYmxlmO+xMuAxPefQ1/t/62yKjYrFzWkjIduKO1oUXfFlE2
# GYrz5x1+AaZ00GOnOJpvEBZdqZEVePIrd/AJAPTrmdRjiZWbq93a0ss5nZq2OT2V
# 25QG+CXzBht8gDAXZ9aIrFP5muarCuHrz5dvuTAkcGa+SfgkXiFovb7Mp2OE2nef
# COP4emq50WJWUM8+k2W9jc93Rg27tQhXt3JC9v8Cm6mgs00QZpCvPB/EhhEa46fz
# Gq/+g084Urb2JnTX2g/eog6+yboLsXhAq/Ke3FT7gzsD/JwkawnG5LG8gmEztnzG
# yjlX5HLsgS7dhg9BAfM2d3oVQM4Y1G8O8Xr3dfGQocRS3AYTHMw69AeIfxPb4Ax9
# 1vd+viS+dtabGpDYmKyT58ZVFOREYtTPTcU2ym5CxbR+B6DDUXwMhM7CESXwB96R
# +iv2La5g7HbXemgUWa54/HqIGJtgJAEHWdgcZ6mzYMtyGAJL7YC7I/Yx93M1A21G
# o5BpcgZ2ZzbUot6vISs2r4SE2A==
# =AcEH
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 21 Nov 2022 02:33:56 EST
# gpg:                using RSA key 87A9BD933F87C606D276F62DDAE8E10975969CE5
# gpg:                issuer "marcandre.lureau@redhat.com"
# gpg: Good signature from "Marc-André Lureau <marcandre.lureau@redhat.com>" [full]
# gpg:                 aka "Marc-André Lureau <marcandre.lureau@gmail.com>" [full]
# Primary key fingerprint: 87A9 BD93 3F87 C606 D276  F62D DAE8 E109 7596 9CE5

* tag 'chr-pull-request' of https://gitlab.com/marcandre.lureau/qemu:
  chardev/char-win-stdio: Pass Ctrl+C to guest with a multiplexed monitor

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2022-11-21 09:25:53 -05:00
commit 050143bfc7

View File

@ -146,6 +146,8 @@ static void qemu_chr_open_stdio(Chardev *chr,
bool *be_opened,
Error **errp)
{
ChardevStdio *opts = backend->u.stdio.data;
bool stdio_allow_signal = !opts->has_signal || opts->signal;
WinStdioChardev *stdio = WIN_STDIO_CHARDEV(chr);
DWORD dwMode;
int is_console = 0;
@ -193,7 +195,11 @@ static void qemu_chr_open_stdio(Chardev *chr,
if (is_console) {
/* set the terminal in raw mode */
/* ENABLE_QUICK_EDIT_MODE | ENABLE_EXTENDED_FLAGS */
dwMode |= ENABLE_PROCESSED_INPUT;
if (stdio_allow_signal) {
dwMode |= ENABLE_PROCESSED_INPUT;
} else {
dwMode &= ~ENABLE_PROCESSED_INPUT;
}
}
SetConsoleMode(stdio->hStdIn, dwMode);