media-ioc-setup-link.rst 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
  2. .. c:namespace:: MC
  3. .. _media_ioc_setup_link:
  4. **************************
  5. ioctl MEDIA_IOC_SETUP_LINK
  6. **************************
  7. Name
  8. ====
  9. MEDIA_IOC_SETUP_LINK - Modify the properties of a link
  10. Synopsis
  11. ========
  12. .. c:macro:: MEDIA_IOC_SETUP_LINK
  13. ``int ioctl(int fd, MEDIA_IOC_SETUP_LINK, struct media_link_desc *argp)``
  14. Arguments
  15. =========
  16. ``fd``
  17. File descriptor returned by :c:func:`open()`.
  18. ``argp``
  19. Pointer to struct :c:type:`media_link_desc`.
  20. Description
  21. ===========
  22. To change link properties applications fill a struct
  23. :c:type:`media_link_desc` with link identification
  24. information (source and sink pad) and the new requested link flags. They
  25. then call the MEDIA_IOC_SETUP_LINK ioctl with a pointer to that
  26. structure.
  27. The only configurable property is the ``ENABLED`` link flag to
  28. enable/disable a link. Links marked with the ``IMMUTABLE`` link flag can
  29. not be enabled or disabled.
  30. Link configuration has no side effect on other links. If an enabled link
  31. at the sink pad prevents the link from being enabled, the driver returns
  32. with an ``EBUSY`` error code.
  33. Only links marked with the ``DYNAMIC`` link flag can be enabled/disabled
  34. while streaming media data. Attempting to enable or disable a streaming
  35. non-dynamic link will return an ``EBUSY`` error code.
  36. If the specified link can't be found the driver returns with an ``EINVAL``
  37. error code.
  38. Return Value
  39. ============
  40. On success 0 is returned, on error -1 and the ``errno`` variable is set
  41. appropriately. The generic error codes are described at the
  42. :ref:`Generic Error Codes <gen-errors>` chapter.
  43. EINVAL
  44. The struct :c:type:`media_link_desc` references a
  45. non-existing link, or the link is immutable and an attempt to modify
  46. its configuration was made.