cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

vidioc-subdev-querycap.rst (2884B)


      1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
      2.. c:namespace:: V4L
      3
      4.. _VIDIOC_SUBDEV_QUERYCAP:
      5
      6****************************
      7ioctl VIDIOC_SUBDEV_QUERYCAP
      8****************************
      9
     10Name
     11====
     12
     13VIDIOC_SUBDEV_QUERYCAP - Query sub-device capabilities
     14
     15Synopsis
     16========
     17
     18.. c:macro:: VIDIOC_SUBDEV_QUERYCAP
     19
     20``int ioctl(int fd, VIDIOC_SUBDEV_QUERYCAP, struct v4l2_subdev_capability *argp)``
     21
     22Arguments
     23=========
     24
     25``fd``
     26    File descriptor returned by :c:func:`open()`.
     27
     28``argp``
     29    Pointer to struct :c:type:`v4l2_subdev_capability`.
     30
     31Description
     32===========
     33
     34All V4L2 sub-devices support the ``VIDIOC_SUBDEV_QUERYCAP`` ioctl. It is used to
     35identify kernel devices compatible with this specification and to obtain
     36information about driver and hardware capabilities. The ioctl takes a pointer to
     37a struct :c:type:`v4l2_subdev_capability` which is filled by the driver. When
     38the driver is not compatible with this specification the ioctl returns
     39``ENOTTY`` error code.
     40
     41.. tabularcolumns:: |p{1.5cm}|p{2.9cm}|p{12.9cm}|
     42
     43.. c:type:: v4l2_subdev_capability
     44
     45.. flat-table:: struct v4l2_subdev_capability
     46    :header-rows:  0
     47    :stub-columns: 0
     48    :widths:       3 4 20
     49
     50    * - __u32
     51      - ``version``
     52      - Version number of the driver.
     53
     54	The version reported is provided by the V4L2 subsystem following the
     55	kernel numbering scheme. However, it may not always return the same
     56	version as the kernel if, for example, a stable or
     57	distribution-modified kernel uses the V4L2 stack from a newer kernel.
     58
     59	The version number is formatted using the ``KERNEL_VERSION()``
     60	macro:
     61    * - :cspan:`2`
     62
     63	``#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))``
     64
     65	``__u32 version = KERNEL_VERSION(0, 8, 1);``
     66
     67	``printf ("Version: %u.%u.%u\\n",``
     68
     69	``(version >> 16) & 0xFF, (version >> 8) & 0xFF, version & 0xFF);``
     70    * - __u32
     71      - ``capabilities``
     72      - Sub-device capabilities of the opened device, see
     73	:ref:`subdevice-capabilities`.
     74    * - __u32
     75      - ``reserved``\ [14]
     76      - Reserved for future extensions. Set to 0 by the V4L2 core.
     77
     78.. tabularcolumns:: |p{6.8cm}|p{2.4cm}|p{8.1cm}|
     79
     80.. _subdevice-capabilities:
     81
     82.. cssclass:: longtable
     83
     84.. flat-table:: Sub-Device Capabilities Flags
     85    :header-rows:  0
     86    :stub-columns: 0
     87    :widths:       3 1 4
     88
     89    * - V4L2_SUBDEV_CAP_RO_SUBDEV
     90      - 0x00000001
     91      - The sub-device device node is registered in read-only mode.
     92	Access to the sub-device ioctls that modify the device state is
     93	restricted. Refer to each individual subdevice ioctl documentation
     94	for a description of which restrictions apply to a read-only sub-device.
     95
     96Return Value
     97============
     98
     99On success 0 is returned, on error -1 and the ``errno`` variable is set
    100appropriately. The generic error codes are described at the
    101:ref:`Generic Error Codes <gen-errors>` chapter.
    102
    103ENOTTY
    104    The device node is not a V4L2 sub-device.