fwctl: Basic ioctl dispatch for the character device
authorJason Gunthorpe <jgg@nvidia.com>
Fri, 28 Feb 2025 00:26:30 +0000 (20:26 -0400)
committerJason Gunthorpe <jgg@nvidia.com>
Thu, 6 Mar 2025 19:13:13 +0000 (15:13 -0400)
commit0e79a47fb197b6937709a2af2a138c526a9bc374
tree67ac52698778343ec332b88627f308aa6ff2aed1
parent2e4986cf2d525eed3a240b7821f89ca45cf36d78
fwctl: Basic ioctl dispatch for the character device

Each file descriptor gets a chunk of per-FD driver specific context that
allows the driver to attach a device specific struct to. The core code
takes care of the memory lifetime for this structure.

The ioctl dispatch and design is based on what was built for iommufd. The
ioctls have a struct which has a combined in/out behavior with a typical
'zero pad' scheme for future extension and backwards compatibility.

Like iommufd some shared logic does most of the ioctl marshaling and
compatibility work and table dispatches to some function pointers for
each unique ioctl.

This approach has proven to work quite well in the iommufd and rdma
subsystems.

Allocate an ioctl number space for the subsystem.

Link: https://patch.msgid.link/r/2-v5-642aa0c94070+4447f-fwctl_jgg@nvidia.com
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Shannon Nelson <shannon.nelson@amd.com>
Tested-by: Dave Jiang <dave.jiang@intel.com>
Tested-by: Shannon Nelson <shannon.nelson@amd.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Documentation/userspace-api/ioctl/ioctl-number.rst
MAINTAINERS
drivers/fwctl/main.c
include/linux/fwctl.h
include/uapi/fwctl/fwctl.h [new file with mode: 0644]