From nobody Wed Apr 10 15:19:12 2024 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4VF61X5LpPz5HHMm; Wed, 10 Apr 2024 15:19:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4VF61X2HKxz4mtn; Wed, 10 Apr 2024 15:19:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1712762352; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8scQ1Xyn/UY25lcUn9vwzVMBT6dlj8RA6QlmHiUw9DY=; b=u8oaj7L4MQcw14uXh9237P7LBQrJuJrEobxEx1opAeZTbG6wkUm4YJhs8JwgI530xOAyWe F1MG7XD4xNP5lnQ8qLzGytZjAtbxfg+jDC5ZntH5qHWqY0NbwU1gAWrSLISWyiSEVPPznr ZEWOxOLhHJz0T/YeNBF4iJaf7CaJdpndQXWyO9DKOQAqM/d81fgfZXQlthUdwrN6Id0vY6 VPBGNvGA5RROXgT0vaGh9bqfO0OuniW5Mf5wuWrF+TrLRrk8i0gJUwB3kT6mdFU51Vyc0G Cx0XzVcDr16wzKMt453ZQUCO9AEbUjWGGFvWOoN/8b5wzFMj4dm+dr0rMoo26g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1712762352; a=rsa-sha256; cv=none; b=ht9eFZWhNDM1TBKtvBi+enYWZ+DJ1LRWUYncJj1K9zPIzd5zV6qkNelgOZv+8Uzw8e1ySM 4mK43H6eF4yLtuwL7UHFPjSo0HtXPzVYP3/DdDzdPvmEUAbvpcl4SVBy7wjBntejh3RDI2 C+b3NW4PiQNC/bIj8BC8xmhGsoNtoCN5Vw9OwZ9Bjj+3xsMaV2UE4jYz3dOHtCwWqU3Kn9 atnzHaPUof72Wvw5fdq3HzkIWhc8L432g6vft7YS8NqoqfFmy9TLvpX4je9LsX0vwowCNu 5sHOb/72HWGXEyPoMmgMmNf991nQZ7KfOpzJoaSrRtIppQVWAtjErvh3XoS1Ug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1712762352; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8scQ1Xyn/UY25lcUn9vwzVMBT6dlj8RA6QlmHiUw9DY=; b=w7NQuVuOw0SE9CA5Vb1UZDfcc/Ij95MHGPxK+sYBVXPj6LKR1nxwuZkwd5OS2mfK0yfg6d gaSp72hwafiRfhdi9RLQdHXBLq6u0Psv0h2nmK1S13asDcdD1iWZsVd39H9EOzxwUhYcji Q5gW705JTqRNkLZIPxRCtqI0Xx7R4PqJ98qZBGm+KlEeNYvfJOTOAdz/xqvrHZaiKWaBQx 5DAMe2gEVFf5I8F0CWDTdPD0Qx0MVm+7adEoFppK5Nx0Ak0sJqLAo9sbFWDe7WFJEV1989 qA5jfRtlBtCUlhqVRp8sSzr1eaVLtoyZK3ayaAA3Fms7m/xH3MeTBaY6r+6HPQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4VF61X1jDCzjXh; Wed, 10 Apr 2024 15:19:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 43AFJCVA093111; Wed, 10 Apr 2024 15:19:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 43AFJCsp093108; Wed, 10 Apr 2024 15:19:12 GMT (envelope-from git) Date: Wed, 10 Apr 2024 15:19:12 GMT Message-Id: <202404101519.43AFJCsp093108@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 1855002ddf0b - main - libvmmapi: Make vm_raise_msi() a common function List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: dev-commits-src-main+owner@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1855002ddf0b226d92ce5d698bae06305d9a3a4e Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=1855002ddf0b226d92ce5d698bae06305d9a3a4e commit 1855002ddf0b226d92ce5d698bae06305d9a3a4e Author: Mark Johnston AuthorDate: 2024-04-03 17:09:32 +0000 Commit: Mark Johnston CommitDate: 2024-04-10 15:17:56 +0000 libvmmapi: Make vm_raise_msi() a common function Currently, bhyve PCI emulation uses vm_lapic_msi() to raise an MSI in the guest. The arm64 port has a similar function, vm_raise_msi(). Add vm_raise_msi() on amd64 as well and have it simply call vm_lapic_msi() so that bhyve can use a common, generically named function. Reviewed by: corvink, andrew, jhb MFC after: 2 weeks Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D41752 --- lib/libvmmapi/aarch64/vmmapi_machdep.c | 4 ++-- lib/libvmmapi/amd64/vmmapi_machdep.c | 7 +++++++ lib/libvmmapi/vmmapi.h | 6 +++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/libvmmapi/aarch64/vmmapi_machdep.c b/lib/libvmmapi/aarch64/vmmapi_machdep.c index 5440adaaf3ef..fb2556af3be2 100644 --- a/lib/libvmmapi/aarch64/vmmapi_machdep.c +++ b/lib/libvmmapi/aarch64/vmmapi_machdep.c @@ -99,8 +99,8 @@ vm_deassert_irq(struct vmctx *ctx, uint32_t irq) } int -vm_raise_msi(struct vmctx *ctx, uint64_t addr, uint64_t msg, int bus, int slot, - int func) +vm_raise_msi(struct vmctx *ctx, uint64_t addr, uint64_t msg, + int bus, int slot, int func) { struct vm_msi vmsi; diff --git a/lib/libvmmapi/amd64/vmmapi_machdep.c b/lib/libvmmapi/amd64/vmmapi_machdep.c index 49844be8a574..8990b28b4432 100644 --- a/lib/libvmmapi/amd64/vmmapi_machdep.c +++ b/lib/libvmmapi/amd64/vmmapi_machdep.c @@ -166,6 +166,13 @@ vm_lapic_msi(struct vmctx *ctx, uint64_t addr, uint64_t msg) return (ioctl(ctx->fd, VM_LAPIC_MSI, &vmmsi)); } +int +vm_raise_msi(struct vmctx *ctx, uint64_t addr, uint64_t msg, + int bus __unused, int slot __unused, int func __unused) +{ + return (vm_lapic_msi(ctx, addr, msg)); +} + int vm_apicid2vcpu(struct vmctx *ctx __unused, int apicid) { diff --git a/lib/libvmmapi/vmmapi.h b/lib/libvmmapi/vmmapi.h index 751cfa6ca330..ea869a0c1749 100644 --- a/lib/libvmmapi/vmmapi.h +++ b/lib/libvmmapi/vmmapi.h @@ -157,17 +157,17 @@ int vm_get_register_set(struct vcpu *vcpu, unsigned int count, int vm_run(struct vcpu *vcpu, struct vm_run *vmrun); int vm_suspend(struct vmctx *ctx, enum vm_suspend_how how); int vm_reinit(struct vmctx *ctx); -int vm_apicid2vcpu(struct vmctx *ctx, int apicid); +int vm_raise_msi(struct vmctx *ctx, uint64_t addr, uint64_t msg, + int bus, int slot, int func); #ifdef __aarch64__ int vm_attach_vgic(struct vmctx *ctx, uint64_t dist_start, size_t dist_size, uint64_t redist_start, size_t redist_size); int vm_assert_irq(struct vmctx *ctx, uint32_t irq); int vm_deassert_irq(struct vmctx *ctx, uint32_t irq); -int vm_raise_msi(struct vmctx *ctx, uint64_t addr, uint64_t msg, int bus, - int slot, int func); int vm_inject_exception(struct vcpu *vcpu, uint64_t esr, uint64_t far); #endif #ifdef __amd64__ +int vm_apicid2vcpu(struct vmctx *ctx, int apicid); int vm_inject_exception(struct vcpu *vcpu, int vector, int errcode_valid, uint32_t errcode, int restart_instruction); int vm_lapic_irq(struct vcpu *vcpu, int vector);