[PATCH RFCv1 01/14] iommufd: Move iommufd_object to public iommufd header
Nicolin Chen
nicolinc at nvidia.com
Sun May 12 15:40:44 PDT 2024
On Sun, May 12, 2024 at 10:21:49AM -0300, Jason Gunthorpe wrote:
> On Fri, Apr 12, 2024 at 08:46:58PM -0700, Nicolin Chen wrote:
> > diff --git a/include/linux/iommufd.h b/include/linux/iommufd.h
> > +enum iommufd_object_type {
> > + IOMMUFD_OBJ_NONE,
> > + IOMMUFD_OBJ_ANY = IOMMUFD_OBJ_NONE,
> > + IOMMUFD_OBJ_DEVICE,
> > + IOMMUFD_OBJ_HWPT_PAGING,
> > + IOMMUFD_OBJ_HWPT_NESTED,
> > + IOMMUFD_OBJ_IOAS,
> > + IOMMUFD_OBJ_ACCESS,
> > +#ifdef CONFIG_IOMMUFD_TEST
> > + IOMMUFD_OBJ_SELFTEST,
> > +#endif
> > + IOMMUFD_OBJ_MAX,
> > +};
>
> Can we just forward declare the enum? It would be nice to keep it in
> the private header
It doesn't seem to support that:
./include/linux/iommufd.h:31:34: error: field ‘type’ has incomplete type
31 | enum iommufd_object_type type;
By testing the following change on top of the series:
===================================
-enum iommufd_object_type {
- IOMMUFD_OBJ_NONE,
- IOMMUFD_OBJ_ANY = IOMMUFD_OBJ_NONE,
- IOMMUFD_OBJ_DEVICE,
- IOMMUFD_OBJ_HWPT_PAGING,
- IOMMUFD_OBJ_HWPT_NESTED,
- IOMMUFD_OBJ_IOAS,
- IOMMUFD_OBJ_ACCESS,
- IOMMUFD_OBJ_VIOMMU,
- IOMMUFD_OBJ_VQUEUE,
-#ifdef CONFIG_IOMMUFD_TEST
- IOMMUFD_OBJ_SELFTEST,
-#endif
- IOMMUFD_OBJ_MAX,
-};
+enum iommufd_object_type;
/* Base struct for all objects with a userspace ID handle. */
struct iommufd_object {
refcount_t shortterm_users;
refcount_t users;
enum iommufd_object_type type;
unsigned int id;
};
===================================
We could change the "enum iommufd_object_type type" in struct
iommufd_object to "unsigned int type" though...
Thanks
Nicolin
More information about the linux-arm-kernel
mailing list