xref: /openbmc/linux/Documentation/userspace-api/media/mediactl/media-ioc-enum-links.rst (revision 8be98d2f2a0a262f8bf8a0bc1fdf522b3c7aab17)
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