brintos

brintos / linux-shallow public Read only

0
0
Text · 3.4 KiB · da4a358 Raw
104 lines · plain
1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later2.. c:namespace:: V4L3 4.. _VIDIOC_SUBDEV_G_CLIENT_CAP:5 6************************************************************7ioctl VIDIOC_SUBDEV_G_CLIENT_CAP, VIDIOC_SUBDEV_S_CLIENT_CAP8************************************************************9 10Name11====12 13VIDIOC_SUBDEV_G_CLIENT_CAP - VIDIOC_SUBDEV_S_CLIENT_CAP - Get or set client14capabilities.15 16Synopsis17========18 19.. c:macro:: VIDIOC_SUBDEV_G_CLIENT_CAP20 21``int ioctl(int fd, VIDIOC_SUBDEV_G_CLIENT_CAP, struct v4l2_subdev_client_capability *argp)``22 23.. c:macro:: VIDIOC_SUBDEV_S_CLIENT_CAP24 25``int ioctl(int fd, VIDIOC_SUBDEV_S_CLIENT_CAP, struct v4l2_subdev_client_capability *argp)``26 27Arguments28=========29 30``fd``31    File descriptor returned by :ref:`open() <func-open>`.32 33``argp``34    Pointer to struct :c:type:`v4l2_subdev_client_capability`.35 36Description37===========38 39These ioctls are used to get and set the client (the application using the40subdevice ioctls) capabilities. The client capabilities are stored in the file41handle of the opened subdev device node, and the client must set the42capabilities for each opened subdev separately.43 44By default no client capabilities are set when a subdev device node is opened.45 46The purpose of the client capabilities are to inform the kernel of the behavior47of the client, mainly related to maintaining compatibility with different48kernel and userspace versions.49 50The ``VIDIOC_SUBDEV_G_CLIENT_CAP`` ioctl returns the current client capabilities51associated with the file handle ``fd``.52 53The ``VIDIOC_SUBDEV_S_CLIENT_CAP`` ioctl sets client capabilities for the file54handle ``fd``. The new capabilities fully replace the current capabilities, the55ioctl can therefore also be used to remove capabilities that have previously56been set.57 58``VIDIOC_SUBDEV_S_CLIENT_CAP`` modifies the struct59:c:type:`v4l2_subdev_client_capability` to reflect the capabilities that have60been accepted. A common case for the kernel not accepting a capability is that61the kernel is older than the headers the userspace uses, and thus the capability62is unknown to the kernel.63 64.. tabularcolumns:: |p{1.5cm}|p{2.9cm}|p{12.9cm}|65 66.. c:type:: v4l2_subdev_client_capability67 68.. flat-table:: struct v4l2_subdev_client_capability69    :header-rows:  070    :stub-columns: 071    :widths:       3 4 2072 73    * - __u6474      - ``capabilities``75      - Sub-device client capabilities of the opened device.76 77.. tabularcolumns:: |p{6.8cm}|p{2.4cm}|p{8.1cm}|78 79.. flat-table:: Client Capabilities80    :header-rows:  181 82    * - Capability83      - Description84    * - ``V4L2_SUBDEV_CLIENT_CAP_STREAMS``85      - The client is aware of streams. Setting this flag enables the use86        of 'stream' fields (referring to the stream number) with various87        ioctls. If this is not set (which is the default), the 'stream' fields88        will be forced to 0 by the kernel.89    * - ``V4L2_SUBDEV_CLIENT_CAP_INTERVAL_USES_WHICH``90      - The client is aware of the :c:type:`v4l2_subdev_frame_interval`91        ``which`` field. If this is not set (which is the default), the92        ``which`` field is forced to ``V4L2_SUBDEV_FORMAT_ACTIVE`` by the93        kernel.94 95Return Value96============97 98On success 0 is returned, on error -1 and the ``errno`` variable is set99appropriately. The generic error codes are described at the100:ref:`Generic Error Codes <gen-errors>` chapter.101 102ENOIOCTLCMD103   The kernel does not support this ioctl.104