diff mbox series

[10/14] system/iommufd: Introduce iommufd_builtin() helper

Message ID 20250307180337.14811-11-philmd@linaro.org (mailing list archive)
State New
Headers show
Series hw/vfio: Build various objects once | expand

Commit Message

Philippe Mathieu-Daudé March 7, 2025, 6:03 p.m. UTC
iommufd_builtin() can be used to check at runtime whether
the IOMMUFD feature is built in a qemu-system binary.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 docs/devel/vfio-iommufd.rst | 2 +-
 include/system/iommufd.h    | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

Comments

Pierrick Bouvier March 7, 2025, 7:18 p.m. UTC | #1
On 3/7/25 10:03, Philippe Mathieu-Daudé wrote:
> iommufd_builtin() can be used to check at runtime whether
> the IOMMUFD feature is built in a qemu-system binary.
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   docs/devel/vfio-iommufd.rst | 2 +-
>   include/system/iommufd.h    | 8 ++++++++
>   2 files changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/docs/devel/vfio-iommufd.rst b/docs/devel/vfio-iommufd.rst
> index 3d1c11f175e..08882094eee 100644
> --- a/docs/devel/vfio-iommufd.rst
> +++ b/docs/devel/vfio-iommufd.rst
> @@ -88,7 +88,7 @@ Step 2: configure QEMU
>   ----------------------
>   
>   Interactions with the ``/dev/iommu`` are abstracted by a new iommufd
> -object (compiled in with the ``CONFIG_IOMMUFD`` option).
> +object (which availability can be checked at runtime using ``iommufd_builtin()``).
>   
>   Any QEMU device (e.g. VFIO device) wishing to use ``/dev/iommu`` must
>   be linked with an iommufd object. It gets a new optional property
> diff --git a/include/system/iommufd.h b/include/system/iommufd.h
> index cbab75bfbf6..ce459254025 100644
> --- a/include/system/iommufd.h
> +++ b/include/system/iommufd.h
> @@ -63,4 +63,12 @@ bool iommufd_backend_get_dirty_bitmap(IOMMUFDBackend *be, uint32_t hwpt_id,
>                                         Error **errp);
>   
>   #define TYPE_HOST_IOMMU_DEVICE_IOMMUFD TYPE_HOST_IOMMU_DEVICE "-iommufd"
> +
> +static inline bool iommufd_builtin(void)
> +{
> +    bool ambig = false;
> +
> +    return object_resolve_path_type("", TYPE_IOMMUFD_BACKEND, &ambig) || ambig;
> +}
> +
>   #endif

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
diff mbox series

Patch

diff --git a/docs/devel/vfio-iommufd.rst b/docs/devel/vfio-iommufd.rst
index 3d1c11f175e..08882094eee 100644
--- a/docs/devel/vfio-iommufd.rst
+++ b/docs/devel/vfio-iommufd.rst
@@ -88,7 +88,7 @@  Step 2: configure QEMU
 ----------------------
 
 Interactions with the ``/dev/iommu`` are abstracted by a new iommufd
-object (compiled in with the ``CONFIG_IOMMUFD`` option).
+object (which availability can be checked at runtime using ``iommufd_builtin()``).
 
 Any QEMU device (e.g. VFIO device) wishing to use ``/dev/iommu`` must
 be linked with an iommufd object. It gets a new optional property
diff --git a/include/system/iommufd.h b/include/system/iommufd.h
index cbab75bfbf6..ce459254025 100644
--- a/include/system/iommufd.h
+++ b/include/system/iommufd.h
@@ -63,4 +63,12 @@  bool iommufd_backend_get_dirty_bitmap(IOMMUFDBackend *be, uint32_t hwpt_id,
                                       Error **errp);
 
 #define TYPE_HOST_IOMMU_DEVICE_IOMMUFD TYPE_HOST_IOMMU_DEVICE "-iommufd"
+
+static inline bool iommufd_builtin(void)
+{
+    bool ambig = false;
+
+    return object_resolve_path_type("", TYPE_IOMMUFD_BACKEND, &ambig) || ambig;
+}
+
 #endif