From nobody Fri Nov 14 16:50:35 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1760907909; cv=none; d=zohomail.com; s=zohoarc; b=HVivntrFzrpXxnKXdyvYFUI5ITeKvr1Ey4tbPwTVu1AlQZjCxVOn5i6dShxsPlXSQ1Nib4hVWm5huTgv1VccF9K189dF8F657BEARw/5YK6IbP6fCYsSu3zzboeXY6+qfBo/CTUH01y2fdNQZoCtmiCtO+g0xJLhvmCtAUNcbeg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760907909; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=CFuBYoXthwAAHQXYSal9xNPgZEHCC/OlTSTKqa/XfA4=; b=FXmtGVSWGUT+JsgUhdIL/OuzNnT1xZEeU0FBJUVUj42R1Ybodb1E2F60p85eHSb6km0DQWkZiIFfx1ueS0catVw2pUsvT+zz1uNJBT8qqFlaaJ08rG4ZoemxMy5ORkORk+EY7zZwcLwMvv0sIUEGEtFHw1PHYFH4/1MBOhFzPIM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760907909497468.8012957169675; Sun, 19 Oct 2025 14:05:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vAaYv-0007Lr-3k; Sun, 19 Oct 2025 17:03:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vAaYt-0007KR-BL for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:31 -0400 Received: from mail-ej1-x62b.google.com ([2a00:1450:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vAaYr-0001zM-KD for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:31 -0400 Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-b00a9989633so798408466b.0 for ; Sun, 19 Oct 2025 14:03:29 -0700 (PDT) Received: from archlinux (dynamic-002-245-026-170.2.245.pool.telefonica.de. [2.245.26.170]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-63c4945f003sm5107655a12.27.2025.10.19.14.03.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Oct 2025 14:03:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760907808; x=1761512608; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CFuBYoXthwAAHQXYSal9xNPgZEHCC/OlTSTKqa/XfA4=; b=Y+dJ/NoYKu1+YDTuh7hko2Yt16HlbL7+2PPK2ONhEYLniqYtt6QFAvuK8TjlV7BMPy hGJQINtMMs/0ghYiyil2bo9KRspxnT+0QiHYOIG/rtPzAFyiiLJ7A/KUGTmC4iiNQlza ZbK9Np+FkkEJ+5D3ivgQWJ+LaPcJAv/7XDUSJLsQ7GL6UdUdACcxvCO5Y0ZXDjJ/XV+x sPF4WrlXK7B0lFnCmt8o+ShMyd4uZhfZu/hr/eet1KJptAUu2LGwZt73mKUfgAy5UJ1v hMqp5ApNHk1U7eb9E9JH9LJHUcB83h0aNWE5dvF9e7pTI3wWv3qfsI4f5fnqNeIw630i 8qbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760907808; x=1761512608; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CFuBYoXthwAAHQXYSal9xNPgZEHCC/OlTSTKqa/XfA4=; b=Rl9J7+iisjwJEGNKkOJ+6GSMojsy+oNpVjfIyy2LPp4fMf9F80qMclBN4yrasZ/1BN hdZb08JGf6nUmvE1xOpMRBeMVjaxF2sYQwierCPkgZKYr7GzBhTKA2OU+MqIqr57ptpE AYfidIeiidZIKlUp9rKT9V6n5NEVIK6+sFfBtGHVqXEpIOsrCiyXtvP3K6zoEYgjQQ1q ytoXend9E9ldmCJsCy/chlZHzBcaSZKquRBKppLQPRk7KGOkWwudXFTPwojf//dGJFod mNugfVXWVBmlRpr13IMsVEgpi1FqOyZc07EqtGvAx8oRofi8CJiLHkNe9bpRcQ6WSmI4 P2fQ== X-Gm-Message-State: AOJu0YxaNTyhvT9g1T5l7rcLelpnvjFpCklwhEMJRKOmdu28DfNinXmt z2NRRZUWTajQu5ehJMjzuPkUqpISot9WX4/vE3tNxPCkItQ7U01yVtrR4OPaJqC5 X-Gm-Gg: ASbGncuNRoXEuhOHoIPhihrUxC/VOnp6jzfrRDs08TMhal51FNnP7utPHn4pS8tXrJQ ecRrBMQrYVkYFWwZkMzmcauumbx4z09bdHDgqvVns2c4IwbP4p4jHLUWNTckOzsUavKRMAAWQRS NX37xNpd+AlJ/Gqv1SIIVbQKm1p4zoQQ3vdgqcm1Zdh2OcbwkhkZ8/DGRGzGGl7o4u/oXty+rQJ g+s5/x+1hxVb0hJ6YYxYXS2RD4A6Nz9fbfAbLfG1f9r9dQZTR3rWdqbvnCurV3u4rh3Gm2ztT0/ vs7QJeXtTELRfBHTbu6rTIiP997nr3h4k/zYLOYXVpfsXMtFFRqdx3XoAnRrQycn+7N9OUeKSop d5J/gdiRc6eW1TNgGt7RPG6K3DAhQPb/cKdQOayw0EnUByvFZA0nTYNpc5MT17vEoXbpMqD/vqy V46w/mdFZ0+MszuWznHwC0IB+T8RNUk08Pb1iqti+ksrs5UopTSL2BvQ2ebA== X-Google-Smtp-Source: AGHT+IEq801hCLtUohQJ3LOj0X3B+ZbYdyw4N64PsS7W265OlZV1xfYspqNnKezI+v90AM1dJWgHzw== X-Received: by 2002:a17:907:3992:b0:b40:c49b:709 with SMTP id a640c23a62f3a-b605249d84dmr1777498366b.8.1760907807556; Sun, 19 Oct 2025 14:03:27 -0700 (PDT) From: Bernhard Beschow To: qemu-devel@nongnu.org Cc: Marcel Apfelbaum , Laurent Vivier , "Michael S. Tsirkin" , Eduardo Habkost , Zhao Liu , kvm@vger.kernel.org, Michael Tokarev , Cameron Esfahani , qemu-block@nongnu.org, Paolo Bonzini , qemu-trivial@nongnu.org, Laurent Vivier , Richard Henderson , Roman Bolshakov , Phil Dennis-Jordan , John Snow , Fabiano Rosas , Gerd Hoffmann , Sunil Muthuswamy , Marcelo Tosatti , Bernhard Beschow Subject: [PATCH v3 01/10] hw/timer/i8254: Add I/O trace events Date: Sun, 19 Oct 2025 23:02:54 +0200 Message-ID: <20251019210303.104718-2-shentey@gmail.com> X-Mailer: git-send-email 2.51.1.dirty In-Reply-To: <20251019210303.104718-1-shentey@gmail.com> References: <20251019210303.104718-1-shentey@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::62b; envelope-from=shentey@gmail.com; helo=mail-ej1-x62b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1760907913708158500 Content-Type: text/plain; charset="utf-8" Allows to see how the guest interacts with the device. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/timer/i8254.c | 6 ++++++ hw/timer/trace-events | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/hw/timer/i8254.c b/hw/timer/i8254.c index 4b25c487f7..7033ebf50d 100644 --- a/hw/timer/i8254.c +++ b/hw/timer/i8254.c @@ -29,6 +29,7 @@ #include "hw/timer/i8254.h" #include "hw/timer/i8254_internal.h" #include "qom/object.h" +#include "trace.h" =20 //#define DEBUG_PIT =20 @@ -130,6 +131,8 @@ static void pit_ioport_write(void *opaque, hwaddr addr, int channel, access; PITChannelState *s; =20 + trace_pit_ioport_write(addr, val); + addr &=3D 3; if (addr =3D=3D 3) { channel =3D val >> 6; @@ -248,6 +251,9 @@ static uint64_t pit_ioport_read(void *opaque, hwaddr ad= dr, break; } } + + trace_pit_ioport_read(addr, ret); + return ret; } =20 diff --git a/hw/timer/trace-events b/hw/timer/trace-events index c5b6db49f5..2bb51f95ea 100644 --- a/hw/timer/trace-events +++ b/hw/timer/trace-events @@ -49,6 +49,10 @@ cmsdk_apb_dualtimer_read(uint64_t offset, uint64_t data,= unsigned size) "CMSDK A cmsdk_apb_dualtimer_write(uint64_t offset, uint64_t data, unsigned size) "= CMSDK APB dualtimer write: offset 0x%" PRIx64 " data 0x%" PRIx64 " size %u" cmsdk_apb_dualtimer_reset(void) "CMSDK APB dualtimer: reset" =20 +# i8254.c +pit_ioport_read(uint8_t addr, uint32_t value) "[0x%" PRIx8 "] -> 0x%" PRIx= 32 +pit_ioport_write(uint8_t addr, uint32_t value) "[0x%" PRIx8 "] <- 0x%" PRI= x32 + # imx_gpt.c imx_gpt_set_freq(uint32_t clksrc, uint32_t freq) "Setting clksrc %u to %u = Hz" imx_gpt_read(const char *name, uint64_t value) "%s -> 0x%08" PRIx64 --=20 2.51.1.dirty From nobody Fri Nov 14 16:50:35 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1760907924; cv=none; d=zohomail.com; s=zohoarc; b=Rr2YHPmhlPTFRLdG3A/GmqAJcNohg+LDnBo3ywmuEiA216UgywGXIX7xTbOG81NPbX6ZvfPV867Y8UP6RIwjfEqg5V9FbjfF2zRzEa6xa3pGKPlx+HDX8iLdX5la3QXFw+sJAVkv3XlOb4+EhdHjM7sWaUbMyGeWmeHfaz3NC8k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760907924; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=NYtLEyH2FfideJwdnFZ4JM8eULzVedauT+XtbsfYWyM=; b=HFCYiTZmSeN9j064W48a7gOVkOOW/NKpGfOhucoHlbsMBK/qWIh9NkNIUwVJaJWuNxkZFdfzU3ue3jMySUY2ICjnWN/FuKgp93pXb6Iw7ztCURh7ihBC40Vwhzs/tsMb+viNMKGfUnz1D2MJPfe19pdiznwMtuVfQEsW7PVUmOw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760907924142183.00585001994148; Sun, 19 Oct 2025 14:05:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vAaYx-0007Mv-Ax; Sun, 19 Oct 2025 17:03:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vAaYv-0007Lt-7A for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:33 -0400 Received: from mail-ed1-x52c.google.com ([2a00:1450:4864:20::52c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vAaYt-0001zs-FX for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:32 -0400 Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-63c489f1e6cso2884731a12.1 for ; Sun, 19 Oct 2025 14:03:30 -0700 (PDT) Received: from archlinux (dynamic-002-245-026-170.2.245.pool.telefonica.de. [2.245.26.170]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-63c4945f003sm5107655a12.27.2025.10.19.14.03.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Oct 2025 14:03:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760907809; x=1761512609; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NYtLEyH2FfideJwdnFZ4JM8eULzVedauT+XtbsfYWyM=; b=O/0Onks4Q5sPZH9OaKbqChVK1t1GbJh+YfETYocDRJoM6mDM+Y5AfeYIQcM4kYqHOp kMvpujLQ1xYcrHGu34QOxCbpX4FvKkDx3bn/S50NEdrUqcMwAwYpyhMRv9BpSaLuKNni Gn5ftRLpCW25uLsevXMyE3zD2ACKRlkkZhRtJ3q/qeO6JVz2QuSlB6RAGHE0ErXRnfSl s2vO2ykgjPnhbrylX1+hphxEIll0QIRv1TNpmQL6VSCzON4nMIhcELJB1Aosnbekc7Iy fLKp7lRAHIYi+S88OS+8ojv/1hMXXoHFsEbePCorSEAZ7pJScAox5Xe5S134sJzaO5Or HVzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760907809; x=1761512609; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NYtLEyH2FfideJwdnFZ4JM8eULzVedauT+XtbsfYWyM=; b=hBs2+5yaeRyWWC6ybK6C5Has0pN9NbKHYOuOkqJ3pj9EYgvT07zpzq85gg+8UX2NOy stvXoOAXYMBX3zm1a8rNq0KFtaytrhOfBG18IJJGMiXfrIw9rkO073m7N1M34DkHXJjS dkBKxGDGJZ+iwL+0eg1lrmQmSm4DukrAcsda3/6fDMPdzGoG0h1KUAENq2vY1CymIksp XiXZyR4ucMgZQRdu/rJfk9FnzkKKe4KaMl5HjO+ia2pwHc3UxTI/Ur3EIN/ipSyYww6c 0G+rJnij8orj6dL76b3fkdAcxvSgrryr+b2HY/RXm8XLFzfMNiZXYOGfq8aXSAvsUcCY dj/g== X-Gm-Message-State: AOJu0YycdfY6U5znuNN6Cr7ETu5inrVnSGEr7/xXrOKpBosjsI/j8OLV 0pAl/y6ZmKr5GNbVNOXiotTK/0hNaQj5YykXd2Zf8vmek2fT90C2X0gChFx/YZBI X-Gm-Gg: ASbGncvd9SnwRtv6fpFH1HqYOq/6ml6BWcrlrfki+E6malM4G45S/FV7/vJpfuJ4T7h 0CUMWyPvFiilsMeUK9xRH/togXeOBvmNbFgMTj/fLGg73/4avrs23U19CcD6xbpMMQo22WSgjqv yiNOnL0sbwlcosYO9E2j0W9DiKfjxcleOXBCaGTiAtoD3gwRnAJtGxBH1EM1fxEDOvY7v5uE08U ojxLiITnOx6+LYKJQmy0+kQ5VzPbGCYW6dWzyfemRXfyrTzaNboLtATMQuWmOr+m8RcTmCWz0xn W8a2AEeNkNx2tVNs5nHhHSgNXLUHmPMSmaZGNqqURoOBM2XcUxeE9ixmV0btAJ0sP7uT8q4jeeR Ia+KadaatGV4pJuj8ZdVcK5iypT+jflQmQk6A2AZMa+lGag6sbq3CUEa9xlPAEs7sbCyZ7IClMw OJJaLRCRCzxVmL/EtsbliKvhuW6YSvnILHJsYYOVoNXqku+tdHQiSQweqwaA== X-Google-Smtp-Source: AGHT+IGYnIE2LGluxdoaFLFcoZghgUMjydsnhpN1IFNQiDdS64MjZIRWB4CUyErfVctu0dYes/zOGQ== X-Received: by 2002:aa7:d1c4:0:b0:633:14bb:dcb1 with SMTP id 4fb4d7f45d1cf-63bfde71dc3mr10725278a12.11.1760907809154; Sun, 19 Oct 2025 14:03:29 -0700 (PDT) From: Bernhard Beschow To: qemu-devel@nongnu.org Cc: Marcel Apfelbaum , Laurent Vivier , "Michael S. Tsirkin" , Eduardo Habkost , Zhao Liu , kvm@vger.kernel.org, Michael Tokarev , Cameron Esfahani , qemu-block@nongnu.org, Paolo Bonzini , qemu-trivial@nongnu.org, Laurent Vivier , Richard Henderson , Roman Bolshakov , Phil Dennis-Jordan , John Snow , Fabiano Rosas , Gerd Hoffmann , Sunil Muthuswamy , Marcelo Tosatti , Bernhard Beschow Subject: [PATCH v3 02/10] hw/audio/pcspk: Add I/O trace events Date: Sun, 19 Oct 2025 23:02:55 +0200 Message-ID: <20251019210303.104718-3-shentey@gmail.com> X-Mailer: git-send-email 2.51.1.dirty In-Reply-To: <20251019210303.104718-1-shentey@gmail.com> References: <20251019210303.104718-1-shentey@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::52c; envelope-from=shentey@gmail.com; helo=mail-ed1-x52c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1760907927484158500 Content-Type: text/plain; charset="utf-8" Allows to see how the guest interacts with the device. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/audio/pcspk.c | 10 +++++++++- hw/audio/trace-events | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/hw/audio/pcspk.c b/hw/audio/pcspk.c index a419161b5b..f8020593b0 100644 --- a/hw/audio/pcspk.c +++ b/hw/audio/pcspk.c @@ -34,6 +34,7 @@ #include "hw/audio/pcspk.h" #include "qapi/error.h" #include "qom/object.h" +#include "trace.h" =20 #define PCSPK_BUF_LEN 1792 #define PCSPK_SAMPLE_RATE 32000 @@ -137,13 +138,18 @@ static uint64_t pcspk_io_read(void *opaque, hwaddr ad= dr, { PCSpkState *s =3D opaque; PITChannelInfo ch; + uint8_t val; =20 pit_get_channel_info(s->pit, 2, &ch); =20 s->dummy_refresh_clock ^=3D (1 << 4); =20 - return ch.gate | (s->data_on << 1) | s->dummy_refresh_clock | + val =3D ch.gate | (s->data_on << 1) | s->dummy_refresh_clock | (ch.out << 5); + + trace_pcspk_io_read(s->iobase, val); + + return val; } =20 static void pcspk_io_write(void *opaque, hwaddr addr, uint64_t val, @@ -152,6 +158,8 @@ static void pcspk_io_write(void *opaque, hwaddr addr, u= int64_t val, PCSpkState *s =3D opaque; const int gate =3D val & 1; =20 + trace_pcspk_io_write(s->iobase, val); + s->data_on =3D (val >> 1) & 1; pit_set_gate(s->pit, 2, gate); if (s->voice) { diff --git a/hw/audio/trace-events b/hw/audio/trace-events index b8ef572767..30f5921545 100644 --- a/hw/audio/trace-events +++ b/hw/audio/trace-events @@ -23,6 +23,10 @@ hda_audio_format(const char *stream, int chan, const cha= r *fmt, int freq) "st %s hda_audio_adjust(const char *stream, int pos) "st %s, pos %d" hda_audio_overrun(const char *stream) "st %s" =20 +# pcspk.c +pcspk_io_read(uint16_t addr, uint8_t val) "[0x%"PRIx16"] -> 0x%"PRIx8 +pcspk_io_write(uint16_t addr, uint8_t val) "[0x%"PRIx16"] <- 0x%"PRIx8 + #via-ac97.c via_ac97_codec_write(uint8_t addr, uint16_t val) "0x%x <- 0x%x" via_ac97_sgd_fetch(uint32_t curr, uint32_t addr, char stop, char eol, char= flag, uint32_t len) "curr=3D0x%x addr=3D0x%x %c%c%c len=3D%d" --=20 2.51.1.dirty From nobody Fri Nov 14 16:50:35 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1760907939; cv=none; d=zohomail.com; s=zohoarc; b=S+7uIa/Q+6A3pn077W00M6ZFPDfRRCBVaOxj6SnxnnUKBrKQgB3NjfD+jvAOOnrO1t1okS2Q7FoI/xvDv4yZmmSNC7QsBYxD+/XSjsMZil/aEpW/McxNU1fRt1YQ5mhCjZpiLr5DnZyIqBORmIt68i6dZ/N0X/dtZfJBSlYd86I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760907939; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=n8oXWw/dktgNDXuS33Gpiga0QxIzazhu/qxi0riXcZ8=; b=DRLriyCjH+OQe7snMV/i/87s2PEVriWa0ZQcY3qpuUZh7GyAo+GG4xYSPt4eEC/G9Eszh+UiuJKDgRAulFnTtHaanDvR1fIk/749DZma3NikZ1VVKGyjyNq/jGypJClPZkz9SMjjf57NfgOtARNqR3nJTzA0shsLTtDUO6QwhbI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760907939220488.4279706056718; Sun, 19 Oct 2025 14:05:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vAaZ1-0007Om-4K; Sun, 19 Oct 2025 17:03:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vAaYy-0007Nv-Gi for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:37 -0400 Received: from mail-ed1-x52b.google.com ([2a00:1450:4864:20::52b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vAaYv-00020X-Ln for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:36 -0400 Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-63c0eb94ac3so6390658a12.2 for ; Sun, 19 Oct 2025 14:03:33 -0700 (PDT) Received: from archlinux (dynamic-002-245-026-170.2.245.pool.telefonica.de. [2.245.26.170]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-63c4945f003sm5107655a12.27.2025.10.19.14.03.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Oct 2025 14:03:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760907812; x=1761512612; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=n8oXWw/dktgNDXuS33Gpiga0QxIzazhu/qxi0riXcZ8=; b=l4Jvy26MOGYbnAbYUONnTEj9rCv2eYR98vQ1+Xr6wmViLyUlCCpZIC1UjzSKuAfIlY WHPsuiXON0hyw9///0ypX8Y2FKQybBK6gAAlJGBgRAhFNi/r082LvqsBm4y4uppix3Xc cYiPkzgvg2uO+mCft2QBaosHDcofQIUeRxB06GLv9pXOlJfv1hTwdeITY7DMXRh8lmgL 1iCfiHv5S4SQ4lcI1JR+r0kHi4cfzlYzKVOQ3uilTqcNA+BVz/JZ9NbiIzh9n+WAyPn5 7JTiCyLXvvSOGPSFiOB1LJAkLQLTKxkmRot50H/VYHCi9yPJEDfh7groFgFlkF86rnzO R5wQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760907812; x=1761512612; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=n8oXWw/dktgNDXuS33Gpiga0QxIzazhu/qxi0riXcZ8=; b=N6+3ipwbk3aiMgudtLtUz6vFdCYDU9l2wuX3hD67/7cFguc2nLqHRaWbkMPasaXkGi wSrKZsC7z+H5zy5EhwZlt7g9OTBvMZnx45QwsVLqnIIkPhbAY2hRq79N1PB6c1O6Li1e CT0VBkAuMLd5120t+BI1hprHVp+hDyWZlcttjz26t8Jyzvd9JBm2kWnMzzFgf1YDEOlU teTIJmhwBNMHaw0notURInAnHBQEiLo8I4r3WmOes36B5aFeB7KVnTGFvN8Gf9QBETbG hafJFYmjDH3QxJ8eW1DFYvaL0Y7rh3GGqdzm12wyrXwP8mJ6AomIJRNM84Z2u2g1rdNJ +HZQ== X-Gm-Message-State: AOJu0YwBIMczcd7f3UiTyM0UB3IrGx/6SsrSE55l26B/a3yt2bg0lWrp vAnnAvpPmK42fsqAC6Nqr5NQjOwA2kHWHrXSPApcZqjd9GNp9NkBWuuoRPwAQy4y X-Gm-Gg: ASbGncv7OxRiuCx6s6N9aDLWMDvyDVk19jO+C7a5ZkKS1fM+fU/sARuBUog8Jg1bcr0 FkuS9XL3cTmJOl+QVer0n1V/mBkgo804fBRiYVexmQVBpa7rjV/62oZkc9kn6QaVLMfaJWEcNKz MXgDPYx97X1c4comhqkOLQ/EZWQu/+/+gbRR7YF5NnRPAxCHgqPN4AXWqlFAUo2YT1lN2EadJ9s 3j46oeoWSbQVc/MEfDrCGzGNkDDkWC9XRUhKCnxg3Xm4Vey68lXO7Chn5U/5qjd+yJfj++zbOCq QnaHkQQJXaPHgq8XPueu8nfi4IVsBQAavhCiDG4aNSCXwLW83EPzrswDtEmlA+cy6PxV3I+LwrD /zugFGtjsTaYAdsTndZLLhuSoVwYBWTT47ez/FDz9bOJC6wohNalUMleulnEG3ApWqOQS6eGvb/ Z/imsk+UxFsQArN4u1FC5HGibd2HeT1xemIIPtXZSQNMTX4KL/SWloBMOKSOw7rrBMTvGcnR69P 4IZ9MU= X-Google-Smtp-Source: AGHT+IH6NwbtkR9KVaWZMruOH8E87GbFPMByc6ZZlCT4WKF8R8KBz5UNoPmnk9epw2Cnyh1bEEgmwg== X-Received: by 2002:a05:6402:5247:b0:63c:4d42:9928 with SMTP id 4fb4d7f45d1cf-63c4d429ba7mr5372081a12.7.1760907811673; Sun, 19 Oct 2025 14:03:31 -0700 (PDT) From: Bernhard Beschow To: qemu-devel@nongnu.org Cc: Marcel Apfelbaum , Laurent Vivier , "Michael S. Tsirkin" , Eduardo Habkost , Zhao Liu , kvm@vger.kernel.org, Michael Tokarev , Cameron Esfahani , qemu-block@nongnu.org, Paolo Bonzini , qemu-trivial@nongnu.org, Laurent Vivier , Richard Henderson , Roman Bolshakov , Phil Dennis-Jordan , John Snow , Fabiano Rosas , Gerd Hoffmann , Sunil Muthuswamy , Marcelo Tosatti , Bernhard Beschow Subject: [PATCH v3 03/10] hw/rtc/mc146818rtc: Convert CMOS_DPRINTF() into trace events Date: Sun, 19 Oct 2025 23:02:56 +0200 Message-ID: <20251019210303.104718-4-shentey@gmail.com> X-Mailer: git-send-email 2.51.1.dirty In-Reply-To: <20251019210303.104718-1-shentey@gmail.com> References: <20251019210303.104718-1-shentey@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::52b; envelope-from=shentey@gmail.com; helo=mail-ed1-x52b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1760907942719154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/rtc/mc146818rtc.c | 14 +++----------- hw/rtc/trace-events | 4 ++++ 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/hw/rtc/mc146818rtc.c b/hw/rtc/mc146818rtc.c index f9f5cf396f..61e9c0bf99 100644 --- a/hw/rtc/mc146818rtc.c +++ b/hw/rtc/mc146818rtc.c @@ -43,16 +43,10 @@ #include "qapi/error.h" #include "qapi/qapi-events-misc.h" #include "qapi/visitor.h" +#include "trace.h" =20 -//#define DEBUG_CMOS //#define DEBUG_COALESCED =20 -#ifdef DEBUG_CMOS -# define CMOS_DPRINTF(format, ...) printf(format, ## __VA_ARGS__) -#else -# define CMOS_DPRINTF(format, ...) do { } while (0) -#endif - #ifdef DEBUG_COALESCED # define DPRINTF_C(format, ...) printf(format, ## __VA_ARGS__) #else @@ -439,8 +433,7 @@ static void cmos_ioport_write(void *opaque, hwaddr addr, if ((addr & 1) =3D=3D 0) { s->cmos_index =3D data & 0x7f; } else { - CMOS_DPRINTF("cmos: write index=3D0x%02x val=3D0x%02" PRIx64 "\n", - s->cmos_index, data); + trace_mc146818_rtc_ioport_write(s->cmos_index, data); switch(s->cmos_index) { case RTC_SECONDS_ALARM: case RTC_MINUTES_ALARM: @@ -726,8 +719,7 @@ static uint64_t cmos_ioport_read(void *opaque, hwaddr a= ddr, ret =3D s->cmos_data[s->cmos_index]; break; } - CMOS_DPRINTF("cmos: read index=3D0x%02x val=3D0x%02x\n", - s->cmos_index, ret); + trace_mc146818_rtc_ioport_read(s->cmos_index, ret); return ret; } } diff --git a/hw/rtc/trace-events b/hw/rtc/trace-events index b9f2852d35..d2f36217cb 100644 --- a/hw/rtc/trace-events +++ b/hw/rtc/trace-events @@ -32,6 +32,10 @@ m48txx_nvram_io_write(uint64_t addr, uint64_t value) "io= write addr:0x%04" PRIx6 m48txx_nvram_mem_read(uint32_t addr, uint32_t value) "mem read addr:0x%04x= value:0x%02x" m48txx_nvram_mem_write(uint32_t addr, uint32_t value) "mem write addr:0x%0= 4x value:0x%02x" =20 +# mc146818rtc.c +mc146818_rtc_ioport_read(uint8_t addr, uint8_t value) "[0x%02" PRIx8 "] ->= 0x%02" PRIx8 +mc146818_rtc_ioport_write(uint8_t addr, uint8_t value) "[0x%02" PRIx8 "] <= - 0x%02" PRIx8 + # goldfish_rtc.c goldfish_rtc_read(uint64_t addr, uint64_t value) "addr 0x%02" PRIx64 " val= ue 0x%08" PRIx64 goldfish_rtc_write(uint64_t addr, uint64_t value) "addr 0x%02" PRIx64 " va= lue 0x%08" PRIx64 --=20 2.51.1.dirty From nobody Fri Nov 14 16:50:35 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1760907952; cv=none; d=zohomail.com; s=zohoarc; b=CPHEimmt5+4dpXE880OxgFniTD/B+fO8SWYw/IOcjwjJdeePvZeIMhgiSb2Bk4NuQreFt4ZhuEUyncAozupr2Mi0f1QrRdr8BMx3VoitWq2oyu0dnSDz1H7ua6VCtfjx2sujNbe1tugErFxir/MD/Ctvv8YTPtSJzNhXlyq8ZDQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760907952; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=HtQk0GJuCq/JgD3T73Q/ujEtbCnLstw5lfgjKUjPFqo=; b=TVs9a9BXQsHog/58gE0v0hGrG/9/GZf0FZarSOFRItwBiankcNEAvvHBTXRlivqoVJEpWBOFWsOA9vJL7Gcny2XeRl3SzKADaeJY/QTb/NgjaO4ipQAC78OtdpBkCPYd0XlIgM0A0seA47yYBZAbn/LasqIrkJZOicZss9+mqEQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760907952838709.539302047341; Sun, 19 Oct 2025 14:05:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vAaZ1-0007Pi-E6; Sun, 19 Oct 2025 17:03:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vAaYy-0007Nw-Pk for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:37 -0400 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vAaYx-00020u-4Q for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:36 -0400 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-63bf76fc9faso6786556a12.2 for ; Sun, 19 Oct 2025 14:03:34 -0700 (PDT) Received: from archlinux (dynamic-002-245-026-170.2.245.pool.telefonica.de. [2.245.26.170]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-63c4945f003sm5107655a12.27.2025.10.19.14.03.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Oct 2025 14:03:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760907813; x=1761512613; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HtQk0GJuCq/JgD3T73Q/ujEtbCnLstw5lfgjKUjPFqo=; b=aAA8+gX6R/9tKpIDsefUJKgfN1QjO3XBKsLwlPBIrV+92Pc6eRjs8xdErmJo5mHgYM xMko4V2v+A4zOZEbYU29bZLHPqXWTgogreSxDcjEvu7M5MzaGWCwd8hghr8xPA76bvd/ Jj6EOKPWxM2mtpUELd504kMLw+wTk/BPl0DMeBbWRCGAWKP/IAP2w7c5VMOYUlyykiXD 7Nw5zyYiCa0yY1902MwnxF7fJcA6in1GOr908PJbgqUNurYd4C5xShHheT0MwLbGLYVs iDScGqanfQ0AFw8MKXpFBdro4p1ijHywl6U8ty4D6doLK3L40vEylMC6jEvUytqQlGN1 jMiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760907813; x=1761512613; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HtQk0GJuCq/JgD3T73Q/ujEtbCnLstw5lfgjKUjPFqo=; b=MRMT4Dwvsv0uMIib8LIzeYL+jfjJTOftjR62jW+fb+YFIZc1Z1+0eEsj/27ydiPsbd dBP2DaE/phPpYZBysBP9/UQTxYJBrYA8fNye/fiaI6kjFpQhCGXgzxV/7TxCQWf8xuTs +EZK2EBWY6zOHajSrifuye435rRb+ljzrL/yH5uRSoUykhQps9mhLiX++QqovjKLwFx4 0+QNzJ2WFUA7jEmyN4FxP3XlSaziaV/Ec08WER0f1i8PiikF85KDpiezOVeg8FTewOmY f+dRsbg8xvSfu82W4hzelEYy/CfYw2d+lasjZgx5SQAuvCsAb+3CZP1CJek0WG3rTyIe lkQQ== X-Gm-Message-State: AOJu0Yy0O0ykFOE0xTc1QYU9JRA2+acaPayYcwhPyMw80eODRDmhd6K1 IYxGauZEtFQR7c6AAnRJT6lp37oWRDthzTM0CKt/GuK4/mV3KClX69MSke/rJAWO X-Gm-Gg: ASbGncva+0xzUoUKIuGYVd7I/iMOwqYTvNMmpGCOOV7KyA0HU541MGYwbDeGv7lTlyB rVLkRG7LraogLJOMFHgGO1Cs++oQekSnOH165BxmhU9KABRtcz4Bu23h6MsJdLtDltIVEvypYtf hwqAckryPiEyuw6uz2SF7torXej3ByTUHLs4aSNlMMlkVcS/7x1o+dEr6CFp2RTmZPH/K1Ts1KK FlbWPWJA3gdbFKRxXfHO/57j2c55NHY/fZKkLvdRp8unNJSCjvaQxcAQO4O7bVDHRT6kc2xOwzx 0E5QCqmx6XASNM1mZosBFV8BBh6cJtXtny4rDl7bIT7HJsWsjS2Bp4elKeDkqPRNLaVIOZ/tQQL UTyjeVa+ZeDsHUbh8fxqDlkHAlZsH01mPDIWH/X793rNuOYEHiymk9shA3hLTJYkx1xvn8B4U13 rf/jqsknRdghGp4UV3p7tWAJYhC4rliXqLKYzd8+MtVnUfvfbXDqeH668ut4UCiRtXMHyl X-Google-Smtp-Source: AGHT+IHY1dRS1/AWHrm1rZJe4vZW5z0gZL042o9tHw8kn9F5IjQFgcfvzYbj4kRdNYLhXWOzFUb3tQ== X-Received: by 2002:a05:6402:5189:b0:63c:3efe:d970 with SMTP id 4fb4d7f45d1cf-63c3efeee6emr6840546a12.31.1760907813103; Sun, 19 Oct 2025 14:03:33 -0700 (PDT) From: Bernhard Beschow To: qemu-devel@nongnu.org Cc: Marcel Apfelbaum , Laurent Vivier , "Michael S. Tsirkin" , Eduardo Habkost , Zhao Liu , kvm@vger.kernel.org, Michael Tokarev , Cameron Esfahani , qemu-block@nongnu.org, Paolo Bonzini , qemu-trivial@nongnu.org, Laurent Vivier , Richard Henderson , Roman Bolshakov , Phil Dennis-Jordan , John Snow , Fabiano Rosas , Gerd Hoffmann , Sunil Muthuswamy , Marcelo Tosatti , Bernhard Beschow Subject: [PATCH v3 04/10] hw/rtc/mc146818rtc: Use ARRAY_SIZE macro Date: Sun, 19 Oct 2025 23:02:57 +0200 Message-ID: <20251019210303.104718-5-shentey@gmail.com> X-Mailer: git-send-email 2.51.1.dirty In-Reply-To: <20251019210303.104718-1-shentey@gmail.com> References: <20251019210303.104718-1-shentey@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::52f; envelope-from=shentey@gmail.com; helo=mail-ed1-x52f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1760907953843158500 Content-Type: text/plain; charset="utf-8" Avoids the error-prone repetition of the array size. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/rtc/mc146818rtc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/rtc/mc146818rtc.c b/hw/rtc/mc146818rtc.c index 61e9c0bf99..5a89062b4c 100644 --- a/hw/rtc/mc146818rtc.c +++ b/hw/rtc/mc146818rtc.c @@ -726,13 +726,14 @@ static uint64_t cmos_ioport_read(void *opaque, hwaddr= addr, =20 void mc146818rtc_set_cmos_data(MC146818RtcState *s, int addr, int val) { - if (addr >=3D 0 && addr <=3D 127) + if (addr >=3D 0 && addr < ARRAY_SIZE(s->cmos_data)) { s->cmos_data[addr] =3D val; + } } =20 int mc146818rtc_get_cmos_data(MC146818RtcState *s, int addr) { - assert(addr >=3D 0 && addr <=3D 127); + assert(addr >=3D 0 && addr < ARRAY_SIZE(s->cmos_data)); return s->cmos_data[addr]; } =20 --=20 2.51.1.dirty From nobody Fri Nov 14 16:50:35 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1760907973; cv=none; d=zohomail.com; s=zohoarc; b=U7NI7ZgXx60bxOUAqXFqgIFzWzbGm9CR6rgsnWgd5TayFy1FtPgcB3oWDcMk8FHAUcza+uPDSwY35HrqXzFjiU6o26Pl0TGiTXpVCF8/t7Ws9NQMO4AbVwpkJssRuVAL5mpe9fl+B7GDF/8Q9+8cEQnqx4K2FR8cZjEQFC6NGpI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760907973; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WqDslS9NKjHnUWYR3Oq3CSi9/FfiBOz9NHEnZxcZS80=; b=MvNDBJmtscLFIBz7iBXJoaDQVayN1n/ZV405qc/ADbPjbs8sIeUJI7bdtVwn3JkFOnw5ppU5fCjMuBD9vdoxq0Me/Jl/KHM7RnlCVxun/8KlututKibd/vmgWpkNn3hCbbUxhTeeWFHn04C5BzxqdboYcAaFWqYQg+SqWMzM96o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760907973798763.4847548366802; Sun, 19 Oct 2025 14:06:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vAaZ2-0007Qa-Tz; Sun, 19 Oct 2025 17:03:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vAaZ0-0007P2-Tp for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:39 -0400 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vAaYy-00021L-ES for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:37 -0400 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-b456d2dc440so590934466b.0 for ; Sun, 19 Oct 2025 14:03:36 -0700 (PDT) Received: from archlinux (dynamic-002-245-026-170.2.245.pool.telefonica.de. [2.245.26.170]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-63c4945f003sm5107655a12.27.2025.10.19.14.03.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Oct 2025 14:03:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760907815; x=1761512615; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WqDslS9NKjHnUWYR3Oq3CSi9/FfiBOz9NHEnZxcZS80=; b=JdT50y4pTYhg+g9mxUO+Gozw1kBVM91ffYWoztdmf3OF5EOOVIwAAhdVGw7nXq3VRq +ved9IA+EX39WIZBOITN9Rz52QSPsdFe7EKvtZH591CYtPNskX3Z+ojApxLVdvsPXXb/ I3pCTNWnMlLwpHBZLOItgmWoMn1xQDMh0EliU2m2oAY2OVlXgRk1NBbrYsZKFnzlKnk2 /F+08VhMwVSB0Um9GJ95pcVj70eqsDTrxA/E84Cwp7Bjnal/SWeFoAhT4GafuvszG2LE RLIOcl92c67pxcj1AT4wI7Fmb82M4quQRtrE6KRaXRuxj984G2edFLxkEQvLRJrTcyYT edPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760907815; x=1761512615; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WqDslS9NKjHnUWYR3Oq3CSi9/FfiBOz9NHEnZxcZS80=; b=WUrDi+Ro8hDjtRIcBQqJEGOkxt3TcrH2Ocg/T5vDo5V/mFyc0UrvT8fJpWrFzO74/J lK8/QaXu89fXEXZn9cIR3Uu033Na7Zw+IbSAP0q/e2FyACzqCywfpE1ofALTFDVcXf5h NpggN2XhLebpAnbaKvAPKovjiHliLSfZY9kVOanCMRRYrntG6miJSGiE5X1B2ddwed4s /X1Aiok5g6j6A4t5qtfD55+0RjlY29ixNZTMn/EOPm389L7S9eKozWJTPPIgoWkwL5Cm HH/hmZB18wBF7xtvT4XXrHhOvg4ukCBpONH7da7iwvoc8+0Vt1EWMVKvU8cOiL3J0olb IrgA== X-Gm-Message-State: AOJu0Yx9KyRA0bon6AKzxkt9/tnN8ci9Z8hCpA9ZbDdy/0AB+DYye7lR O9rEWNzqcj3HUJXeiufWedO1YrlN+6h3mIDaYQcxpYiVRIonYv7TnzuJMrvDnFfo X-Gm-Gg: ASbGnctwgeVt+Rw8JFjQswINbi6u54afUxjjdmGicmgpgE9wxebsV9VNmY0QYwwuFvl WQFuxZ7sb3FmsK3I8S72zbKaOAi7WcxHRZBQvPY/lgGyDjUa3AlSHlCZ7JCuqEPueoeGmZhimfq a4mZ35T+i3amashY2/RLp7kF6q4Iba+3UVf7X5CAI4KXkTO8jDhT41GBxPjegXH/+lEupjdSAfu NqNGchrAJkGKd9fzvT+t+HJLJUzTGyRYX5ffskMyKJoQ3H2WQQiVtDFD7503RVIHHs2hF98rWx/ es2f0UqfihHmq6k8lfI/OAWvDDeBpVWJPdOvPknJoOVlr9y/6NWdLV0muvbilwS/3DI2GpGSjYC HOu5yMbQ97O5BZ0LJKA+rXkmtElZlZmgox42Cgg69LZPYBoSLngOi4gB2hrfiIemv1ZWJVbFmQK srfy0A4eZzuk6si0Jq0I8mPKkBDVqaIYRpRt/TrlwlyRugIK/NONNh55gsFdR3b56ELdpL X-Google-Smtp-Source: AGHT+IGPfPy34v/udZLQXvm5jDIXrAZ61l/oD9nGQpnV8TbdI46dqjRmVUAcVk/yLDzjHgyLvbFqIQ== X-Received: by 2002:a17:907:728c:b0:b57:5353:1032 with SMTP id a640c23a62f3a-b6472b5fab6mr1140469866b.5.1760907814623; Sun, 19 Oct 2025 14:03:34 -0700 (PDT) From: Bernhard Beschow To: qemu-devel@nongnu.org Cc: Marcel Apfelbaum , Laurent Vivier , "Michael S. Tsirkin" , Eduardo Habkost , Zhao Liu , kvm@vger.kernel.org, Michael Tokarev , Cameron Esfahani , qemu-block@nongnu.org, Paolo Bonzini , qemu-trivial@nongnu.org, Laurent Vivier , Richard Henderson , Roman Bolshakov , Phil Dennis-Jordan , John Snow , Fabiano Rosas , Gerd Hoffmann , Sunil Muthuswamy , Marcelo Tosatti , Bernhard Beschow Subject: [PATCH v3 05/10] hw/rtc/mc146818rtc: Assert correct usage of mc146818rtc_set_cmos_data() Date: Sun, 19 Oct 2025 23:02:58 +0200 Message-ID: <20251019210303.104718-6-shentey@gmail.com> X-Mailer: git-send-email 2.51.1.dirty In-Reply-To: <20251019210303.104718-1-shentey@gmail.com> References: <20251019210303.104718-1-shentey@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::62a; envelope-from=shentey@gmail.com; helo=mail-ej1-x62a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1760907978222158500 Content-Type: text/plain; charset="utf-8" The offset is never controlled by the guest, so any misuse constitutes a programming error and shouldn't be silently ignored. Fix this by using asse= rt(). Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/rtc/mc146818rtc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/hw/rtc/mc146818rtc.c b/hw/rtc/mc146818rtc.c index 5a89062b4c..8631386b9f 100644 --- a/hw/rtc/mc146818rtc.c +++ b/hw/rtc/mc146818rtc.c @@ -726,9 +726,8 @@ static uint64_t cmos_ioport_read(void *opaque, hwaddr a= ddr, =20 void mc146818rtc_set_cmos_data(MC146818RtcState *s, int addr, int val) { - if (addr >=3D 0 && addr < ARRAY_SIZE(s->cmos_data)) { - s->cmos_data[addr] =3D val; - } + assert(addr >=3D 0 && addr < ARRAY_SIZE(s->cmos_data)); + s->cmos_data[addr] =3D val; } =20 int mc146818rtc_get_cmos_data(MC146818RtcState *s, int addr) --=20 2.51.1.dirty From nobody Fri Nov 14 16:50:35 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1760907939; cv=none; d=zohomail.com; s=zohoarc; b=Hu17wzT4YrxGNUQ1is7wGc0FUYcAECtcn8IIxIhOIhL4Fk6v1XqWjVt53UFVWKx084gnrJTltC1f21nzIfHfbFZ7QjeTNxjlAoKzJIpv0uhPh8Xi3BijpaqhsAe8RRQyTS+PT9PDvrnNGfUBY/zvV/7LKtVqomtT5VyPkmlGM84= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760907939; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BM6QgAOG34zDGb9jZI8DkkbGa1KuVCoA2kRHxsUOX8Q=; b=ZAzf5sDWMLfBkRr7bf1tNGlQGT8XR2m8cyUyRYUExNON0muPfs0IMrYycfeDFKuLqQ9XEgqE9yBXesOH/PoxBdjElim+tJncPD1VCVlwGtxMauQQTOIwN16FN9cRHiQap6fdT6K1IdHXb0Zb/j12Op5IME4FTZ2nYrmvSjJxcjs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760907939174923.8849501368414; Sun, 19 Oct 2025 14:05:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vAaZD-0007TJ-3R; Sun, 19 Oct 2025 17:03:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vAaZ8-0007SQ-2f for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:46 -0400 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vAaZ0-000220-N7 for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:44 -0400 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-63befe5f379so4857703a12.1 for ; Sun, 19 Oct 2025 14:03:38 -0700 (PDT) Received: from archlinux (dynamic-002-245-026-170.2.245.pool.telefonica.de. [2.245.26.170]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-63c4945f003sm5107655a12.27.2025.10.19.14.03.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Oct 2025 14:03:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760907817; x=1761512617; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BM6QgAOG34zDGb9jZI8DkkbGa1KuVCoA2kRHxsUOX8Q=; b=SZv5Vr0iMObu4BhFpJxKBcIKHvlnaHn6agsoUIRZ7N4nhYHrvWjVw58B8b52CghCAF SxwnHGJKygA1WZ9cumUg7PygRsypdBar8cVLaFAFWLiOiz7ik5mfj8vMcUx3aYSs8q0j YUEMOzjvcDmu7spZWJpscvOhkh1bdWcmQjnr3sSY9x0gGDZfy/b45olGS7IgwvopzjYs o8CDpW10IMnh4D8KlK17Vyv2r/hQUlkFVqYWaMnF4rKmxEyeUPcLW33N/Md5KE4djuRx HM4uBHbdoGsLJW97bv3LxslYx/LLGw9yar2wLZmsx4xsG1uAOC8OqAue9RotQQ6AClw7 e/cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760907817; x=1761512617; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BM6QgAOG34zDGb9jZI8DkkbGa1KuVCoA2kRHxsUOX8Q=; b=vUyZI9qb44/PXwxSu6uWEMnOmgxhmMMzi7kbWo8CNMSNouD4eHfZOw9ZXR/FocyhPX V05XJ9HoGYTpT6KqkDzXVhhwchbP6cZg04Q2pTFM4E7O2jEswMx9HhiSrvS9e5apa0pz I62kk14iscsan4tMADEVWQ3BdtDhR6CTlHQbcmqGAh6XklziWaD8J0uBFc/PV8vlM4Tt K+Nhq6A/gDc5nEl08fe9GXrCRK25hlfG+bOR7gFSWY/zzPV3LIyKHDaOp83rBEAfQlXk he3r74SMX+SukKRUSMgB0NM0PQ+feWWYHhBi2dUtMRBssPUzv1NmrkwlzixKk7nQkY6m RFEw== X-Gm-Message-State: AOJu0YyGU+TbOoSLyk6IcbT6g7s7gJV1SJSiLPGsSw7eb+d/BRATaC52 v3ZEawr+JMM3AZoXk4FWgRkJODUBU/EfXwKuHkuGRZkvppwbFQedr11r58rpb01Y X-Gm-Gg: ASbGnctb5EGpTIm2mu2b5fzZfVkFGS52i9TP0NKwhb3U41Oh0+IP3hKmUuclT2qKtCB 4vVDXNGOYrBGTd5JgmsTGFakHwgUqrHrIQ0seCdvDtahpfsyanqZB8jUYEs138u/QP4y1G683Hf MSIc8OhnQtD/mx3mqKKL8bPkfVUaBoPW94cSk6ru82bcbZkZeu8NNHPSdYZFPmMo+cFXDJDrFvv ozwweL5KOT2OXViegZSmjkwEsZEr7//o4DgIQjfqjTZ7vhKB9NjD0JFYxfHRtN08qorhFrBx4gC 4cqBR4SSMHu4fQvXvYus0TGm4mZIhLGi1giAFOIcHLGlEo+mfcBUkOlQCPcf7MV88mtl08ANQQP FCX+dd4krGksss0Bfw+ngbtbO6DcqKZhnekTZWvpAa6lId9QAnwt6hMqx9b6xN8c+1cUl5n+Leq 0m3CzS83yedZpt3Lf9VRizCoYMjZY+g3rjmFKMdo8Y6tY90guA3S7j2815Gw== X-Google-Smtp-Source: AGHT+IHfMh7JlGToGTRe8mHgwHLoF57dHW5JvMJP8/YOMdu/h8U6uYCeh50ZViHOCSNzKzge6vlIQg== X-Received: by 2002:aa7:df90:0:b0:631:bb4e:111a with SMTP id 4fb4d7f45d1cf-63c1f6dbea3mr8083588a12.34.1760907816588; Sun, 19 Oct 2025 14:03:36 -0700 (PDT) From: Bernhard Beschow To: qemu-devel@nongnu.org Cc: Marcel Apfelbaum , Laurent Vivier , "Michael S. Tsirkin" , Eduardo Habkost , Zhao Liu , kvm@vger.kernel.org, Michael Tokarev , Cameron Esfahani , qemu-block@nongnu.org, Paolo Bonzini , qemu-trivial@nongnu.org, Laurent Vivier , Richard Henderson , Roman Bolshakov , Phil Dennis-Jordan , John Snow , Fabiano Rosas , Gerd Hoffmann , Sunil Muthuswamy , Marcelo Tosatti , Bernhard Beschow Subject: [PATCH v3 06/10] hw/ide/ide-internal: Move dma_buf_commit() into ide "namespace" Date: Sun, 19 Oct 2025 23:02:59 +0200 Message-ID: <20251019210303.104718-7-shentey@gmail.com> X-Mailer: git-send-email 2.51.1.dirty In-Reply-To: <20251019210303.104718-1-shentey@gmail.com> References: <20251019210303.104718-1-shentey@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::530; envelope-from=shentey@gmail.com; helo=mail-ed1-x530.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, T_SPF_TEMPERROR=0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1760907944385154100 Content-Type: text/plain; charset="utf-8" The identifier suggests that it is a generic DMA function while it is tied to IDE. Fix this by adding an "ide_" prefix. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/ide/ide-internal.h | 2 +- hw/ide/ahci.c | 8 ++++---- hw/ide/core.c | 10 +++++----- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/hw/ide/ide-internal.h b/hw/ide/ide-internal.h index 0d64805da2..281d07c9d5 100644 --- a/hw/ide/ide-internal.h +++ b/hw/ide/ide-internal.h @@ -398,7 +398,7 @@ int64_t ide_get_sector(IDEState *s); void ide_set_sector(IDEState *s, int64_t sector_num); =20 void ide_start_dma(IDEState *s, BlockCompletionFunc *cb); -void dma_buf_commit(IDEState *s, uint32_t tx_bytes); +void ide_dma_buf_commit(IDEState *s, uint32_t tx_bytes); void ide_dma_error(IDEState *s); void ide_abort_command(IDEState *s); =20 diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index 1303c21cb7..14bc66fb7f 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -1417,7 +1417,7 @@ static void ahci_pio_transfer(const IDEDMA *dma) } =20 /* Update number of transferred bytes, destroy sglist */ - dma_buf_commit(s, size); + ide_dma_buf_commit(s, size); =20 out: /* declare that we processed everything */ @@ -1482,8 +1482,8 @@ static int32_t ahci_dma_prepare_buf(const IDEDMA *dma= , int32_t limit) =20 /** * Updates the command header with a bytes-read value. - * Called via dma_buf_commit, for both DMA and PIO paths. - * sglist destruction is handled within dma_buf_commit. + * Called via ide_dma_buf_commit, for both DMA and PIO paths. + * sglist destruction is handled within ide_dma_buf_commit. */ static void ahci_commit_buf(const IDEDMA *dma, uint32_t tx_bytes) { @@ -1511,7 +1511,7 @@ static int ahci_dma_rw_buf(const IDEDMA *dma, bool is= _write) } =20 /* free sglist, update byte count */ - dma_buf_commit(s, l); + ide_dma_buf_commit(s, l); s->io_buffer_index +=3D l; =20 trace_ahci_dma_rw_buf(ad->hba, ad->port_no, l); diff --git a/hw/ide/core.c b/hw/ide/core.c index b14983ec54..8c380abf7c 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -827,7 +827,7 @@ static void ide_sector_read(IDEState *s) ide_sector_read_cb, s); } =20 -void dma_buf_commit(IDEState *s, uint32_t tx_bytes) +void ide_dma_buf_commit(IDEState *s, uint32_t tx_bytes) { if (s->bus->dma->ops->commit_buf) { s->bus->dma->ops->commit_buf(s->bus->dma, tx_bytes); @@ -848,7 +848,7 @@ void ide_set_inactive(IDEState *s, bool more) =20 void ide_dma_error(IDEState *s) { - dma_buf_commit(s, 0); + ide_dma_buf_commit(s, 0); ide_abort_command(s); ide_set_inactive(s, false); ide_bus_set_irq(s->bus); @@ -893,7 +893,7 @@ static void ide_dma_cb(void *opaque, int ret) if (ret < 0) { if (ide_handle_rw_error(s, -ret, ide_dma_cmd_to_retry(s->dma_cmd))= ) { s->bus->dma->aiocb =3D NULL; - dma_buf_commit(s, 0); + ide_dma_buf_commit(s, 0); return; } } @@ -912,7 +912,7 @@ static void ide_dma_cb(void *opaque, int ret) sector_num =3D ide_get_sector(s); if (n > 0) { assert(n * 512 =3D=3D s->sg.size); - dma_buf_commit(s, s->sg.size); + ide_dma_buf_commit(s, s->sg.size); sector_num +=3D n; ide_set_sector(s, sector_num); s->nsector -=3D n; @@ -944,7 +944,7 @@ static void ide_dma_cb(void *opaque, int ret) * Reset the Active bit and don't raise the interrupt. */ s->status =3D READY_STAT | SEEK_STAT; - dma_buf_commit(s, 0); + ide_dma_buf_commit(s, 0); goto eot; } =20 --=20 2.51.1.dirty From nobody Fri Nov 14 16:50:35 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1760907923; cv=none; d=zohomail.com; s=zohoarc; b=Z7Lnk9xQM4xmZv2aNt9zxNBbBiTb/b4iFkYSvUFtn9P0EtFLdm1xIaOFKidtypV34u0qa5ucgcL/LZ27EilmNiB5iqwbCfOOlhd6Cq0RTjI+YJcMkfVEQD35PtyM3wXtJaJadYBVoWKqmKyDPMd+NHTiM3/aDEfUzRHJvN80Gd8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760907923; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WYiL5oVOwkfYqXIvuK+W7Le5GO1XXv7oGT9NB2S/5Rw=; b=nrpD+P68YrHaXfWmExNkJ3LsFEl7yOTshavK5RqV1Wov482aR205Tl8PWtbpY5RiS7dxrNemYJf5DCv0A6gvYZrtk04BwwK10lJ9rFP/bl/hOasRIgL0Clc8qRpG7JlCBY4d2TaPhCNFE+mgiAGLmmW5aNnI71d8T9yGXo2p7XI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176090792320480.26259069122466; Sun, 19 Oct 2025 14:05:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vAaZF-0007Va-NA; Sun, 19 Oct 2025 17:03:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vAaZB-0007TP-RO for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:49 -0400 Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vAaZ4-00022U-4N for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:47 -0400 Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-63c2d72581fso3817989a12.0 for ; Sun, 19 Oct 2025 14:03:40 -0700 (PDT) Received: from archlinux (dynamic-002-245-026-170.2.245.pool.telefonica.de. [2.245.26.170]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-63c4945f003sm5107655a12.27.2025.10.19.14.03.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Oct 2025 14:03:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760907819; x=1761512619; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WYiL5oVOwkfYqXIvuK+W7Le5GO1XXv7oGT9NB2S/5Rw=; b=lvkbSvWikYTOdbgxlm/JK/5n6iyCsb6AX5ME9OCo7zawjOVJHGY7gkDVjBcDFI3kfo +muigcfBuNU0QHaGskgpESrGv0z5Xx0rE3kWTQHkPaTgMHJin55KUoEeDDzRRbfjrxz3 M7OubhJzodVTQFACdVRLmRyugTCJVtNW9XxQDDW5VW9bh9Q3a41MRLDC48ZM/L7LT+rq NqO0A6irQBZ0ClOSWGSEuTVJf2nekezSQm3XK1296VqSfnJJAyGHKxjCN01DpDIYTdWZ FOzuOeW9Cw9BYMwFy68LSmn6wn2guSmCfgwM8m8ImmsDLplex2TX0sw/IvOTrUl0Ztzw h7dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760907819; x=1761512619; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WYiL5oVOwkfYqXIvuK+W7Le5GO1XXv7oGT9NB2S/5Rw=; b=FFfdmYqGSHXsXlTm6ClqkYpbnSr3rwXxecFoRrsQl3aLPq/nQ6RtOE2A2n4bPGZY/a HeqM6TDdvrU48Vl33ra5YUXNP7br+E8xBb+wDlYU3SD86Y5Hd+uDtdEGF3dNwTHIMte8 3fhek7eiqk/Tb7S2Qc+vPKGPz/mECm1Iph9pHcYrq6msX7jWDhuwCHHjeHBceXMYUhD9 T9tTTZI49Q9wIdP3PDMLAYDLi2PQ92xxQTl1rF1rC9Gw3+wxxQyID7eBsb8jI6MCex0J qEDwIOqTn2JI7menU3zzEM6pIj0bo7Ms4eVmUTSQ/LUoPSEabLh6CxWwJwmtCyldNmi0 C6hg== X-Gm-Message-State: AOJu0Yx7ZIjR+rOHtonZPEnwV7wJUYpqTy1nI/aqDLaiNXkjC4RMZf/+ 1OJJnM3Bcp1D0zuuQ5vi/BX0ZqvBPpSUti1ZNsCiiz25SzVEpbMZxlATGBPvk63M X-Gm-Gg: ASbGncs1AaW9U904h+ZknOpIuwd9hg6bNn/Ta+TvOFPZ7Rv/NS5JZ/gGte+LabxTn5E zIRak/hrcSxbrcC5Y3HAWNreVw3HQTm8JjwxNDy9uqHRDeAXLRIMi6U07vErfCYkMPLDHo522/M cAdcmw9IjXZKnq+tF/1zmKOy8FZ2P1IDDjFqEeu/yY2SPq8sFSqrokGVddsVLjNtpc8jIJZLji8 F1dt4fMqpt6IKhDfVK67GDqutwSrnqM5Rg9SqP+Y7sRIMq+OZLgqMxgzKXG9GXk7+eHDH5GSRgA hhhFV+tJdyhZnigJLAbeYdNkv1r5dFWt0laiX0NOS6XFComlXD8RZ1/TABetaBGfhrxMhYKGuCZ ND/AfSf7Qhx7YNQn8KAxDp5mr8lfTWIUZwM1mlE7TEy72E+LoMpFa7mUFWqAPIIYeRQeX0mU9tr x1Fnj4V1vSIJDEcIJQqNUEuuS2V053fFtRvsdILCTcvDznOE5ceFMMQ6U5Pg== X-Google-Smtp-Source: AGHT+IH5IuPMGXRTKi0rOODmGJCt65vaoYo7sPDZ59YmGi/k2tuquGV2fvfCkNzluHJEMvIWtD4SVA== X-Received: by 2002:a05:6402:144e:b0:63c:2d6:f471 with SMTP id 4fb4d7f45d1cf-63c1f6e047cmr11885267a12.26.1760907819106; Sun, 19 Oct 2025 14:03:39 -0700 (PDT) From: Bernhard Beschow To: qemu-devel@nongnu.org Cc: Marcel Apfelbaum , Laurent Vivier , "Michael S. Tsirkin" , Eduardo Habkost , Zhao Liu , kvm@vger.kernel.org, Michael Tokarev , Cameron Esfahani , qemu-block@nongnu.org, Paolo Bonzini , qemu-trivial@nongnu.org, Laurent Vivier , Richard Henderson , Roman Bolshakov , Phil Dennis-Jordan , John Snow , Fabiano Rosas , Gerd Hoffmann , Sunil Muthuswamy , Marcelo Tosatti , Bernhard Beschow Subject: [PATCH v3 07/10] hw/i386/apic: Prefer APICCommonState over DeviceState Date: Sun, 19 Oct 2025 23:03:00 +0200 Message-ID: <20251019210303.104718-8-shentey@gmail.com> X-Mailer: git-send-email 2.51.1.dirty In-Reply-To: <20251019210303.104718-1-shentey@gmail.com> References: <20251019210303.104718-1-shentey@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::535; envelope-from=shentey@gmail.com; helo=mail-ed1-x535.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1760907927467158500 Content-Type: text/plain; charset="utf-8" Makes the APIC API more type-safe by resolving quite a few APIC_COMMON downcasts. Like PICCommonState, the APICCommonState is now a public typedef while stay= ing an abstract datatype. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/i386/apic.h | 33 +++++------ include/hw/i386/apic_internal.h | 7 +-- target/i386/cpu.h | 4 +- target/i386/kvm/kvm_i386.h | 2 +- target/i386/whpx/whpx-internal.h | 2 +- hw/i386/kvm/apic.c | 3 +- hw/i386/vapic.c | 2 +- hw/i386/x86-cpu.c | 2 +- hw/intc/apic.c | 97 +++++++++++++------------------- hw/intc/apic_common.c | 56 +++++++----------- target/i386/cpu-apic.c | 18 +++--- target/i386/cpu-dump.c | 2 +- target/i386/cpu.c | 2 +- target/i386/kvm/kvm.c | 2 +- target/i386/whpx/whpx-apic.c | 3 +- 15 files changed, 95 insertions(+), 140 deletions(-) diff --git a/include/hw/i386/apic.h b/include/hw/i386/apic.h index eb606d6076..871f142888 100644 --- a/include/hw/i386/apic.h +++ b/include/hw/i386/apic.h @@ -1,28 +1,29 @@ #ifndef APIC_H #define APIC_H =20 +typedef struct APICCommonState APICCommonState; =20 /* apic.c */ void apic_set_max_apic_id(uint32_t max_apic_id); -int apic_accept_pic_intr(DeviceState *s); -void apic_deliver_pic_intr(DeviceState *s, int level); -void apic_deliver_nmi(DeviceState *d); -int apic_get_interrupt(DeviceState *s); -int cpu_set_apic_base(DeviceState *s, uint64_t val); -uint64_t cpu_get_apic_base(DeviceState *s); -bool cpu_is_apic_enabled(DeviceState *s); -void cpu_set_apic_tpr(DeviceState *s, uint8_t val); -uint8_t cpu_get_apic_tpr(DeviceState *s); -void apic_init_reset(DeviceState *s); -void apic_sipi(DeviceState *s); -void apic_poll_irq(DeviceState *d); -void apic_designate_bsp(DeviceState *d, bool bsp); -int apic_get_highest_priority_irr(DeviceState *dev); +int apic_accept_pic_intr(APICCommonState *s); +void apic_deliver_pic_intr(APICCommonState *s, int level); +void apic_deliver_nmi(APICCommonState *s); +int apic_get_interrupt(APICCommonState *s); +int cpu_set_apic_base(APICCommonState *s, uint64_t val); +uint64_t cpu_get_apic_base(APICCommonState *s); +bool cpu_is_apic_enabled(APICCommonState *s); +void cpu_set_apic_tpr(APICCommonState *s, uint8_t val); +uint8_t cpu_get_apic_tpr(APICCommonState *s); +void apic_init_reset(APICCommonState *s); +void apic_sipi(APICCommonState *s); +void apic_poll_irq(APICCommonState *s); +void apic_designate_bsp(APICCommonState *s, bool bsp); +int apic_get_highest_priority_irr(APICCommonState *s); int apic_msr_read(int index, uint64_t *val); int apic_msr_write(int index, uint64_t val); -bool is_x2apic_mode(DeviceState *d); +bool is_x2apic_mode(APICCommonState *s); =20 /* pc.c */ -DeviceState *cpu_get_current_apic(void); +APICCommonState *cpu_get_current_apic(void); =20 #endif diff --git a/include/hw/i386/apic_internal.h b/include/hw/i386/apic_interna= l.h index 429278da61..4a62fdceb4 100644 --- a/include/hw/i386/apic_internal.h +++ b/include/hw/i386/apic_internal.h @@ -22,6 +22,7 @@ #define QEMU_APIC_INTERNAL_H =20 #include "cpu.h" +#include "hw/i386/apic.h" #include "system/memory.h" #include "qemu/timer.h" #include "target/i386/cpu-qom.h" @@ -125,8 +126,6 @@ #define VAPIC_ENABLE_BIT 0 #define VAPIC_ENABLE_MASK (1 << VAPIC_ENABLE_BIT) =20 -typedef struct APICCommonState APICCommonState; - #define TYPE_APIC_COMMON "apic-common" typedef struct APICCommonClass APICCommonClass; DECLARE_OBJ_CHECKERS(APICCommonState, APICCommonClass, @@ -203,8 +202,8 @@ typedef struct VAPICState { extern bool apic_report_tpr_access; =20 bool apic_next_timer(APICCommonState *s, int64_t current_time); -void apic_enable_tpr_access_reporting(DeviceState *d, bool enable); -void apic_enable_vapic(DeviceState *d, hwaddr paddr); +void apic_enable_tpr_access_reporting(APICCommonState *s, bool enable); +void apic_enable_vapic(APICCommonState *s, hwaddr paddr); =20 void vapic_report_tpr_access(DeviceState *dev, CPUState *cpu, target_ulong= ip, TPRAccess access); diff --git a/target/i386/cpu.h b/target/i386/cpu.h index ce948861a7..67ff52a8b4 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -2349,7 +2349,7 @@ struct ArchCPU { =20 /* in order to simplify APIC support, we leave this pointer to the user */ - struct DeviceState *apic_state; + struct APICCommonState *apic_state; struct MemoryRegion *cpu_as_root, *cpu_as_mem, *smram; Notifier machine_done; =20 @@ -2830,7 +2830,7 @@ bool cpu_svm_has_intercept(CPUX86State *env, uint32_t= type); =20 /* apic.c */ void cpu_report_tpr_access(CPUX86State *env, TPRAccess access); -void apic_handle_tpr_access_report(DeviceState *d, target_ulong ip, +void apic_handle_tpr_access_report(APICCommonState *s, target_ulong ip, TPRAccess access); =20 /* Special values for X86CPUVersion: */ diff --git a/target/i386/kvm/kvm_i386.h b/target/i386/kvm/kvm_i386.h index 5f83e8850a..5c908fdd6a 100644 --- a/target/i386/kvm/kvm_i386.h +++ b/target/i386/kvm/kvm_i386.h @@ -56,7 +56,7 @@ bool kvm_has_adjust_clock_stable(void); bool kvm_has_exception_payload(void); void kvm_synchronize_all_tsc(void); =20 -void kvm_get_apic_state(DeviceState *d, struct kvm_lapic_state *kapic); +void kvm_get_apic_state(APICCommonState *s, struct kvm_lapic_state *kapic); void kvm_put_apicbase(X86CPU *cpu, uint64_t value); =20 bool kvm_has_x2apic_api(void); diff --git a/target/i386/whpx/whpx-internal.h b/target/i386/whpx/whpx-inter= nal.h index 6633e9c4ca..066e16bd8e 100644 --- a/target/i386/whpx/whpx-internal.h +++ b/target/i386/whpx/whpx-internal.h @@ -44,7 +44,7 @@ struct whpx_state { }; =20 extern struct whpx_state whpx_global; -void whpx_apic_get(DeviceState *s); +void whpx_apic_get(struct APICCommonState *s); =20 #define WHV_E_UNKNOWN_CAPABILITY 0x80370300L =20 diff --git a/hw/i386/kvm/apic.c b/hw/i386/kvm/apic.c index 1be9bfe36e..82355f0463 100644 --- a/hw/i386/kvm/apic.c +++ b/hw/i386/kvm/apic.c @@ -60,9 +60,8 @@ static void kvm_put_apic_state(APICCommonState *s, struct= kvm_lapic_state *kapic kvm_apic_set_reg(kapic, 0x3e, s->divide_conf); } =20 -void kvm_get_apic_state(DeviceState *dev, struct kvm_lapic_state *kapic) +void kvm_get_apic_state(APICCommonState *s, struct kvm_lapic_state *kapic) { - APICCommonState *s =3D APIC_COMMON(dev); int i, v; =20 if (kvm_has_x2apic_api() && s->apicbase & MSR_IA32_APICBASE_EXTD) { diff --git a/hw/i386/vapic.c b/hw/i386/vapic.c index 0c1c92c479..f1089f0a7c 100644 --- a/hw/i386/vapic.c +++ b/hw/i386/vapic.c @@ -490,7 +490,7 @@ void vapic_report_tpr_access(DeviceState *dev, CPUState= *cs, target_ulong ip, } =20 typedef struct VAPICEnableTPRReporting { - DeviceState *apic; + APICCommonState *apic; bool enable; } VAPICEnableTPRReporting; =20 diff --git a/hw/i386/x86-cpu.c b/hw/i386/x86-cpu.c index c876e6709e..1a86a853d5 100644 --- a/hw/i386/x86-cpu.c +++ b/hw/i386/x86-cpu.c @@ -86,7 +86,7 @@ int cpu_get_pic_interrupt(CPUX86State *env) return intno; } =20 -DeviceState *cpu_get_current_apic(void) +APICCommonState *cpu_get_current_apic(void) { if (current_cpu) { X86CPU *cpu =3D X86_CPU(current_cpu); diff --git a/hw/intc/apic.c b/hw/intc/apic.c index c768033856..cb35c80c75 100644 --- a/hw/intc/apic.c +++ b/hw/intc/apic.c @@ -181,10 +181,8 @@ static void apic_local_deliver(APICCommonState *s, int= vector) } } =20 -void apic_deliver_pic_intr(DeviceState *dev, int level) +void apic_deliver_pic_intr(APICCommonState *s, int level) { - APICCommonState *s =3D APIC(dev); - if (level) { apic_local_deliver(s, APIC_LVT_LINT0); } else { @@ -301,10 +299,8 @@ static void apic_deliver_irq(uint32_t dest, uint8_t de= st_mode, apic_bus_deliver(deliver_bitmask, delivery_mode, vector_num, trigger_m= ode); } =20 -bool is_x2apic_mode(DeviceState *dev) +bool is_x2apic_mode(APICCommonState *s) { - APICCommonState *s =3D APIC(dev); - return s->apicbase & MSR_IA32_APICBASE_EXTD; } =20 @@ -388,15 +384,12 @@ static void apic_set_tpr(APICCommonState *s, uint8_t = val) } } =20 -int apic_get_highest_priority_irr(DeviceState *dev) +int apic_get_highest_priority_irr(APICCommonState *s) { - APICCommonState *s; - - if (!dev) { + if (!s) { /* no interrupts */ return -1; } - s =3D APIC_COMMON(dev); return get_highest_priority_int(s->irr); } =20 @@ -458,22 +451,19 @@ static int apic_irq_pending(APICCommonState *s) static void apic_update_irq(APICCommonState *s) { CPUState *cpu; - DeviceState *dev =3D (DeviceState *)s; =20 cpu =3D CPU(s->cpu); if (!qemu_cpu_is_self(cpu)) { cpu_interrupt(cpu, CPU_INTERRUPT_POLL); } else if (apic_irq_pending(s) > 0) { cpu_interrupt(cpu, CPU_INTERRUPT_HARD); - } else if (!apic_accept_pic_intr(dev) || !pic_get_output(isa_pic)) { + } else if (!apic_accept_pic_intr(s) || !pic_get_output(isa_pic)) { cpu_reset_interrupt(cpu, CPU_INTERRUPT_HARD); } } =20 -void apic_poll_irq(DeviceState *dev) +void apic_poll_irq(APICCommonState *s) { - APICCommonState *s =3D APIC(dev); - apic_sync_vapic(s, SYNC_FROM_VAPIC); apic_update_irq(s); } @@ -516,7 +506,7 @@ static void apic_eoi(APICCommonState *s) =20 static bool apic_match_dest(APICCommonState *apic, uint32_t dest) { - if (is_x2apic_mode(&apic->parent_obj)) { + if (is_x2apic_mode(apic)) { return apic->initial_apic_id =3D=3D dest; } else { return apic->id =3D=3D (uint8_t)dest; @@ -550,7 +540,7 @@ static void apic_get_broadcast_bitmask(uint32_t *delive= r_bitmask, for (i =3D 0; i < max_apics; i++) { apic_iter =3D local_apics[i]; if (apic_iter) { - bool apic_in_x2apic =3D is_x2apic_mode(&apic_iter->parent_obj); + bool apic_in_x2apic =3D is_x2apic_mode(apic_iter); =20 if (is_x2apic_broadcast && apic_in_x2apic) { apic_set_bit(deliver_bitmask, i); @@ -642,27 +632,24 @@ static void apic_startup(APICCommonState *s, int vect= or_num) cpu_interrupt(CPU(s->cpu), CPU_INTERRUPT_SIPI); } =20 -void apic_sipi(DeviceState *dev) +void apic_sipi(APICCommonState *s) { - APICCommonState *s =3D APIC(dev); - if (!s->wait_for_sipi) return; cpu_x86_load_seg_cache_sipi(s->cpu, s->sipi_vector); s->wait_for_sipi =3D 0; } =20 -static void apic_deliver(DeviceState *dev, uint32_t dest, uint8_t dest_mod= e, +static void apic_deliver(APICCommonState *s, uint32_t dest, uint8_t dest_m= ode, uint8_t delivery_mode, uint8_t vector_num, uint8_t trigger_mode, uint8_t dest_shorthand) { - APICCommonState *s =3D APIC(dev); APICCommonState *apic_iter; uint32_t deliver_bitmask_size =3D max_apic_words * sizeof(uint32_t); g_autofree uint32_t *deliver_bitmask =3D g_new(uint32_t, max_apic_word= s); uint32_t current_apic_id; =20 - if (is_x2apic_mode(dev)) { + if (is_x2apic_mode(s)) { current_apic_id =3D s->initial_apic_id; } else { current_apic_id =3D s->id; @@ -709,18 +696,15 @@ static void apic_deliver(DeviceState *dev, uint32_t d= est, uint8_t dest_mode, =20 static bool apic_check_pic(APICCommonState *s) { - DeviceState *dev =3D (DeviceState *)s; - - if (!apic_accept_pic_intr(dev) || !pic_get_output(isa_pic)) { + if (!apic_accept_pic_intr(s) || !pic_get_output(isa_pic)) { return false; } - apic_deliver_pic_intr(dev, 1); + apic_deliver_pic_intr(s, 1); return true; } =20 -int apic_get_interrupt(DeviceState *dev) +int apic_get_interrupt(APICCommonState *s) { - APICCommonState *s =3D APIC(dev); int intno; =20 /* if the APIC is installed or enabled, we let the 8259 handle the @@ -752,9 +736,8 @@ int apic_get_interrupt(DeviceState *dev) return intno; } =20 -int apic_accept_pic_intr(DeviceState *dev) +int apic_accept_pic_intr(APICCommonState *s) { - APICCommonState *s =3D APIC(dev); uint32_t lvt0; =20 if (!s) @@ -788,20 +771,18 @@ static void apic_timer(void *opaque) =20 static int apic_register_read(int index, uint64_t *value) { - DeviceState *dev; APICCommonState *s; uint32_t val; int ret =3D 0; =20 - dev =3D cpu_get_current_apic(); - if (!dev) { + s =3D cpu_get_current_apic(); + if (!s) { return -1; } - s =3D APIC(dev); =20 switch(index) { case 0x02: /* id */ - if (is_x2apic_mode(dev)) { + if (is_x2apic_mode(s)) { val =3D s->initial_apic_id; } else { val =3D s->id << 24; @@ -828,14 +809,14 @@ static int apic_register_read(int index, uint64_t *va= lue) val =3D 0; break; case 0x0d: - if (is_x2apic_mode(dev)) { + if (is_x2apic_mode(s)) { val =3D s->extended_log_dest; } else { val =3D s->log_dest << 24; } break; case 0x0e: - if (is_x2apic_mode(dev)) { + if (is_x2apic_mode(s)) { val =3D 0; ret =3D -1; } else { @@ -902,14 +883,14 @@ static uint64_t apic_mem_read(void *opaque, hwaddr ad= dr, unsigned size) =20 int apic_msr_read(int index, uint64_t *val) { - DeviceState *dev; + APICCommonState *s; =20 - dev =3D cpu_get_current_apic(); - if (!dev) { + s =3D cpu_get_current_apic(); + if (!s) { return -1; } =20 - if (!is_x2apic_mode(dev)) { + if (!is_x2apic_mode(s)) { return -1; } =20 @@ -943,20 +924,18 @@ static void apic_send_msi(MSIMessage *msi) =20 static int apic_register_write(int index, uint64_t val) { - DeviceState *dev; APICCommonState *s; =20 - dev =3D cpu_get_current_apic(); - if (!dev) { + s =3D cpu_get_current_apic(); + if (!s) { return -1; } - s =3D APIC(dev); =20 trace_apic_register_write(index, val); =20 switch(index) { case 0x02: - if (is_x2apic_mode(dev)) { + if (is_x2apic_mode(s)) { return -1; } =20 @@ -979,14 +958,14 @@ static int apic_register_write(int index, uint64_t va= l) apic_eoi(s); break; case 0x0d: - if (is_x2apic_mode(dev)) { + if (is_x2apic_mode(s)) { return -1; } =20 s->log_dest =3D val >> 24; break; case 0x0e: - if (is_x2apic_mode(dev)) { + if (is_x2apic_mode(s)) { return -1; } =20 @@ -1005,20 +984,20 @@ static int apic_register_write(int index, uint64_t v= al) uint32_t dest; =20 s->icr[0] =3D val; - if (is_x2apic_mode(dev)) { + if (is_x2apic_mode(s)) { s->icr[1] =3D val >> 32; dest =3D s->icr[1]; } else { dest =3D (s->icr[1] >> 24) & 0xff; } =20 - apic_deliver(dev, dest, (s->icr[0] >> 11) & 1, + apic_deliver(s, dest, (s->icr[0] >> 11) & 1, (s->icr[0] >> 8) & 7, (s->icr[0] & 0xff), (s->icr[0] >> 15) & 1, (s->icr[0] >> 18) & 3); break; } case 0x31: - if (is_x2apic_mode(dev)) { + if (is_x2apic_mode(s)) { return -1; } =20 @@ -1053,7 +1032,7 @@ static int apic_register_write(int index, uint64_t va= l) case 0x3f: { int vector =3D val & 0xff; =20 - if (!is_x2apic_mode(dev)) { + if (!is_x2apic_mode(s)) { return -1; } =20 @@ -1063,7 +1042,7 @@ static int apic_register_write(int index, uint64_t va= l) * - Trigger mode: 0 (Edge) * - Delivery mode: 0 (Fixed) */ - apic_deliver(dev, 0, 0, APIC_DM_FIXED, vector, 0, 1); + apic_deliver(s, 0, 0, APIC_DM_FIXED, vector, 0, 1); =20 break; } @@ -1102,14 +1081,14 @@ static void apic_mem_write(void *opaque, hwaddr add= r, uint64_t val, =20 int apic_msr_write(int index, uint64_t val) { - DeviceState *dev; + APICCommonState *s; =20 - dev =3D cpu_get_current_apic(); - if (!dev) { + s =3D cpu_get_current_apic(); + if (!s) { return -1; } =20 - if (!is_x2apic_mode(dev)) { + if (!is_x2apic_mode(s)) { return -1; } =20 diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c index 394fe02013..ec9e978b0b 100644 --- a/hw/intc/apic_common.c +++ b/hw/intc/apic_common.c @@ -35,12 +35,11 @@ =20 bool apic_report_tpr_access; =20 -int cpu_set_apic_base(DeviceState *dev, uint64_t val) +int cpu_set_apic_base(APICCommonState *s, uint64_t val) { trace_cpu_set_apic_base(val); =20 - if (dev) { - APICCommonState *s =3D APIC_COMMON(dev); + if (s) { APICCommonClass *info =3D APIC_COMMON_GET_CLASS(s); /* Reset possibly modified xAPIC ID */ s->id =3D s->initial_apic_id; @@ -50,10 +49,9 @@ int cpu_set_apic_base(DeviceState *dev, uint64_t val) return 0; } =20 -uint64_t cpu_get_apic_base(DeviceState *dev) +uint64_t cpu_get_apic_base(APICCommonState *s) { - if (dev) { - APICCommonState *s =3D APIC_COMMON(dev); + if (s) { trace_cpu_get_apic_base((uint64_t)s->apicbase); return s->apicbase; } else { @@ -62,52 +60,43 @@ uint64_t cpu_get_apic_base(DeviceState *dev) } } =20 -bool cpu_is_apic_enabled(DeviceState *dev) +bool cpu_is_apic_enabled(APICCommonState *s) { - APICCommonState *s; - - if (!dev) { + if (!s) { return false; } =20 - s =3D APIC_COMMON(dev); - return s->apicbase & MSR_IA32_APICBASE_ENABLE; } =20 -void cpu_set_apic_tpr(DeviceState *dev, uint8_t val) +void cpu_set_apic_tpr(APICCommonState *s, uint8_t val) { - APICCommonState *s; APICCommonClass *info; =20 - if (!dev) { + if (!s) { return; } =20 - s =3D APIC_COMMON(dev); info =3D APIC_COMMON_GET_CLASS(s); =20 info->set_tpr(s, val); } =20 -uint8_t cpu_get_apic_tpr(DeviceState *dev) +uint8_t cpu_get_apic_tpr(APICCommonState *s) { - APICCommonState *s; APICCommonClass *info; =20 - if (!dev) { + if (!s) { return 0; } =20 - s =3D APIC_COMMON(dev); info =3D APIC_COMMON_GET_CLASS(s); =20 return info->get_tpr(s); } =20 -void apic_enable_tpr_access_reporting(DeviceState *dev, bool enable) +void apic_enable_tpr_access_reporting(APICCommonState *s, bool enable) { - APICCommonState *s =3D APIC_COMMON(dev); APICCommonClass *info =3D APIC_COMMON_GET_CLASS(s); =20 apic_report_tpr_access =3D enable; @@ -116,26 +105,22 @@ void apic_enable_tpr_access_reporting(DeviceState *de= v, bool enable) } } =20 -void apic_enable_vapic(DeviceState *dev, hwaddr paddr) +void apic_enable_vapic(APICCommonState *s, hwaddr paddr) { - APICCommonState *s =3D APIC_COMMON(dev); APICCommonClass *info =3D APIC_COMMON_GET_CLASS(s); =20 s->vapic_paddr =3D paddr; info->vapic_base_update(s); } =20 -void apic_handle_tpr_access_report(DeviceState *dev, target_ulong ip, +void apic_handle_tpr_access_report(APICCommonState *s, target_ulong ip, TPRAccess access) { - APICCommonState *s =3D APIC_COMMON(dev); - vapic_report_tpr_access(s->vapic, CPU(s->cpu), ip, access); } =20 -void apic_deliver_nmi(DeviceState *dev) +void apic_deliver_nmi(APICCommonState *s) { - APICCommonState *s =3D APIC_COMMON(dev); APICCommonClass *info =3D APIC_COMMON_GET_CLASS(s); =20 info->external_nmi(s); @@ -193,16 +178,14 @@ uint32_t apic_get_current_count(APICCommonState *s) return val; } =20 -void apic_init_reset(DeviceState *dev) +void apic_init_reset(APICCommonState *s) { - APICCommonState *s; APICCommonClass *info; int i; =20 - if (!dev) { + if (!s) { return; } - s =3D APIC_COMMON(dev); s->tpr =3D 0; s->spurious_vec =3D 0xff; s->log_dest =3D 0; @@ -233,13 +216,12 @@ void apic_init_reset(DeviceState *dev) } } =20 -void apic_designate_bsp(DeviceState *dev, bool bsp) +void apic_designate_bsp(APICCommonState *s, bool bsp) { - if (dev =3D=3D NULL) { + if (s =3D=3D NULL) { return; } =20 - APICCommonState *s =3D APIC_COMMON(dev); if (bsp) { s->apicbase |=3D MSR_IA32_APICBASE_BSP; } else { @@ -262,7 +244,7 @@ static void apic_reset_common(DeviceState *dev) s->vapic_paddr =3D 0; info->vapic_base_update(s); =20 - apic_init_reset(dev); + apic_init_reset(s); } =20 static const VMStateDescription vmstate_apic_common; diff --git a/target/i386/cpu-apic.c b/target/i386/cpu-apic.c index 242a05fdbe..564c1288e4 100644 --- a/target/i386/cpu-apic.c +++ b/target/i386/cpu-apic.c @@ -41,34 +41,31 @@ APICCommonClass *apic_get_class(Error **errp) =20 void x86_cpu_apic_create(X86CPU *cpu, Error **errp) { - APICCommonState *apic; APICCommonClass *apic_class =3D apic_get_class(errp); =20 if (!apic_class) { return; } =20 - cpu->apic_state =3D DEVICE(object_new_with_class(OBJECT_CLASS(apic_cla= ss))); + cpu->apic_state =3D APIC_COMMON(object_new_with_class(OBJECT_CLASS(api= c_class))); object_property_add_child(OBJECT(cpu), "lapic", OBJECT(cpu->apic_state)); object_unref(OBJECT(cpu->apic_state)); =20 /* TODO: convert to link<> */ - apic =3D APIC_COMMON(cpu->apic_state); - apic->cpu =3D cpu; - apic->apicbase =3D APIC_DEFAULT_ADDRESS | MSR_IA32_APICBASE_ENABLE; + cpu->apic_state->cpu =3D cpu; + cpu->apic_state->apicbase =3D APIC_DEFAULT_ADDRESS | MSR_IA32_APICBASE= _ENABLE; =20 /* * apic_common_set_id needs to check if the CPU has x2APIC - * feature in case APIC ID >=3D 255, so we need to set apic->cpu + * feature in case APIC ID >=3D 255, so we need to set cpu->apic_state= ->cpu * before setting APIC ID */ - qdev_prop_set_uint32(cpu->apic_state, "id", cpu->apic_id); + qdev_prop_set_uint32(DEVICE(cpu->apic_state), "id", cpu->apic_id); } =20 void x86_cpu_apic_realize(X86CPU *cpu, Error **errp) { - APICCommonState *apic; static bool apic_mmio_map_once; =20 if (cpu->apic_state =3D=3D NULL) { @@ -77,12 +74,11 @@ void x86_cpu_apic_realize(X86CPU *cpu, Error **errp) qdev_realize(DEVICE(cpu->apic_state), NULL, errp); =20 /* Map APIC MMIO area */ - apic =3D APIC_COMMON(cpu->apic_state); if (!apic_mmio_map_once) { memory_region_add_subregion_overlap(get_system_memory(), - apic->apicbase & + cpu->apic_state->apicbase & MSR_IA32_APICBASE_BASE, - &apic->io_memory, + &cpu->apic_state->io_memory, 0x1000); apic_mmio_map_once =3D true; } diff --git a/target/i386/cpu-dump.c b/target/i386/cpu-dump.c index a72ed93bd2..67bf31e0ca 100644 --- a/target/i386/cpu-dump.c +++ b/target/i386/cpu-dump.c @@ -291,7 +291,7 @@ static void dump_apic_interrupt(const char *name, uint3= 2_t *ireg_tab, void x86_cpu_dump_local_apic_state(CPUState *cs, int flags) { X86CPU *cpu =3D X86_CPU(cs); - APICCommonState *s =3D APIC_COMMON(cpu->apic_state); + APICCommonState *s =3D cpu->apic_state; if (!s) { qemu_printf("local apic state not available\n"); return; diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 455caff6b2..0a66e1fec9 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -8789,7 +8789,7 @@ void x86_cpu_after_reset(X86CPU *cpu) } =20 if (cpu->apic_state) { - device_cold_reset(cpu->apic_state); + device_cold_reset(DEVICE(cpu->apic_state)); } #endif } diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index 309f043373..f7a6ef650a 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -5029,7 +5029,7 @@ static int kvm_get_mp_state(X86CPU *cpu) =20 static int kvm_get_apic(X86CPU *cpu) { - DeviceState *apic =3D cpu->apic_state; + APICCommonState *apic =3D cpu->apic_state; struct kvm_lapic_state kapic; int ret; =20 diff --git a/target/i386/whpx/whpx-apic.c b/target/i386/whpx/whpx-apic.c index e1ef6d4e6d..afcb25843b 100644 --- a/target/i386/whpx/whpx-apic.c +++ b/target/i386/whpx/whpx-apic.c @@ -151,9 +151,8 @@ static void whpx_apic_put(CPUState *cs, run_on_cpu_data= data) } } =20 -void whpx_apic_get(DeviceState *dev) +void whpx_apic_get(APICCommonState *s) { - APICCommonState *s =3D APIC_COMMON(dev); CPUState *cpu =3D CPU(s->cpu); struct whpx_lapic_state kapic; =20 --=20 2.51.1.dirty From nobody Fri Nov 14 16:50:35 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760907957492304.6440587033785; Sun, 19 Oct 2025 14:05:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vAaZE-0007Uz-Ss; Sun, 19 Oct 2025 17:03:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vAaZ9-0007Sk-FG for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:47 -0400 Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vAaZ6-00022v-48 for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:46 -0400 Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-63c3d7e2217so3760256a12.3 for ; Sun, 19 Oct 2025 14:03:43 -0700 (PDT) Received: from archlinux (dynamic-002-245-026-170.2.245.pool.telefonica.de. [2.245.26.170]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-63c4945f003sm5107655a12.27.2025.10.19.14.03.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Oct 2025 14:03:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760907822; x=1761512622; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4M6OPI3ZScUV1Z3V9YEwq0Mmh3V3HGR6RP7L9+iqOHI=; b=RGBiyAzeh+I2fwE7FLEQTcgph2CwfsHeVVXBgGZGDaetEaKBUwkBdareYLl6JjyZ/G itN9CfOud8S4vHcf1FJTq7KsdenzG9iy0viTWE7OM58yuKKLdAjn5wvpSG32vVu1l7PJ ZPmNlgLp3i9G7NaTOMvC6XLdM0+r+NxyMtBtK9hl1utBGynTT+ylEw2x5hXMm+IFjdo9 bmnSTI2TnbOCduSH/Y/OiWM6apGDf85TUqBWP+4A5TPIshbRY+aqbK0kxzY6P5tAXjyX 1W3hdCuALwuk0FoG7HwJLOPjbcmwIzHRQ35keFkGbqGbpE7lz8dMQYjF5rm+t5AgiHsN 0+fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760907822; x=1761512622; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4M6OPI3ZScUV1Z3V9YEwq0Mmh3V3HGR6RP7L9+iqOHI=; b=HiYoqJyG1tgJPQAuH8ctR8PuIZIQDlCYs1Eg9mdmOWdFbP+tQDvuKcf/rz+VuXQxgH 8o/uyKq4D+uXZviR+UJNZYn1urqrIl1uBML0tb2kOriXJh4IET+Gi562U0wxLwgbzinQ nji0wbXtBRKWaSxFtBZ9TtgMRB1panGGzTtVu4kf46vTL/YSMejKtjA7/QNaQMEFfT38 ceLYDR/MrXGvVzmRWxP46D9rd5eGkVaUV5Tgpug3PFxCq24m26aYUSBtuQrSGbrbEXHh r3UKMVPXn84fqbVxVQ+unMbdH98Uf4Hh2FhlInDqqttWQzrkO8XTZjl4LzHsZNsK1uvb noog== X-Gm-Message-State: AOJu0YzToFkb0WAiTt+yc72G0LR+26ATnUn8S35TEWGXBTH2bh8bdtM/ zlyst03CiJV1zmVADGc9PytlmhKuHfxKQHyJaGFY/XkoR+94Tvks6h1UrcIuTSFk X-Gm-Gg: ASbGnctNm9fxqpUVM0lnujBPmalWSc6Dn5PmRE/QBwYJOQGKjYHSCQTdXDU9csa3vdr 95+Wj/z9mp+QeDDnP8wAsUhDfCkYzGlRU6LZ2fPi+oU4swBQju69rO2avnS3M0hv6si+pQ381in iMdoThEnzhZ0lTfHzTTHMQc7WHaBCLVKFIybTpNjq/RW6xHtJrFoH4+/YxBxkbHrCKPF+lD5w0d Tpq6M0fYjxR+VivjJAx5EIfkllOhxRrWiBeUxvsD2uwlqj96cHzorJkxzzUao5O6f/oVfwVrKA6 eS+FY9nTRPRWf1hnZqYKsmwPMphzN8zfd1w91maJLmkseGNPYIj3spB3ThARVKvIc5eUPK7reWE JIhyBPfUb/19h5tGkrCGgnh1Gv7V+0+1p5sHHLXbQMk9nyqVfjRbfynbPdk4LBvoVTuNGTTW5dF OtqxupB2RtO1fQjkeX/3vMIyoNgMKHS8qB9a9UKYwgZfPF8zb5q4nbTKaCN+v12mX+TmMr X-Google-Smtp-Source: AGHT+IGSAEruyy42RcbostlDmIvNL1l2atIU8PAtqHcOivFYyhlrRwD6QwsSK/hgSujyhUWyY/+Q2w== X-Received: by 2002:a05:6402:2681:b0:634:ba7e:f6c8 with SMTP id 4fb4d7f45d1cf-63c1f6d5e1bmr9986226a12.34.1760907821475; Sun, 19 Oct 2025 14:03:41 -0700 (PDT) From: Bernhard Beschow To: qemu-devel@nongnu.org Cc: Marcel Apfelbaum , Laurent Vivier , "Michael S. Tsirkin" , Eduardo Habkost , Zhao Liu , kvm@vger.kernel.org, Michael Tokarev , Cameron Esfahani , qemu-block@nongnu.org, Paolo Bonzini , qemu-trivial@nongnu.org, Laurent Vivier , Richard Henderson , Roman Bolshakov , Phil Dennis-Jordan , John Snow , Fabiano Rosas , Gerd Hoffmann , Sunil Muthuswamy , Marcelo Tosatti , Bernhard Beschow Subject: [PATCH v3 08/10] hw/i386/apic: Ensure own APIC use in apic_msr_{read, write} Date: Sun, 19 Oct 2025 23:03:01 +0200 Message-ID: <20251019210303.104718-9-shentey@gmail.com> X-Mailer: git-send-email 2.51.1.dirty In-Reply-To: <20251019210303.104718-1-shentey@gmail.com> References: <20251019210303.104718-1-shentey@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::536; envelope-from=shentey@gmail.com; helo=mail-ed1-x536.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1760907958611154100 Content-Type: text/plain; charset="utf-8" Avoids the `current_cpu` global and seems more robust by not "forgetting" t= he own APIC and then re-determining it by cpu_get_current_apic() which uses the global. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/i386/apic.h | 4 ++-- hw/intc/apic.c | 10 ++-------- target/i386/hvf/hvf.c | 4 ++-- target/i386/tcg/system/misc_helper.c | 4 ++-- 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/include/hw/i386/apic.h b/include/hw/i386/apic.h index 871f142888..6a0933f401 100644 --- a/include/hw/i386/apic.h +++ b/include/hw/i386/apic.h @@ -19,8 +19,8 @@ void apic_sipi(APICCommonState *s); void apic_poll_irq(APICCommonState *s); void apic_designate_bsp(APICCommonState *s, bool bsp); int apic_get_highest_priority_irr(APICCommonState *s); -int apic_msr_read(int index, uint64_t *val); -int apic_msr_write(int index, uint64_t val); +int apic_msr_read(APICCommonState *s, int index, uint64_t *val); +int apic_msr_write(APICCommonState *s, int index, uint64_t val); bool is_x2apic_mode(APICCommonState *s); =20 /* pc.c */ diff --git a/hw/intc/apic.c b/hw/intc/apic.c index cb35c80c75..ba0eda3921 100644 --- a/hw/intc/apic.c +++ b/hw/intc/apic.c @@ -881,11 +881,8 @@ static uint64_t apic_mem_read(void *opaque, hwaddr add= r, unsigned size) return val; } =20 -int apic_msr_read(int index, uint64_t *val) +int apic_msr_read(APICCommonState *s, int index, uint64_t *val) { - APICCommonState *s; - - s =3D cpu_get_current_apic(); if (!s) { return -1; } @@ -1079,11 +1076,8 @@ static void apic_mem_write(void *opaque, hwaddr addr= , uint64_t val, apic_register_write(index, val); } =20 -int apic_msr_write(int index, uint64_t val) +int apic_msr_write(APICCommonState *s, int index, uint64_t val) { - APICCommonState *s; - - s =3D cpu_get_current_apic(); if (!s) { return -1; } diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c index 8445cadece..33f723a76a 100644 --- a/target/i386/hvf/hvf.c +++ b/target/i386/hvf/hvf.c @@ -527,7 +527,7 @@ void hvf_simulate_rdmsr(CPUState *cs) int ret; int index =3D (uint32_t)env->regs[R_ECX] - MSR_APIC_START; =20 - ret =3D apic_msr_read(index, &val); + ret =3D apic_msr_read(cpu->apic_state, index, &val); if (ret < 0) { x86_emul_raise_exception(env, EXCP0D_GPF, 0); } @@ -638,7 +638,7 @@ void hvf_simulate_wrmsr(CPUState *cs) int ret; int index =3D (uint32_t)env->regs[R_ECX] - MSR_APIC_START; =20 - ret =3D apic_msr_write(index, data); + ret =3D apic_msr_write(cpu->apic_state, index, data); if (ret < 0) { x86_emul_raise_exception(env, EXCP0D_GPF, 0); } diff --git a/target/i386/tcg/system/misc_helper.c b/target/i386/tcg/system/= misc_helper.c index 9c3f5cc99b..0c32424d36 100644 --- a/target/i386/tcg/system/misc_helper.c +++ b/target/i386/tcg/system/misc_helper.c @@ -299,7 +299,7 @@ void helper_wrmsr(CPUX86State *env) int index =3D (uint32_t)env->regs[R_ECX] - MSR_APIC_START; =20 bql_lock(); - ret =3D apic_msr_write(index, val); + ret =3D apic_msr_write(env_archcpu(env)->apic_state, index, val); bql_unlock(); if (ret < 0) { goto error; @@ -477,7 +477,7 @@ void helper_rdmsr(CPUX86State *env) int index =3D (uint32_t)env->regs[R_ECX] - MSR_APIC_START; =20 bql_lock(); - ret =3D apic_msr_read(index, &val); + ret =3D apic_msr_read(x86_cpu->apic_state, index, &val); bql_unlock(); if (ret < 0) { raise_exception_err_ra(env, EXCP0D_GPF, 0, GETPC()); --=20 2.51.1.dirty From nobody Fri Nov 14 16:50:35 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760907943379652.3610959616875; Sun, 19 Oct 2025 14:05:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vAaZN-0007Y8-CE; Sun, 19 Oct 2025 17:04:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vAaZH-0007XQ-MT for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:55 -0400 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vAaZ8-00023C-85 for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:54 -0400 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-63c3d7e2217so3760295a12.3 for ; Sun, 19 Oct 2025 14:03:45 -0700 (PDT) Received: from archlinux (dynamic-002-245-026-170.2.245.pool.telefonica.de. [2.245.26.170]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-63c4945f003sm5107655a12.27.2025.10.19.14.03.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Oct 2025 14:03:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760907824; x=1761512624; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ROqS5b9mjR1Hcdo/MNxQW9zo/TvwGOsH5rFLzCQXjhw=; b=Xi6wop5ZBLtEvQ7okDhUca5A8UKK2iFeejWZmbfNmgtgPG3GJpGEh/asEIiLsJpojg YDPosdY1jqq9P0XEiRjoY//JHWSUIynF9v2jJt9oIU/aGwf2w8IlWSyCge5Z1dfP0OXX ypcdtexxV3TZ7BOQ9BFUjyDH0XEtVgGjCJFixe1jFwckSxd+nO6Mowc9gRLTvwdPKtFO HUxoj0CjyPJK8ResVw7gHTUP11DY2tLOtvb/xenrQ+poOiYt4qKQPWqGbm3FQtUipcFC yz0/DghId5boNP8t7Jiwu8CcFGPYt+w6iUe8TTZMMPkQ8CWx8RJgkL0mxDwrw6j10lIF Tt/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760907824; x=1761512624; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ROqS5b9mjR1Hcdo/MNxQW9zo/TvwGOsH5rFLzCQXjhw=; b=LQzDy6dEVgoramNR76DCY9VG0x/JxKpL+JbOPSdOjaoPM1/pTLiWovsILLzvSTSIoB Gwe1YHNUtsE3UVm/ZfdLg4HcZIryuRlQw4qZe45fAY1MacGBtF2yw1Z97Vtns80tFUr5 unO21G2kktFsixCz0dyK0n/EtW2ei9u7tTgvIZGW0zTc6mXUbDyfzE1LKWzDNOz3BhlH VPB/8DrQSNxdjUJz4aq7XnDxPsfYAGA7uuKlpLR7B2hplWpJkRn+k6o91FQM3bHBW55g STsR4foU2oGehaFnB9IkRycNPMSl9XQjIhcIQ0z2lXUQJ7tKO7qVA5yFoV2R1tzvel1d KhNg== X-Gm-Message-State: AOJu0YxFRN0ASCz0TuRYjSsUh/VGvFzMz2TRy0BzrJXY3ri4H2MzCrba Ikt+bQoAPRVToyDxfk+en23nge3Pk8oqSDbGlx5losvjVpeu/CMngHVRCf5EElJS X-Gm-Gg: ASbGncuIwxqxfpqkbMIMLmZk26jiuDjnyGAKnTJCb/jPlf15a2DFZthGxcabt40kpEI +4HI4xV4RQOfj8LFoOsmhnbtaEisMasRaug1MHHTe9EjTbsU0liQD3FrEE9pjsf4CfZ3QMhy+h6 +jEgWK047fA43rdBbqJm3ypQhEp42hl80lxAoe/XCZCxYK/dt/dXWSXlOi2DMY5gtmDDTc1uWoy XeckF/S36f0ZPHhXKc7qx7pKjUmFB7kFxtP5HXrfZY1sogbxXD8+wdXCaD8WJjlLa0GrSl04Ebv srxuSvwxxFWrM6jLvF+79Mby4fRk0eFvl5F/KcC2mwdUCcJfGEhLrTz6sXE05BTeXznBDDUfPC7 huTF47I8k++I2mZu/4FXYIvBvR4p/3yxrxFkKmHIpzbls/1dxSGre3MKOTwjgbgRdI0zJQ8V139 JcdUFX+fPBWXEu0hq20R7GuKQhJpv1hSabvVnU/Mj0D4u1tMvcl6DctdArvPyx+vT1khXf X-Google-Smtp-Source: AGHT+IHqxQHSLWGjl/1o+caM7v59/pl99Hw05CaKkU9VxpB1BkUo2CSz0N/TNd5uoNKIH8Cs1RcreQ== X-Received: by 2002:a05:6402:461a:b0:634:ab80:d84b with SMTP id 4fb4d7f45d1cf-63c1f6c42c3mr10193464a12.32.1760907824053; Sun, 19 Oct 2025 14:03:44 -0700 (PDT) From: Bernhard Beschow To: qemu-devel@nongnu.org Cc: Marcel Apfelbaum , Laurent Vivier , "Michael S. Tsirkin" , Eduardo Habkost , Zhao Liu , kvm@vger.kernel.org, Michael Tokarev , Cameron Esfahani , qemu-block@nongnu.org, Paolo Bonzini , qemu-trivial@nongnu.org, Laurent Vivier , Richard Henderson , Roman Bolshakov , Phil Dennis-Jordan , John Snow , Fabiano Rosas , Gerd Hoffmann , Sunil Muthuswamy , Marcelo Tosatti , Bernhard Beschow Subject: [PATCH v3 09/10] hw/intc/apic: Pass APICCommonState to apic_register_{read, write} Date: Sun, 19 Oct 2025 23:03:02 +0200 Message-ID: <20251019210303.104718-10-shentey@gmail.com> X-Mailer: git-send-email 2.51.1.dirty In-Reply-To: <20251019210303.104718-1-shentey@gmail.com> References: <20251019210303.104718-1-shentey@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::52e; envelope-from=shentey@gmail.com; helo=mail-ed1-x52e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1760907944102158500 Content-Type: text/plain; charset="utf-8" As per the previous patch, the APIC instance is already available in apic_msr_{read,write}, so it can be passed along. It turns out that the call to cpu_get_current_apic() is only required in apic_mem_{read,write}, so it has been moved there. Longer term, cpu_get_current_apic() could be removed entirely if apic_mem_{read,write} is tied to a CPU's local address space. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/intc/apic.c | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/hw/intc/apic.c b/hw/intc/apic.c index ba0eda3921..077ef18686 100644 --- a/hw/intc/apic.c +++ b/hw/intc/apic.c @@ -769,17 +769,11 @@ static void apic_timer(void *opaque) apic_timer_update(s, s->next_time); } =20 -static int apic_register_read(int index, uint64_t *value) +static int apic_register_read(APICCommonState *s, int index, uint64_t *val= ue) { - APICCommonState *s; uint32_t val; int ret =3D 0; =20 - s =3D cpu_get_current_apic(); - if (!s) { - return -1; - } - switch(index) { case 0x02: /* id */ if (is_x2apic_mode(s)) { @@ -868,6 +862,7 @@ static int apic_register_read(int index, uint64_t *valu= e) =20 static uint64_t apic_mem_read(void *opaque, hwaddr addr, unsigned size) { + APICCommonState *s =3D cpu_get_current_apic(); uint64_t val; int index; =20 @@ -875,8 +870,12 @@ static uint64_t apic_mem_read(void *opaque, hwaddr add= r, unsigned size) return 0; } =20 + if (!s) { + return -1; + } + index =3D (addr >> 4) & 0xff; - apic_register_read(index, &val); + apic_register_read(s, index, &val); =20 return val; } @@ -891,7 +890,7 @@ int apic_msr_read(APICCommonState *s, int index, uint64= _t *val) return -1; } =20 - return apic_register_read(index, val); + return apic_register_read(s, index, val); } =20 static void apic_send_msi(MSIMessage *msi) @@ -919,15 +918,8 @@ static void apic_send_msi(MSIMessage *msi) apic_deliver_irq(dest, dest_mode, delivery, vector, trigger_mode); } =20 -static int apic_register_write(int index, uint64_t val) +static int apic_register_write(APICCommonState *s, int index, uint64_t val) { - APICCommonState *s; - - s =3D cpu_get_current_apic(); - if (!s) { - return -1; - } - trace_apic_register_write(index, val); =20 switch(index) { @@ -1054,12 +1046,17 @@ static int apic_register_write(int index, uint64_t = val) static void apic_mem_write(void *opaque, hwaddr addr, uint64_t val, unsigned size) { + APICCommonState *s =3D cpu_get_current_apic(); int index =3D (addr >> 4) & 0xff; =20 if (size < 4) { return; } =20 + if (!s) { + return; + } + if (addr > 0xfff || !index) { /* * MSI and MMIO APIC are at the same memory location, @@ -1073,7 +1070,7 @@ static void apic_mem_write(void *opaque, hwaddr addr,= uint64_t val, return; } =20 - apic_register_write(index, val); + apic_register_write(s, index, val); } =20 int apic_msr_write(APICCommonState *s, int index, uint64_t val) @@ -1086,7 +1083,7 @@ int apic_msr_write(APICCommonState *s, int index, uin= t64_t val) return -1; } =20 - return apic_register_write(index, val); + return apic_register_write(s, index, val); } =20 static void apic_pre_save(APICCommonState *s) --=20 2.51.1.dirty From nobody Fri Nov 14 16:50:35 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1760907893; cv=none; d=zohomail.com; s=zohoarc; b=cdK76VahSc7EEkubgqN7k825Y9rn5o237kR72PREf+U37WN7Os1IZ58/NKa9xC4jBdcv1RPS8QyTTTYJCdhU+MtGUrE77uoadxjhQKkuxRo9bAa5lqLcrbA1jSoqMNpOq3nBoAYGi8YcP9laS8SxfYNrdevj3HBmC49ESmxXWoI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760907893; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=oQnslZlvL/ycghWXR/jv6T9Aq0fKGJTc5vHN36t+VJw=; b=DhEWVxJF1YiF+J5Y9O5Ms4ThwWiuUZYobJ13/NPDf+VFztovtYwU2RuvSpzPtvVbwcCFk7rOPLsTqbs9iFOnUmOyIEynHaFKdSLhlk24RPNxeR1JdqWZihQaA23U72OnIAv+tURWGKba78b6NsC37MAyoP7fztBKL7qSd15zZ5g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1760907893468345.08188730824804; Sun, 19 Oct 2025 14:04:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vAaZJ-0007Xt-PP; Sun, 19 Oct 2025 17:03:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vAaZG-0007Vz-Nc for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:54 -0400 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vAaZD-000240-1d for qemu-devel@nongnu.org; Sun, 19 Oct 2025 17:03:53 -0400 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-b457d93c155so542181066b.1 for ; Sun, 19 Oct 2025 14:03:47 -0700 (PDT) Received: from archlinux (dynamic-002-245-026-170.2.245.pool.telefonica.de. [2.245.26.170]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-63c4945f003sm5107655a12.27.2025.10.19.14.03.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Oct 2025 14:03:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760907827; x=1761512627; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oQnslZlvL/ycghWXR/jv6T9Aq0fKGJTc5vHN36t+VJw=; b=LpY0szDXKHb2hGm8477/xrqtA7rDzKAFs4rNIwDeFuWjyrx+k+zxTnAKVhCU3RWxpb lGeAOZIA58LiORMaiSbfDp+6/QlOTjbgFw61oIvuq4zHMfkhF3Ue6ST4mD+VPFzRGwDk MFRWd4lYmjnQP0GmP94+cMKB1EZ63ycgnjURQ2kPcHJHq9L4BDmU/3WCtUKPbNHfdi8m dFYCY3iWslhUXXpz4l1LqWXL7rzih/H7hD5iZVVSO2yvw2IWQusFT9tRmu39KE6V4Pdl 0+pqqRnPVUUGP1un3UL2Q2A58M//qrAuv8OlK/PvHOOLysuHyiQOBX+BqqnP9VSkknrQ Jcfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760907827; x=1761512627; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oQnslZlvL/ycghWXR/jv6T9Aq0fKGJTc5vHN36t+VJw=; b=VGGjfy2Q+UamSTcbFRexKbwKDYge/4Ei7OIW1a+tWumtZgjZLrEExNRgu+BL53rHMO 5mJSOvRCN1KPUtdGXrvcRRT53ErWGlsaPaIpS1qY6Yi23CLiAZKPU6sWoTd0/cD4Ghok eQfyoebF/SfjKNjko59i+fRRxMs3DGFznG4jBZ3bzx6r5r8Z5/auc4lAyJvzcb+FhNYG k8llIzLcDEIZDV3s9AOWrGgC02bCA3NN7jieSrR7Dudury9EZ1xwAIRxx7RSn7liEeRt p6VxH1Zt2RWJ4GI/CTZwEFK4S3MkmScYXc92nQjO3Ga4aKlGV62ViHLCZdEG/n4punUH QZ4w== X-Gm-Message-State: AOJu0Yy8JHmJrpZkiaEHCVHSfgUamom98m3rszImfpq096CdvnSE1lxB aREf7UpGtTemv6PqstSDL54BrYj3O8fsDKWDXQnfwDvMIQtDfYkwV+qscQmXehSX X-Gm-Gg: ASbGncsYi+cjyIf2sAUSAaCmdtIX6sxkx93UUbeHW3w8PPqm72Ay9fMuFRorXMDCj+4 pPYPxYHVNZDp1Jn1W6fOk2elk8X9YM0QgYqbFSd+4k0GXGqTh/nrMD+SlJ3frP9nVsyG2rhAn2O wAAx0WzGS/DBZYOENAT/V1+0CYFQiny/w903nM4eyYLEelXKETCkkVH/2648IzChZzql9HQkDhw j21Y/lmXae8yn4Kq4Y/y2VnOGoRmSPn98P7zA/xFXyxI8TEJn8EqpYRm9lKEG0QF1J3JpmQE8Mm BXN10sIzOLQvs79W6pl7XNMZPhzVPOrySnKgTdxtSlWD8kpquTrus/A5h1CdhevqG6tj2b3Gj2e o4USl5D3BV2VGsMXVWgpK5XX5ESHHw/3vfjjmtL879moO7tEvObRr0d2HxFxcfWeUFBeRqXblF5 pcPEQiYr/GWxN+2eyOPG8fP1qR7E5dWeVvKph86yUkEtUKHPoHON75GNwFs7+K4Q1kvOiU X-Google-Smtp-Source: AGHT+IFxPtXo9vzXd3rOAqwwxaNDvJIFsK7Eo1zA6M2lE6v+t/sNoVY4Repet5YBzuRnemWgklColw== X-Received: by 2002:a17:907:c06:b0:b3c:bd91:28a4 with SMTP id a640c23a62f3a-b6473045139mr1262880766b.28.1760907826411; Sun, 19 Oct 2025 14:03:46 -0700 (PDT) From: Bernhard Beschow To: qemu-devel@nongnu.org Cc: Marcel Apfelbaum , Laurent Vivier , "Michael S. Tsirkin" , Eduardo Habkost , Zhao Liu , kvm@vger.kernel.org, Michael Tokarev , Cameron Esfahani , qemu-block@nongnu.org, Paolo Bonzini , qemu-trivial@nongnu.org, Laurent Vivier , Richard Henderson , Roman Bolshakov , Phil Dennis-Jordan , John Snow , Fabiano Rosas , Gerd Hoffmann , Sunil Muthuswamy , Marcelo Tosatti , Bernhard Beschow Subject: [PATCH v3 10/10] tests/qtest/ds1338-test: Reuse from_bcd() Date: Sun, 19 Oct 2025 23:03:03 +0200 Message-ID: <20251019210303.104718-11-shentey@gmail.com> X-Mailer: git-send-email 2.51.1.dirty In-Reply-To: <20251019210303.104718-1-shentey@gmail.com> References: <20251019210303.104718-1-shentey@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::62a; envelope-from=shentey@gmail.com; helo=mail-ej1-x62a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1760907895964158500 Content-Type: text/plain; charset="utf-8" from_bcd() is a public API function which can be unit-tested. Reuse it to a= void code duplication. Signed-off-by: Bernhard Beschow Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- tests/qtest/ds1338-test.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/tests/qtest/ds1338-test.c b/tests/qtest/ds1338-test.c index d12424d27f..b8d0e65ec4 100644 --- a/tests/qtest/ds1338-test.c +++ b/tests/qtest/ds1338-test.c @@ -18,16 +18,12 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/bcd.h" #include "libqtest.h" #include "libqos/i2c.h" =20 #define DS1338_ADDR 0x68 =20 -static inline uint8_t bcd2bin(uint8_t x) -{ - return ((x) & 0x0f) + ((x) >> 4) * 10; -} - static void send_and_receive(void *obj, void *data, QGuestAllocator *alloc) { QI2CDevice *i2cdev =3D (QI2CDevice *)obj; @@ -39,9 +35,9 @@ static void send_and_receive(void *obj, void *data, QGues= tAllocator *alloc) i2c_read_block(i2cdev, 0, resp, sizeof(resp)); =20 /* check retrieved time against local time */ - g_assert_cmpuint(bcd2bin(resp[4]), =3D=3D , tm_ptr->tm_mday); - g_assert_cmpuint(bcd2bin(resp[5]), =3D=3D , 1 + tm_ptr->tm_mon); - g_assert_cmpuint(2000 + bcd2bin(resp[6]), =3D=3D , 1900 + tm_ptr->tm_y= ear); + g_assert_cmpuint(from_bcd(resp[4]), =3D=3D , tm_ptr->tm_mday); + g_assert_cmpuint(from_bcd(resp[5]), =3D=3D , 1 + tm_ptr->tm_mon); + g_assert_cmpuint(2000 + from_bcd(resp[6]), =3D=3D , 1900 + tm_ptr->tm_= year); } =20 static void ds1338_register_nodes(void) --=20 2.51.1.dirty