On Tue, Apr 10, 2018 at 06:38:56AM -0300, Mauro Carvalho Chehab wrote: > Em Mon, 9 Apr 2018 16:19:59 +0200 > Hans Verkuil <hverkuil@xxxxxxxxx> escreveu: > > > From: Hans Verkuil <hans.verkuil@xxxxxxxxx> > > > > Define the public request API. > > > > This adds the new MEDIA_IOC_REQUEST_ALLOC ioctl to allocate a request > > and two ioctls that operate on a request in order to queue the > > contents of the request to the driver and to re-initialize the > > request. > > > > Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> > > --- > > include/uapi/linux/media.h | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > > > diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h > > index c7e9a5cba24e..f8769e74f847 100644 > > --- a/include/uapi/linux/media.h > > +++ b/include/uapi/linux/media.h > > @@ -342,11 +342,19 @@ struct media_v2_topology { > > > > /* ioctls */ > > > > +struct __attribute__ ((packed)) media_request_alloc { > > + __s32 fd; > > +}; > > + > > #define MEDIA_IOC_DEVICE_INFO _IOWR('|', 0x00, struct media_device_info) > > #define MEDIA_IOC_ENUM_ENTITIES _IOWR('|', 0x01, struct media_entity_desc) > > #define MEDIA_IOC_ENUM_LINKS _IOWR('|', 0x02, struct media_links_enum) > > #define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc) > > #define MEDIA_IOC_G_TOPOLOGY _IOWR('|', 0x04, struct media_v2_topology) > > +#define MEDIA_IOC_REQUEST_ALLOC _IOWR('|', 0x05, struct media_request_alloc) > > + > > Why use a struct here? Just declare it as: > > #define MEDIA_IOC_REQUEST_ALLOC _IOWR('|', 0x05, int) I'd say it's easier to extend it if it's a struct. All other IOCTLs also have a struct as an argument. As a struct member, the parameter (fd) also has a name; this is a plus. > > > +#define MEDIA_REQUEST_IOC_QUEUE _IO('|', 0x80) > > +#define MEDIA_REQUEST_IOC_REINIT _IO('|', 0x81) > > > > #if !defined(__KERNEL__) || defined(__NEED_MEDIA_LEGACY_API) > > > > Thanks, > Mauro -- Sakari Ailus e-mail: sakari.ailus@xxxxxx