By inlinining the stubs we can avoid the use of target-specific CONFIG_DEVICES include in a hw/ header, allowing to build the source files including it as common objects.
Signed-off-by: Philippe Mathieu-Daudé <[email protected]> --- hw/arm/smmuv3-accel.h | 35 ----------------------------- hw/arm/smmuv3-accel-stubs.c | 44 +++++++++++++++++++++++++++++++++++++ hw/arm/meson.build | 5 +++-- 3 files changed, 47 insertions(+), 37 deletions(-) create mode 100644 hw/arm/smmuv3-accel-stubs.c diff --git a/hw/arm/smmuv3-accel.h b/hw/arm/smmuv3-accel.h index a8a64802eca..7e48d1555d3 100644 --- a/hw/arm/smmuv3-accel.h +++ b/hw/arm/smmuv3-accel.h @@ -14,7 +14,6 @@ #ifdef CONFIG_LINUX #include <linux/iommufd.h> #endif -#include CONFIG_DEVICES /* * Represents an accelerated SMMU instance backed by an iommufd vIOMMU object. @@ -40,7 +39,6 @@ typedef struct SMMUv3AccelDevice { SMMUv3AccelState *s_accel; } SMMUv3AccelDevice; -#ifdef CONFIG_ARM_SMMUV3_ACCEL void smmuv3_accel_init(SMMUv3State *s); bool smmuv3_accel_install_ste(SMMUv3State *s, SMMUDevice *sdev, int sid, Error **errp); @@ -51,38 +49,5 @@ bool smmuv3_accel_issue_inv_cmd(SMMUv3State *s, void *cmd, SMMUDevice *sdev, Error **errp); void smmuv3_accel_idr_override(SMMUv3State *s); void smmuv3_accel_reset(SMMUv3State *s); -#else -static inline void smmuv3_accel_init(SMMUv3State *s) -{ -} -static inline bool -smmuv3_accel_install_ste(SMMUv3State *s, SMMUDevice *sdev, int sid, - Error **errp) -{ - return true; -} -static inline bool -smmuv3_accel_install_ste_range(SMMUv3State *s, SMMUSIDRange *range, - Error **errp) -{ - return true; -} -static inline bool smmuv3_accel_attach_gbpa_hwpt(SMMUv3State *s, Error **errp) -{ - return true; -} -static inline bool -smmuv3_accel_issue_inv_cmd(SMMUv3State *s, void *cmd, SMMUDevice *sdev, - Error **errp) -{ - return true; -} -static inline void smmuv3_accel_idr_override(SMMUv3State *s) -{ -} -static inline void smmuv3_accel_reset(SMMUv3State *s) -{ -} -#endif #endif /* HW_ARM_SMMUV3_ACCEL_H */ diff --git a/hw/arm/smmuv3-accel-stubs.c b/hw/arm/smmuv3-accel-stubs.c new file mode 100644 index 00000000000..b64f1e4d93e --- /dev/null +++ b/hw/arm/smmuv3-accel-stubs.c @@ -0,0 +1,44 @@ +/* + * Stubs for accelerated SMMU instance backed by an iommufd vIOMMU object. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "hw/arm/smmuv3.h" +#include "hw/arm/smmuv3-accel.h" + +void smmuv3_accel_init(SMMUv3State *s) +{ +} + +bool smmuv3_accel_install_ste(SMMUv3State *s, SMMUDevice *sdev, int sid, + Error **errp) +{ + return true; +} + +bool smmuv3_accel_install_ste_range(SMMUv3State *s, SMMUSIDRange *range, + Error **errp) +{ + return true; +} + +bool smmuv3_accel_attach_gbpa_hwpt(SMMUv3State *s, Error **errp) +{ + return true; +} + +bool smmuv3_accel_issue_inv_cmd(SMMUv3State *s, void *cmd, SMMUDevice *sdev, + Error **errp) +{ + return true; +} + +void smmuv3_accel_idr_override(SMMUv3State *s) +{ +} + +void smmuv3_accel_reset(SMMUv3State *s) +{ +} diff --git a/hw/arm/meson.build b/hw/arm/meson.build index 47cdc51d135..8f834c32b1f 100644 --- a/hw/arm/meson.build +++ b/hw/arm/meson.build @@ -85,8 +85,9 @@ arm_common_ss.add(when: 'CONFIG_ARMSSE', if_true: files('armsse.c')) arm_common_ss.add(when: 'CONFIG_FSL_IMX7', if_true: files('fsl-imx7.c', 'mcimx7d-sabre.c')) arm_common_ss.add(when: 'CONFIG_FSL_IMX8MP', if_true: files('fsl-imx8mp.c')) arm_common_ss.add(when: 'CONFIG_FSL_IMX8MP_EVK', if_true: files('imx8mp-evk.c')) -arm_ss.add(when: 'CONFIG_ARM_SMMUV3', if_true: files('smmuv3.c')) -arm_ss.add(when: 'CONFIG_ARM_SMMUV3_ACCEL', if_true: files('smmuv3-accel.c')) +arm_common_ss.add(when: 'CONFIG_ARM_SMMUV3', if_true: files('smmuv3.c')) +arm_common_ss.add(when: 'CONFIG_ARM_SMMUV3_ACCEL', if_true: files('smmuv3-accel.c')) +stub_ss.add(files('smmuv3-accel-stubs.c')) arm_common_ss.add(when: 'CONFIG_FSL_IMX6UL', if_true: files('fsl-imx6ul.c', 'mcimx6ul-evk.c')) arm_common_ss.add(when: 'CONFIG_NRF51_SOC', if_true: files('nrf51_soc.c')) arm_common_ss.add(when: 'CONFIG_XEN', if_true: files( -- 2.52.0
