[igt-dev] [PATCH i-g-t v10 2/2] lib/igt_ioctl_wrappers: Add igt_has_drm_cap ioctl wrapper

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Sep 24 17:09:51 UTC 2020


On Wed, Sep 23, 2020 at 07:32:58PM +0530, Karthik B S wrote:
> Add a generic helper for DRM_IOCTL_GET_CAP ioctl.
> 
> v10: -No changes.
> 
> Signed-off-by: Karthik B S <karthik.b.s at intel.com>
> ---
>  lib/ioctl_wrappers.c | 15 +++++++++++++++
>  lib/ioctl_wrappers.h |  1 +
>  2 files changed, 16 insertions(+)
> 
> diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
> index 3781286d..3ea60c61 100644
> --- a/lib/ioctl_wrappers.c
> +++ b/lib/ioctl_wrappers.c
> @@ -1318,3 +1318,18 @@ int __kms_addfb(int fd, uint32_t handle,
>  
>  	return ret < 0 ? -errno : ret;
>  }
> +
> +/**
> + * igt_has_drm_cap:
> + * @fd: Open DRM file descriptor.
> + * @cap: drm_get_cap structure.
> + *
> + * This helper verifies if the passed cap is supported by the kernel
> + *
> + * Returns: Whether the cap is supported or not.
> + */
> +bool igt_has_drm_cap(int fd, struct drm_get_cap cap)

I don't see why the caller would want to pass in the whole struct.
Also passing by value is a but nuts. Ie. I'd just the actual cap
ID and keep the ioctl struct details hidden inside this function.

The order of the patches looks wrong. 1/2 won't build w/o this AFAICS.
'git rebase -x ...' before sending the patches is always a good idea.

> +{
> +	igt_assert(drmIoctl(fd, DRM_IOCTL_GET_CAP, &cap) == 0);
> +	return cap.value;
> +}
> diff --git a/lib/ioctl_wrappers.h b/lib/ioctl_wrappers.h
> index 870ac8b7..4cf4004d 100644
> --- a/lib/ioctl_wrappers.h
> +++ b/lib/ioctl_wrappers.h
> @@ -196,6 +196,7 @@ struct local_drm_mode_fb_cmd2 {
>  
>  bool igt_has_fb_modifiers(int fd);
>  void igt_require_fb_modifiers(int fd);
> +bool igt_has_drm_cap(int fd, struct drm_get_cap cap);
>  
>  /**
>   * __kms_addfb:
> -- 
> 2.22.0

-- 
Ville Syrjälä
Intel


More information about the igt-dev mailing list