summaryrefslogtreecommitdiffstats
path: root/ui/console.c
diff options
context:
space:
mode:
authorRichard Henderson2022-07-04 11:27:21 +0200
committerRichard Henderson2022-07-04 11:27:21 +0200
commitdfe2382f0641f537fdd33399d579215077c8f68c (patch)
treee0fd2a4c113249579b4071ac2a167f68bf38bec0 /ui/console.c
parentMerge tag 'pull-riscv-to-apply-20220703-1' of github.com:alistair23/qemu into... (diff)
parenthw: canokey: Remove HS support as not compliant to the spec (diff)
downloadqemu-dfe2382f0641f537fdd33399d579215077c8f68c.tar.gz
qemu-dfe2382f0641f537fdd33399d579215077c8f68c.tar.xz
qemu-dfe2382f0641f537fdd33399d579215077c8f68c.zip
Merge tag 'kraxel-20220704-pull-request' of https://gitlab.com/kraxel/qemu into staging
usb: canokey fixes. ui: better tab labels, cocoa fix, docs: convert fw_cfg to rst. # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCgAdFiEEoDKM/7k6F6eZAf59TLbY7tPocTgFAmLCndwACgkQTLbY7tPo # cTjNHA/+MT56crVXnjMTdgBRLOuq0cxYnIUptN0JPKx9DTJzdlXEyT+zYD7iIzUt # W0xbOrTLVzU9hfJVh9/5V2HuFmc1eAhfl0BDTzd1TT0kdH6LyUkz5RWgotzo3nvH # 7tnl/sBy48a7diSyQn6K2s8r35ubrX1GNJiJcCLWdVEqvzKKWDEqebs02PxbN/OJ # 9UG9xtkM/QQ1+h74jq5BGKXf08xOhOZIjO274Sn5zievBC9JU6RVkCOlUXiBdk51 # +vNTfKt3c864cstryXSTknYWyVv7zKzCqr7xR7c+fgbt3cN/HmLkM9LGytDMEDl/ # IC0CtKiRN316GgVHHMDT8v8X2dVHNH9ZEEoXRKIbc5jD/tetJw7IIEO7blJphdpV # WE4/bRpJwYVW9UHzig9rPRxsHLs3NSZbNCQEbGUvAbZzS2kq9hnDa/BBtFSYaf+X # RIwR7rY7WhENfSrus1jR5rfWRU7n+q+fcNIFZetUakH1V6Idb0xQir3eM/yM6sBC # nzQSzzLsd3Mwh2ahbnLZ1HkyybZV692usVylKsFLVwcUhCvk+VHccOF31QfrxO/j # ogVzTYYtfrGM5kaknueIMg7XAhjQ04Av70+0b886kZawB3ZE5Ccare2TztHq1jcG # dMdEm7DLaDRm2RXa9NtcbxsIrS0DT2EuFcBnQ1mHMCGql4MidzE= # =Bhbw # -----END PGP SIGNATURE----- # gpg: Signature made Mon 04 Jul 2022 01:29:24 PM +0530 # gpg: using RSA key A0328CFFB93A17A79901FE7D4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" [undefined] # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" [undefined] # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" [undefined] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * tag 'kraxel-20220704-pull-request' of https://gitlab.com/kraxel/qemu: hw: canokey: Remove HS support as not compliant to the spec docs/system/devices/usb/canokey: remove limitations on qemu-xhci hw/usb/canokey: fix compatibility of qemu-xhci hw/usb/canokey: Fix CCID ZLP ui/cocoa: Fix clipboard text release ui/console: allow display device to be labeled with given id Convert fw_cfg.rst to reStructuredText syntax Rename docs/specs/fw_cfg.txt to .rst Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'ui/console.c')
-rw-r--r--ui/console.c41
1 files changed, 40 insertions, 1 deletions
diff --git a/ui/console.c b/ui/console.c
index 9331b85203..e139f7115e 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -2313,11 +2313,50 @@ bool qemu_console_is_gl_blocked(QemuConsole *con)
return con->gl_block;
}
+bool qemu_console_is_multihead(DeviceState *dev)
+{
+ QemuConsole *con;
+ Object *obj;
+ uint32_t f = 0xffffffff;
+ uint32_t h;
+
+ QTAILQ_FOREACH(con, &consoles, next) {
+ obj = object_property_get_link(OBJECT(con),
+ "device", &error_abort);
+ if (DEVICE(obj) != dev) {
+ continue;
+ }
+
+ h = object_property_get_uint(OBJECT(con),
+ "head", &error_abort);
+ if (f == 0xffffffff) {
+ f = h;
+ } else if (h != f) {
+ return true;
+ }
+ }
+ return false;
+}
+
char *qemu_console_get_label(QemuConsole *con)
{
if (con->console_type == GRAPHIC_CONSOLE) {
if (con->device) {
- return g_strdup(object_get_typename(con->device));
+ DeviceState *dev;
+ bool multihead;
+
+ dev = DEVICE(con->device);
+ multihead = qemu_console_is_multihead(dev);
+ if (multihead) {
+ return g_strdup_printf("%s.%d", dev->id ?
+ dev->id :
+ object_get_typename(con->device),
+ con->head);
+ } else {
+ return g_strdup_printf("%s", dev->id ?
+ dev->id :
+ object_get_typename(con->device));
+ }
}
return g_strdup("VGA");
} else {