get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.1/patches/2223740/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2223740,
    "url": "http://patchwork.ozlabs.org/api/1.1/patches/2223740/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260416-vhost-user-rtc-v1-1-1b2d44f0c889@linaro.org/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/1.1/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20260416-vhost-user-rtc-v1-1-1b2d44f0c889@linaro.org>",
    "date": "2026-04-16T05:54:40",
    "name": "virtio: Add vhost-user-rtc and vhost-user-rtc-pci",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "7e202c88acfc28c9b6bed7228c7f7f859f3152cc",
    "submitter": {
        "id": 86526,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/86526/?format=api",
        "name": "Manos Pitsidianakis",
        "email": "manos.pitsidianakis@linaro.org"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260416-vhost-user-rtc-v1-1-1b2d44f0c889@linaro.org/mbox/",
    "series": [
        {
            "id": 500078,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/500078/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=500078",
            "date": "2026-04-16T05:54:40",
            "name": "virtio: Add vhost-user-rtc and vhost-user-rtc-pci",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/500078/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2223740/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2223740/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=LgfVxLJA;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fx6gP09r8z1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 15:55:27 +1000 (AEST)",
            "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wDFgs-0005oJ-N7; Thu, 16 Apr 2026 01:55:02 -0400",
            "from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <manos.pitsidianakis@linaro.org>)\n id 1wDFgr-0005nz-8F\n for qemu-devel@nongnu.org; Thu, 16 Apr 2026 01:55:01 -0400",
            "from mail-wm1-x332.google.com ([2a00:1450:4864:20::332])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <manos.pitsidianakis@linaro.org>)\n id 1wDFgo-0004Ub-TR\n for qemu-devel@nongnu.org; Thu, 16 Apr 2026 01:55:00 -0400",
            "by mail-wm1-x332.google.com with SMTP id\n 5b1f17b1804b1-488a041eae5so56164295e9.1\n for <qemu-devel@nongnu.org>; Wed, 15 Apr 2026 22:54:58 -0700 (PDT)",
            "from [127.0.1.1] (athedsl-4440559.home.otenet.gr. [79.129.177.223])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-488f0e7ecd9sm55554255e9.7.2026.04.15.22.54.53\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 15 Apr 2026 22:54:56 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1776318897; x=1776923697; darn=nongnu.org;\n h=cc:to:message-id:content-transfer-encoding:mime-version:subject\n :date:from:from:to:cc:subject:date:message-id:reply-to;\n bh=8slHyaJLri+SD34bKtij8jx+HsYlXYOGXHvMXRXN0yU=;\n b=LgfVxLJANDUKHu3pvhg86VF7GAsAqoTqOCzlk0ESVLVQO18r95bi4gh87uIitq9f4G\n KQz+R5XZ5H/tHrGM5QugIVpGS8wVn0fYMVRY2jeuKceuf/xnc6VJXjgej4g8I1xr5/UY\n pYuxzD9yySjthL6JzRR0GFGUt67tc0OmHBUf/lJmge/TdloQX9PBvJqQ4uGMGOC1FxVa\n ojtjfciblQ6hBnBn9BdG5AyPRM7+U19C8X7xWBR+gODTUIWkAcs1R3kIgukapxsy4JYP\n dcy96w/eZ7YYU8Ecx5Yfodct/P6jLcE+tE6HAN0Ezn6dljoeBAxAJ9uVuSezxzoDhr+Z\n pmhQ==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776318897; x=1776923697;\n h=cc:to:message-id:content-transfer-encoding:mime-version:subject\n :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=8slHyaJLri+SD34bKtij8jx+HsYlXYOGXHvMXRXN0yU=;\n b=mlyx8ITbDZKY0orjaoo/n23ynkEw95Zh01chyxNJFX6Fp7biQddw4zOoyN2xJ7i326\n nxdYtKXQG4Jok29fmvGl5nrl/fTdC0OL8zSQIvX1AdL6qpuOt9qYKk5sj+6+vHVa3Vax\n We3mh16PG0PmM5VT9Nm0vVi5rwShOrE3vpUfj4RbRU3ls9/9Yzx/TvGgluyMKHeR9YYJ\n qA/QLs0h3N2dQ9VsNfLKSKAc4bqxIYA6O+IwkTSCfB6KlSwnsHsOb6oEHwCCzk+68lEV\n 3QYCX8+1+vyNR7Xh2mHEt/NTbjPSaCrSmES/ZUGOtXPzVgBNDXcLpjntPF170N9hKG02\n dtNQ==",
        "X-Gm-Message-State": "AOJu0Yy2jl35RCINI+mej55ZJLwWPwvoNHFFrBCI5hvTScbJffeWDw2p\n +riezMLTXXrm0imHDaTdJy9xAipXEqa+YXYcg2TRmScd4Gi8DaxsoGhCSaV3Y2Otpw8=",
        "X-Gm-Gg": "AeBDietkV6ugLfZlN4Umj+0ImXGRqjskWifZOgJTCQRHj+E0a59oieBkZxaCDp5emdw\n ebohn5K8xJXfr7MzhzOa76tAm1Rh+/oDbvGseSflRKIm9Y18oKvpDSJ2lFrTsdqocEeqQsB96Hh\n BDaCvnqDVle6NrVUT+qQkaHQMsN/HhiZDsXxtCr6mljx24Kvw8JAib2OWb56tAwvF/Z+qn6aISf\n 8cSu5XRRv254moByI+ClFQPtIq2Flz2hvlbHOHDkFb0nnGJw/WaQV8pHOYH3Tha8fB2gT27NVYq\n mJlxU18FFDsMkbfvad9pWytL6CWbIh3WcWHxUevIscNBJJZkMuv1UTZlzXloFEED3l/SU7sQjPk\n RAOqOLNHcFoYdW0Fv6pZTOmz7a7gtUzzfqijGb3s0Riwv4zAw5Y7aR6ofTfq7K5P4mackYeFMI/\n Ae7TUq953vKcxL4lYBUtc3jh6FTKou57Jx8WKpFkmUKkgcqIWMDKmJKTVdMAOW7iUXH+mOwTAZi\n vRt/pVGGy6+31tUXr5rjPXbGfjb/danqyeRlpCx",
        "X-Received": "by 2002:a05:600c:8284:b0:488:d228:a133 with SMTP id\n 5b1f17b1804b1-488d683d280mr320573965e9.14.1776318896859;\n Wed, 15 Apr 2026 22:54:56 -0700 (PDT)",
        "From": "Manos Pitsidianakis <manos.pitsidianakis@linaro.org>",
        "Date": "Thu, 16 Apr 2026 08:54:40 +0300",
        "Subject": "[PATCH] virtio: Add vhost-user-rtc and vhost-user-rtc-pci",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "8bit",
        "Message-Id": "<20260416-vhost-user-rtc-v1-1-1b2d44f0c889@linaro.org>",
        "X-B4-Tracking": "v=1; b=H4sIAKB54GkC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE\n vPSU3UzU4B8JSMDIzMDE0Mz3bKM/OIS3VKgNt2ikmTd5FSLtDQDY3NzY1MzJaCmgqLUtMwKsIH\n RsbW1AGP3vRhgAAAA",
        "X-Change-ID": "20260416-vhost-user-rtc-ce8ff0377356",
        "To": "qemu-devel@nongnu.org",
        "Cc": "=?utf-8?b?TWl0c3V5YSBJa3V5YSAo5LiJ44OE5bGLIOmDgeWTiSk=?=\n <mitsuya.ikuya@jp.panasonic.com>, =?utf-8?b?S1VaVSBLQVpVS0kgKOiRm+eUnyA=?=\n\t=?utf-8?b?5LiA5qi5KQ==?= <kuzu.kazuki@jp.panasonic.com>,\n Stefano Garzarella <sgarzare@redhat.com>,\n =?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,\n  \"Michael S. Tsirkin\" <mst@redhat.com>,\n  Manos Pitsidianakis <manos.pitsidianakis@linaro.org>",
        "X-Mailer": "b4 0.14.2",
        "X-Developer-Signature": "v=1; a=openpgp-sha256; l=9080;\n i=manos.pitsidianakis@linaro.org; h=from:subject:message-id;\n bh=Gu4zz08qejzPlxv33NZOc2nfnNCvsClUSvSNSbj1KaU=;\n b=LS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tCgpvd0VCYlFLUy9aQU5Bd0FLQVhjcHgzQi9mZ\n 25RQWNzbVlnQnA0SG10ak5WOTNrVWJkWjd3dDdHWUV5SnNLYkg4ClhHMytZZXpJWGsrSHZ2Qjl0\n RkdKQWpNRUFBRUtBQjBXSVFUTVhCdE9SS0JXODRkd0hSQjNLY2R3ZjM0SjBBVUMKYWVCNXJRQUt\n DUkIzS2Nkd2YzNEowSU0xRC85OXlpTmEzWGZtVWhjWTdMaDFGUWd1NTRBK3BKUll4Zmc4U2R2Zw\n pxaUE5dEoxdE9RSTFyVmlWZHdHanJVTnRJd21PN0ZLalZxYkU0WTljY0VteXdHdVFpY0h5bGNtb\n zJoNVBFUDNQCm0zRFpDK3JnTXR0dFRjU2ZReVF3MHE5QlJXRWd1VnBzaW9ZR2xqREdnZHNWdUM1\n cEl4VlVrSWZEeFEySENsNjYKQVVSV1RtTVh0QktxYXRNc0JNUDZ2SkNGNU5SU3NTeGdJM1dsdWN\n QdDlBR3ZhZmlYbzJOd0R0TDhmTEpLNlBqNQpmejJ4ajFxVmJVQStQREtaWlg4akp3SlRTZmUwZW\n FWODNORm9JUDMrNzlSSEJocDFTK2pHNWZCQTdsY0pEWDkvClVBRlM5aS96NXRpdnIvSVFNMU91W\n nR2cXY1VTYvZ1Z0ODNpL1BZTkpuTTIybkZCOHB3Mld6YVk2M0I0SFY1WUQKNlBWTFNuWWpZOHJC\n TzI3bnJOTHkzV2VITGdYckdZbmsyc1NOQkZJYWwvZmxhblZNMGVDcU0yamFYWVJHYXR1VgppUzF\n ra2R3ajZzUXh3NVZUMFNxU2h1RjNoQW9oYjI0eUlMMHRCM0lENW1TVnBaMDh6cFgwWXZTZmEvdU\n 15Z0FaCjVaUVkxN3dNa05HdldRaEpEdExBWnRMZ2hFSStxTWdWdkhFVEVWUzU3UkQvZU1rL1JXZ\n VNNRHltMjZQSWFSVWgKVGxmUnNIbjNDelZjditEWUVsNi9jeHRRd1gvdW1yaU83R2JlYkJpU2N1\n YzBnSmNUL2hIeWtMWHlnNDRxOERpeAptUE9oY1pJVitRbVRiMnpZczAyZmN2WENEd3BqNHBKWkI\n rVklCT2ZLaFpqeDAwanRZRGhhdm9DblJxcWJYRFJTCjF1Z01QQT09Cj01ZDVNCi0tLS0tRU5EIF\n BHUCBNRVNTQUdFLS0tLS0K",
        "X-Developer-Key": "i=manos.pitsidianakis@linaro.org; a=openpgp;\n fpr=7C721DF9DB3CC7182311C0BF68BC211D47B421E1",
        "Received-SPF": "pass client-ip=2a00:1450:4864:20::332;\n envelope-from=manos.pitsidianakis@linaro.org; helo=mail-wm1-x332.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,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no",
        "X-Spam_action": "no action",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "qemu development <qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.nongnu.org/archive/html/qemu-devel>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"
    },
    "content": "Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>\n---\n include/hw/virtio/vhost-user-rtc.h        | 22 ++++++++++\n MAINTAINERS                               |  6 +++\n docs/system/devices/virtio/vhost-user.rst |  3 ++\n hw/virtio/Kconfig                         |  5 +++\n hw/virtio/meson.build                     |  3 ++\n hw/virtio/vhost-user-rtc-pci.c            | 70 +++++++++++++++++++++++++++++++\n hw/virtio/vhost-user-rtc.c                | 64 ++++++++++++++++++++++++++++\n 7 files changed, 173 insertions(+)\n\n\n---\nbase-commit: da6c4fe60fee30dd77267764d55b38af9cb89d4b\nchange-id: 20260416-vhost-user-rtc-ce8ff0377356\n\n--\nγαῖα πυρί μιχθήτω",
    "diff": "diff --git a/include/hw/virtio/vhost-user-rtc.h b/include/hw/virtio/vhost-user-rtc.h\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..6b7b53c28f93032886d82687199585aba0edd917\n--- /dev/null\n+++ b/include/hw/virtio/vhost-user-rtc.h\n@@ -0,0 +1,22 @@\n+/*\n+ * Vhost-user RTC virtio device\n+ *\n+ * Copyright (c) 2025 Manos Pitsidianakis <manos.pitsidianakis@linaro.org>\n+ * Copyright 2026 Panasonic Automotive Systems Co., Ltd.\n+ *\n+ * SPDX-License-Identifier: GPL-2.0-or-later\n+ */\n+\n+#ifndef QEMU_VHOST_USER_RTC_H\n+#define QEMU_VHOST_USER_RTC_H\n+\n+#include \"hw/virtio/vhost-user-base.h\"\n+\n+#define TYPE_VHOST_USER_RTC \"vhost-user-rtc\"\n+OBJECT_DECLARE_SIMPLE_TYPE(VHostUserRTC, VHOST_USER_RTC)\n+\n+struct VHostUserRTC {\n+    VHostUserBase parent_obj;\n+};\n+\n+#endif /* QEMU_VHOST_USER_RTC_H */\ndiff --git a/MAINTAINERS b/MAINTAINERS\nindex ad215eced84d1ac58956ea374ee012acbb3cbd18..da6376b0f5e6fa99495504e88da9fef5a7a969e3 100644\n--- a/MAINTAINERS\n+++ b/MAINTAINERS\n@@ -2573,6 +2573,12 @@ S: Maintained\n F: include/hw/virtio/vhost-user-spi.h\n F: hw/virtio/vhost-user-spi*\n \n+vhost-user-rtc\n+M: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>\n+S: Supported\n+F: include/hw/virtio/vhost-user-rtc.h\n+F: hw/virtio/vhost-user-rtc*\n+\n virtio-crypto\n M: Gonglei <arei.gonglei@huawei.com>\n S: Supported\ndiff --git a/docs/system/devices/virtio/vhost-user.rst b/docs/system/devices/virtio/vhost-user.rst\nindex 2806d81ca201551a91246a10e0d98fd36d74200b..acfbd609d0f9c87e3af684797adf156a8a61bc88 100644\n--- a/docs/system/devices/virtio/vhost-user.rst\n+++ b/docs/system/devices/virtio/vhost-user.rst\n@@ -61,6 +61,9 @@ platform details for what sort of virtio bus to use.\n   * - vhost-user-spi\n     - Proxy spi devices to host\n     - `vhost-device-spi <https://github.com/rust-vmm/vhost-device/tree/main/vhost-device-spi>`_\n+  * - vhost-user-rtc\n+    - Real time clock\n+    - `vhost-device-rtc <https://github.com/rust-vmm/vhost-device/tree/main/vhost-device-rtc>`_\n \n The referenced *daemons* are not exhaustive, any conforming backend\n implementing the device and using the vhost-user protocol should work.\ndiff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig\nindex 8895682c619402eb3c9cd7269d3319f39711b4bd..2ebdac16b31aec3ec283c0285a4dcfa67f0a5157 100644\n--- a/hw/virtio/Kconfig\n+++ b/hw/virtio/Kconfig\n@@ -136,3 +136,8 @@ config VHOST_USER_TEST\n     bool\n     default y\n     depends on VIRTIO && VHOST_USER\n+\n+config VHOST_USER_RTC\n+    bool\n+    default y\n+    depends on VIRTIO && VHOST_USER\ndiff --git a/hw/virtio/meson.build b/hw/virtio/meson.build\nindex 415e359e9fc79b6b1adbbcfc4f87a7106ef1d4a6..e0566a60de7989c4048956e268f151659467fe34 100644\n--- a/hw/virtio/meson.build\n+++ b/hw/virtio/meson.build\n@@ -27,6 +27,7 @@ if have_vhost\n     system_virtio_ss.add(when: 'CONFIG_VHOST_USER_SND', if_true: files('vhost-user-snd.c'))\n     system_virtio_ss.add(when: 'CONFIG_VHOST_USER_INPUT', if_true: files('vhost-user-input.c'))\n     system_virtio_ss.add(when: 'CONFIG_VHOST_USER_SPI', if_true: files('vhost-user-spi.c'))\n+    system_virtio_ss.add(when: 'CONFIG_VHOST_USER_RTC', if_true: files('vhost-user-rtc.c'))\n \n     # PCI Stubs\n     system_virtio_ss.add(when: ['CONFIG_VIRTIO_PCI', 'CONFIG_VHOST_USER_TEST'],\n@@ -43,6 +44,8 @@ if have_vhost\n                          if_true: files('vhost-user-input-pci.c'))\n     system_virtio_ss.add(when: ['CONFIG_VIRTIO_PCI', 'CONFIG_VHOST_USER_SPI'],\n                          if_true: files('vhost-user-spi-pci.c'))\n+    system_virtio_ss.add(when: ['CONFIG_VIRTIO_PCI', 'CONFIG_VHOST_USER_RTC'],\n+                         if_true: files('vhost-user-rtc-pci.c'))\n   endif\n   if have_vhost_vdpa\n     system_virtio_ss.add(files('vhost-vdpa.c'))\ndiff --git a/hw/virtio/vhost-user-rtc-pci.c b/hw/virtio/vhost-user-rtc-pci.c\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..449368d27009acde20aa4af2542a912ac8b82cbc\n--- /dev/null\n+++ b/hw/virtio/vhost-user-rtc-pci.c\n@@ -0,0 +1,70 @@\n+/*\n+ * Vhost-user RTC virtio device PCI glue\n+ *\n+ * Copyright (c) 2025 Manos Pitsidianakis <manos.pitsidianakis@linaro.org>\n+ * Copyright 2026 Panasonic Automotive Systems Co., Ltd.\n+ *\n+ * SPDX-License-Identifier: GPL-2.0-or-later\n+ */\n+\n+#include \"qemu/osdep.h\"\n+#include \"hw/virtio/vhost-user-rtc.h\"\n+#include \"hw/virtio/virtio-pci.h\"\n+\n+struct VHostUserRTCPCI {\n+    VirtIOPCIProxy parent_obj;\n+    VHostUserRTC vdev;\n+};\n+\n+typedef struct VHostUserRTCPCI VHostUserRTCPCI;\n+\n+#define TYPE_VHOST_USER_RTC_PCI \"vhost-user-rtc-pci-base\"\n+\n+DECLARE_INSTANCE_CHECKER(VHostUserRTCPCI, VHOST_USER_RTC_PCI,\n+                         TYPE_VHOST_USER_RTC_PCI)\n+\n+static void vhost_user_rtc_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)\n+{\n+    VHostUserRTCPCI *dev = VHOST_USER_RTC_PCI(vpci_dev);\n+    DeviceState *vdev = DEVICE(&dev->vdev);\n+\n+    vpci_dev->nvectors = 1;\n+\n+    qdev_realize(vdev, BUS(&vpci_dev->bus), errp);\n+}\n+\n+static void vhost_user_rtc_pci_class_init(ObjectClass *klass, const void *data)\n+{\n+    DeviceClass *dc = DEVICE_CLASS(klass);\n+    VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass);\n+    PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass);\n+    k->realize = vhost_user_rtc_pci_realize;\n+    set_bit(DEVICE_CATEGORY_MISC, dc->categories);\n+    pcidev_k->vendor_id = PCI_VENDOR_ID_REDHAT_QUMRANET;\n+    pcidev_k->device_id = 0; /* Set by virtio-pci based on virtio id */\n+    pcidev_k->revision = 0x00;\n+    pcidev_k->class_id = PCI_CLASS_SYSTEM_RTC;\n+}\n+\n+static void vhost_user_rtc_pci_instance_init(Object *obj)\n+{\n+    VHostUserRTCPCI *dev = VHOST_USER_RTC_PCI(obj);\n+\n+    virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),\n+                                TYPE_VHOST_USER_RTC);\n+}\n+\n+static const VirtioPCIDeviceTypeInfo vhost_user_rtc_pci_info = {\n+    .base_name = TYPE_VHOST_USER_RTC_PCI,\n+    .non_transitional_name = \"vhost-user-rtc-pci\",\n+    .instance_size = sizeof(VHostUserRTCPCI),\n+    .instance_init = vhost_user_rtc_pci_instance_init,\n+    .class_init = vhost_user_rtc_pci_class_init,\n+};\n+\n+static void vhost_user_rtc_pci_register(void)\n+{\n+    virtio_pci_types_register(&vhost_user_rtc_pci_info);\n+}\n+\n+type_init(vhost_user_rtc_pci_register);\ndiff --git a/hw/virtio/vhost-user-rtc.c b/hw/virtio/vhost-user-rtc.c\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..88b0c70b903363fc9ac7ccb65a1b1755e095c6bc\n--- /dev/null\n+++ b/hw/virtio/vhost-user-rtc.c\n@@ -0,0 +1,64 @@\n+/*\n+ * Vhost-user RTC virtio device\n+ *\n+ * Copyright (c) 2025 Manos Pitsidianakis <manos.pitsidianakis@linaro.org>\n+ * Copyright 2026 Panasonic Automotive Systems Co., Ltd.\n+ *\n+ * Simple wrapper of the generic vhost-user-device.\n+ *\n+ * SPDX-License-Identifier: GPL-2.0-or-later\n+ */\n+\n+#include \"qemu/osdep.h\"\n+#include \"qapi/error.h\"\n+#include \"hw/virtio/vhost-user-rtc.h\"\n+#include \"standard-headers/linux/virtio_ids.h\"\n+\n+static const VMStateDescription vu_rtc_vmstate = {\n+    .name = \"vhost-user-rtc\",\n+    .unmigratable = 1,\n+};\n+\n+static const Property vrtc_properties[] = {\n+    DEFINE_PROP_CHR(\"chardev\", VHostUserBase, chardev),\n+};\n+\n+static void vu_rtc_base_realize(DeviceState *dev, Error **errp)\n+{\n+    VHostUserBase *vub = VHOST_USER_BASE(dev);\n+    VHostUserBaseClass *vubs = VHOST_USER_BASE_GET_CLASS(dev);\n+\n+    vub->virtio_id = VIRTIO_ID_CLOCK;\n+    vub->num_vqs = 2;\n+    vub->config_size = 0;\n+    vub->vq_size = 1024;\n+\n+    vubs->parent_realize(dev, errp);\n+}\n+\n+static void vu_rtc_class_init(ObjectClass *klass, const void *data)\n+{\n+    DeviceClass *dc = DEVICE_CLASS(klass);\n+    VHostUserBaseClass *vubc = VHOST_USER_BASE_CLASS(klass);\n+\n+    dc->vmsd = &vu_rtc_vmstate;\n+    device_class_set_props(dc, vrtc_properties);\n+    device_class_set_parent_realize(dc, vu_rtc_base_realize,\n+                                    &vubc->parent_realize);\n+\n+    set_bit(DEVICE_CATEGORY_MISC, dc->categories);\n+}\n+\n+static const TypeInfo vu_rtc_info = {\n+    .name = TYPE_VHOST_USER_RTC,\n+    .parent = TYPE_VHOST_USER_BASE,\n+    .instance_size = sizeof(VHostUserRTC),\n+    .class_init = vu_rtc_class_init,\n+};\n+\n+static void vu_rtc_register_types(void)\n+{\n+    type_register_static(&vu_rtc_info);\n+}\n+\n+type_init(vu_rtc_register_types)\n",
    "prefixes": []
}