From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11021113.outbound.protection.outlook.com [40.107.130.113]) by lore.virtuozzo.com (Postfix) with ESMTPS id 49F44803D6 for ; Fri, 4 Sep 2026 10:12:27 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LAW37VGFjK+wCb84ADfI/Z0gJhdRsi0n6mF6kXNl5iq3bYCnPJasMPNLGZFFoIr1AVI/pLt+8fr+NKgcKERfiVPbPoUjDh+w496r9oBQd3kYBSzOJxplkYm5+yW+7bD203uK/4hsYCIEeZEIQsdB2KTlU41U1KLlLAu3PSY/4CXbW9Cvd51P9T9Qt4FpgQi3NDd0EK5/bNz8MrTJ4dBJWuj+LDmMQKbxMNdRjb4LkHpBA7XmVa+nGSdH0Ov7Nk1LyxmdXvE3Vo6tc4cSN4bsnYW9Zaj+Exx2L2WpAe4FcIP7xpy5o/029RmEGcWwCIgJtLFmSIog1gNvUcRJz/qLTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vQPlztJfzCqnez+e6QmyUsBpXrwoPovuK9M0g4+rBg4=; b=SM2UQHHaNp8PKpGjsmDW3TCPjHUXimklGZ6NKf292/DVqHMuVPtlwqHcfo4mXYyTdiOpU3VW25HqGvkDTjzKPEQD5oo8lM6j8xQuEa8ndUVshoFVJ3h8GNppZbCDfT/T+cAEgV20IKP7ZhfvIy5/ZA3VRxK0r6QrGuOBYqY917E725gm5JUdpGMdE3kh8833lH8xlqQvTm7G80wMl8sHN5E/U+IbvFt5lTJt6f1T50MPJe77Dz3uy5z0LrZJQG+YH62CDDeFw2ODJGo0YIhPTbFgilI5ICUYd1KC4dauchjRxb9786mijp4hNgMCq5ACTsma73K4wvTbo2m6sOMfTA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vQPlztJfzCqnez+e6QmyUsBpXrwoPovuK9M0g4+rBg4=; b=dOahd74omwaZI6jeJ/GCHYzBhpXA2W3U5xslPE7RW2wL75P5eS7K8+UyRZCHmmj122H0GzhP3PrwAPLC/lkBuNPbHcXQyUpVVSxTxfiAP0Ya77C71qLvwZ4Ah9BybsiPHwAy5BcRCKPsPLWNPjhC2cIBqS1YTVylkXuqg6e8fXpYBcwAHV/aujwfNUxsJNj0XqyrGsjcjtNNoQGxG5J2izTF7YpP79eqq7gnUKg87FWrx5Qdyoax5hihQxEs5kaBpM1WP62y4qwk0gv9QcmDRMBL7qbi958QRMJlAox9J2XURXhtyQUEhLO5NnifmtbL/m4CvSNW6Z+Pbwc5Dv+6fw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) by DBBPR08MB6105.eurprd08.prod.outlook.com (2603:10a6:10:20d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Fri, 4 Sep 2026 10:12:24 +0000 Received: from VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8]) by VI0PR08MB10656.eurprd08.prod.outlook.com ([fe80::4e37:b189:ddcd:3dd8%7]) with mapi id 15.21.0382.007; Fri, 4 Sep 2026 10:12:24 +0000 From: Andrey Drobyshev To: svt-core@virtuozzo.com Cc: andrey.drobyshev@virtuozzo.com, den@openvz.org Subject: [QEMU HCI-8.0 PATCH 09/15] ui/vnc: use RFB wire types for client message handlers Date: Fri, 4 Sep 2026 13:11:59 +0300 Message-ID: <20260904101206.701978-10-andrey.drobyshev@virtuozzo.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20260904101206.701978-1-andrey.drobyshev@virtuozzo.com> References: <20260904101206.701978-1-andrey.drobyshev@virtuozzo.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: VIUP296CA0052.AUTP296.PROD.OUTLOOK.COM (2603:10a6:800:34b::10) To VI0PR08MB10656.eurprd08.prod.outlook.com (2603:10a6:800:20a::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10656:EE_|DBBPR08MB6105:EE_ X-MS-Office365-Filtering-Correlation-Id: 42293f24-a522-4f17-e81e-08df0a6d01f2 X-LD-Processed: 0bc7f26d-0264-416e-a6fc-8352af79c58f,ExtAddr List-Id: svt-core@virtuozzo.com X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|23010399003|52116014|5113699003|6133799003|18002099003|22082099003|56012099006|3023799007|10067099003|38350700014; X-Microsoft-Antispam-Message-Info: Ktq25CvS4sm+KbIu0lqeGSpsldpfeeTEehSyjrufpvi6aaylQV9jVXwrwMp/AzzqEA8xUUlG0Oe4dXdL+gHaoOXbOiJPcEjk/gpMBVRhm2WdssIxLeIFDfefNY8VaIDOqrk6oFL+AtlMNJpkEs/BfQpVqCpeAVts8PwYOKwSktHDB9wWaIMaeuLgNFEXwg3/DCi7AinRkbR4ieaqFQgSesR2LprsO9TNvvRYSVQ4eur/KCPR7fvGelU75OTChqrogQZlfGW/wWATVVJcx+HItts5ARoMpVB2skWXUqUTYVXOTo9yIPOc7go+b3igP+0QcSVnEF5/Jtpb8rN/QmD2veq65HMp9QCJsrmYDBBMsabTLUctm6+cWgPG9qPI+0xlOKYoQB5oCiJoBSTZODlSZCjkZ0t/Y44TNvyy2fxMy3+5JSAjBnQb73CnrzdPpapamaBUCxavoo7L8jNXs4hZfOviIbasnjg6aFzb1GLNarJZlsfhcSYFrvBZiEeprVdkPjd8nKdY3YyMQp/4uz3F5nvngX8ccdiZqax4vWEQ0YMq+YjglIxuKX5uosKTCJKhgwZOEomHCC1bqyO9Z3FlO0yDQc2BwHnxbhqOeQvlEfuBJqZKrPLmi/Sr8Yyj4P44QZYR7Z6cRM87WOH4nzHDulRZ2BoVv3cmOIhBjzjTGZOP1ge8NUvHK/9PpFxAbhXio7Aw7hF1jurm30QiM5zIwPTXrxrDuYZFAP9cNb95wwQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI0PR08MB10656.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(23010399003)(52116014)(5113699003)(6133799003)(18002099003)(22082099003)(56012099006)(3023799007)(10067099003)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZmtOcmtHTkNSRW1EQ2diRFJmWHRXeFNBVyt1WFh0aHJpck5WQmdUYWl1K1dp?= =?utf-8?B?cENpcmREK1ZoNDVZNWRpQXhLTTh5V3E3SFoxRHdhVFRJWUQxbGY2eldpZitW?= =?utf-8?B?TWhuc2VXbjhSVHd1YjY3anAxaUxlVFk2ZDM2dlV2VHlPWFpuQUxWd1lGeE5s?= =?utf-8?B?RVRVV253NlhPNGVxREpQSDVjZHNmRTNpMkpTZlFoV3BuVUQ4OGg3M1RUVmky?= =?utf-8?B?Y0Z1cFlaZlM4VlVuazI2MzdaSXBWNTl4Z1ByVzR5SHk0N1BXQ09tMEdEK08v?= =?utf-8?B?b0JMbFdDQ1RrendIZUxqWmtlT1ZRM3pxMDBLNXdGUmNPOGl1S3c5d0hnVk1I?= =?utf-8?B?VmhSSFRwSTRmUU1VbXE1RFlYai96blQvUTlDZWEyUE1Ub25ZdGVRcDg3bzhq?= =?utf-8?B?TkdibVBqWEozWUtlK0VFSHduRWNRdGc2ZGh5dU1yRzNJV2UzS2RERjk0YTRs?= =?utf-8?B?NXBRK0wzaHJPWFJUQ1BVM1BGVmNQN2Q1MnhIRk82a1d4eEtUdUd5VVF2KzB3?= =?utf-8?B?aXF2QlRYNlg0eExoMzJKaVNSRUwvZnN4QkRLYUxRY1FrR2U5dkErcUYxZjJq?= =?utf-8?B?TjNrMklGMldQNm9vOW1iK0d5Sm1NczNoMFVjUHlqTFdQNkRkUEpxQUROWFJK?= =?utf-8?B?S3ZtRkdldE85UmQzVnZVcnB4OUpkMnpBbzdOeW05WVU1YS9MY0RMeTNscEh6?= =?utf-8?B?NVZCcTd3MVdBS0JDOFdPdUpjYWZrSm5yQTg1NWlHQXM0azlCTkJxUVVhTXRj?= =?utf-8?B?T1ZIZXIwYzNSZzZUTFh0Z0o1Z2hQZFRCVEVDOGlkMGw0U0xmOGdrQ25lY2d6?= =?utf-8?B?V0pJYWowWHV1a1JyZm9PQ1AyczFkY1g4aWlYeU5KZnIwTGZTc2hrN3MvM2JC?= =?utf-8?B?MnYwK1hYYzduWHNOMnJaaHl5UmdTTTRMM0d3MGQzb0lRSkF4Umg2djdFbmJn?= =?utf-8?B?d2NOMmJ3VmcwdVhKRmViako0MDJ1VkNnNlUveUpCNHEyOHAzQmIya0gycGhG?= =?utf-8?B?dTdES3ovUncrSG91eEUwemtmZHZtWHFLemlHNWErbDQzTENIbC9LK25SZ1pL?= =?utf-8?B?M2dBS0hZWVdwcnZ6RnowdmdJcU8waFVwZTlNZGF6QzRtdThQWTNuQzJ4WXV6?= =?utf-8?B?QU43cEZrTVMrZEJkanREbWJrRlhnTldzZmREZ3JVSk1ieHJ3dHJiZHhaRmxX?= =?utf-8?B?UVpNNVVFY001TlA0ZFlHN3I3dGJiS3l4TkhwVkREWGg0R3ErS0d6UFIvWG1I?= =?utf-8?B?YWNiL25VQUNqMlZSZGRJNi83SFREbE9MV3JCTmhNcWV3bUZ3OHQ2eE5GMXdR?= =?utf-8?B?NlVqYmFUblFCblhOcXpSWmVJRSs3VGRUcGk4ZmxvUUhjbDl1NFlJc3J5SkVS?= =?utf-8?B?UFBTQ0M1Qm85T24zUVZDUm4xeTNkSkM0cmhvRU9UdDJpMUVDUk90OFExckkz?= =?utf-8?B?bTVoWURob3hnRVZwNk5RWVFaNjhKUWU5Y0Rtdzh2d2dydDliMzREbVVYME55?= =?utf-8?B?YUJlQmYzeWxOWHpNM3JnYWJBYmZyR3pyYnlsL2RzejFoL3ZKczVCT2U4K3Vm?= =?utf-8?B?eXN5ejFXMEZQaWFEdFFwYndQL04rY25RSVBxM1RZZXRPYVpFWFdLck9WQWhR?= =?utf-8?B?ekJlNzdDUlVBR1p4MHRzcXVoY3E3bkZMM2M2SnQrRDJEanpXdnhsKzhxVURW?= =?utf-8?B?b1lVSEJhR3JyM3REek9TRGJ4QmVHM3VZNEVJQ1pQaXk4Y0VFKzArMm5FdmVr?= =?utf-8?B?L1VIZkx4Z3g1KzRveFhjT3loTWlIRHpGZkxKcFdIL1ArdDZQdExNemZMeXBo?= =?utf-8?B?andxSDNTNklsdGRuQ0VCTUJYK1IrWHlLSUduTVZXUnNRYTh3UzBWRjNYWUlR?= =?utf-8?B?NitST1JERHhzQUJ3dVJMMlU1akJhaWdwUVQ3ODV2bzdSMWxMMEtwa0RraGJE?= =?utf-8?B?aXF4K2t5QzliOWRwWkQvdUh0TklqTWZXblRKMHZKbW4vN2ZEdkxnY1pvQlNH?= =?utf-8?B?dmFBTGtpeTNNZmNMbXU1WjRxTmVvWjZSQk1vUlJRb3pNeXZib0l1S3Fmc2Vx?= =?utf-8?B?NitGcHB5ZEtjQXp0dEdVRFpTeENvSUx3MmVRd2VjV2VGcGNlRkRNTDJGTmp2?= =?utf-8?B?YTdCaHNhOE1iRGlCcjl3ZlhYTjczTGdBYXZhWnZYKy9MeFdkMEthb3hZeDd5?= =?utf-8?B?Q29TcklHZjU5S3VrRWVZZ2xMSzV2a2lHY0lCaFJXaVZtLzRuWmVIamxHTHFy?= =?utf-8?B?bFQ3YzNMVnVhS3c1M1I0UCtDcWhRN2dEY3RDdzdYK0lIU284MU1GMVVrYkNW?= =?utf-8?B?TFFYMU1ld0taUjE1WWFSWEh0eEh3ZjhPeW1iQnRmR0ZMMDllUVV1WDVIRnBV?= =?utf-8?Q?zPMPspd9WU15goKo=3D?= X-Auto-Response-Suppress: DR, OOF, AutoReply X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42293f24-a522-4f17-e81e-08df0a6d01f2 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10656.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2026 10:12:21.1384 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7m8yckiqvBFMQP8UXGoBHV8gA+FrP4br7foNH8cB5m5NyIqJxfMBIDSXbk8n2Sd5+nL7ZJFod4Nv8KY/YMgDY6TJEPHyyvBY+KwW5c1oFtI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6105 From: Marc-André Lureau Use exact-width unsigned types for the static functions that process RFB client messages, matching the types returned by read_u8(), read_u16(), and read_u32(): - set_pixel_format: uint8_t/uint16_t for pixel format fields - pointer_event: uint8_t button_mask, uint16_t x/y - key_event/ext_key_event: bool down, uint32_t sym/keycode - do_key_event: uint32_t sym - framebuffer_update_request: uint8_t incremental, uint16_t x/y/w/h Drop needless declarations. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Marc-Andre Lureau (cherry picked from commit 3162692a3b67603e2b01f0c6441daa682acd6164) --- ui/vnc.c | 39 +++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/ui/vnc.c b/ui/vnc.c index a311f74e8b9..d76a777cc94 100644 --- a/ui/vnc.c +++ b/ui/vnc.c @@ -610,15 +610,7 @@ bool vnc_display_reload_certs(const char *id, Error **errp) 3) resolutions > 1024 */ -static int vnc_update_client(VncState *vs, int has_dirty); -static void vnc_disconnect_start(VncState *vs); - static void vnc_colordepth(VncState *vs); -static void framebuffer_update_request(VncState *vs, int incremental, - int x_position, int y_position, - int w, int h); -static void vnc_refresh(DisplayChangeListener *dcl); -static int vnc_refresh_server_surface(VncDisplay *vd); static int vnc_width(VncDisplay *vd) { @@ -1780,7 +1772,8 @@ static void check_pointer_type_change(Notifier *notifier, void *data) vs->absolute = absolute; } -static void pointer_event(VncState *vs, int button_mask, int x, int y) +static void pointer_event(VncState *vs, uint8_t button_mask, + uint16_t x, uint16_t y) { static uint32_t bmap[INPUT_BUTTON__MAX] = { [INPUT_BUTTON_LEFT] = 0x01, @@ -1857,7 +1850,7 @@ static void kbd_leds(void *opaque, int ledstate) } } -static void do_key_event(VncState *vs, int down, int keycode, int sym) +static void do_key_event(VncState *vs, int down, int keycode, uint32_t sym) { QKeyCode qcode = qemu_input_key_number_to_qcode(keycode); @@ -2036,7 +2029,7 @@ static const char *code2name(int keycode) return QKeyCode_str(qemu_input_key_number_to_qcode(keycode)); } -static void key_event(VncState *vs, int down, uint32_t sym) +static void key_event(VncState *vs, bool down, uint32_t sym) { int keycode; int lsym = sym; @@ -2051,8 +2044,8 @@ static void key_event(VncState *vs, int down, uint32_t sym) do_key_event(vs, down, keycode, sym); } -static void ext_key_event(VncState *vs, int down, - uint32_t sym, uint16_t keycode) +static void ext_key_event(VncState *vs, bool down, + uint32_t sym, uint32_t keycode) { /* if the user specifies a keyboard layout, always use it */ if (keyboard_layout) { @@ -2063,8 +2056,9 @@ static void ext_key_event(VncState *vs, int down, } } -static void framebuffer_update_request(VncState *vs, int incremental, - int x, int y, int w, int h) +static void framebuffer_update_request(VncState *vs, uint8_t incremental, + uint16_t x, uint16_t y, + uint16_t w, uint16_t h) { if (incremental) { if (vs->update != VNC_STATE_UPDATE_FORCE) { @@ -2267,10 +2261,11 @@ static void send_color_map(VncState *vs) vnc_unlock_output(vs); } -static void set_pixel_format(VncState *vs, int bits_per_pixel, - int big_endian_flag, int true_color_flag, - int red_max, int green_max, int blue_max, - int red_shift, int green_shift, int blue_shift) +static void set_pixel_format(VncState *vs, uint8_t bits_per_pixel, + uint8_t big_endian_flag, uint8_t true_color_flag, + uint16_t red_max, uint16_t green_max, + uint16_t blue_max, uint8_t red_shift, + uint8_t green_shift, uint8_t blue_shift) { if (!true_color_flag) { /* Expose a reasonable default 256 color map */ @@ -2303,15 +2298,15 @@ static void set_pixel_format(VncState *vs, int bits_per_pixel, vs->client_pf.rmax = red_max ? red_max : 0xFF; vs->client_pf.rbits = ctpopl(red_max); vs->client_pf.rshift = red_shift; - vs->client_pf.rmask = red_max << red_shift; + vs->client_pf.rmask = (uint32_t)red_max << red_shift; vs->client_pf.gmax = green_max ? green_max : 0xFF; vs->client_pf.gbits = ctpopl(green_max); vs->client_pf.gshift = green_shift; - vs->client_pf.gmask = green_max << green_shift; + vs->client_pf.gmask = (uint32_t)green_max << green_shift; vs->client_pf.bmax = blue_max ? blue_max : 0xFF; vs->client_pf.bbits = ctpopl(blue_max); vs->client_pf.bshift = blue_shift; - vs->client_pf.bmask = blue_max << blue_shift; + vs->client_pf.bmask = (uint32_t)blue_max << blue_shift; vs->client_pf.bits_per_pixel = bits_per_pixel; vs->client_pf.bytes_per_pixel = bits_per_pixel / 8; vs->client_pf.depth = bits_per_pixel == 32 ? 24 : bits_per_pixel; -- 2.47.1