1059b1c5bSMauro Carvalho Chehab.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2937e6805SMauro Carvalho Chehab.. c:namespace:: MC 354f38fcaSMauro Carvalho Chehab 454f38fcaSMauro Carvalho Chehab.. _media_ioc_enum_links: 554f38fcaSMauro Carvalho Chehab 654f38fcaSMauro Carvalho Chehab************************** 754f38fcaSMauro Carvalho Chehabioctl MEDIA_IOC_ENUM_LINKS 854f38fcaSMauro Carvalho Chehab************************** 954f38fcaSMauro Carvalho Chehab 1054f38fcaSMauro Carvalho ChehabName 1154f38fcaSMauro Carvalho Chehab==== 1254f38fcaSMauro Carvalho Chehab 1354f38fcaSMauro Carvalho ChehabMEDIA_IOC_ENUM_LINKS - Enumerate all pads and links for a given entity 1454f38fcaSMauro Carvalho Chehab 1554f38fcaSMauro Carvalho ChehabSynopsis 1654f38fcaSMauro Carvalho Chehab======== 1754f38fcaSMauro Carvalho Chehab 18937e6805SMauro Carvalho Chehab.. c:macro:: MEDIA_IOC_ENUM_LINKS 1954f38fcaSMauro Carvalho Chehab 20937e6805SMauro Carvalho Chehab``int ioctl(int fd, MEDIA_IOC_ENUM_LINKS, struct media_links_enum *argp)`` 2154f38fcaSMauro Carvalho Chehab 2254f38fcaSMauro Carvalho ChehabArguments 2354f38fcaSMauro Carvalho Chehab========= 2454f38fcaSMauro Carvalho Chehab 2554f38fcaSMauro Carvalho Chehab``fd`` 26937e6805SMauro Carvalho Chehab File descriptor returned by :c:func:`open()`. 2754f38fcaSMauro Carvalho Chehab 2854f38fcaSMauro Carvalho Chehab``argp`` 2954f38fcaSMauro Carvalho Chehab Pointer to struct :c:type:`media_links_enum`. 3054f38fcaSMauro Carvalho Chehab 3154f38fcaSMauro Carvalho ChehabDescription 3254f38fcaSMauro Carvalho Chehab=========== 3354f38fcaSMauro Carvalho Chehab 3454f38fcaSMauro Carvalho ChehabTo enumerate pads and/or links for a given entity, applications set the 3554f38fcaSMauro Carvalho Chehabentity field of a struct :c:type:`media_links_enum` 3654f38fcaSMauro Carvalho Chehabstructure and initialize the struct 3754f38fcaSMauro Carvalho Chehab:c:type:`media_pad_desc` and struct 3854f38fcaSMauro Carvalho Chehab:c:type:`media_link_desc` structure arrays pointed by 3954f38fcaSMauro Carvalho Chehabthe ``pads`` and ``links`` fields. They then call the 4054f38fcaSMauro Carvalho ChehabMEDIA_IOC_ENUM_LINKS ioctl with a pointer to this structure. 4154f38fcaSMauro Carvalho Chehab 4254f38fcaSMauro Carvalho ChehabIf the ``pads`` field is not NULL, the driver fills the ``pads`` array 4354f38fcaSMauro Carvalho Chehabwith information about the entity's pads. The array must have enough 4454f38fcaSMauro Carvalho Chehabroom to store all the entity's pads. The number of pads can be retrieved 4554f38fcaSMauro Carvalho Chehabwith :ref:`MEDIA_IOC_ENUM_ENTITIES`. 4654f38fcaSMauro Carvalho Chehab 4754f38fcaSMauro Carvalho ChehabIf the ``links`` field is not NULL, the driver fills the ``links`` array 4854f38fcaSMauro Carvalho Chehabwith information about the entity's outbound links. The array must have 4954f38fcaSMauro Carvalho Chehabenough room to store all the entity's outbound links. The number of 5054f38fcaSMauro Carvalho Chehaboutbound links can be retrieved with :ref:`MEDIA_IOC_ENUM_ENTITIES`. 5154f38fcaSMauro Carvalho Chehab 5254f38fcaSMauro Carvalho ChehabOnly forward links that originate at one of the entity's source pads are 5354f38fcaSMauro Carvalho Chehabreturned during the enumeration process. 5454f38fcaSMauro Carvalho Chehab 5554f38fcaSMauro Carvalho Chehab.. c:type:: media_links_enum 5654f38fcaSMauro Carvalho Chehab 57*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.5cm}| 5854f38fcaSMauro Carvalho Chehab 5954f38fcaSMauro Carvalho Chehab.. flat-table:: struct media_links_enum 6054f38fcaSMauro Carvalho Chehab :header-rows: 0 6154f38fcaSMauro Carvalho Chehab :stub-columns: 0 6254f38fcaSMauro Carvalho Chehab :widths: 1 1 2 6354f38fcaSMauro Carvalho Chehab 6454f38fcaSMauro Carvalho Chehab * - __u32 6554f38fcaSMauro Carvalho Chehab - ``entity`` 6654f38fcaSMauro Carvalho Chehab - Entity id, set by the application. 6754f38fcaSMauro Carvalho Chehab 6854f38fcaSMauro Carvalho Chehab * - struct :c:type:`media_pad_desc` 6954f38fcaSMauro Carvalho Chehab - \*\ ``pads`` 7054f38fcaSMauro Carvalho Chehab - Pointer to a pads array allocated by the application. Ignored if 7154f38fcaSMauro Carvalho Chehab NULL. 7254f38fcaSMauro Carvalho Chehab 7354f38fcaSMauro Carvalho Chehab * - struct :c:type:`media_link_desc` 7454f38fcaSMauro Carvalho Chehab - \*\ ``links`` 7554f38fcaSMauro Carvalho Chehab - Pointer to a links array allocated by the application. Ignored if 7654f38fcaSMauro Carvalho Chehab NULL. 7754f38fcaSMauro Carvalho Chehab 7854f38fcaSMauro Carvalho Chehab * - __u32 7954f38fcaSMauro Carvalho Chehab - ``reserved[4]`` 8054f38fcaSMauro Carvalho Chehab - Reserved for future extensions. Drivers and applications must set 8154f38fcaSMauro Carvalho Chehab the array to zero. 8254f38fcaSMauro Carvalho Chehab 8354f38fcaSMauro Carvalho Chehab.. c:type:: media_pad_desc 8454f38fcaSMauro Carvalho Chehab 85*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.5cm}| 8654f38fcaSMauro Carvalho Chehab 8754f38fcaSMauro Carvalho Chehab.. flat-table:: struct media_pad_desc 8854f38fcaSMauro Carvalho Chehab :header-rows: 0 8954f38fcaSMauro Carvalho Chehab :stub-columns: 0 9054f38fcaSMauro Carvalho Chehab :widths: 1 1 2 9154f38fcaSMauro Carvalho Chehab 9254f38fcaSMauro Carvalho Chehab * - __u32 9354f38fcaSMauro Carvalho Chehab - ``entity`` 9454f38fcaSMauro Carvalho Chehab - ID of the entity this pad belongs to. 9554f38fcaSMauro Carvalho Chehab 9654f38fcaSMauro Carvalho Chehab * - __u16 9754f38fcaSMauro Carvalho Chehab - ``index`` 9854f38fcaSMauro Carvalho Chehab - Pad index, starts at 0. 9954f38fcaSMauro Carvalho Chehab 10054f38fcaSMauro Carvalho Chehab * - __u32 10154f38fcaSMauro Carvalho Chehab - ``flags`` 10254f38fcaSMauro Carvalho Chehab - Pad flags, see :ref:`media-pad-flag` for more details. 10354f38fcaSMauro Carvalho Chehab 10454f38fcaSMauro Carvalho Chehab * - __u32 10554f38fcaSMauro Carvalho Chehab - ``reserved[2]`` 10654f38fcaSMauro Carvalho Chehab - Reserved for future extensions. Drivers and applications must set 10754f38fcaSMauro Carvalho Chehab the array to zero. 10854f38fcaSMauro Carvalho Chehab 10954f38fcaSMauro Carvalho Chehab 11054f38fcaSMauro Carvalho Chehab.. c:type:: media_link_desc 11154f38fcaSMauro Carvalho Chehab 112*fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.5cm}| 11354f38fcaSMauro Carvalho Chehab 11454f38fcaSMauro Carvalho Chehab.. flat-table:: struct media_link_desc 11554f38fcaSMauro Carvalho Chehab :header-rows: 0 11654f38fcaSMauro Carvalho Chehab :stub-columns: 0 11754f38fcaSMauro Carvalho Chehab :widths: 1 1 2 11854f38fcaSMauro Carvalho Chehab 11954f38fcaSMauro Carvalho Chehab * - struct :c:type:`media_pad_desc` 12054f38fcaSMauro Carvalho Chehab - ``source`` 12154f38fcaSMauro Carvalho Chehab - Pad at the origin of this link. 12254f38fcaSMauro Carvalho Chehab 12354f38fcaSMauro Carvalho Chehab * - struct :c:type:`media_pad_desc` 12454f38fcaSMauro Carvalho Chehab - ``sink`` 12554f38fcaSMauro Carvalho Chehab - Pad at the target of this link. 12654f38fcaSMauro Carvalho Chehab 12754f38fcaSMauro Carvalho Chehab * - __u32 12854f38fcaSMauro Carvalho Chehab - ``flags`` 12954f38fcaSMauro Carvalho Chehab - Link flags, see :ref:`media-link-flag` for more details. 13054f38fcaSMauro Carvalho Chehab 13154f38fcaSMauro Carvalho Chehab * - __u32 13254f38fcaSMauro Carvalho Chehab - ``reserved[2]`` 13354f38fcaSMauro Carvalho Chehab - Reserved for future extensions. Drivers and applications must set 13454f38fcaSMauro Carvalho Chehab the array to zero. 13554f38fcaSMauro Carvalho Chehab 13654f38fcaSMauro Carvalho ChehabReturn Value 13754f38fcaSMauro Carvalho Chehab============ 13854f38fcaSMauro Carvalho Chehab 13954f38fcaSMauro Carvalho ChehabOn success 0 is returned, on error -1 and the ``errno`` variable is set 14054f38fcaSMauro Carvalho Chehabappropriately. The generic error codes are described at the 14154f38fcaSMauro Carvalho Chehab:ref:`Generic Error Codes <gen-errors>` chapter. 14254f38fcaSMauro Carvalho Chehab 14354f38fcaSMauro Carvalho ChehabEINVAL 14454f38fcaSMauro Carvalho Chehab The struct :c:type:`media_links_enum` ``id`` 14554f38fcaSMauro Carvalho Chehab references a non-existing entity. 146