Pull documentation updates from Mauro Carvalho Chehab: "A series of patches addressing warnings produced by make htmldocs. This includes: - kernel-doc markup fixes - ReST fixes - Updates at the build system in order to support newer versions of the docs build toolchain (Sphinx) After this series, the number of html build warnings should reduce significantly, and building with Sphinx 3.1 or later should now be supported (although it is still recommended to use Sphinx 2.4.4). As agreed with Jon, I should be sending you a late pull request by the end of the merge window addressing remaining issues with docs build, as there are a number of warning fixes that depends on pull requests that should be happening along the merge window. The end goal is to have a clean htmldocs build on Kernel 5.10. PS. It should be noticed that Sphinx 3.0 is not currently supported, as it lacks support for C domain namespaces. Such feature, needed in order to document uAPI system calls with Sphinx 3.x, was added only on Sphinx 3.1" * tag 'docs/v5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (75 commits) PM / devfreq: remove a duplicated kernel-doc markup mm/doc: fix a literal block markup workqueue: fix a kernel-doc warning docs: virt: user_mode_linux_howto_v2.rst: fix a literal block markup Input: sparse-keymap: add a description for @sw rcu/tree: docs: document bkvcache new members at struct kfree_rcu_cpu nl80211: docs: add a description for s1g_cap parameter usb: docs: document altmode register/unregister functions kunit: test.h: fix a bad kernel-doc markup drivers: core: fix kernel-doc markup for dev_err_probe() docs: bio: fix a kerneldoc markup kunit: test.h: solve kernel-doc warnings block: bio: fix a warning at the kernel-doc markups docs: powerpc: syscall64-abi.rst: fix a malformed table drivers: net: hamradio: fix document location net: appletalk: Kconfig: Fix docs location dt-bindings: fix references to files converted to yaml memblock: get rid of a :c:type leftover math64.h: kernel-docs: Convert some markups into normal comments media: uAPI: buffer.rst: remove a left-over documentation ...
Unified · Split
| @@ -1,7 +1,6 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GPL-2.0 |
| 2 | 2 | .. include:: <isonum.txt> |
| 3 | 3 | |
| 4 | −.. |struct cpufreq_policy| replace:: :c:type:`struct cpufreq_policy <cpufreq_policy>` | |
| 5 | 4 | .. |intel_pstate| replace:: :doc:`intel_pstate <intel_pstate>` |
| 6 | 5 | |
| 7 | 6 | ======================= |
| @@ -92,16 +91,16 @@ control the P-state of multiple CPUs at the same time and writing to it affects · 84 unmodified lines | ||
| 92 | 91 | all of those CPUs simultaneously. |
| 93 | 92 | |
| 94 | 93 | Sets of CPUs sharing hardware P-state control interfaces are represented by |
| 95 | −``CPUFreq`` as |struct cpufreq_policy| objects. For consistency, | |
| 96 | −|struct cpufreq_policy| is also used when there is only one CPU in the given | |
| 94 | +``CPUFreq`` as struct cpufreq_policy objects. For consistency, | |
| 95 | +struct cpufreq_policy is also used when there is only one CPU in the given | |
| 97 | 96 | set. |
| 98 | 97 | |
| 99 | −The ``CPUFreq`` core maintains a pointer to a |struct cpufreq_policy| object for | |
| 98 | +The ``CPUFreq`` core maintains a pointer to a struct cpufreq_policy object for | |
| 100 | 99 | every CPU in the system, including CPUs that are currently offline. If multiple |
| 101 | 100 | CPUs share the same hardware P-state control interface, all of the pointers |
| 102 | −corresponding to them point to the same |struct cpufreq_policy| object. | |
| 101 | +corresponding to them point to the same struct cpufreq_policy object. | |
| 103 | 102 | |
| 104 | −``CPUFreq`` uses |struct cpufreq_policy| as its basic data type and the design | |
| 103 | +``CPUFreq`` uses struct cpufreq_policy as its basic data type and the design | |
| 105 | 104 | of its user space interface is based on the policy concept. |
| 106 | 105 | |
| 107 | 106 | |
| @@ -154,17 +154,11 @@ Configurations for driver · 153 unmodified lines | ||
| 154 | 154 | Only a block device driver cares about these configurations. A block device |
| 155 | 155 | driver uses ``register_pstore_blk`` to register to pstore/blk. |
| 156 | 156 | |
| 157 | −.. kernel-doc:: fs/pstore/blk.c | |
| 158 | − :identifiers: register_pstore_blk | |
| 159 | − | |
| 160 | 157 | A non-block device driver uses ``register_pstore_device`` with |
| 161 | 158 | ``struct pstore_device_info`` to register to pstore/blk. |
| 162 | 159 | |
| 163 | 160 | .. kernel-doc:: fs/pstore/blk.c |
| 164 | − :identifiers: register_pstore_device | |
| 165 | − | |
| 166 | −.. kernel-doc:: include/linux/pstore_blk.h | |
| 167 | − :identifiers: pstore_device_info | |
| 161 | + :export: | |
| 168 | 162 | |
| 169 | 163 | Compression and header |
| 170 | 164 | ---------------------- |
| @@ -237,7 +231,7 @@ For developer reference, here are all the important structures and APIs: · 66 unmodified lines | ||
| 237 | 231 | :internal: |
| 238 | 232 | |
| 239 | 233 | .. kernel-doc:: fs/pstore/blk.c |
| 240 | − :export: | |
| 234 | + :internal: | |
| 241 | 235 | |
| 242 | 236 | .. kernel-doc:: include/linux/pstore_blk.h |
| 243 | 237 | :internal: |
| @@ -63,10 +63,10 @@ Software staging queues · 62 unmodified lines | ||
| 63 | 63 | ~~~~~~~~~~~~~~~~~~~~~~~ |
| 64 | 64 | |
| 65 | 65 | The block IO subsystem adds requests in the software staging queues |
| 66 | −(represented by struct :c:type:`blk_mq_ctx`) in case that they weren't sent | |
| 66 | +(represented by struct blk_mq_ctx) in case that they weren't sent | |
| 67 | 67 | directly to the driver. A request is one or more BIOs. They arrived at the |
| 68 | −block layer through the data structure struct :c:type:`bio`. The block layer | |
| 69 | −will then build a new structure from it, the struct :c:type:`request` that will | |
| 68 | +block layer through the data structure struct bio. The block layer | |
| 69 | +will then build a new structure from it, the struct request that will | |
| 70 | 70 | be used to communicate with the device driver. Each queue has its own lock and |
| 71 | 71 | the number of queues is defined by a per-CPU or per-node basis. |
| 72 | 72 | |
| @@ -102,7 +102,7 @@ hardware queue will be drained in sequence according to their mapping. · 29 unmodified lines | ||
| 102 | 102 | Hardware dispatch queues |
| 103 | 103 | ~~~~~~~~~~~~~~~~~~~~~~~~ |
| 104 | 104 | |
| 105 | −The hardware queue (represented by struct :c:type:`blk_mq_hw_ctx`) is a struct | |
| 105 | +The hardware queue (represented by struct blk_mq_hw_ctx) is a struct | |
| 106 | 106 | used by device drivers to map the device submission queues (or device DMA ring |
| 107 | 107 | buffer), and are the last step of the block layer submission code before the |
| 108 | 108 | low level device driver taking ownership of the request. To run this queue, the |
| @@ -110,9 +110,9 @@ block layer removes requests from the associated software queues and tries to · 1 unmodified line | ||
| 110 | 110 | dispatch to the hardware. |
| 111 | 111 | |
| 112 | 112 | If it's not possible to send the requests directly to hardware, they will be |
| 113 | −added to a linked list (:c:type:`hctx->dispatch`) of requests. Then, | |
| 113 | +added to a linked list (``hctx->dispatch``) of requests. Then, | |
| 114 | 114 | next time the block layer runs a queue, it will send the requests laying at the |
| 115 | −:c:type:`dispatch` list first, to ensure a fairness dispatch with those | |
| 115 | +``dispatch`` list first, to ensure a fairness dispatch with those | |
| 116 | 116 | requests that were ready to be sent first. The number of hardware queues |
| 117 | 117 | depends on the number of hardware contexts supported by the hardware and its |
| 118 | 118 | device driver, but it will not be more than the number of cores of the system. |
| @@ -52,7 +52,7 @@ Constraints and notes · 51 unmodified lines | ||
| 52 | 52 | Design |
| 53 | 53 | ====== |
| 54 | 54 | |
| 55 | −We add a :c:type:`struct bio_crypt_ctx` to :c:type:`struct bio` that can | |
| 55 | +We add a struct bio_crypt_ctx to struct bio that can | |
| 56 | 56 | represent an encryption context, because we need to be able to pass this |
| 57 | 57 | encryption context from the upper layers (like the fs layer) to the |
| 58 | 58 | device driver to act upon. |
| @@ -85,7 +85,7 @@ blk-mq changes, other block layer changes and blk-crypto-fallback · 26 unmodified lines | ||
| 85 | 85 | ================================================================= |
| 86 | 86 | |
| 87 | 87 | We add a pointer to a ``bi_crypt_context`` and ``keyslot`` to |
| 88 | −:c:type:`struct request`. These will be referred to as the ``crypto fields`` | |
| 88 | +struct request. These will be referred to as the ``crypto fields`` | |
| 89 | 89 | for the request. This ``keyslot`` is the keyslot into which the |
| 90 | 90 | ``bi_crypt_context`` has been programmed in the KSM of the ``request_queue`` |
| 91 | 91 | that this request is being sent to. |
| @@ -118,7 +118,7 @@ of the algorithm being used adheres to spec and functions correctly). · 26 unmodified lines | ||
| 118 | 118 | If a ``request queue``'s inline encryption hardware claimed to support the |
| 119 | 119 | encryption context specified with a bio, then it will not be handled by the |
| 120 | 120 | ``blk-crypto-fallback``. We will eventually reach a point in blk-mq when a |
| 121 | −:c:type:`struct request` needs to be allocated for that bio. At that point, | |
| 121 | +struct request needs to be allocated for that bio. At that point, | |
| 122 | 122 | blk-mq tries to program the encryption context into the ``request_queue``'s |
| 123 | 123 | keyslot_manager, and obtain a keyslot, which it stores in its newly added |
| 124 | 124 | ``keyslot`` field. This keyslot is released when the request is completed. |
| @@ -188,7 +188,7 @@ keyslots supported by the hardware. · 63 unmodified lines | ||
| 188 | 188 | The device driver also needs to tell the KSM how to actually manipulate the |
| 189 | 189 | IE hardware in the device to do things like programming the crypto key into |
| 190 | 190 | the IE hardware into a particular keyslot. All this is achieved through the |
| 191 | −:c:type:`struct blk_ksm_ll_ops` field in the KSM that the device driver | |
| 191 | +struct blk_ksm_ll_ops field in the KSM that the device driver | |
| 192 | 192 | must fill up after initing the ``blk_keyslot_manager``. |
| 193 | 193 | |
| 194 | 194 | The KSM also handles runtime power management for the device when applicable |
| @@ -47,9 +47,68 @@ extensions = ['kerneldoc', 'rstFlatTable', 'kernel_include', · 46 unmodified lines | ||
| 47 | 47 | # |
| 48 | 48 | if major >= 3: |
| 49 | 49 | sys.stderr.write('''WARNING: The kernel documentation build process |
| 50 | − does not work correctly with Sphinx v3.0 and above. Expect errors | |
| 51 | − in the generated output. | |
| 52 | − ''') | |
| 50 | + support for Sphinx v3.0 and above is brand new. Be prepared for | |
| 51 | + possible issues in the generated output. | |
| 52 | + ''') | |
| 53 | + if minor > 0 or patch >= 2: | |
| 54 | + # Sphinx c function parser is more pedantic with regards to type | |
| 55 | + # checking. Due to that, having macros at c:function cause problems. | |
| 56 | + # Those needed to be scaped by using c_id_attributes[] array | |
| 57 | + c_id_attributes = [ | |
| 58 | + # GCC Compiler types not parsed by Sphinx: | |
| 59 | + "__restrict__", | |
| 60 | + | |
| 61 | + # include/linux/compiler_types.h: | |
| 62 | + "__iomem", | |
| 63 | + "__kernel", | |
| 64 | + "noinstr", | |
| 65 | + "notrace", | |
| 66 | + "__percpu", | |
| 67 | + "__rcu", | |
| 68 | + "__user", | |
| 69 | + | |
| 70 | + # include/linux/compiler_attributes.h: | |
| 71 | + "__alias", | |
| 72 | + "__aligned", | |
| 73 | + "__aligned_largest", | |
| 74 | + "__always_inline", | |
| 75 | + "__assume_aligned", | |
| 76 | + "__cold", | |
| 77 | + "__attribute_const__", | |
| 78 | + "__copy", | |
| 79 | + "__pure", | |
| 80 | + "__designated_init", | |
| 81 | + "__visible", | |
| 82 | + "__printf", | |
| 83 | + "__scanf", | |
| 84 | + "__gnu_inline", | |
| 85 | + "__malloc", | |
| 86 | + "__mode", | |
| 87 | + "__no_caller_saved_registers", | |
| 88 | + "__noclone", | |
| 89 | + "__nonstring", | |
| 90 | + "__noreturn", | |
| 91 | + "__packed", | |
| 92 | + "__pure", | |
| 93 | + "__section", | |
| 94 | + "__always_unused", | |
| 95 | + "__maybe_unused", | |
| 96 | + "__used", | |
| 97 | + "__weak", | |
| 98 | + "noinline", | |
| 99 | + | |
| 100 | + # include/linux/memblock.h: | |
| 101 | + "__init_memblock", | |
| 102 | + "__meminit", | |
| 103 | + | |
| 104 | + # include/linux/init.h: | |
| 105 | + "__init", | |
| 106 | + "__ref", | |
| 107 | + | |
| 108 | + # include/linux/linkage.h: | |
| 109 | + "asmlinkage", | |
| 110 | + ] | |
| 111 | + | |
| 53 | 112 | else: |
| 54 | 113 | extensions.append('cdomain') |
| 55 | 114 | |
| @@ -419,6 +419,7 @@ functions which are exported. · 418 unmodified lines | ||
| 419 | 419 | .. kernel-doc:: kernel/irq/manage.c |
| 420 | 420 | |
| 421 | 421 | .. kernel-doc:: kernel/irq/chip.c |
| 422 | + :export: | |
| 422 | 423 | |
| 423 | 424 | Internal Functions Provided |
| 424 | 425 | =========================== |
| @@ -431,6 +432,7 @@ functions. · 6 unmodified lines | ||
| 431 | 432 | .. kernel-doc:: kernel/irq/handle.c |
| 432 | 433 | |
| 433 | 434 | .. kernel-doc:: kernel/irq/chip.c |
| 435 | + :internal: | |
| 434 | 436 | |
| 435 | 437 | Credits |
| 436 | 438 | ======= |
| @@ -231,12 +231,6 @@ Refer to the file kernel/module.c for more information. · 230 unmodified lines | ||
| 231 | 231 | Hardware Interfaces |
| 232 | 232 | =================== |
| 233 | 233 | |
| 234 | −Interrupt Handling | |
| 235 | −------------------ | |
| 236 | − | |
| 237 | −.. kernel-doc:: kernel/irq/manage.c | |
| 238 | − :export: | |
| 239 | − | |
| 240 | 234 | DMA Channels |
| 241 | 235 | ------------ |
| 242 | 236 | |
| @@ -396,3 +396,5 @@ Kernel Inline Documentations Reference · 395 unmodified lines | ||
| 396 | 396 | ====================================== |
| 397 | 397 | |
| 398 | 398 | .. kernel-doc:: include/linux/workqueue.h |
| 399 | + | |
| 400 | +.. kernel-doc:: kernel/workqueue.c | |
| @@ -726,7 +726,7 @@ The kernel debugger is organized into a number of components: · 725 unmodified lines | ||
| 726 | 726 | - contains an arch-specific trap catcher which invokes |
| 727 | 727 | kgdb_handle_exception() to start kgdb about doing its work |
| 728 | 728 | |
| 729 | − - translation to and from gdb specific packet format to :c:type:`pt_regs` | |
| 729 | + - translation to and from gdb specific packet format to struct pt_regs | |
| 730 | 730 | |
| 731 | 731 | - Registration and unregistration of architecture specific trap |
| 732 | 732 | hooks |
| @@ -846,7 +846,7 @@ invokes a callback in the serial core which in turn uses the callback in · 113 unmodified lines | ||
| 846 | 846 | the UART driver. |
| 847 | 847 | |
| 848 | 848 | When using kgdboc with a UART, the UART driver must implement two |
| 849 | −callbacks in the :c:type:`struct uart_ops <uart_ops>`. | |
| 849 | +callbacks in the struct uart_ops. | |
| 850 | 850 | Example from ``drivers/8250.c``:: |
| 851 | 851 | |
| 852 | 852 | |
| @@ -875,7 +875,7 @@ kernel when ``CONFIG_KDB_KEYBOARD=y`` is set in the kernel configuration. · 22 unmodified lines | ||
| 875 | 875 | The core polled keyboard driver for PS/2 type keyboards is in |
| 876 | 876 | ``drivers/char/kdb_keyboard.c``. This driver is hooked into the debug core |
| 877 | 877 | when kgdboc populates the callback in the array called |
| 878 | −:c:type:`kdb_poll_funcs[]`. The kdb_get_kbd_char() is the top-level | |
| 878 | +:c:expr:`kdb_poll_funcs[]`. The kdb_get_kbd_char() is the top-level | |
| 879 | 879 | function which polls hardware for single character input. |
| 880 | 880 | |
| 881 | 881 | kgdboc and kms |
| @@ -37,7 +37,7 @@ Optional nodes: · 36 unmodified lines | ||
| 37 | 37 | supports a single port with a single endpoint. |
| 38 | 38 | |
| 39 | 39 | - See also Documentation/devicetree/bindings/display/tilcdc/panel.txt and |
| 40 | − Documentation/devicetree/bindings/display/bridge/ti,tfp410.txt for connecting | |
| 40 | + Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml for connecting | |
| 41 | 41 | tfp410 DVI encoder or lcd panel to lcdc |
| 42 | 42 | |
| 43 | 43 | [1] There is an errata about AM335x color wiring. For 16-bit color mode |
| @@ -69,7 +69,7 @@ The following are mandatory properties for the K3 AM65x and J721E SoCs only: · 68 unmodified lines | ||
| 69 | 69 | the interrupt routes between the IP and the main GIC |
| 70 | 70 | controllers. See the following binding for additional |
| 71 | 71 | details, |
| 72 | − Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt | |
| 72 | + Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml | |
| 73 | 73 | |
| 74 | 74 | Child Nodes: |
| 75 | 75 | ============ |
| @@ -56,7 +56,7 @@ Optional Connector Properties: · 55 unmodified lines | ||
| 56 | 56 | instead of using the autodetection mechnism. Please look at |
| 57 | 57 | [1] for more information. |
| 58 | 58 | |
| 59 | −[1] Documentation/devicetree/bindings/display/connector/analog-tv-connector.txt. | |
| 59 | +[1] Documentation/devicetree/bindings/display/connector/analog-tv-connector.yaml. | |
| 60 | 60 | |
| 61 | 61 | Example - three input sources: |
| 62 | 62 | #include <dt-bindings/display/sdtv-standards.h> |
| @@ -14,7 +14,7 @@ description: | · 13 unmodified lines | ||
| 14 | 14 | Google's ChromeOS EC PWM is a simple PWM attached to the Embedded Controller |
| 15 | 15 | (EC) and controlled via a host-command interface. |
| 16 | 16 | An EC PWM node should be only found as a sub-node of the EC node (see |
| 17 | − Documentation/devicetree/bindings/mfd/cros-ec.txt). | |
| 17 | + Documentation/devicetree/bindings/mfd/google,cros-ec.yaml). | |
| 18 | 18 | |
| 19 | 19 | properties: |
| 20 | 20 | compatible: |
| @@ -20,7 +20,7 @@ description: | · 19 unmodified lines | ||
| 20 | 20 | present and this subnode may contain children that designate regulator |
| 21 | 21 | resources. |
| 22 | 22 | |
| 23 | − Refer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt | |
| 23 | + Refer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml | |
| 24 | 24 | for information on the regulator subnodes that can exist under the |
| 25 | 25 | rpm_requests. |
| 26 | 26 | |
| @@ -13,7 +13,7 @@ description: | · 12 unmodified lines | ||
| 13 | 13 | Google's ChromeOS EC codec is a digital mic codec provided by the |
| 14 | 14 | Embedded Controller (EC) and is controlled via a host-command interface. |
| 15 | 15 | An EC codec node should only be found as a sub-node of the EC node (see |
| 16 | − Documentation/devicetree/bindings/mfd/cros-ec.txt). | |
| 16 | + Documentation/devicetree/bindings/mfd/google,cros-ec.yaml). | |
| 17 | 17 | |
| 18 | 18 | properties: |
| 19 | 19 | compatible: |
| @@ -490,6 +490,14 @@ identifiers: *[ function/type ...]* · 489 unmodified lines | ||
| 490 | 490 | .. kernel-doc:: lib/idr.c |
| 491 | 491 | :identifiers: |
| 492 | 492 | |
| 493 | +no-identifiers: *[ function/type ...]* | |
| 494 | + Exclude documentation for each *function* and *type* in *source*. | |
| 495 | + | |
| 496 | + Example:: | |
| 497 | + | |
| 498 | + .. kernel-doc:: lib/bitmap.c | |
| 499 | + :no-identifiers: bitmap_parselist | |
| 500 | + | |
| 493 | 501 | functions: *[ function/type ...]* |
| 494 | 502 | This is an alias of the 'identifiers' directive and deprecated. |
| 495 | 503 | |
| @@ -12,6 +12,8 @@ Driver device table · 11 unmodified lines | ||
| 12 | 12 | |
| 13 | 13 | .. kernel-doc:: include/linux/mod_devicetable.h |
| 14 | 14 | :internal: |
| 15 | + :no-identifiers: pci_device_id | |
| 16 | + | |
| 15 | 17 | |
| 16 | 18 | Delaying, scheduling, and timer routines |
| 17 | 19 | ---------------------------------------- |
| @@ -55,15 +57,6 @@ High-resolution timers · 37 unmodified lines | ||
| 55 | 57 | .. kernel-doc:: kernel/time/hrtimer.c |
| 56 | 58 | :export: |
| 57 | 59 | |
| 58 | −Workqueues and Kevents | |
| 59 | −---------------------- | |
| 60 | − | |
| 61 | −.. kernel-doc:: include/linux/workqueue.h | |
| 62 | − :internal: | |
| 63 | − | |
| 64 | −.. kernel-doc:: kernel/workqueue.c | |
| 65 | − :export: | |
| 66 | − | |
| 67 | 60 | Internal Functions |
| 68 | 61 | ------------------ |
| 69 | 62 | |
| @@ -105,19 +98,15 @@ Kernel utility functions · 35 unmodified lines | ||
| 105 | 98 | |
| 106 | 99 | .. kernel-doc:: include/linux/kernel.h |
| 107 | 100 | :internal: |
| 101 | + :no-identifiers: kstrtol kstrtoul | |
| 108 | 102 | |
| 109 | 103 | .. kernel-doc:: kernel/printk/printk.c |
| 110 | 104 | :export: |
| 105 | + :no-identifiers: printk | |
| 111 | 106 | |
| 112 | 107 | .. kernel-doc:: kernel/panic.c |
| 113 | 108 | :export: |
| 114 | 109 | |
| 115 | −.. kernel-doc:: kernel/rcu/tree.c | |
| 116 | − :export: | |
| 117 | − | |
| 118 | −.. kernel-doc:: kernel/rcu/update.c | |
| 119 | − :export: | |
| 120 | − | |
| 121 | 110 | .. kernel-doc:: include/linux/overflow.h |
| 122 | 111 | :internal: |
| 123 | 112 | |
| @@ -1,7 +1,3 @@ | ||
| 1 | −.. |struct dev_pm_domain| replace:: :c:type:`struct dev_pm_domain <dev_pm_domain>` | |
| 2 | −.. |struct generic_pm_domain| replace:: :c:type:`struct generic_pm_domain <generic_pm_domain>` | |
| 3 | − | |
| 4 | − | |
| 5 | 1 | .. _device_link: |
| 6 | 2 | |
| 7 | 3 | ============ |
| @@ -166,7 +162,7 @@ Examples · 158 unmodified lines | ||
| 166 | 162 | is the same as if the MMU was the parent of the master device. |
| 167 | 163 | |
| 168 | 164 | The fact that both devices share the same power domain would normally |
| 169 | − suggest usage of a |struct dev_pm_domain| or |struct generic_pm_domain|, | |
| 165 | + suggest usage of a struct dev_pm_domain or struct generic_pm_domain, | |
| 170 | 166 | however these are not independent devices that happen to share a power |
| 171 | 167 | switch, but rather the MMU device serves the busmaster device and is |
| 172 | 168 | useless without it. A device link creates a synthetic hierarchical |
| @@ -202,7 +198,7 @@ Examples · 29 unmodified lines | ||
| 202 | 198 | Alternatives |
| 203 | 199 | ============ |
| 204 | 200 | |
| 205 | −* A |struct dev_pm_domain| can be used to override the bus, | |
| 201 | +* A struct dev_pm_domain can be used to override the bus, | |
| 206 | 202 | class or device type callbacks. It is intended for devices sharing |
| 207 | 203 | a single on/off switch, however it does not guarantee a specific |
| 208 | 204 | suspend/resume ordering, this needs to be implemented separately. |
| @@ -211,7 +207,7 @@ Alternatives · 2 unmodified lines | ||
| 211 | 207 | suspended. Furthermore it cannot be used to enforce a specific shutdown |
| 212 | 208 | ordering or a driver presence dependency. |
| 213 | 209 | |
| 214 | −* A |struct generic_pm_domain| is a lot more heavyweight than a | |
| 210 | +* A struct generic_pm_domain is a lot more heavyweight than a | |
| 215 | 211 | device link and does not allow for shutdown ordering or driver presence |
| 216 | 212 | dependencies. It also cannot be used on ACPI systems. |
| 217 | 213 | |
| @@ -321,5 +317,4 @@ State machine · 103 unmodified lines | ||
| 321 | 317 | API |
| 322 | 318 | === |
| 323 | 319 | |
| 324 | −.. kernel-doc:: drivers/base/core.c | |
| 325 | − :functions: device_link_add device_link_del device_link_remove | |
| 320 | +See device_link_add(), device_link_del() and device_link_remove(). | |
| @@ -4,8 +4,8 @@ FPGA Bridge · 3 unmodified lines | ||
| 4 | 4 | API to implement a new FPGA bridge |
| 5 | 5 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 6 | 6 | |
| 7 | −* struct :c:type:`fpga_bridge` — The FPGA Bridge structure | |
| 8 | −* struct :c:type:`fpga_bridge_ops` — Low level Bridge driver ops | |
| 7 | +* struct fpga_bridge — The FPGA Bridge structure | |
| 8 | +* struct fpga_bridge_ops — Low level Bridge driver ops | |
| 9 | 9 | * devm_fpga_bridge_create() — Allocate and init a bridge struct |
| 10 | 10 | * fpga_bridge_register() — Register a bridge |
| 11 | 11 | * fpga_bridge_unregister() — Unregister a bridge |
| @@ -101,9 +101,9 @@ in state. · 100 unmodified lines | ||
| 101 | 101 | API for implementing a new FPGA Manager driver |
| 102 | 102 | ---------------------------------------------- |
| 103 | 103 | |
| 104 | −* ``fpga_mgr_states`` — Values for :c:member:`fpga_manager->state`. | |
| 105 | −* struct :c:type:`fpga_manager` — the FPGA manager struct | |
| 106 | −* struct :c:type:`fpga_manager_ops` — Low level FPGA manager driver ops | |
| 104 | +* ``fpga_mgr_states`` — Values for :c:expr:`fpga_manager->state`. | |
| 105 | +* struct fpga_manager — the FPGA manager struct | |
| 106 | +* struct fpga_manager_ops — Low level FPGA manager driver ops | |
| 107 | 107 | * devm_fpga_mgr_create() — Allocate and init a manager struct |
| 108 | 108 | * fpga_mgr_register() — Register an FPGA manager |
| 109 | 109 | * fpga_mgr_unregister() — Unregister an FPGA manager |
| @@ -15,7 +15,7 @@ the FPGA manager and bridges. It will: · 14 unmodified lines | ||
| 15 | 15 | * lock the mutex of the region's FPGA manager |
| 16 | 16 | * build a list of FPGA bridges if a method has been specified to do so |
| 17 | 17 | * disable the bridges |
| 18 | − * program the FPGA using info passed in :c:member:`fpga_region->info`. | |
| 18 | + * program the FPGA using info passed in :c:expr:`fpga_region->info`. | |
| 19 | 19 | * re-enable the bridges |
| 20 | 20 | * release the locks |
| 21 | 21 | |
| @@ -45,7 +45,7 @@ An example of usage can be seen in the probe function of [#f2]_. · 44 unmodified lines | ||
| 45 | 45 | API to add a new FPGA region |
| 46 | 46 | ---------------------------- |
| 47 | 47 | |
| 48 | −* struct :c:type:`fpga_region` — The FPGA region struct | |
| 48 | +* struct fpga_region — The FPGA region struct | |
| 49 | 49 | * devm_fpga_region_create() — Allocate and init a region struct |
| 50 | 50 | * fpga_region_register() — Register an FPGA region |
| 51 | 51 | * fpga_region_unregister() — Unregister an FPGA region |
| @@ -61,9 +61,9 @@ during the region's probe function. · 9 unmodified lines | ||
| 61 | 61 | |
| 62 | 62 | The FPGA region will need to specify which bridges to control while programming |
| 63 | 63 | the FPGA. The region driver can build a list of bridges during probe time |
| 64 | −(:c:member:`fpga_region->bridge_list`) or it can have a function that creates | |
| 64 | +(:c:expr:`fpga_region->bridge_list`) or it can have a function that creates | |
| 65 | 65 | the list of bridges to program just before programming |
| 66 | −(:c:member:`fpga_region->get_bridges`). The FPGA bridge framework supplies the | |
| 66 | +(:c:expr:`fpga_region->get_bridges`). The FPGA bridge framework supplies the | |
| 67 | 67 | following APIs to handle building or tearing down that list. |
| 68 | 68 | |
| 69 | 69 | * fpga_bridge_get_to_list() — Get a ref of an FPGA bridge, add it to a |
| @@ -2,7 +2,7 @@ · 1 unmodified line | ||
| 2 | 2 | Buffers |
| 3 | 3 | ======= |
| 4 | 4 | |
| 5 | −* struct :c:type:`iio_buffer` — general buffer structure | |
| 5 | +* struct iio_buffer — general buffer structure | |
| 6 | 6 | * :c:func:`iio_validate_scan_mask_onehot` — Validates that exactly one channel |
| 7 | 7 | is selected |
| 8 | 8 | * :c:func:`iio_buffer_get` — Grab a reference to the buffer |
| @@ -10,7 +10,7 @@ applications manipulating sensors. The implementation can be found under · 9 unmodified lines | ||
| 10 | 10 | Industrial I/O Devices |
| 11 | 11 | ---------------------- |
| 12 | 12 | |
| 13 | −* struct :c:type:`iio_dev` - industrial I/O device | |
| 13 | +* struct iio_dev - industrial I/O device | |
| 14 | 14 | * iio_device_alloc() - allocate an :c:type:`iio_dev` from a driver |
| 15 | 15 | * iio_device_free() - free an :c:type:`iio_dev` from a driver |
| 16 | 16 | * iio_device_register() - register a device with the IIO subsystem |
| @@ -66,7 +66,7 @@ Common attributes are: · 49 unmodified lines | ||
| 66 | 66 | IIO device channels |
| 67 | 67 | =================== |
| 68 | 68 | |
| 69 | −struct :c:type:`iio_chan_spec` - specification of a single channel | |
| 69 | +struct iio_chan_spec - specification of a single channel | |
| 70 | 70 | |
| 71 | 71 | An IIO device channel is a representation of a data channel. An IIO device can |
| 72 | 72 | have one or multiple channels. For example: |
| @@ -77,7 +77,7 @@ have one or multiple channels. For example: · 4 unmodified lines | ||
| 77 | 77 | * an accelerometer can have up to 3 channels representing acceleration on X, Y |
| 78 | 78 | and Z axes. |
| 79 | 79 | |
| 80 | −An IIO channel is described by the struct :c:type:`iio_chan_spec`. | |
| 80 | +An IIO channel is described by the struct iio_chan_spec. | |
| 81 | 81 | A thermometer driver for the temperature sensor in the example above would |
| 82 | 82 | have to describe its channel as follows:: |
| 83 | 83 | |
| @@ -8,7 +8,7 @@ software buffer for data. The implementation can be found under · 7 unmodified lines | ||
| 8 | 8 | :file:`drivers/iio/buffer/hw-consumer.c` |
| 9 | 9 | |
| 10 | 10 | |
| 11 | −* struct :c:type:`iio_hw_consumer` — Hardware consumer structure | |
| 11 | +* struct iio_hw_consumer — Hardware consumer structure | |
| 12 | 12 | * :c:func:`iio_hw_consumer_alloc` — Allocate IIO hardware consumer |
| 13 | 13 | * :c:func:`iio_hw_consumer_free` — Free IIO hardware consumer |
| 14 | 14 | * :c:func:`iio_hw_consumer_enable` — Enable IIO hardware consumer |
| @@ -10,7 +10,7 @@ IIO triggered buffer setup · 9 unmodified lines | ||
| 10 | 10 | * :c:func:`iio_triggered_buffer_setup` — Setup triggered buffer and pollfunc |
| 11 | 11 | * :c:func:`iio_triggered_buffer_cleanup` — Free resources allocated by |
| 12 | 12 | :c:func:`iio_triggered_buffer_setup` |
| 13 | −* struct :c:type:`iio_buffer_setup_ops` — buffer setup related callbacks | |
| 13 | +* struct iio_buffer_setup_ops — buffer setup related callbacks | |
| 14 | 14 | |
| 15 | 15 | A typical triggered buffer setup looks like this:: |
| 16 | 16 | |
| @@ -2,7 +2,7 @@ · 1 unmodified line | ||
| 2 | 2 | Triggers |
| 3 | 3 | ======== |
| 4 | 4 | |
| 5 | −* struct :c:type:`iio_trigger` — industrial I/O trigger device | |
| 5 | +* struct iio_trigger — industrial I/O trigger device | |
| 6 | 6 | * :c:func:`devm_iio_trigger_alloc` — Resource-managed iio_trigger_alloc |
| 7 | 7 | * :c:func:`devm_iio_trigger_register` — Resource-managed iio_trigger_register |
| 8 | 8 | iio_trigger_unregister |
| @@ -63,7 +63,7 @@ Let's see a simple example of how to setup a trigger to be used by a driver:: · 54 unmodified lines | ||
| 63 | 63 | IIO trigger ops |
| 64 | 64 | =============== |
| 65 | 65 | |
| 66 | −* struct :c:type:`iio_trigger_ops` — operations structure for an iio_trigger. | |
| 66 | +* struct iio_trigger_ops — operations structure for an iio_trigger. | |
| 67 | 67 | |
| 68 | 68 | Notice that a trigger has a set of operations attached: |
| 69 | 69 | |
| @@ -27,7 +27,6 @@ available subsections can be seen below. · 26 unmodified lines | ||
| 27 | 27 | component |
| 28 | 28 | message-based |
| 29 | 29 | infiniband |
| 30 | − sound | |
| 31 | 30 | frame-buffer |
| 32 | 31 | regulator |
| 33 | 32 | iio/index |
| @@ -6,6 +6,7 @@ The Basic Device Driver-Model Structures · 5 unmodified lines | ||
| 6 | 6 | |
| 7 | 7 | .. kernel-doc:: include/linux/device.h |
| 8 | 8 | :internal: |
| 9 | + :no-identifiers: device_link_state | |
| 9 | 10 | |
| 10 | 11 | Device Drivers Base |
| 11 | 12 | ------------------- |
| @@ -28,9 +29,6 @@ Device Drivers Base · 16 unmodified lines | ||
| 28 | 29 | .. kernel-doc:: drivers/base/node.c |
| 29 | 30 | :internal: |
| 30 | 31 | |
| 31 | −.. kernel-doc:: drivers/base/firmware_loader/main.c | |
| 32 | − :export: | |
| 33 | − | |
| 34 | 32 | .. kernel-doc:: drivers/base/transport_class.c |
| 35 | 33 | :export: |
| 36 | 34 | |
| @@ -508,7 +508,7 @@ also complete commands. · 507 unmodified lines | ||
| 508 | 508 | |
| 509 | 509 | 2. ATA_QCFLAG_ACTIVE is cleared from qc->flags. |
| 510 | 510 | |
| 511 | −3. :c:func:`qc->complete_fn` callback is invoked. If the return value of the | |
| 511 | +3. :c:expr:`qc->complete_fn` callback is invoked. If the return value of the | |
| 512 | 512 | callback is not zero. Completion is short circuited and |
| 513 | 513 | :c:func:`ata_qc_complete` returns. |
| 514 | 514 | |
| @@ -98,7 +98,7 @@ Implementing the Low-Level CEC Adapter · 97 unmodified lines | ||
| 98 | 98 | The following low-level adapter operations have to be implemented in |
| 99 | 99 | your driver: |
| 100 | 100 | |
| 101 | −.. c:type:: struct cec_adap_ops | |
| 101 | +.. c:struct:: cec_adap_ops | |
| 102 | 102 | |
| 103 | 103 | .. code-block:: none |
| 104 | 104 | |
| @@ -125,7 +125,7 @@ responsible for tuning the device. It supports multiple algorithms to · 124 unmodified lines | ||
| 125 | 125 | detect a channel, as defined at enum :c:func:`dvbfe_algo`. |
| 126 | 126 | |
| 127 | 127 | The algorithm to be used is obtained via ``.get_frontend_algo``. If the driver |
| 128 | −doesn't fill its field at struct :c:type:`dvb_frontend_ops`, it will default to | |
| 128 | +doesn't fill its field at struct dvb_frontend_ops, it will default to | |
| 129 | 129 | ``DVBFE_ALGO_SW``, meaning that the dvb-core will do a zigzag when tuning, |
| 130 | 130 | e. g. it will try first to use the specified center frequency ``f``, |
| 131 | 131 | then, it will do ``f`` + |delta|, ``f`` - |delta|, ``f`` + 2 x |delta|, |
| @@ -140,7 +140,7 @@ define a ``.get_frontend_algo`` function that would return ``DVBFE_ALGO_HW``. · 8 unmodified lines | ||
| 140 | 140 | a third type (``DVBFE_ALGO_CUSTOM``), in order to allow the driver to |
| 141 | 141 | define its own hardware-assisted algorithm. Very few hardware need to |
| 142 | 142 | use it nowadays. Using ``DVBFE_ALGO_CUSTOM`` require to provide other |
| 143 | − function callbacks at struct :c:type:`dvb_frontend_ops`. | |
| 143 | + function callbacks at struct dvb_frontend_ops. | |
| 144 | 144 | |
| 145 | 145 | Attaching frontend driver to the bridge driver |
| 146 | 146 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| @@ -36,7 +36,7 @@ pad to a sink pad. · 35 unmodified lines | ||
| 36 | 36 | Media device |
| 37 | 37 | ^^^^^^^^^^^^ |
| 38 | 38 | |
| 39 | −A media device is represented by a struct :c:type:`media_device` | |
| 39 | +A media device is represented by a struct media_device | |
| 40 | 40 | instance, defined in ``include/media/media-device.h``. |
| 41 | 41 | Allocation of the structure is handled by the media device driver, usually by |
| 42 | 42 | embedding the :c:type:`media_device` instance in a larger driver-specific |
| @@ -49,7 +49,7 @@ and unregistered by calling :c:func:`media_device_unregister()`. · 6 unmodified lines | ||
| 49 | 49 | Entities |
| 50 | 50 | ^^^^^^^^ |
| 51 | 51 | |
| 52 | −Entities are represented by a struct :c:type:`media_entity` | |
| 52 | +Entities are represented by a struct media_entity | |
| 53 | 53 | instance, defined in ``include/media/media-entity.h``. The structure is usually |
| 54 | 54 | embedded into a higher-level structure, such as |
| 55 | 55 | :c:type:`v4l2_subdev` or :c:type:`video_device` |
| @@ -67,10 +67,10 @@ Interfaces · 11 unmodified lines | ||
| 67 | 67 | ^^^^^^^^^^ |
| 68 | 68 | |
| 69 | 69 | Interfaces are represented by a |
| 70 | −struct :c:type:`media_interface` instance, defined in | |
| 70 | +struct media_interface instance, defined in | |
| 71 | 71 | ``include/media/media-entity.h``. Currently, only one type of interface is |
| 72 | 72 | defined: a device node. Such interfaces are represented by a |
| 73 | −struct :c:type:`media_intf_devnode`. | |
| 73 | +struct media_intf_devnode. | |
| 74 | 74 | |
| 75 | 75 | Drivers initialize and create device node interfaces by calling |
| 76 | 76 | :c:func:`media_devnode_create()` |
| @@ -79,7 +79,7 @@ and remove them by calling: · 2 unmodified lines | ||
| 79 | 79 | |
| 80 | 80 | Pads |
| 81 | 81 | ^^^^ |
| 82 | −Pads are represented by a struct :c:type:`media_pad` instance, | |
| 82 | +Pads are represented by a struct media_pad instance, | |
| 83 | 83 | defined in ``include/media/media-entity.h``. Each entity stores its pads in |
| 84 | 84 | a pads array managed by the entity driver. Drivers usually embed the array in |
| 85 | 85 | a driver-specific structure. |
| @@ -87,8 +87,8 @@ a driver-specific structure. · 1 unmodified line | ||
| 87 | 87 | Pads are identified by their entity and their 0-based index in the pads |
| 88 | 88 | array. |
| 89 | 89 | |
| 90 | −Both information are stored in the struct :c:type:`media_pad`, | |
| 91 | −making the struct :c:type:`media_pad` pointer the canonical way | |
| 90 | +Both information are stored in the struct media_pad, | |
| 91 | +making the struct media_pad pointer the canonical way | |
| 92 | 92 | to store and pass link references. |
| 93 | 93 | |
| 94 | 94 | Pads have flags that describe the pad capabilities and state. |
| @@ -104,7 +104,7 @@ Pads have flags that describe the pad capabilities and state. · 9 unmodified lines | ||
| 104 | 104 | Links |
| 105 | 105 | ^^^^^ |
| 106 | 106 | |
| 107 | −Links are represented by a struct :c:type:`media_link` instance, | |
| 107 | +Links are represented by a struct media_link instance, | |
| 108 | 108 | defined in ``include/media/media-entity.h``. There are two types of links: |
| 109 | 109 | |
| 110 | 110 | **1. pad to pad links**: |
| @@ -187,7 +187,7 @@ Use count and power handling · 76 unmodified lines | ||
| 187 | 187 | |
| 188 | 188 | Due to the wide differences between drivers regarding power management |
| 189 | 189 | needs, the media controller does not implement power management. However, |
| 190 | −the struct :c:type:`media_entity` includes a ``use_count`` | |
| 190 | +the struct media_entity includes a ``use_count`` | |
| 191 | 191 | field that media drivers |
| 192 | 192 | can use to track the number of users of every entity for power management |
| 193 | 193 | needs. |
| @@ -213,11 +213,11 @@ prevent link states from being modified during streaming by calling · 19 unmodified lines | ||
| 213 | 213 | The function will mark all entities connected to the given entity through |
| 214 | 214 | enabled links, either directly or indirectly, as streaming. |
| 215 | 215 | |
| 216 | −The struct :c:type:`media_pipeline` instance pointed to by | |
| 216 | +The struct media_pipeline instance pointed to by | |
| 217 | 217 | the pipe argument will be stored in every entity in the pipeline. |
| 218 | −Drivers should embed the struct :c:type:`media_pipeline` | |
| 218 | +Drivers should embed the struct media_pipeline | |
| 219 | 219 | in higher-level pipeline structures and can then access the |
| 220 | −pipeline through the struct :c:type:`media_entity` | |
| 220 | +pipeline through the struct media_entity | |
| 221 | 221 | pipe field. |
| 222 | 222 | |
| 223 | 223 | Calls to :c:func:`media_pipeline_start()` can be nested. |
| @@ -27,7 +27,7 @@ V4L2 specification with respect to controls in a central place. And to make · 26 unmodified lines | ||
| 27 | 27 | life as easy as possible for the driver developer. |
| 28 | 28 | |
| 29 | 29 | Note that the control framework relies on the presence of a struct |
| 30 | −:c:type:`v4l2_device` for V4L2 drivers and struct :c:type:`v4l2_subdev` for | |
| 30 | +:c:type:`v4l2_device` for V4L2 drivers and struct v4l2_subdev for | |
| 31 | 31 | sub-device drivers. |
| 32 | 32 | |
| 33 | 33 | |
| @@ -67,7 +67,7 @@ You should also set these fields of :c:type:`video_device`: · 66 unmodified lines | ||
| 67 | 67 | file operation is called this lock will be taken by the core and released |
| 68 | 68 | afterwards. See the next section for more details. |
| 69 | 69 | |
| 70 | −- :c:type:`video_device`->queue: a pointer to the struct :c:type:`vb2_queue` | |
| 70 | +- :c:type:`video_device`->queue: a pointer to the struct vb2_queue | |
| 71 | 71 | associated with this device node. |
| 72 | 72 | If queue is not ``NULL``, and queue->lock is not ``NULL``, then queue->lock |
| 73 | 73 | is used for the queuing ioctls (``VIDIOC_REQBUFS``, ``CREATE_BUFS``, |
| @@ -81,7 +81,7 @@ You should also set these fields of :c:type:`video_device`: · 7 unmodified lines | ||
| 81 | 81 | |
| 82 | 82 | - :c:type:`video_device`->prio: keeps track of the priorities. Used to |
| 83 | 83 | implement ``VIDIOC_G_PRIORITY`` and ``VIDIOC_S_PRIORITY``. |
| 84 | − If left to ``NULL``, then it will use the struct :c:type:`v4l2_prio_state` | |
| 84 | + If left to ``NULL``, then it will use the struct v4l2_prio_state | |
| 85 | 85 | in :c:type:`v4l2_device`. If you want to have a separate priority state per |
| 86 | 86 | (group of) device node(s), then you can point it to your own struct |
| 87 | 87 | :c:type:`v4l2_prio_state`. |
| @@ -95,7 +95,7 @@ You should also set these fields of :c:type:`video_device`: · 7 unmodified lines | ||
| 95 | 95 | but it is used by both a raw video PCI device (cx8800) and a MPEG PCI device |
| 96 | 96 | (cx8802). Since the :c:type:`v4l2_device` cannot be associated with two PCI |
| 97 | 97 | devices at the same time it is setup without a parent device. But when the |
| 98 | − struct :c:type:`video_device` is initialized you **do** know which parent | |
| 98 | + struct video_device is initialized you **do** know which parent | |
| 99 | 99 | PCI device to use and so you set ``dev_device`` to the correct PCI device. |
| 100 | 100 | |
| 101 | 101 | If you use :c:type:`v4l2_ioctl_ops`, then you should set |
| @@ -138,7 +138,7 @@ ioctls and locking · 36 unmodified lines | ||
| 138 | 138 | ------------------ |
| 139 | 139 | |
| 140 | 140 | The V4L core provides optional locking services. The main service is the |
| 141 | −lock field in struct :c:type:`video_device`, which is a pointer to a mutex. | |
| 141 | +lock field in struct video_device, which is a pointer to a mutex. | |
| 142 | 142 | If you set this pointer, then that will be used by unlocked_ioctl to |
| 143 | 143 | serialize all ioctls. |
| 144 | 144 | |
| @@ -3,7 +3,7 @@ · 2 unmodified lines | ||
| 3 | 3 | V4L2 device instance |
| 4 | 4 | -------------------- |
| 5 | 5 | |
| 6 | −Each device instance is represented by a struct :c:type:`v4l2_device`. | |
| 6 | +Each device instance is represented by a struct v4l2_device. | |
| 7 | 7 | Very simple devices can just allocate this struct, but most of the time you |
| 8 | 8 | would embed this struct inside a larger struct. |
| 9 | 9 | |
| @@ -18,9 +18,9 @@ dev->driver_data field is ``NULL``, it will be linked to · 8 unmodified lines | ||
| 18 | 18 | |
| 19 | 19 | Drivers that want integration with the media device framework need to set |
| 20 | 20 | dev->driver_data manually to point to the driver-specific device structure |
| 21 | −that embed the struct :c:type:`v4l2_device` instance. This is achieved by a | |
| 21 | +that embed the struct v4l2_device instance. This is achieved by a | |
| 22 | 22 | ``dev_set_drvdata()`` call before registering the V4L2 device instance. |
| 23 | −They must also set the struct :c:type:`v4l2_device` mdev field to point to a | |
| 23 | +They must also set the struct v4l2_device mdev field to point to a | |
| 24 | 24 | properly initialized and registered :c:type:`media_device` instance. |
| 25 | 25 | |
| 26 | 26 | If :c:type:`v4l2_dev <v4l2_device>`\ ->name is empty then it will be set to a |
| @@ -44,18 +44,18 @@ such objects. · 43 unmodified lines | ||
| 44 | 44 | |
| 45 | 45 | So to summarize: |
| 46 | 46 | |
| 47 | −- struct :c:type:`v4l2_fh` has two lists: one of the ``subscribed`` events, | |
| 47 | +- struct v4l2_fh has two lists: one of the ``subscribed`` events, | |
| 48 | 48 | and one of the ``available`` events. |
| 49 | 49 | |
| 50 | −- struct :c:type:`v4l2_subscribed_event` has a ringbuffer of raised | |
| 50 | +- struct v4l2_subscribed_event has a ringbuffer of raised | |
| 51 | 51 | (pending) events of that particular type. |
| 52 | 52 | |
| 53 | −- If struct :c:type:`v4l2_subscribed_event` is associated with a specific | |
| 53 | +- If struct v4l2_subscribed_event is associated with a specific | |
| 54 | 54 | object, then that object will have an internal list of |
| 55 | − struct :c:type:`v4l2_subscribed_event` so it knows who subscribed an | |
| 55 | + struct v4l2_subscribed_event so it knows who subscribed an | |
| 56 | 56 | event to that object. |
| 57 | 57 | |
| 58 | −Furthermore, the internal struct :c:type:`v4l2_subscribed_event` has | |
| 58 | +Furthermore, the internal struct v4l2_subscribed_event has | |
| 59 | 59 | ``merge()`` and ``replace()`` callbacks which drivers can set. These |
| 60 | 60 | callbacks are called when a new event is raised and there is no more room. |
| 61 | 61 | |
| @@ -3,11 +3,11 @@ · 2 unmodified lines | ||
| 3 | 3 | V4L2 File handlers |
| 4 | 4 | ------------------ |
| 5 | 5 | |
| 6 | −struct :c:type:`v4l2_fh` provides a way to easily keep file handle specific | |
| 6 | +struct v4l2_fh provides a way to easily keep file handle specific | |
| 7 | 7 | data that is used by the V4L2 framework. |
| 8 | 8 | |
| 9 | 9 | .. attention:: |
| 10 | − New drivers must use struct :c:type:`v4l2_fh` | |
| 10 | + New drivers must use struct v4l2_fh | |
| 11 | 11 | since it is also used to implement priority handling |
| 12 | 12 | (:ref:`VIDIOC_G_PRIORITY`). |
| 13 | 13 | |
| @@ -16,11 +16,11 @@ whether a driver uses :c:type:`v4l2_fh` as its ``file->private_data`` pointer · 2 unmodified lines | ||
| 16 | 16 | by testing the ``V4L2_FL_USES_V4L2_FH`` bit in :c:type:`video_device`->flags. |
| 17 | 17 | This bit is set whenever :c:func:`v4l2_fh_init` is called. |
| 18 | 18 | |
| 19 | −struct :c:type:`v4l2_fh` is allocated as a part of the driver's own file handle | |
| 19 | +struct v4l2_fh is allocated as a part of the driver's own file handle | |
| 20 | 20 | structure and ``file->private_data`` is set to it in the driver's ``open()`` |
| 21 | 21 | function by the driver. |
| 22 | 22 | |
| 23 | −In many cases the struct :c:type:`v4l2_fh` will be embedded in a larger | |
| 23 | +In many cases the struct v4l2_fh will be embedded in a larger | |
| 24 | 24 | structure. In that case you should call: |
| 25 | 25 | |
| 26 | 26 | #) :c:func:`v4l2_fh_init` and :c:func:`v4l2_fh_add` in ``open()`` |
| @@ -102,18 +102,18 @@ Below is a short description of the :c:type:`v4l2_fh` functions used: · 75 unmodified lines | ||
| 102 | 102 | memory can be freed. |
| 103 | 103 | |
| 104 | 104 | |
| 105 | −If struct :c:type:`v4l2_fh` is not embedded, then you can use these helper functions: | |
| 105 | +If struct v4l2_fh is not embedded, then you can use these helper functions: | |
| 106 | 106 | |
| 107 | 107 | :c:func:`v4l2_fh_open <v4l2_fh_open>` |
| 108 | 108 | (struct file \*filp) |
| 109 | 109 | |
| 110 | −- This allocates a struct :c:type:`v4l2_fh`, initializes it and adds it to | |
| 111 | − the struct :c:type:`video_device` associated with the file struct. | |
| 110 | +- This allocates a struct v4l2_fh, initializes it and adds it to | |
| 111 | + the struct video_device associated with the file struct. | |
| 112 | 112 | |
| 113 | 113 | :c:func:`v4l2_fh_release <v4l2_fh_release>` |
| 114 | 114 | (struct file \*filp) |
| 115 | 115 | |
| 116 | −- This deletes it from the struct :c:type:`video_device` associated with the | |
| 116 | +- This deletes it from the struct video_device associated with the | |
| 117 | 117 | file struct, uninitialised the :c:type:`v4l2_fh` and frees it. |
| 118 | 118 | |
| 119 | 119 | These two functions can be plugged into the v4l2_file_operation's ``open()`` |
| @@ -110,7 +110,7 @@ pads: · 109 unmodified lines | ||
| 110 | 110 | err = media_entity_pads_init(&sd->entity, npads, pads); |
| 111 | 111 | |
| 112 | 112 | The pads array must have been previously initialized. There is no need to |
| 113 | −manually set the struct :c:type:`media_entity` function and name fields, but the | |
| 113 | +manually set the struct media_entity function and name fields, but the | |
| 114 | 114 | revision field must be initialized if needed. |
| 115 | 115 | |
| 116 | 116 | A reference to the entity will be automatically acquired/released when the |
| @@ -38,7 +38,7 @@ Because some of the Intel ME features can change the system · 37 unmodified lines | ||
| 38 | 38 | configuration, the driver by default allows only a privileged |
| 39 | 39 | user to access it. |
| 40 | 40 | |
| 41 | −The session is terminated calling :c:func:`close(int fd)`. | |
| 41 | +The session is terminated calling :c:expr:`close(fd)`. | |
| 42 | 42 | |
| 43 | 43 | A code snippet for an application communicating with Intel AMTHI client: |
| 44 | 44 | |
| @@ -1,11 +1,6 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GPL-2.0 |
| 2 | 2 | .. include:: <isonum.txt> |
| 3 | 3 | |
| 4 | −.. |struct cpuidle_governor| replace:: :c:type:`struct cpuidle_governor <cpuidle_governor>` | |
| 5 | −.. |struct cpuidle_device| replace:: :c:type:`struct cpuidle_device <cpuidle_device>` | |
| 6 | −.. |struct cpuidle_driver| replace:: :c:type:`struct cpuidle_driver <cpuidle_driver>` | |
| 7 | −.. |struct cpuidle_state| replace:: :c:type:`struct cpuidle_state <cpuidle_state>` | |
| 8 | − | |
| 9 | 4 | ======================== |
| 10 | 5 | CPU Idle Time Management |
| 11 | 6 | ======================== |
| @@ -54,7 +49,7 @@ platform that the Linux kernel can run on. For this reason, data structures · 42 unmodified lines | ||
| 54 | 49 | operated on by them cannot depend on any hardware architecture or platform |
| 55 | 50 | design details as well. |
| 56 | 51 | |
| 57 | −The governor itself is represented by a |struct cpuidle_governor| object | |
| 52 | +The governor itself is represented by a struct cpuidle_governor object | |
| 58 | 53 | containing four callback pointers, :c:member:`enable`, :c:member:`disable`, |
| 59 | 54 | :c:member:`select`, :c:member:`reflect`, a :c:member:`rating` field described |
| 60 | 55 | below, and a name (string) used for identifying it. |
| @@ -83,11 +78,11 @@ callbacks: · 22 unmodified lines | ||
| 83 | 78 | int (*enable) (struct cpuidle_driver *drv, struct cpuidle_device *dev); |
| 84 | 79 | |
| 85 | 80 | The role of this callback is to prepare the governor for handling the |
| 86 | − (logical) CPU represented by the |struct cpuidle_device| object pointed | |
| 87 | − to by the ``dev`` argument. The |struct cpuidle_driver| object pointed | |
| 81 | + (logical) CPU represented by the struct cpuidle_device object pointed | |
| 82 | + to by the ``dev`` argument. The struct cpuidle_driver object pointed | |
| 88 | 83 | to by the ``drv`` argument represents the ``CPUIdle`` driver to be used |
| 89 | 84 | with that CPU (among other things, it should contain the list of |
| 90 | − |struct cpuidle_state| objects representing idle states that the | |
| 85 | + struct cpuidle_state objects representing idle states that the | |
| 91 | 86 | processor holding the given CPU can be asked to enter). |
| 92 | 87 | |
| 93 | 88 | It may fail, in which case it is expected to return a negative error |
| @@ -102,7 +97,7 @@ callbacks: · 8 unmodified lines | ||
| 102 | 97 | void (*disable) (struct cpuidle_driver *drv, struct cpuidle_device *dev); |
| 103 | 98 | |
| 104 | 99 | Called to make the governor stop handling the (logical) CPU represented |
| 105 | − by the |struct cpuidle_device| object pointed to by the ``dev`` | |
| 100 | + by the struct cpuidle_device object pointed to by the ``dev`` | |
| 106 | 101 | argument. |
| 107 | 102 | |
| 108 | 103 | It is expected to reverse any changes made by the ``->enable()`` |
| @@ -116,12 +111,12 @@ callbacks: · 7 unmodified lines | ||
| 116 | 111 | bool *stop_tick); |
| 117 | 112 | |
| 118 | 113 | Called to select an idle state for the processor holding the (logical) |
| 119 | − CPU represented by the |struct cpuidle_device| object pointed to by the | |
| 114 | + CPU represented by the struct cpuidle_device object pointed to by the | |
| 120 | 115 | ``dev`` argument. |
| 121 | 116 | |
| 122 | 117 | The list of idle states to take into consideration is represented by the |
| 123 | − :c:member:`states` array of |struct cpuidle_state| objects held by the | |
| 124 | − |struct cpuidle_driver| object pointed to by the ``drv`` argument (which | |
| 118 | + :c:member:`states` array of struct cpuidle_state objects held by the | |
| 119 | + struct cpuidle_driver object pointed to by the ``drv`` argument (which | |
| 125 | 120 | represents the ``CPUIdle`` driver to be used with the CPU at hand). The |
| 126 | 121 | value returned by this callback is interpreted as an index into that |
| 127 | 122 | array (unless it is a negative error code). |
| @@ -136,7 +131,7 @@ callbacks: · 8 unmodified lines | ||
| 136 | 131 | asking the processor to enter the idle state). |
| 137 | 132 | |
| 138 | 133 | This callback is mandatory (i.e. the :c:member:`select` callback pointer |
| 139 | − in |struct cpuidle_governor| must not be ``NULL`` for the registration | |
| 134 | + in struct cpuidle_governor must not be ``NULL`` for the registration | |
| 140 | 135 | of the governor to succeed). |
| 141 | 136 | |
| 142 | 137 | :c:member:`reflect` |
| @@ -167,21 +162,21 @@ CPU idle time management (``CPUIdle``) drivers provide an interface between the · 24 unmodified lines | ||
| 167 | 162 | other parts of ``CPUIdle`` and the hardware. |
| 168 | 163 | |
| 169 | 164 | First of all, a ``CPUIdle`` driver has to populate the :c:member:`states` array |
| 170 | −of |struct cpuidle_state| objects included in the |struct cpuidle_driver| object | |
| 165 | +of struct cpuidle_state objects included in the struct cpuidle_driver object | |
| 171 | 166 | representing it. Going forward this array will represent the list of available |
| 172 | 167 | idle states that the processor hardware can be asked to enter shared by all of |
| 173 | 168 | the logical CPUs handled by the given driver. |
| 174 | 169 | |
| 175 | 170 | The entries in the :c:member:`states` array are expected to be sorted by the |
| 176 | −value of the :c:member:`target_residency` field in |struct cpuidle_state| in | |
| 171 | +value of the :c:member:`target_residency` field in struct cpuidle_state in | |
| 177 | 172 | the ascending order (that is, index 0 should correspond to the idle state with |
| 178 | 173 | the minimum value of :c:member:`target_residency`). [Since the |
| 179 | 174 | :c:member:`target_residency` value is expected to reflect the "depth" of the |
| 180 | −idle state represented by the |struct cpuidle_state| object holding it, this | |
| 175 | +idle state represented by the struct cpuidle_state object holding it, this | |
| 181 | 176 | sorting order should be the same as the ascending sorting order by the idle |
| 182 | 177 | state "depth".] |
| 183 | 178 | |
| 184 | −Three fields in |struct cpuidle_state| are used by the existing ``CPUIdle`` | |
| 179 | +Three fields in struct cpuidle_state are used by the existing ``CPUIdle`` | |
| 185 | 180 | governors for computations related to idle state selection: |
| 186 | 181 | |
| 187 | 182 | :c:member:`target_residency` |
| @@ -203,7 +198,7 @@ governors for computations related to idle state selection: · 15 unmodified lines | ||
| 203 | 198 | any idle state at all. [There are other flags used by the ``CPUIdle`` |
| 204 | 199 | core in special situations.] |
| 205 | 200 | |
| 206 | −The :c:member:`enter` callback pointer in |struct cpuidle_state|, which must not | |
| 201 | +The :c:member:`enter` callback pointer in struct cpuidle_state, which must not | |
| 207 | 202 | be ``NULL``, points to the routine to execute in order to ask the processor to |
| 208 | 203 | enter this particular idle state: |
| 209 | 204 | |
| @@ -212,14 +207,14 @@ enter this particular idle state: · 2 unmodified lines | ||
| 212 | 207 | void (*enter) (struct cpuidle_device *dev, struct cpuidle_driver *drv, |
| 213 | 208 | int index); |
| 214 | 209 | |
| 215 | −The first two arguments of it point to the |struct cpuidle_device| object | |
| 210 | +The first two arguments of it point to the struct cpuidle_device object | |
| 216 | 211 | representing the logical CPU running this callback and the |
| 217 | −|struct cpuidle_driver| object representing the driver itself, respectively, | |
| 218 | −and the last one is an index of the |struct cpuidle_state| entry in the driver's | |
| 212 | +struct cpuidle_driver object representing the driver itself, respectively, | |
| 213 | +and the last one is an index of the struct cpuidle_state entry in the driver's | |
| 219 | 214 | :c:member:`states` array representing the idle state to ask the processor to |
| 220 | 215 | enter. |
| 221 | 216 | |
| 222 | −The analogous ``->enter_s2idle()`` callback in |struct cpuidle_state| is used | |
| 217 | +The analogous ``->enter_s2idle()`` callback in struct cpuidle_state is used | |
| 223 | 218 | only for implementing the suspend-to-idle system-wide power management feature. |
| 224 | 219 | The difference between in and ``->enter()`` is that it must not re-enable |
| 225 | 220 | interrupts at any point (even temporarily) or attempt to change the states of |
| @@ -227,48 +222,48 @@ clock event devices, which the ``->enter()`` callback may do sometimes. · 1 unmodified line | ||
| 227 | 222 | |
| 228 | 223 | Once the :c:member:`states` array has been populated, the number of valid |
| 229 | 224 | entries in it has to be stored in the :c:member:`state_count` field of the |
| 230 | −|struct cpuidle_driver| object representing the driver. Moreover, if any | |
| 225 | +struct cpuidle_driver object representing the driver. Moreover, if any | |
| 231 | 226 | entries in the :c:member:`states` array represent "coupled" idle states (that |
| 232 | 227 | is, idle states that can only be asked for if multiple related logical CPUs are |
| 233 | −idle), the :c:member:`safe_state_index` field in |struct cpuidle_driver| needs | |
| 228 | +idle), the :c:member:`safe_state_index` field in struct cpuidle_driver needs | |
| 234 | 229 | to be the index of an idle state that is not "coupled" (that is, one that can be |
| 235 | 230 | asked for if only one logical CPU is idle). |
| 236 | 231 | |
| 237 | 232 | In addition to that, if the given ``CPUIdle`` driver is only going to handle a |
| 238 | 233 | subset of logical CPUs in the system, the :c:member:`cpumask` field in its |
| 239 | −|struct cpuidle_driver| object must point to the set (mask) of CPUs that will be | |
| 234 | +struct cpuidle_driver object must point to the set (mask) of CPUs that will be | |
| 240 | 235 | handled by it. |
| 241 | 236 | |
| 242 | 237 | A ``CPUIdle`` driver can only be used after it has been registered. If there |
| 243 | 238 | are no "coupled" idle state entries in the driver's :c:member:`states` array, |
| 244 | −that can be accomplished by passing the driver's |struct cpuidle_driver| object | |
| 239 | +that can be accomplished by passing the driver's struct cpuidle_driver object | |
| 245 | 240 | to :c:func:`cpuidle_register_driver()`. Otherwise, :c:func:`cpuidle_register()` |
| 246 | 241 | should be used for this purpose. |
| 247 | 242 | |
| 248 | −However, it also is necessary to register |struct cpuidle_device| objects for | |
| 243 | +However, it also is necessary to register struct cpuidle_device objects for | |
| 249 | 244 | all of the logical CPUs to be handled by the given ``CPUIdle`` driver with the |
| 250 | 245 | help of :c:func:`cpuidle_register_device()` after the driver has been registered |
| 251 | 246 | and :c:func:`cpuidle_register_driver()`, unlike :c:func:`cpuidle_register()`, |
| 252 | 247 | does not do that automatically. For this reason, the drivers that use |
| 253 | 248 | :c:func:`cpuidle_register_driver()` to register themselves must also take care |
| 254 | −of registering the |struct cpuidle_device| objects as needed, so it is generally | |
| 249 | +of registering the struct cpuidle_device objects as needed, so it is generally | |
| 255 | 250 | recommended to use :c:func:`cpuidle_register()` for ``CPUIdle`` driver |
| 256 | 251 | registration in all cases. |
| 257 | 252 | |
| 258 | −The registration of a |struct cpuidle_device| object causes the ``CPUIdle`` | |
| 253 | +The registration of a struct cpuidle_device object causes the ``CPUIdle`` | |
| 259 | 254 | ``sysfs`` interface to be created and the governor's ``->enable()`` callback to |
| 260 | 255 | be invoked for the logical CPU represented by it, so it must take place after |
| 261 | 256 | registering the driver that will handle the CPU in question. |
| 262 | 257 | |
| 263 | −``CPUIdle`` drivers and |struct cpuidle_device| objects can be unregistered | |
| 258 | +``CPUIdle`` drivers and struct cpuidle_device objects can be unregistered | |
| 264 | 259 | when they are not necessary any more which allows some resources associated with |
| 265 | 260 | them to be released. Due to dependencies between them, all of the |
| 266 | −|struct cpuidle_device| objects representing CPUs handled by the given | |
| 261 | +struct cpuidle_device objects representing CPUs handled by the given | |
| 267 | 262 | ``CPUIdle`` driver must be unregistered, with the help of |
| 268 | 263 | :c:func:`cpuidle_unregister_device()`, before calling |
| 269 | 264 | :c:func:`cpuidle_unregister_driver()` to unregister the driver. Alternatively, |
| 270 | 265 | :c:func:`cpuidle_unregister()` can be called to unregister a ``CPUIdle`` driver |
| 271 | −along with all of the |struct cpuidle_device| objects representing CPUs handled | |
| 266 | +along with all of the struct cpuidle_device objects representing CPUs handled | |
| 272 | 267 | by it. |
| 273 | 268 | |
| 274 | 269 | ``CPUIdle`` drivers can respond to runtime system configuration changes that |
| @@ -277,8 +272,8 @@ happen, for example, when the system's power source is switched from AC to · 2 unmodified lines | ||
| 277 | 272 | battery or the other way around). Upon a notification of such a change, |
| 278 | 273 | a ``CPUIdle`` driver is expected to call :c:func:`cpuidle_pause_and_lock()` to |
| 279 | 274 | turn ``CPUIdle`` off temporarily and then :c:func:`cpuidle_disable_device()` for |
| 280 | −all of the |struct cpuidle_device| objects representing CPUs affected by that | |
| 275 | +all of the struct cpuidle_device objects representing CPUs affected by that | |
| 281 | 276 | change. Next, it can update its :c:member:`states` array in accordance with |
| 282 | 277 | the new configuration of the system, call :c:func:`cpuidle_enable_device()` for |
| 283 | −all of the relevant |struct cpuidle_device| objects and invoke | |
| 278 | +all of the relevant struct cpuidle_device objects and invoke | |
| 284 | 279 | :c:func:`cpuidle_resume_and_unlock()` to allow ``CPUIdle`` to be used again. |
| @@ -1,14 +1,6 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GPL-2.0 |
| 2 | 2 | .. include:: <isonum.txt> |
| 3 | 3 | |
| 4 | −.. |struct dev_pm_ops| replace:: :c:type:`struct dev_pm_ops <dev_pm_ops>` | |
| 5 | −.. |struct dev_pm_domain| replace:: :c:type:`struct dev_pm_domain <dev_pm_domain>` | |
| 6 | −.. |struct bus_type| replace:: :c:type:`struct bus_type <bus_type>` | |
| 7 | −.. |struct device_type| replace:: :c:type:`struct device_type <device_type>` | |
| 8 | −.. |struct class| replace:: :c:type:`struct class <class>` | |
| 9 | −.. |struct wakeup_source| replace:: :c:type:`struct wakeup_source <wakeup_source>` | |
| 10 | −.. |struct device| replace:: :c:type:`struct device <device>` | |
| 11 | − | |
| 12 | 4 | .. _driverapi_pm_devices: |
| 13 | 5 | |
| 14 | 6 | ============================== |
| @@ -107,7 +99,7 @@ Device Power Management Operations · 92 unmodified lines | ||
| 107 | 99 | |
| 108 | 100 | Device power management operations, at the subsystem level as well as at the |
| 109 | 101 | device driver level, are implemented by defining and populating objects of type |
| 110 | −|struct dev_pm_ops| defined in :file:`include/linux/pm.h`. The roles of the | |
| 102 | +struct dev_pm_ops defined in :file:`include/linux/pm.h`. The roles of the | |
| 111 | 103 | methods included in it will be explained in what follows. For now, it should be |
| 112 | 104 | sufficient to remember that the last three methods are specific to runtime power |
| 113 | 105 | management while the remaining ones are used during system-wide power |
| @@ -115,7 +107,7 @@ transitions. · 1 unmodified line | ||
| 115 | 107 | |
| 116 | 108 | There also is a deprecated "old" or "legacy" interface for power management |
| 117 | 109 | operations available at least for some subsystems. This approach does not use |
| 118 | −|struct dev_pm_ops| objects and it is suitable only for implementing system | |
| 110 | +struct dev_pm_ops objects and it is suitable only for implementing system | |
| 119 | 111 | sleep power management methods in a limited way. Therefore it is not described |
| 120 | 112 | in this document, so please refer directly to the source code for more |
| 121 | 113 | information about it. |
| @@ -125,9 +117,9 @@ Subsystem-Level Methods · 3 unmodified lines | ||
| 125 | 117 | ----------------------- |
| 126 | 118 | |
| 127 | 119 | The core methods to suspend and resume devices reside in |
| 128 | −|struct dev_pm_ops| pointed to by the :c:member:`ops` member of | |
| 129 | −|struct dev_pm_domain|, or by the :c:member:`pm` member of |struct bus_type|, | |
| 130 | −|struct device_type| and |struct class|. They are mostly of interest to the | |
| 120 | +struct dev_pm_ops pointed to by the :c:member:`ops` member of | |
| 121 | +struct dev_pm_domain, or by the :c:member:`pm` member of struct bus_type, | |
| 122 | +struct device_type and struct class. They are mostly of interest to the | |
| 131 | 123 | people writing infrastructure for platforms and buses, like PCI or USB, or |
| 132 | 124 | device type and device class drivers. They also are relevant to the writers of |
| 133 | 125 | device drivers whose subsystems (PM domains, device types, device classes and |
| @@ -156,7 +148,7 @@ The :c:member:`power.can_wakeup` flag just records whether the device (and its · 22 unmodified lines | ||
| 156 | 148 | driver) can physically support wakeup events. The |
| 157 | 149 | :c:func:`device_set_wakeup_capable()` routine affects this flag. The |
| 158 | 150 | :c:member:`power.wakeup` field is a pointer to an object of type |
| 159 | −|struct wakeup_source| used for controlling whether or not the device should use | |
| 151 | +struct wakeup_source used for controlling whether or not the device should use | |
| 160 | 152 | its system wakeup mechanism and for notifying the PM core of system wakeup |
| 161 | 153 | events signaled by the device. This object is only present for wakeup-capable |
| 162 | 154 | devices (i.e. devices whose :c:member:`can_wakeup` flags are set) and is created |
| @@ -418,7 +410,7 @@ On many platforms they will gate off one or more clock sources; sometimes they · 255 unmodified lines | ||
| 418 | 410 | will also switch off power supplies or reduce voltages. [Drivers supporting |
| 419 | 411 | runtime PM may already have performed some or all of these steps.] |
| 420 | 412 | |
| 421 | −If :c:func:`device_may_wakeup(dev)` returns ``true``, the device should be | |
| 413 | +If :c:func:`device_may_wakeup()` returns ``true``, the device should be | |
| 422 | 414 | prepared for generating hardware wakeup signals to trigger a system wakeup event |
| 423 | 415 | when the system is in the sleep state. For example, :c:func:`enable_irq_wake()` |
| 424 | 416 | might identify GPIO signals hooked up to a switch or other external hardware, |
| @@ -713,8 +705,8 @@ nested inside another power domain. The nested domain is referred to as the · 288 unmodified lines | ||
| 713 | 705 | sub-domain of the parent domain. |
| 714 | 706 | |
| 715 | 707 | Support for power domains is provided through the :c:member:`pm_domain` field of |
| 716 | −|struct device|. This field is a pointer to an object of type | |
| 717 | −|struct dev_pm_domain|, defined in :file:`include/linux/pm.h`, providing a set | |
| 708 | +struct device. This field is a pointer to an object of type | |
| 709 | +struct dev_pm_domain, defined in :file:`include/linux/pm.h`, providing a set | |
| 718 | 710 | of power management callbacks analogous to the subsystem-level and device driver |
| 719 | 711 | callbacks that are executed for the given device during all power transitions, |
| 720 | 712 | instead of the respective subsystem-level callbacks. Specifically, if a |
| @@ -116,7 +116,7 @@ core, providing operations structures to the core. A notifier interface · 115 unmodified lines | ||
| 116 | 116 | allows error conditions to be reported to the core. |
| 117 | 117 | |
| 118 | 118 | Registration should be triggered by explicit setup done by the platform, |
| 119 | −supplying a struct :c:type:`regulator_init_data` for the regulator | |
| 119 | +supplying a struct regulator_init_data for the regulator | |
| 120 | 120 | containing constraint and supply information. |
| 121 | 121 | |
| 122 | 122 | Machine interface |
| @@ -144,7 +144,7 @@ a given system, for example supporting higher supply voltages than the · 21 unmodified lines | ||
| 144 | 144 | consumers are rated for. |
| 145 | 145 | |
| 146 | 146 | This is done at driver registration time` by providing a |
| 147 | −struct :c:type:`regulation_constraints`. | |
| 147 | +struct regulation_constraints. | |
| 148 | 148 | |
| 149 | 149 | The constraints may also specify an initial configuration for the |
| 150 | 150 | regulator in the constraints, which is particularly useful for use with |
| @@ -1,54 +0,0 @@ | ||
| 1 | −Sound Devices | |
| 2 | −============= | |
| 3 | − | |
| 4 | −.. kernel-doc:: include/sound/core.h | |
| 5 | − :internal: | |
| 6 | − | |
| 7 | −.. kernel-doc:: sound/sound_core.c | |
| 8 | − :export: | |
| 9 | − | |
| 10 | −.. kernel-doc:: include/sound/pcm.h | |
| 11 | − :internal: | |
| 12 | − | |
| 13 | −.. kernel-doc:: sound/core/pcm.c | |
| 14 | − :export: | |
| 15 | − | |
| 16 | −.. kernel-doc:: sound/core/device.c | |
| 17 | − :export: | |
| 18 | − | |
| 19 | −.. kernel-doc:: sound/core/info.c | |
| 20 | − :export: | |
| 21 | − | |
| 22 | −.. kernel-doc:: sound/core/rawmidi.c | |
| 23 | − :export: | |
| 24 | − | |
| 25 | −.. kernel-doc:: sound/core/sound.c | |
| 26 | − :export: | |
| 27 | − | |
| 28 | −.. kernel-doc:: sound/core/memory.c | |
| 29 | − :export: | |
| 30 | − | |
| 31 | −.. kernel-doc:: sound/core/pcm_memory.c | |
| 32 | − :export: | |
| 33 | − | |
| 34 | −.. kernel-doc:: sound/core/init.c | |
| 35 | − :export: | |
| 36 | − | |
| 37 | −.. kernel-doc:: sound/core/isadma.c | |
| 38 | − :export: | |
| 39 | − | |
| 40 | −.. kernel-doc:: sound/core/control.c | |
| 41 | − :export: | |
| 42 | − | |
| 43 | −.. kernel-doc:: sound/core/pcm_lib.c | |
| 44 | − :export: | |
| 45 | − | |
| 46 | −.. kernel-doc:: sound/core/hwdep.c | |
| 47 | − :export: | |
| 48 | − | |
| 49 | −.. kernel-doc:: sound/core/pcm_native.c | |
| 50 | − :export: | |
| 51 | − | |
| 52 | −.. kernel-doc:: sound/core/memalloc.c | |
| 53 | − :export: | |
| 54 | − | |
| @@ -41,18 +41,6 @@ iSCSI boot information · 40 unmodified lines | ||
| 41 | 41 | .. kernel-doc:: drivers/scsi/iscsi_boot_sysfs.c |
| 42 | 42 | :export: |
| 43 | 43 | |
| 44 | − | |
| 45 | −iSCSI transport class | |
| 46 | −===================== | |
| 47 | − | |
| 48 | −The file drivers/scsi/scsi_transport_iscsi.c defines transport | |
| 49 | −attributes for the iSCSI class, which sends SCSI packets over TCP/IP | |
| 50 | −connections. | |
| 51 | − | |
| 52 | −.. kernel-doc:: drivers/scsi/scsi_transport_iscsi.c | |
| 53 | − :export: | |
| 54 | − | |
| 55 | − | |
| 56 | 44 | iSCSI TCP interfaces |
| 57 | 45 | ==================== |
| 58 | 46 | |
| @@ -47,7 +47,7 @@ called USB Request Block, or URB for short. · 46 unmodified lines | ||
| 47 | 47 | The URB structure |
| 48 | 48 | ================= |
| 49 | 49 | |
| 50 | −Some of the fields in struct :c:type:`urb` are:: | |
| 50 | +Some of the fields in struct urb are:: | |
| 51 | 51 | |
| 52 | 52 | struct urb |
| 53 | 53 | { |
| @@ -176,9 +176,9 @@ Kernel Mode Gadget API · 175 unmodified lines | ||
| 176 | 176 | |
| 177 | 177 | Gadget drivers declare themselves through a struct |
| 178 | 178 | :c:type:`usb_gadget_driver`, which is responsible for most parts of enumeration |
| 179 | −for a struct :c:type:`usb_gadget`. The response to a set_configuration usually | |
| 180 | −involves enabling one or more of the struct :c:type:`usb_ep` objects exposed by | |
| 181 | −the gadget, and submitting one or more struct :c:type:`usb_request` buffers to | |
| 179 | +for a struct usb_gadget. The response to a set_configuration usually | |
| 180 | +involves enabling one or more of the struct usb_ep objects exposed by | |
| 181 | +the gadget, and submitting one or more struct usb_request buffers to | |
| 182 | 182 | transfer data. Understand those four data types, and their operations, |
| 183 | 183 | and you will understand how this API works. |
| 184 | 184 | |
| @@ -339,8 +339,8 @@ multi-configuration devices (also more than one function, but not · 154 unmodified lines | ||
| 339 | 339 | necessarily sharing a given configuration). There is however an optional |
| 340 | 340 | framework which makes it easier to reuse and combine functions. |
| 341 | 341 | |
| 342 | −Devices using this framework provide a struct :c:type:`usb_composite_driver`, | |
| 343 | −which in turn provides one or more struct :c:type:`usb_configuration` | |
| 342 | +Devices using this framework provide a struct usb_composite_driver, | |
| 343 | +which in turn provides one or more struct usb_configuration | |
| 344 | 344 | instances. Each such configuration includes at least one struct |
| 345 | 345 | :c:type:`usb_function`, which packages a user visible role such as "network |
| 346 | 346 | link" or "mass storage device". Management functions may also exist, |
| @@ -122,7 +122,7 @@ and their quirks, might have a MODULE_DEVICE_TABLE like this:: · 121 unmodified lines | ||
| 122 | 122 | Most USB device drivers should pass these tables to the USB subsystem as |
| 123 | 123 | well as to the module management subsystem. Not all, though: some driver |
| 124 | 124 | frameworks connect using interfaces layered over USB, and so they won't |
| 125 | −need such a struct :c:type:`usb_driver`. | |
| 125 | +need such a struct usb_driver. | |
| 126 | 126 | |
| 127 | 127 | Drivers that connect directly to the USB subsystem should be declared |
| 128 | 128 | something like this:: |
| @@ -91,10 +91,16 @@ their control. · 90 unmodified lines | ||
| 91 | 91 | Driver API |
| 92 | 92 | ---------- |
| 93 | 93 | |
| 94 | +Alternate mode structs | |
| 95 | +~~~~~~~~~~~~~~~~~~~~~~ | |
| 96 | + | |
| 97 | +.. kernel-doc:: include/linux/usb/typec_altmode.h | |
| 98 | + :functions: typec_altmode_driver typec_altmode_ops | |
| 99 | + | |
| 94 | 100 | Alternate mode driver registering/unregistering |
| 95 | 101 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 96 | 102 | |
| 97 | −.. kernel-doc:: drivers/usb/typec/bus.c | |
| 103 | +.. kernel-doc:: include/linux/usb/typec_altmode.h | |
| 98 | 104 | :functions: typec_altmode_register_driver typec_altmode_unregister_driver |
| 99 | 105 | |
| 100 | 106 | Alternate mode driver operations |
| @@ -436,9 +436,9 @@ FS_IOC_SET_ENCRYPTION_POLICY · 435 unmodified lines | ||
| 436 | 436 | |
| 437 | 437 | The FS_IOC_SET_ENCRYPTION_POLICY ioctl sets an encryption policy on an |
| 438 | 438 | empty directory or verifies that a directory or regular file already |
| 439 | −has the specified encryption policy. It takes in a pointer to a | |
| 440 | −:c:type:`struct fscrypt_policy_v1` or a :c:type:`struct | |
| 441 | −fscrypt_policy_v2`, defined as follows:: | |
| 439 | +has the specified encryption policy. It takes in a pointer to | |
| 440 | +struct fscrypt_policy_v1 or struct fscrypt_policy_v2, defined as | |
| 441 | +follows:: | |
| 442 | 442 | |
| 443 | 443 | #define FSCRYPT_POLICY_V1 0 |
| 444 | 444 | #define FSCRYPT_KEY_DESCRIPTOR_SIZE 8 |
| @@ -464,11 +464,11 @@ fscrypt_policy_v2`, defined as follows:: · 19 unmodified lines | ||
| 464 | 464 | |
| 465 | 465 | This structure must be initialized as follows: |
| 466 | 466 | |
| 467 | −- ``version`` must be FSCRYPT_POLICY_V1 (0) if the struct is | |
| 468 | − :c:type:`fscrypt_policy_v1` or FSCRYPT_POLICY_V2 (2) if the struct | |
| 469 | − is :c:type:`fscrypt_policy_v2`. (Note: we refer to the original | |
| 470 | − policy version as "v1", though its version code is really 0.) For | |
| 471 | − new encrypted directories, use v2 policies. | |
| 467 | +- ``version`` must be FSCRYPT_POLICY_V1 (0) if | |
| 468 | + struct fscrypt_policy_v1 is used or FSCRYPT_POLICY_V2 (2) if | |
| 469 | + struct fscrypt_policy_v2 is used. (Note: we refer to the original | |
| 470 | + policy version as "v1", though its version code is really 0.) | |
| 471 | + For new encrypted directories, use v2 policies. | |
| 472 | 472 | |
| 473 | 473 | - ``contents_encryption_mode`` and ``filenames_encryption_mode`` must |
| 474 | 474 | be set to constants from ``<linux/fscrypt.h>`` which identify the |
| @@ -508,9 +508,9 @@ This structure must be initialized as follows: · 33 unmodified lines | ||
| 508 | 508 | replaced with ``master_key_identifier``, which is longer and cannot |
| 509 | 509 | be arbitrarily chosen. Instead, the key must first be added using |
| 510 | 510 | `FS_IOC_ADD_ENCRYPTION_KEY`_. Then, the ``key_spec.u.identifier`` |
| 511 | − the kernel returned in the :c:type:`struct fscrypt_add_key_arg` must | |
| 512 | − be used as the ``master_key_identifier`` in the :c:type:`struct | |
| 513 | − fscrypt_policy_v2`. | |
| 511 | + the kernel returned in the struct fscrypt_add_key_arg must | |
| 512 | + be used as the ``master_key_identifier`` in | |
| 513 | + struct fscrypt_policy_v2. | |
| 514 | 514 | |
| 515 | 515 | If the file is not yet encrypted, then FS_IOC_SET_ENCRYPTION_POLICY |
| 516 | 516 | verifies that the file is an empty directory. If so, the specified |
| @@ -590,7 +590,7 @@ FS_IOC_GET_ENCRYPTION_POLICY_EX · 73 unmodified lines | ||
| 590 | 590 | The FS_IOC_GET_ENCRYPTION_POLICY_EX ioctl retrieves the encryption |
| 591 | 591 | policy, if any, for a directory or regular file. No additional |
| 592 | 592 | permissions are required beyond the ability to open the file. It |
| 593 | −takes in a pointer to a :c:type:`struct fscrypt_get_policy_ex_arg`, | |
| 593 | +takes in a pointer to struct fscrypt_get_policy_ex_arg, | |
| 594 | 594 | defined as follows:: |
| 595 | 595 | |
| 596 | 596 | struct fscrypt_get_policy_ex_arg { |
| @@ -637,9 +637,8 @@ The FS_IOC_GET_ENCRYPTION_POLICY ioctl can also retrieve the · 40 unmodified lines | ||
| 637 | 637 | encryption policy, if any, for a directory or regular file. However, |
| 638 | 638 | unlike `FS_IOC_GET_ENCRYPTION_POLICY_EX`_, |
| 639 | 639 | FS_IOC_GET_ENCRYPTION_POLICY only supports the original policy |
| 640 | −version. It takes in a pointer directly to a :c:type:`struct | |
| 641 | −fscrypt_policy_v1` rather than a :c:type:`struct | |
| 642 | −fscrypt_get_policy_ex_arg`. | |
| 640 | +version. It takes in a pointer directly to struct fscrypt_policy_v1 | |
| 641 | +rather than struct fscrypt_get_policy_ex_arg. | |
| 643 | 642 | |
| 644 | 643 | The error codes for FS_IOC_GET_ENCRYPTION_POLICY are the same as those |
| 645 | 644 | for FS_IOC_GET_ENCRYPTION_POLICY_EX, except that |
| @@ -680,8 +679,7 @@ the filesystem, making all files on the filesystem which were · 34 unmodified lines | ||
| 680 | 679 | encrypted using that key appear "unlocked", i.e. in plaintext form. |
| 681 | 680 | It can be executed on any file or directory on the target filesystem, |
| 682 | 681 | but using the filesystem's root directory is recommended. It takes in |
| 683 | −a pointer to a :c:type:`struct fscrypt_add_key_arg`, defined as | |
| 684 | −follows:: | |
| 682 | +a pointer to struct fscrypt_add_key_arg, defined as follows:: | |
| 685 | 683 | |
| 686 | 684 | struct fscrypt_add_key_arg { |
| 687 | 685 | struct fscrypt_key_specifier key_spec; |
| @@ -710,17 +708,16 @@ follows:: · 22 unmodified lines | ||
| 710 | 708 | __u8 raw[]; |
| 711 | 709 | }; |
| 712 | 710 | |
| 713 | −:c:type:`struct fscrypt_add_key_arg` must be zeroed, then initialized | |
| 711 | +struct fscrypt_add_key_arg must be zeroed, then initialized | |
| 714 | 712 | as follows: |
| 715 | 713 | |
| 716 | 714 | - If the key is being added for use by v1 encryption policies, then |
| 717 | 715 | ``key_spec.type`` must contain FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR, and |
| 718 | 716 | ``key_spec.u.descriptor`` must contain the descriptor of the key |
| 719 | 717 | being added, corresponding to the value in the |
| 720 | − ``master_key_descriptor`` field of :c:type:`struct | |
| 721 | − fscrypt_policy_v1`. To add this type of key, the calling process | |
| 722 | − must have the CAP_SYS_ADMIN capability in the initial user | |
| 723 | − namespace. | |
| 718 | + ``master_key_descriptor`` field of struct fscrypt_policy_v1. | |
| 719 | + To add this type of key, the calling process must have the | |
| 720 | + CAP_SYS_ADMIN capability in the initial user namespace. | |
| 724 | 721 | |
| 725 | 722 | Alternatively, if the key is being added for use by v2 encryption |
| 726 | 723 | policies, then ``key_spec.type`` must contain |
| @@ -737,12 +734,13 @@ as follows: · 10 unmodified lines | ||
| 737 | 734 | |
| 738 | 735 | - ``key_id`` is 0 if the raw key is given directly in the ``raw`` |
| 739 | 736 | field. Otherwise ``key_id`` is the ID of a Linux keyring key of |
| 740 | − type "fscrypt-provisioning" whose payload is a :c:type:`struct | |
| 741 | − fscrypt_provisioning_key_payload` whose ``raw`` field contains the | |
| 742 | − raw key and whose ``type`` field matches ``key_spec.type``. Since | |
| 743 | − ``raw`` is variable-length, the total size of this key's payload | |
| 744 | − must be ``sizeof(struct fscrypt_provisioning_key_payload)`` plus the | |
| 745 | − raw key size. The process must have Search permission on this key. | |
| 737 | + type "fscrypt-provisioning" whose payload is | |
| 738 | + struct fscrypt_provisioning_key_payload whose ``raw`` field contains | |
| 739 | + the raw key and whose ``type`` field matches ``key_spec.type``. | |
| 740 | + Since ``raw`` is variable-length, the total size of this key's | |
| 741 | + payload must be ``sizeof(struct fscrypt_provisioning_key_payload)`` | |
| 742 | + plus the raw key size. The process must have Search permission on | |
| 743 | + this key. | |
| 746 | 744 | |
| 747 | 745 | Most users should leave this 0 and specify the raw key directly. |
| 748 | 746 | The support for specifying a Linux keyring key is intended mainly to |
| @@ -860,8 +858,8 @@ The FS_IOC_REMOVE_ENCRYPTION_KEY ioctl removes a claim to a master · 111 unmodified lines | ||
| 860 | 858 | encryption key from the filesystem, and possibly removes the key |
| 861 | 859 | itself. It can be executed on any file or directory on the target |
| 862 | 860 | filesystem, but using the filesystem's root directory is recommended. |
| 863 | −It takes in a pointer to a :c:type:`struct fscrypt_remove_key_arg`, | |
| 864 | −defined as follows:: | |
| 861 | +It takes in a pointer to struct fscrypt_remove_key_arg, defined | |
| 862 | +as follows:: | |
| 865 | 863 | |
| 866 | 864 | struct fscrypt_remove_key_arg { |
| 867 | 865 | struct fscrypt_key_specifier key_spec; |
| @@ -956,8 +954,8 @@ FS_IOC_GET_ENCRYPTION_KEY_STATUS · 88 unmodified lines | ||
| 956 | 954 | The FS_IOC_GET_ENCRYPTION_KEY_STATUS ioctl retrieves the status of a |
| 957 | 955 | master encryption key. It can be executed on any file or directory on |
| 958 | 956 | the target filesystem, but using the filesystem's root directory is |
| 959 | −recommended. It takes in a pointer to a :c:type:`struct | |
| 960 | −fscrypt_get_key_status_arg`, defined as follows:: | |
| 957 | +recommended. It takes in a pointer to | |
| 958 | +struct fscrypt_get_key_status_arg, defined as follows:: | |
| 961 | 959 | |
| 962 | 960 | struct fscrypt_get_key_status_arg { |
| 963 | 961 | /* input */ |
| @@ -1148,10 +1146,10 @@ Implementation details · 184 unmodified lines | ||
| 1148 | 1146 | Encryption context |
| 1149 | 1147 | ------------------ |
| 1150 | 1148 | |
| 1151 | −An encryption policy is represented on-disk by a :c:type:`struct | |
| 1152 | −fscrypt_context_v1` or a :c:type:`struct fscrypt_context_v2`. It is | |
| 1153 | −up to individual filesystems to decide where to store it, but normally | |
| 1154 | −it would be stored in a hidden extended attribute. It should *not* be | |
| 1149 | +An encryption policy is represented on-disk by | |
| 1150 | +struct fscrypt_context_v1 or struct fscrypt_context_v2. It is up to | |
| 1151 | +individual filesystems to decide where to store it, but normally it | |
| 1152 | +would be stored in a hidden extended attribute. It should *not* be | |
| 1155 | 1153 | exposed by the xattr-related system calls such as getxattr() and |
| 1156 | 1154 | setxattr() because of the special semantics of the encryption xattr. |
| 1157 | 1155 | (In particular, there would be much confusion if an encryption policy |
| @@ -1249,8 +1247,8 @@ a strong "hash" of the ciphertext filename, along with the optional · 91 unmodified lines | ||
| 1249 | 1247 | filesystem-specific hash(es) needed for directory lookups. This |
| 1250 | 1248 | allows the filesystem to still, with a high degree of confidence, map |
| 1251 | 1249 | the filename given in ->lookup() back to a particular directory entry |
| 1252 | −that was previously listed by readdir(). See :c:type:`struct | |
| 1253 | −fscrypt_nokey_name` in the source for more details. | |
| 1250 | +that was previously listed by readdir(). See | |
| 1251 | +struct fscrypt_nokey_name in the source for more details. | |
| 1254 | 1252 | |
| 1255 | 1253 | Note that the precise way that filenames are presented to userspace |
| 1256 | 1254 | without the key is subject to change in the future. It is only meant |
| @@ -84,7 +84,7 @@ FS_IOC_ENABLE_VERITY · 83 unmodified lines | ||
| 84 | 84 | -------------------- |
| 85 | 85 | |
| 86 | 86 | The FS_IOC_ENABLE_VERITY ioctl enables fs-verity on a file. It takes |
| 87 | −in a pointer to a :c:type:`struct fsverity_enable_arg`, defined as | |
| 87 | +in a pointer to a struct fsverity_enable_arg, defined as | |
| 88 | 88 | follows:: |
| 89 | 89 | |
| 90 | 90 | struct fsverity_enable_arg { |
| @@ -636,15 +636,36 @@ i915 Perf Observation Architecture Stream · 635 unmodified lines | ||
| 636 | 636 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c |
| 637 | 637 | :functions: i915_oa_poll_wait |
| 638 | 638 | |
| 639 | −All i915 Perf Internals | |
| 640 | −----------------------- | |
| 639 | +Other i915 Perf Internals | |
| 640 | +------------------------- | |
| 641 | 641 | |
| 642 | −This section simply includes all currently documented i915 perf internals, in | |
| 643 | −no particular order, but may include some more minor utilities or platform | |
| 642 | +This section simply includes all other currently documented i915 perf internals, | |
| 643 | +in no particular order, but may include some more minor utilities or platform | |
| 644 | 644 | specific details than found in the more high-level sections. |
| 645 | 645 | |
| 646 | 646 | .. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c |
| 647 | 647 | :internal: |
| 648 | + :no-identifiers: | |
| 649 | + i915_perf_init | |
| 650 | + i915_perf_fini | |
| 651 | + i915_perf_register | |
| 652 | + i915_perf_unregister | |
| 653 | + i915_perf_open_ioctl | |
| 654 | + i915_perf_release | |
| 655 | + i915_perf_add_config_ioctl | |
| 656 | + i915_perf_remove_config_ioctl | |
| 657 | + read_properties_unlocked | |
| 658 | + i915_perf_open_ioctl_locked | |
| 659 | + i915_perf_destroy_locked | |
| 660 | + i915_perf_read i915_perf_ioctl | |
| 661 | + i915_perf_enable_locked | |
| 662 | + i915_perf_disable_locked | |
| 663 | + i915_perf_poll i915_perf_poll_locked | |
| 664 | + i915_oa_stream_init i915_oa_read | |
| 665 | + i915_oa_stream_enable | |
| 666 | + i915_oa_stream_disable | |
| 667 | + i915_oa_wait_unlocked | |
| 668 | + i915_oa_poll_wait | |
| 648 | 669 | |
| 649 | 670 | Style |
| 650 | 671 | ===== |
| @@ -26,7 +26,9 @@ The stack is composed of three main parts: · 25 unmodified lines | ||
| 26 | 26 | Socket API |
| 27 | 27 | ========== |
| 28 | 28 | |
| 29 | −.. c:function:: int sd = socket(PF_IEEE802154, SOCK_DGRAM, 0); | |
| 29 | +:: | |
| 30 | + | |
| 31 | + int sd = socket(PF_IEEE802154, SOCK_DGRAM, 0); | |
| 30 | 32 | |
| 31 | 33 | The address family, socket addresses etc. are defined in the |
| 32 | 34 | include/net/af_ieee802154.h header or in the special header |
| @@ -131,12 +133,12 @@ Register PHY in the system. · 98 unmodified lines | ||
| 131 | 133 | |
| 132 | 134 | Freeing registered PHY. |
| 133 | 135 | |
| 134 | −.. c:function:: void ieee802154_rx_irqsafe(struct ieee802154_hw *hw, struct sk_buff *skb, u8 lqi): | |
| 136 | +.. c:function:: void ieee802154_rx_irqsafe(struct ieee802154_hw *hw, struct sk_buff *skb, u8 lqi) | |
| 135 | 137 | |
| 136 | 138 | Telling 802.15.4 module there is a new received frame in the skb with |
| 137 | 139 | the RF Link Quality Indicator (LQI) from the hardware device. |
| 138 | 140 | |
| 139 | −.. c:function:: void ieee802154_xmit_complete(struct ieee802154_hw *hw, struct sk_buff *skb, bool ifs_handling): | |
| 141 | +.. c:function:: void ieee802154_xmit_complete(struct ieee802154_hw *hw, struct sk_buff *skb, bool ifs_handling) | |
| 140 | 142 | |
| 141 | 143 | Telling 802.15.4 module the frame in the skb is or going to be |
| 142 | 144 | transmitted through the hardware device |
| @@ -155,25 +157,25 @@ operations structure at least:: · 12 unmodified lines | ||
| 155 | 157 | ... |
| 156 | 158 | }; |
| 157 | 159 | |
| 158 | −.. c:function:: int start(struct ieee802154_hw *hw): | |
| 160 | +.. c:function:: int start(struct ieee802154_hw *hw) | |
| 159 | 161 | |
| 160 | 162 | Handler that 802.15.4 module calls for the hardware device initialization. |
| 161 | 163 | |
| 162 | −.. c:function:: void stop(struct ieee802154_hw *hw): | |
| 164 | +.. c:function:: void stop(struct ieee802154_hw *hw) | |
| 163 | 165 | |
| 164 | 166 | Handler that 802.15.4 module calls for the hardware device cleanup. |
| 165 | 167 | |
| 166 | −.. c:function:: int xmit_async(struct ieee802154_hw *hw, struct sk_buff *skb): | |
| 168 | +.. c:function:: int xmit_async(struct ieee802154_hw *hw, struct sk_buff *skb) | |
| 167 | 169 | |
| 168 | 170 | Handler that 802.15.4 module calls for each frame in the skb going to be |
| 169 | 171 | transmitted through the hardware device. |
| 170 | 172 | |
| 171 | −.. c:function:: int ed(struct ieee802154_hw *hw, u8 *level): | |
| 173 | +.. c:function:: int ed(struct ieee802154_hw *hw, u8 *level) | |
| 172 | 174 | |
| 173 | 175 | Handler that 802.15.4 module calls for Energy Detection from the hardware |
| 174 | 176 | device. |
| 175 | 177 | |
| 176 | −.. c:function:: int set_channel(struct ieee802154_hw *hw, u8 page, u8 channel): | |
| 178 | +.. c:function:: int set_channel(struct ieee802154_hw *hw, u8 page, u8 channel) | |
| 177 | 179 | |
| 178 | 180 | Set radio for listening on specific channel of the hardware device. |
| 179 | 181 | |
| @@ -49,22 +49,22 @@ Register preservation rules · 48 unmodified lines | ||
| 49 | 49 | Register preservation rules match the ELF ABI calling sequence with the |
| 50 | 50 | following differences: |
| 51 | 51 | |
| 52 | −--- For the sc instruction, differences with the ELF ABI --- | |
| 53 | −=========== ============= ======================================== | |
| 54 | −r0 Volatile (System call number.) | |
| 55 | −r3 Volatile (Parameter 1, and return value.) | |
| 56 | −r4-r8 Volatile (Parameters 2-6.) | |
| 57 | −cr0 Volatile (cr0.SO is the return error condition.) | |
| 58 | −cr1, cr5-7 Nonvolatile | |
| 59 | −lr Nonvolatile | |
| 60 | −=========== ============= ======================================== | |
| 61 | − | |
| 62 | −--- For the scv 0 instruction, differences with the ELF ABI --- | |
| 63 | −=========== ============= ======================================== | |
| 64 | −r0 Volatile (System call number.) | |
| 65 | −r3 Volatile (Parameter 1, and return value.) | |
| 66 | −r4-r8 Volatile (Parameters 2-6.) | |
| 67 | −=========== ============= ======================================== | |
| 52 | ++------------------------------------------------------------------------+ | |
| 53 | +| For the sc instruction, differences with the ELF ABI | | |
| 54 | ++--------------+--------------+------------------------------------------+ | |
| 55 | +| r0 | Volatile | (System call number.) | | |
| 56 | +| rr3 | Volatile | (Parameter 1, and return value.) | | |
| 57 | +| rr4-r8 | Volatile | (Parameters 2-6.) | | |
| 58 | +| rcr0 | Volatile | (cr0.SO is the return error condition.) | | |
| 59 | +| rcr1, cr5-7 | Nonvolatile | | | |
| 60 | +| rlr | Nonvolatile | | | |
| 61 | ++--------------+--------------+------------------------------------------+ | |
| 62 | +| For the scv 0 instruction, differences with the ELF ABI | | |
| 63 | ++--------------+--------------+------------------------------------------+ | |
| 64 | +| r0 | Volatile | (System call number.) | | |
| 65 | +| r3 | Volatile | (Parameter 1, and return value.) | | |
| 66 | +| r4-r8 | Volatile | (Parameters 2-6.) | | |
| 67 | ++--------------+--------------+------------------------------------------+ | |
| 68 | 68 | |
| 69 | 69 | All floating point and vector data registers as well as control and status |
| 70 | 70 | registers are nonvolatile. |
| @@ -34,20 +34,20 @@ substream. In this procedure, PCM hardware parameters are decided by · 33 unmodified lines | ||
| 34 | 34 | interaction between applications and ALSA PCM core. Once decided, runtime of |
| 35 | 35 | the PCM substream keeps the parameters. |
| 36 | 36 | |
| 37 | −The parameters are described in :c:type:`struct snd_pcm_hw_params`. This | |
| 37 | +The parameters are described in struct snd_pcm_hw_params. This | |
| 38 | 38 | structure includes several types of parameters. Applications set preferable |
| 39 | 39 | value to these parameters, then execute ioctl(2) with SNDRV_PCM_IOCTL_HW_REFINE |
| 40 | 40 | or SNDRV_PCM_IOCTL_HW_PARAMS. The former is used just for refining available |
| 41 | 41 | set of parameters. The latter is used for an actual decision of the parameters. |
| 42 | 42 | |
| 43 | −The :c:type:`struct snd_pcm_hw_params` structure has below members: | |
| 43 | +The struct snd_pcm_hw_params structure has below members: | |
| 44 | 44 | |
| 45 | 45 | ``flags`` |
| 46 | 46 | Configurable. ALSA PCM core and some drivers handle this flag to select |
| 47 | 47 | convenient parameters or change their behaviour. |
| 48 | 48 | ``masks`` |
| 49 | 49 | Configurable. This type of parameter is described in |
| 50 | − :c:type:`struct snd_mask` and represent mask values. As of PCM protocol | |
| 50 | + struct snd_mask and represent mask values. As of PCM protocol | |
| 51 | 51 | v2.0.13, three types are defined. |
| 52 | 52 | |
| 53 | 53 | - SNDRV_PCM_HW_PARAM_ACCESS |
| @@ -55,7 +55,7 @@ The :c:type:`struct snd_pcm_hw_params` structure has below members: · 1 unmodified line | ||
| 55 | 55 | - SNDRV_PCM_HW_PARAM_SUBFORMAT |
| 56 | 56 | ``intervals`` |
| 57 | 57 | Configurable. This type of parameter is described in |
| 58 | − :c:type:`struct snd_interval` and represent values with a range. As of | |
| 58 | + struct snd_interval and represent values with a range. As of | |
| 59 | 59 | PCM protocol v2.0.13, twelve types are defined. |
| 60 | 60 | |
| 61 | 61 | - SNDRV_PCM_HW_PARAM_SAMPLE_BITS |
| @@ -78,7 +78,7 @@ The :c:type:`struct snd_pcm_hw_params` structure has below members: · 16 unmodified lines | ||
| 78 | 78 | are going to be changed. |
| 79 | 79 | ``cmask`` |
| 80 | 80 | Read-only. After returning from ioctl(2), buffer in user space for |
| 81 | − :c:type:`struct snd_pcm_hw_params` includes result of each operation. | |
| 81 | + struct snd_pcm_hw_params includes result of each operation. | |
| 82 | 82 | This mask represents which mask/interval parameter is actually changed. |
| 83 | 83 | ``info`` |
| 84 | 84 | Read-only. This represents hardware/driver capabilities as bit flags |
| @@ -110,10 +110,10 @@ The :c:type:`struct snd_pcm_hw_params` structure has below members: · 25 unmodified lines | ||
| 110 | 110 | value to this parameter but some drivers intentionally set zero with |
| 111 | 111 | a care of hardware design or data transmission protocol. |
| 112 | 112 | |
| 113 | −ALSA PCM core handles buffer of :c:type:`struct snd_pcm_hw_params` when | |
| 113 | +ALSA PCM core handles buffer of struct snd_pcm_hw_params when | |
| 114 | 114 | applications execute ioctl(2) with SNDRV_PCM_HW_REFINE or SNDRV_PCM_HW_PARAMS. |
| 115 | 115 | Parameters in the buffer are changed according to |
| 116 | −:c:type:`struct snd_pcm_hardware` and rules of constraints in the runtime. The | |
| 116 | +struct snd_pcm_hardware and rules of constraints in the runtime. The | |
| 117 | 117 | structure describes capabilities of handled hardware. The rules describes |
| 118 | 118 | dependencies on which a parameter is decided according to several parameters. |
| 119 | 119 | A rule has a callback function, and drivers can register arbitrary functions |
| @@ -121,17 +121,17 @@ to compute the target parameter. ALSA PCM core registers some rules to the · 1 unmodified line | ||
| 121 | 121 | runtime as a default. |
| 122 | 122 | |
| 123 | 123 | Each driver can join in the interaction as long as it prepared for two stuffs |
| 124 | −in a callback of :c:type:`struct snd_pcm_ops.open`. | |
| 124 | +in a callback of struct snd_pcm_ops.open. | |
| 125 | 125 | |
| 126 | 126 | 1. In the callback, drivers are expected to change a member of |
| 127 | − :c:type:`struct snd_pcm_hardware` type in the runtime, according to | |
| 127 | + struct snd_pcm_hardware type in the runtime, according to | |
| 128 | 128 | capacities of corresponding hardware. |
| 129 | 129 | 2. In the same callback, drivers are also expected to register additional rules |
| 130 | 130 | of constraints into the runtime when several parameters have dependencies |
| 131 | 131 | due to hardware design. |
| 132 | 132 | |
| 133 | 133 | The driver can refers to result of the interaction in a callback of |
| 134 | −:c:type:`struct snd_pcm_ops.hw_params`, however it should not change the | |
| 134 | +struct snd_pcm_ops.hw_params, however it should not change the | |
| 135 | 135 | content. |
| 136 | 136 | |
| 137 | 137 | Tracepoints in this category are designed to trace changes of the |
| @@ -163,7 +163,7 @@ fields are different according to type of the parameter. For parameters of mask · 25 unmodified lines | ||
| 163 | 163 | type, the fields represent hexadecimal dump of content of the parameter. For |
| 164 | 164 | parameters of interval type, the fields represent values of each member of |
| 165 | 165 | ``empty``, ``integer``, ``openmin``, ``min``, ``max``, ``openmax`` in |
| 166 | −:c:type:`struct snd_interval` in this order. | |
| 166 | +struct snd_interval in this order. | |
| 167 | 167 | |
| 168 | 168 | Tracepoints in drivers |
| 169 | 169 | ====================== |
| @@ -132,3 +132,4 @@ ISA DMA Helpers · 131 unmodified lines | ||
| 132 | 132 | Other Helper Macros |
| 133 | 133 | ------------------- |
| 134 | 134 | .. kernel-doc:: include/sound/core.h |
| 135 | +.. kernel-doc:: sound/sound_core.c | |
| @@ -194,7 +194,7 @@ The minimum flow for PCI soundcards is as follows: · 193 unmodified lines | ||
| 194 | 194 | |
| 195 | 195 | - create ``remove`` callback. |
| 196 | 196 | |
| 197 | −- create a :c:type:`struct pci_driver <pci_driver>` structure | |
| 197 | +- create a struct pci_driver structure | |
| 198 | 198 | containing the three pointers above. |
| 199 | 199 | |
| 200 | 200 | - create an ``init`` function just calling the |
| @@ -487,7 +487,7 @@ The destructor, remove callback, simply releases the card instance. Then · 286 unmodified lines | ||
| 487 | 487 | the ALSA middle layer will release all the attached components |
| 488 | 488 | automatically. |
| 489 | 489 | |
| 490 | −It would be typically just :c:func:`calling snd_card_free()`: | |
| 490 | +It would be typically just calling :c:func:`snd_card_free()`: | |
| 491 | 491 | |
| 492 | 492 | :: |
| 493 | 493 | |
| @@ -560,16 +560,15 @@ return the card instance. The extra_size argument is used to allocate · 66 unmodified lines | ||
| 560 | 560 | card->private_data for the chip-specific data. Note that these data are |
| 561 | 561 | allocated by :c:func:`snd_card_new()`. |
| 562 | 562 | |
| 563 | −The first argument, the pointer of struct :c:type:`struct device | |
| 564 | −<device>`, specifies the parent device. For PCI devices, typically | |
| 565 | −``&pci->`` is passed there. | |
| 563 | +The first argument, the pointer of struct device, specifies the parent | |
| 564 | +device. For PCI devices, typically ``&pci->`` is passed there. | |
| 566 | 565 | |
| 567 | 566 | Components |
| 568 | 567 | ---------- |
| 569 | 568 | |
| 570 | 569 | After the card is created, you can attach the components (devices) to |
| 571 | 570 | the card instance. In an ALSA driver, a component is represented as a |
| 572 | −:c:type:`struct snd_device <snd_device>` object. A component | |
| 571 | +struct snd_device object. A component | |
| 573 | 572 | can be a PCM instance, a control interface, a raw MIDI interface, etc. |
| 574 | 573 | Each such instance has one component entry. |
| 575 | 574 | |
| @@ -628,7 +627,7 @@ argument of :c:func:`snd_card_new()`, i.e. · 52 unmodified lines | ||
| 628 | 627 | err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE, |
| 629 | 628 | sizeof(struct mychip), &card); |
| 630 | 629 | |
| 631 | −:c:type:`struct mychip <mychip>` is the type of the chip record. | |
| 630 | +struct mychip is the type of the chip record. | |
| 632 | 631 | |
| 633 | 632 | In return, the allocated record can be accessed as |
| 634 | 633 | |
| @@ -890,7 +889,7 @@ functions. These resources must be released in the destructor · 255 unmodified lines | ||
| 890 | 889 | function (see below). |
| 891 | 890 | |
| 892 | 891 | Now assume that the PCI device has an I/O port with 8 bytes and an |
| 893 | −interrupt. Then :c:type:`struct mychip <mychip>` will have the | |
| 892 | +interrupt. Then struct mychip will have the | |
| 894 | 893 | following fields: |
| 895 | 894 | |
| 896 | 895 | :: |
| @@ -1094,7 +1093,7 @@ PCI Entries · 197 unmodified lines | ||
| 1094 | 1093 | ----------- |
| 1095 | 1094 | |
| 1096 | 1095 | So far, so good. Let's finish the missing PCI stuff. At first, we need a |
| 1097 | −:c:type:`struct pci_device_id <pci_device_id>` table for | |
| 1096 | +struct pci_device_id table for | |
| 1098 | 1097 | this chipset. It's a table of PCI vendor/device ID number, and some |
| 1099 | 1098 | masks. |
| 1100 | 1099 | |
| @@ -1110,19 +1109,17 @@ For example, · 9 unmodified lines | ||
| 1110 | 1109 | }; |
| 1111 | 1110 | MODULE_DEVICE_TABLE(pci, snd_mychip_ids); |
| 1112 | 1111 | |
| 1113 | −The first and second fields of the :c:type:`struct pci_device_id | |
| 1114 | −<pci_device_id>` structure are the vendor and device IDs. If you | |
| 1115 | −have no reason to filter the matching devices, you can leave the | |
| 1116 | −remaining fields as above. The last field of the :c:type:`struct | |
| 1117 | −pci_device_id <pci_device_id>` struct contains private data | |
| 1118 | −for this entry. You can specify any value here, for example, to define | |
| 1119 | −specific operations for supported device IDs. Such an example is found | |
| 1120 | −in the intel8x0 driver. | |
| 1112 | +The first and second fields of the struct pci_device_id are the vendor | |
| 1113 | +and device IDs. If you have no reason to filter the matching devices, you can | |
| 1114 | +leave the remaining fields as above. The last field of the | |
| 1115 | +struct pci_device_id contains private data for this entry. You can specify | |
| 1116 | +any value here, for example, to define specific operations for supported | |
| 1117 | +device IDs. Such an example is found in the intel8x0 driver. | |
| 1121 | 1118 | |
| 1122 | 1119 | The last entry of this list is the terminator. You must specify this |
| 1123 | 1120 | all-zero entry. |
| 1124 | 1121 | |
| 1125 | −Then, prepare the :c:type:`struct pci_driver <pci_driver>` | |
| 1122 | +Then, prepare the struct pci_driver | |
| 1126 | 1123 | record: |
| 1127 | 1124 | |
| 1128 | 1125 | :: |
| @@ -1439,8 +1436,8 @@ corresponding argument. · 310 unmodified lines | ||
| 1439 | 1436 | If a chip supports multiple playbacks or captures, you can specify more |
| 1440 | 1437 | numbers, but they must be handled properly in open/close, etc. |
| 1441 | 1438 | callbacks. When you need to know which substream you are referring to, |
| 1442 | −then it can be obtained from :c:type:`struct snd_pcm_substream | |
| 1443 | −<snd_pcm_substream>` data passed to each callback as follows: | |
| 1439 | +then it can be obtained from struct snd_pcm_substream data passed to each | |
| 1440 | +callback as follows: | |
| 1444 | 1441 | |
| 1445 | 1442 | :: |
| 1446 | 1443 | |
| @@ -1639,10 +1636,9 @@ In the sections below, important records are explained. · 192 unmodified lines | ||
| 1639 | 1636 | Hardware Description |
| 1640 | 1637 | ~~~~~~~~~~~~~~~~~~~~ |
| 1641 | 1638 | |
| 1642 | −The hardware descriptor (:c:type:`struct snd_pcm_hardware | |
| 1643 | −<snd_pcm_hardware>`) contains the definitions of the fundamental | |
| 1644 | −hardware configuration. Above all, you'll need to define this in the | |
| 1645 | −`PCM open callback`_. Note that the runtime instance holds the copy of | |
| 1639 | +The hardware descriptor (struct snd_pcm_hardware) contains the definitions of | |
| 1640 | +the fundamental hardware configuration. Above all, you'll need to define this | |
| 1641 | +in the `PCM open callback`_. Note that the runtime instance holds the copy of | |
| 1646 | 1642 | the descriptor, not the pointer to the existing descriptor. That is, |
| 1647 | 1643 | in the open callback, you can modify the copied descriptor |
| 1648 | 1644 | (``runtime->hw``) as you need. For example, if the maximum number of |
| @@ -1800,14 +1796,13 @@ Running Status · 151 unmodified lines | ||
| 1800 | 1796 | ~~~~~~~~~~~~~~ |
| 1801 | 1797 | |
| 1802 | 1798 | The running status can be referred via ``runtime->status``. This is |
| 1803 | −the pointer to the :c:type:`struct snd_pcm_mmap_status | |
| 1804 | −<snd_pcm_mmap_status>` record. For example, you can get the current | |
| 1799 | +the pointer to the struct snd_pcm_mmap_status record. | |
| 1800 | +For example, you can get the current | |
| 1805 | 1801 | DMA hardware pointer via ``runtime->status->hw_ptr``. |
| 1806 | 1802 | |
| 1807 | 1803 | The DMA application pointer can be referred via ``runtime->control``, |
| 1808 | −which points to the :c:type:`struct snd_pcm_mmap_control | |
| 1809 | −<snd_pcm_mmap_control>` record. However, accessing directly to | |
| 1810 | −this value is not recommended. | |
| 1804 | +which points to the struct snd_pcm_mmap_control record. | |
| 1805 | +However, accessing directly to this value is not recommended. | |
| 1811 | 1806 | |
| 1812 | 1807 | Private Data |
| 1813 | 1808 | ~~~~~~~~~~~~ |
| @@ -1843,8 +1838,8 @@ error number such as ``-EINVAL``. To choose an appropriate error · 29 unmodified lines | ||
| 1843 | 1838 | number, it is advised to check what value other parts of the kernel |
| 1844 | 1839 | return when the same kind of request fails. |
| 1845 | 1840 | |
| 1846 | −The callback function takes at least the argument with :c:type:`struct | |
| 1847 | −snd_pcm_substream <snd_pcm_substream>` pointer. To retrieve the chip | |
| 1841 | +The callback function takes at least the argument with | |
| 1842 | +struct snd_pcm_substream pointer. To retrieve the chip | |
| 1848 | 1843 | record from the given substream instance, you can use the following |
| 1849 | 1844 | macro. |
| 1850 | 1845 | |
| @@ -2313,10 +2308,10 @@ non-atomic contexts. For example, the function · 462 unmodified lines | ||
| 2313 | 2308 | :c:func:`snd_pcm_period_elapsed()` is called typically from the |
| 2314 | 2309 | interrupt handler. But, if you set up the driver to use a threaded |
| 2315 | 2310 | interrupt handler, this call can be in non-atomic context, too. In such |
| 2316 | −a case, you can set ``nonatomic`` filed of :c:type:`struct snd_pcm | |
| 2317 | −<snd_pcm>` object after creating it. When this flag is set, mutex | |
| 2318 | −and rwsem are used internally in the PCM core instead of spin and | |
| 2319 | −rwlocks, so that you can call all PCM functions safely in a non-atomic | |
| 2311 | +a case, you can set ``nonatomic`` filed of struct snd_pcm object | |
| 2312 | +after creating it. When this flag is set, mutex and rwsem are used internally | |
| 2313 | +in the PCM core instead of spin and rwlocks, so that you can call all PCM | |
| 2314 | +functions safely in a non-atomic | |
| 2320 | 2315 | context. |
| 2321 | 2316 | |
| 2322 | 2317 | Constraints |
| @@ -2357,8 +2352,7 @@ There are many different constraints. Look at ``sound/pcm.h`` for a · 34 unmodified lines | ||
| 2357 | 2352 | complete list. You can even define your own constraint rules. For |
| 2358 | 2353 | example, let's suppose my_chip can manage a substream of 1 channel if |
| 2359 | 2354 | and only if the format is ``S16_LE``, otherwise it supports any format |
| 2360 | −specified in the :c:type:`struct snd_pcm_hardware | |
| 2361 | −<snd_pcm_hardware>` structure (or in any other | |
| 2355 | +specified in struct snd_pcm_hardware> (or in any other | |
| 2362 | 2356 | constraint_list). You can build a rule like this: |
| 2363 | 2357 | |
| 2364 | 2358 | :: |
| @@ -2467,7 +2461,7 @@ Definition of Controls · 102 unmodified lines | ||
| 2467 | 2461 | |
| 2468 | 2462 | To create a new control, you need to define the following three |
| 2469 | 2463 | callbacks: ``info``, ``get`` and ``put``. Then, define a |
| 2470 | −:c:type:`struct snd_kcontrol_new <snd_kcontrol_new>` record, such as: | |
| 2464 | +struct snd_kcontrol_new record, such as: | |
| 2471 | 2465 | |
| 2472 | 2466 | :: |
| 2473 | 2467 | |
| @@ -2602,8 +2596,8 @@ info callback · 128 unmodified lines | ||
| 2602 | 2596 | ~~~~~~~~~~~~~ |
| 2603 | 2597 | |
| 2604 | 2598 | The ``info`` callback is used to get detailed information on this |
| 2605 | −control. This must store the values of the given :c:type:`struct | |
| 2606 | −snd_ctl_elem_info <snd_ctl_elem_info>` object. For example, | |
| 2599 | +control. This must store the values of the given | |
| 2600 | +struct snd_ctl_elem_info object. For example, | |
| 2607 | 2601 | for a boolean control with a single element: |
| 2608 | 2602 | |
| 2609 | 2603 | :: |
| @@ -2774,13 +2768,11 @@ In the simplest way, you can do like this: · 164 unmodified lines | ||
| 2774 | 2768 | if (err < 0) |
| 2775 | 2769 | return err; |
| 2776 | 2770 | |
| 2777 | −where ``my_control`` is the :c:type:`struct snd_kcontrol_new | |
| 2778 | −<snd_kcontrol_new>` object defined above, and chip is the object | |
| 2779 | −pointer to be passed to kcontrol->private_data which can be referred | |
| 2780 | −to in callbacks. | |
| 2771 | +where ``my_control`` is the struct snd_kcontrol_new object defined above, | |
| 2772 | +and chip is the object pointer to be passed to kcontrol->private_data which | |
| 2773 | +can be referred to in callbacks. | |
| 2781 | 2774 | |
| 2782 | −:c:func:`snd_ctl_new1()` allocates a new :c:type:`struct | |
| 2783 | −snd_kcontrol <snd_kcontrol>` instance, and | |
| 2775 | +:c:func:`snd_ctl_new1()` allocates a new struct snd_kcontrol instance, and | |
| 2784 | 2776 | :c:func:`snd_ctl_add()` assigns the given control component to the |
| 2785 | 2777 | card. |
| 2786 | 2778 | |
| @@ -2797,10 +2789,9 @@ can call :c:func:`snd_ctl_notify()`. For example, · 10 unmodified lines | ||
| 2797 | 2789 | This function takes the card pointer, the event-mask, and the control id |
| 2798 | 2790 | pointer for the notification. The event-mask specifies the types of |
| 2799 | 2791 | notification, for example, in the above example, the change of control |
| 2800 | −values is notified. The id pointer is the pointer of :c:type:`struct | |
| 2801 | −snd_ctl_elem_id <snd_ctl_elem_id>` to be notified. You can | |
| 2802 | −find some examples in ``es1938.c`` or ``es1968.c`` for hardware volume | |
| 2803 | −interrupts. | |
| 2792 | +values is notified. The id pointer is the pointer of struct snd_ctl_elem_id | |
| 2793 | +to be notified. You can find some examples in ``es1938.c`` or ``es1968.c`` | |
| 2794 | +for hardware volume interrupts. | |
| 2804 | 2795 | |
| 2805 | 2796 | Metadata |
| 2806 | 2797 | -------- |
| @@ -2915,9 +2906,8 @@ with an ``ac97_bus_ops_t`` record with callback functions. · 108 unmodified lines | ||
| 2915 | 2906 | |
| 2916 | 2907 | The bus record is shared among all belonging ac97 instances. |
| 2917 | 2908 | |
| 2918 | −And then call :c:func:`snd_ac97_mixer()` with an :c:type:`struct | |
| 2919 | −snd_ac97_template <snd_ac97_template>` record together with | |
| 2920 | −the bus pointer created above. | |
| 2909 | +And then call :c:func:`snd_ac97_mixer()` with an struct snd_ac97_template | |
| 2910 | +record together with the bus pointer created above. | |
| 2921 | 2911 | |
| 2922 | 2912 | :: |
| 2923 | 2913 | |
| @@ -3118,11 +3108,10 @@ devices on the card, set ``MPU401_INFO_IRQ_HOOK`` (see · 194 unmodified lines | ||
| 3118 | 3108 | |
| 3119 | 3109 | Usually, the port address corresponds to the command port and port + 1 |
| 3120 | 3110 | corresponds to the data port. If not, you may change the ``cport`` |
| 3121 | −field of :c:type:`struct snd_mpu401 <snd_mpu401>` manually afterward. | |
| 3122 | −However, :c:type:`struct snd_mpu401 <snd_mpu401>` pointer is | |
| 3111 | +field of struct snd_mpu401 manually afterward. | |
| 3112 | +However, struct snd_mpu401 pointer is | |
| 3123 | 3113 | not returned explicitly by :c:func:`snd_mpu401_uart_new()`. You |
| 3124 | −need to cast ``rmidi->private_data`` to :c:type:`struct snd_mpu401 | |
| 3125 | −<snd_mpu401>` explicitly, | |
| 3114 | +need to cast ``rmidi->private_data`` to struct snd_mpu401 explicitly, | |
| 3126 | 3115 | |
| 3127 | 3116 | :: |
| 3128 | 3117 | |
| @@ -3326,8 +3315,7 @@ data and removes them from the buffer at once: · 197 unmodified lines | ||
| 3326 | 3315 | } |
| 3327 | 3316 | |
| 3328 | 3317 | If you know beforehand how many bytes you can accept, you can use a |
| 3329 | −buffer size greater than one with the | |
| 3330 | −:c:func:`snd_rawmidi_transmit\*()` functions. | |
| 3318 | +buffer size greater than one with the ``snd_rawmidi_transmit*()`` functions. | |
| 3331 | 3319 | |
| 3332 | 3320 | The ``trigger`` callback must not sleep. If the hardware FIFO is full |
| 3333 | 3321 | before the substream buffer has been emptied, you have to continue |
| @@ -3772,7 +3760,7 @@ For creating the SG-buffer handler, call · 438 unmodified lines | ||
| 3772 | 3760 | :c:func:`snd_pcm_set_managed_buffer_all()` with |
| 3773 | 3761 | ``SNDRV_DMA_TYPE_DEV_SG`` in the PCM constructor like other PCI |
| 3774 | 3762 | pre-allocator. You need to pass ``&pci->dev``, where pci is |
| 3775 | −the :c:type:`struct pci_dev <pci_dev>` pointer of the chip as | |
| 3763 | +the struct pci_dev pointer of the chip as | |
| 3776 | 3764 | well. |
| 3777 | 3765 | |
| 3778 | 3766 | :: |
| @@ -3927,7 +3915,7 @@ the maximum size of the proc file access. · 148 unmodified lines | ||
| 3927 | 3915 | |
| 3928 | 3916 | The read/write callbacks of raw mode are more direct than the text mode. |
| 3929 | 3917 | You need to use a low-level I/O functions such as |
| 3930 | −:c:func:`copy_from/to_user()` to transfer the data. | |
| 3918 | +:c:func:`copy_from_user()` and :c:func:`copy_to_user()` to transfer the data. | |
| 3931 | 3919 | |
| 3932 | 3920 | :: |
| 3933 | 3921 | |
| @@ -22,13 +22,34 @@ from itertools import chain · 21 unmodified lines | ||
| 22 | 22 | # :c:func: block (i.e. ":c:func:`mmap()`s" flakes out), so the last |
| 23 | 23 | # bit tries to restrict matches to things that won't create trouble. |
| 24 | 24 | # |
| 25 | −RE_function = re.compile(r'(([\w_][\w\d_]+)\(\))') | |
| 26 | −RE_type = re.compile(r'(struct|union|enum|typedef)\s+([\w_][\w\d_]+)') | |
| 25 | +RE_function = re.compile(r'\b(([a-zA-Z_]\w+)\(\))', flags=re.ASCII) | |
| 26 | + | |
| 27 | +# | |
| 28 | +# Sphinx 2 uses the same :c:type role for struct, union, enum and typedef | |
| 29 | +# | |
| 30 | +RE_generic_type = re.compile(r'\b(struct|union|enum|typedef)\s+([a-zA-Z_]\w+)', | |
| 31 | + flags=re.ASCII) | |
| 32 | + | |
| 33 | +# | |
| 34 | +# Sphinx 3 uses a different C role for each one of struct, union, enum and | |
| 35 | +# typedef | |
| 36 | +# | |
| 37 | +RE_struct = re.compile(r'\b(struct)\s+([a-zA-Z_]\w+)', flags=re.ASCII) | |
| 38 | +RE_union = re.compile(r'\b(union)\s+([a-zA-Z_]\w+)', flags=re.ASCII) | |
| 39 | +RE_enum = re.compile(r'\b(enum)\s+([a-zA-Z_]\w+)', flags=re.ASCII) | |
| 40 | +RE_typedef = re.compile(r'\b(typedef)\s+([a-zA-Z_]\w+)', flags=re.ASCII) | |
| 41 | + | |
| 27 | 42 | # |
| 28 | 43 | # Detects a reference to a documentation page of the form Documentation/... with |
| 29 | 44 | # an optional extension |
| 30 | 45 | # |
| 31 | −RE_doc = re.compile(r'Documentation(/[\w\-_/]+)(\.\w+)*') | |
| 46 | +RE_doc = re.compile(r'\bDocumentation(/[\w\-_/]+)(\.\w+)*') | |
| 47 | + | |
| 48 | +# | |
| 49 | +# Reserved C words that we should skip when cross-referencing | |
| 50 | +# | |
| 51 | +Skipnames = [ 'for', 'if', 'register', 'sizeof', 'struct', 'unsigned' ] | |
| 52 | + | |
| 32 | 53 | |
| 33 | 54 | # |
| 34 | 55 | # Many places in the docs refer to common system calls. It is |
| @@ -48,9 +69,22 @@ def markup_refs(docname, app, node): · 13 unmodified lines | ||
| 48 | 69 | # |
| 49 | 70 | # Associate each regex with the function that will markup its matches |
| 50 | 71 | # |
| 51 | − markup_func = {RE_type: markup_c_ref, | |
| 52 | − RE_function: markup_c_ref, | |
| 53 | − RE_doc: markup_doc_ref} | |
| 72 | + markup_func_sphinx2 = {RE_doc: markup_doc_ref, | |
| 73 | + RE_function: markup_c_ref, | |
| 74 | + RE_generic_type: markup_c_ref} | |
| 75 | + | |
| 76 | + markup_func_sphinx3 = {RE_doc: markup_doc_ref, | |
| 77 | + RE_function: markup_func_ref_sphinx3, | |
| 78 | + RE_struct: markup_c_ref, | |
| 79 | + RE_union: markup_c_ref, | |
| 80 | + RE_enum: markup_c_ref, | |
| 81 | + RE_typedef: markup_c_ref} | |
| 82 | + | |
| 83 | + if sphinx.version_info[0] >= 3: | |
| 84 | + markup_func = markup_func_sphinx3 | |
| 85 | + else: | |
| 86 | + markup_func = markup_func_sphinx2 | |
| 87 | + | |
| 54 | 88 | match_iterators = [regex.finditer(t) for regex in markup_func] |
| 55 | 89 | # |
| 56 | 90 | # Sort all references by the starting position in text |
| @@ -75,12 +109,63 @@ def markup_refs(docname, app, node): · 18 unmodified lines | ||
| 75 | 109 | return repl |
| 76 | 110 | |
| 77 | 111 | # |
| 78 | −# Try to replace a C reference (function() or struct/union/enum/typedef | |
| 79 | −# type_name) with an appropriate cross reference. | |
| 112 | +# In sphinx3 we can cross-reference to C macro and function, each one with its | |
| 113 | +# own C role, but both match the same regex, so we try both. | |
| 80 | 114 | # |
| 115 | +def markup_func_ref_sphinx3(docname, app, match): | |
| 116 | + class_str = ['c-func', 'c-macro'] | |
| 117 | + reftype_str = ['function', 'macro'] | |
| 118 | + | |
| 119 | + cdom = app.env.domains['c'] | |
| 120 | + # | |
| 121 | + # Go through the dance of getting an xref out of the C domain | |
| 122 | + # | |
| 123 | + target = match.group(2) | |
| 124 | + target_text = nodes.Text(match.group(0)) | |
| 125 | + xref = None | |
| 126 | + if not (target in Skipfuncs or target in Skipnames): | |
| 127 | + for class_s, reftype_s in zip(class_str, reftype_str): | |
| 128 | + lit_text = nodes.literal(classes=['xref', 'c', class_s]) | |
| 129 | + lit_text += target_text | |
| 130 | + pxref = addnodes.pending_xref('', refdomain = 'c', | |
| 131 | + reftype = reftype_s, | |
| 132 | + reftarget = target, modname = None, | |
| 133 | + classname = None) | |
| 134 | + # | |
| 135 | + # XXX The Latex builder will throw NoUri exceptions here, | |
| 136 | + # work around that by ignoring them. | |
| 137 | + # | |
| 138 | + try: | |
| 139 | + xref = cdom.resolve_xref(app.env, docname, app.builder, | |
| 140 | + reftype_s, target, pxref, | |
| 141 | + lit_text) | |
| 142 | + except NoUri: | |
| 143 | + xref = None | |
| 144 | + | |
| 145 | + if xref: | |
| 146 | + return xref | |
| 147 | + | |
| 148 | + return target_text | |
| 149 | + | |
| 81 | 150 | def markup_c_ref(docname, app, match): |
| 82 | − class_str = {RE_function: 'c-func', RE_type: 'c-type'} | |
| 83 | − reftype_str = {RE_function: 'function', RE_type: 'type'} | |
| 151 | + class_str = {# Sphinx 2 only | |
| 152 | + RE_function: 'c-func', | |
| 153 | + RE_generic_type: 'c-type', | |
| 154 | + # Sphinx 3+ only | |
| 155 | + RE_struct: 'c-struct', | |
| 156 | + RE_union: 'c-union', | |
| 157 | + RE_enum: 'c-enum', | |
| 158 | + RE_typedef: 'c-type', | |
| 159 | + } | |
| 160 | + reftype_str = {# Sphinx 2 only | |
| 161 | + RE_function: 'function', | |
| 162 | + RE_generic_type: 'type', | |
| 163 | + # Sphinx 3+ only | |
| 164 | + RE_struct: 'struct', | |
| 165 | + RE_union: 'union', | |
| 166 | + RE_enum: 'enum', | |
| 167 | + RE_typedef: 'type', | |
| 168 | + } | |
| 84 | 169 | |
| 85 | 170 | cdom = app.env.domains['c'] |
| 86 | 171 | # |
| @@ -89,7 +174,8 @@ def markup_c_ref(docname, app, match): · 2 unmodified lines | ||
| 89 | 174 | target = match.group(2) |
| 90 | 175 | target_text = nodes.Text(match.group(0)) |
| 91 | 176 | xref = None |
| 92 | − if not (match.re == RE_function and target in Skipfuncs): | |
| 177 | + if not ((match.re == RE_function and target in Skipfuncs) | |
| 178 | + or (target in Skipnames)): | |
| 93 | 179 | lit_text = nodes.literal(classes=['xref', 'c', class_str[match.re]]) |
| 94 | 180 | lit_text += target_text |
| 95 | 181 | pxref = addnodes.pending_xref('', refdomain = 'c', |
| @@ -40,14 +40,94 @@ from sphinx import addnodes · 39 unmodified lines | ||
| 40 | 40 | from sphinx.domains.c import c_funcptr_sig_re, c_sig_re |
| 41 | 41 | from sphinx.domains.c import CObject as Base_CObject |
| 42 | 42 | from sphinx.domains.c import CDomain as Base_CDomain |
| 43 | +from itertools import chain | |
| 44 | +import re | |
| 43 | 45 | |
| 44 | −__version__ = '1.0' | |
| 46 | +__version__ = '1.1' | |
| 45 | 47 | |
| 46 | 48 | # Get Sphinx version |
| 47 | 49 | major, minor, patch = sphinx.version_info[:3] |
| 48 | 50 | |
| 51 | +# Namespace to be prepended to the full name | |
| 52 | +namespace = None | |
| 53 | + | |
| 54 | +# | |
| 55 | +# Handle trivial newer c domain tags that are part of Sphinx 3.1 c domain tags | |
| 56 | +# - Store the namespace if ".. c:namespace::" tag is found | |
| 57 | +# | |
| 58 | +RE_namespace = re.compile(r'^\s*..\s*c:namespace::\s*(\S+)\s*$') | |
| 59 | + | |
| 60 | +def markup_namespace(match): | |
| 61 | + global namespace | |
| 62 | + | |
| 63 | + namespace = match.group(1) | |
| 64 | + | |
| 65 | + return "" | |
| 66 | + | |
| 67 | +# | |
| 68 | +# Handle c:macro for function-style declaration | |
| 69 | +# | |
| 70 | +RE_macro = re.compile(r'^\s*..\s*c:macro::\s*(\S+)\s+(\S.*)\s*$') | |
| 71 | +def markup_macro(match): | |
| 72 | + return ".. c:function:: " + match.group(1) + ' ' + match.group(2) | |
| 73 | + | |
| 74 | +# | |
| 75 | +# Handle newer c domain tags that are evaluated as .. c:type: for | |
| 76 | +# backward-compatibility with Sphinx < 3.0 | |
| 77 | +# | |
| 78 | +RE_ctype = re.compile(r'^\s*..\s*c:(struct|union|enum|enumerator|alias)::\s*(.*)$') | |
| 79 | + | |
| 80 | +def markup_ctype(match): | |
| 81 | + return ".. c:type:: " + match.group(2) | |
| 82 | + | |
| 83 | +# | |
| 84 | +# Handle newer c domain tags that are evaluated as :c:type: for | |
| 85 | +# backward-compatibility with Sphinx < 3.0 | |
| 86 | +# | |
| 87 | +RE_ctype_refs = re.compile(r':c:(var|struct|union|enum|enumerator)::`([^\`]+)`') | |
| 88 | +def markup_ctype_refs(match): | |
| 89 | + return ":c:type:`" + match.group(2) + '`' | |
| 90 | + | |
| 91 | +# | |
| 92 | +# Simply convert :c:expr: and :c:texpr: into a literal block. | |
| 93 | +# | |
| 94 | +RE_expr = re.compile(r':c:(expr|texpr):`([^\`]+)`') | |
| 95 | +def markup_c_expr(match): | |
| 96 | + return '\ ``' + match.group(2) + '``\ ' | |
| 97 | + | |
| 98 | +# | |
| 99 | +# Parse Sphinx 3.x C markups, replacing them by backward-compatible ones | |
| 100 | +# | |
| 101 | +def c_markups(app, docname, source): | |
| 102 | + result = "" | |
| 103 | + markup_func = { | |
| 104 | + RE_namespace: markup_namespace, | |
| 105 | + RE_expr: markup_c_expr, | |
| 106 | + RE_macro: markup_macro, | |
| 107 | + RE_ctype: markup_ctype, | |
| 108 | + RE_ctype_refs: markup_ctype_refs, | |
| 109 | + } | |
| 110 | + | |
| 111 | + lines = iter(source[0].splitlines(True)) | |
| 112 | + for n in lines: | |
| 113 | + match_iterators = [regex.finditer(n) for regex in markup_func] | |
| 114 | + matches = sorted(chain(*match_iterators), key=lambda m: m.start()) | |
| 115 | + for m in matches: | |
| 116 | + n = n[:m.start()] + markup_func[m.re](m) + n[m.end():] | |
| 117 | + | |
| 118 | + result = result + n | |
| 119 | + | |
| 120 | + source[0] = result | |
| 121 | + | |
| 122 | +# | |
| 123 | +# Now implements support for the cdomain namespacing logic | |
| 124 | +# | |
| 125 | + | |
| 49 | 126 | def setup(app): |
| 50 | 127 | |
| 128 | + # Handle easy Sphinx 3.1+ simple new tags: :c:expr and .. c:namespace:: | |
| 129 | + app.connect('source-read', c_markups) | |
| 130 | + | |
| 51 | 131 | if (major == 1 and minor < 8): |
| 52 | 132 | app.override_domain(CDomain) |
| 53 | 133 | else: |
| @@ -75,6 +155,8 @@ class CObject(Base_CObject): · 21 unmodified lines | ||
| 75 | 155 | function-like macro, the name of the macro is returned. Otherwise |
| 76 | 156 | ``False`` is returned. """ |
| 77 | 157 | |
| 158 | + global namespace | |
| 159 | + | |
| 78 | 160 | if not self.objtype == 'function': |
| 79 | 161 | return False |
| 80 | 162 | |
| @@ -107,11 +189,16 @@ class CObject(Base_CObject): · 26 unmodified lines | ||
| 107 | 189 | param += nodes.emphasis(argname, argname) |
| 108 | 190 | paramlist += param |
| 109 | 191 | |
| 192 | + if namespace: | |
| 193 | + fullname = namespace + "." + fullname | |
| 194 | + | |
| 110 | 195 | return fullname |
| 111 | 196 | |
| 112 | 197 | def handle_signature(self, sig, signode): |
| 113 | 198 | """Transform a C signature into RST nodes.""" |
| 114 | 199 | |
| 200 | + global namespace | |
| 201 | + | |
| 115 | 202 | fullname = self.handle_func_like_macro(sig, signode) |
| 116 | 203 | if not fullname: |
| 117 | 204 | fullname = super(CObject, self).handle_signature(sig, signode) |
| @@ -122,6 +209,10 @@ class CObject(Base_CObject): · 4 unmodified lines | ||
| 122 | 209 | else: |
| 123 | 210 | # FIXME: handle :name: value of other declaration types? |
| 124 | 211 | pass |
| 212 | + else: | |
| 213 | + if namespace: | |
| 214 | + fullname = namespace + "." + fullname | |
| 215 | + | |
| 125 | 216 | return fullname |
| 126 | 217 | |
| 127 | 218 | def add_target_and_index(self, name, sig, signode): |
| @@ -62,6 +62,7 @@ class KernelDocDirective(Directive): · 61 unmodified lines | ||
| 62 | 62 | 'export': directives.unchanged, |
| 63 | 63 | 'internal': directives.unchanged, |
| 64 | 64 | 'identifiers': directives.unchanged, |
| 65 | + 'no-identifiers': directives.unchanged, | |
| 65 | 66 | 'functions': directives.unchanged, |
| 66 | 67 | } |
| 67 | 68 | has_content = False |
| @@ -70,6 +71,11 @@ class KernelDocDirective(Directive): · 2 unmodified lines | ||
| 70 | 71 | env = self.state.document.settings.env |
| 71 | 72 | cmd = [env.config.kerneldoc_bin, '-rst', '-enable-lineno'] |
| 72 | 73 | |
| 74 | + # Pass the version string to kernel-doc, as it needs to use a different | |
| 75 | + # dialect, depending what the C domain supports for each specific | |
| 76 | + # Sphinx versions | |
| 77 | + cmd += ['-sphinx-version', sphinx.__version__] | |
| 78 | + | |
| 73 | 79 | filename = env.config.kerneldoc_srctree + '/' + self.arguments[0] |
| 74 | 80 | export_file_patterns = [] |
| 75 | 81 | |
| @@ -99,6 +105,12 @@ class KernelDocDirective(Directive): · 23 unmodified lines | ||
| 99 | 105 | else: |
| 100 | 106 | cmd += ['-no-doc-sections'] |
| 101 | 107 | |
| 108 | + if 'no-identifiers' in self.options: | |
| 109 | + no_identifiers = self.options.get('no-identifiers').split() | |
| 110 | + if no_identifiers: | |
| 111 | + for i in no_identifiers: | |
| 112 | + cmd += ['-nosymbol', i] | |
| 113 | + | |
| 102 | 114 | for pattern in export_file_patterns: |
| 103 | 115 | for f in glob.glob(env.config.kerneldoc_srctree + '/' + pattern): |
| 104 | 116 | env.note_dependency(os.path.abspath(f)) |
| @@ -136,7 +148,8 @@ class KernelDocDirective(Directive): · 31 unmodified lines | ||
| 136 | 148 | lineoffset = int(match.group(1)) - 1 |
| 137 | 149 | # we must eat our comments since the upset the markup |
| 138 | 150 | else: |
| 139 | − result.append(line, filename, lineoffset) | |
| 151 | + doc = env.srcdir + "/" + env.docname + ":" + str(self.lineno) | |
| 152 | + result.append(line, doc + ": " + filename, lineoffset) | |
| 140 | 153 | lineoffset += 1 |
| 141 | 154 | |
| 142 | 155 | node = nodes.section() |
| @@ -110,7 +110,7 @@ while (<IN>) { · 109 unmodified lines | ||
| 110 | 110 | ) { |
| 111 | 111 | my $s = $1; |
| 112 | 112 | |
| 113 | − $structs{$s} = "struct :c:type:`$s`\\ "; | |
| 113 | + $structs{$s} = "struct $s\\ "; | |
| 114 | 114 | next; |
| 115 | 115 | } |
| 116 | 116 | } |
| @@ -55,17 +55,17 @@ an ftrace_ops with ftrace: · 54 unmodified lines | ||
| 55 | 55 | |
| 56 | 56 | Both .flags and .private are optional. Only .func is required. |
| 57 | 57 | |
| 58 | −To enable tracing call: | |
| 58 | +To enable tracing call:: | |
| 59 | 59 | |
| 60 | −.. c:function:: register_ftrace_function(&ops); | |
| 60 | + register_ftrace_function(&ops); | |
| 61 | 61 | |
| 62 | −To disable tracing call: | |
| 62 | +To disable tracing call:: | |
| 63 | 63 | |
| 64 | −.. c:function:: unregister_ftrace_function(&ops); | |
| 64 | + unregister_ftrace_function(&ops); | |
| 65 | 65 | |
| 66 | −The above is defined by including the header: | |
| 66 | +The above is defined by including the header:: | |
| 67 | 67 | |
| 68 | −.. c:function:: #include <linux/ftrace.h> | |
| 68 | + #include <linux/ftrace.h> | |
| 69 | 69 | |
| 70 | 70 | The registered callback will start being called some time after the |
| 71 | 71 | register_ftrace_function() is called and before it returns. The exact time |
| @@ -402,7 +402,7 @@ il valore convertito. Tutte le varianti supportano anche il processo inverso: · 401 unmodified lines | ||
| 402 | 402 | :c:func:`be32_to_cpu()`, eccetera. |
| 403 | 403 | |
| 404 | 404 | Queste funzioni hanno principalmente due varianti: la variante per |
| 405 | −puntatori, come :c:func:`cpu_to_be32p(), che prende un puntatore | |
| 405 | +puntatori, come :c:func:`cpu_to_be32p()`, che prende un puntatore | |
| 406 | 406 | ad un tipo, e ritorna il valore convertito. L'altra variante per |
| 407 | 407 | la famiglia di conversioni "in-situ", come :c:func:`cpu_to_be32s()`, |
| 408 | 408 | che convertono il valore puntato da un puntatore, e ritornano void. |
| @@ -1,5 +1,7 @@ | ||
| 1 | 1 | .. include:: ../disclaimer-ita.rst |
| 2 | 2 | |
| 3 | +.. c:namespace:: it_IT | |
| 4 | + | |
| 3 | 5 | :Original: :ref:`Documentation/kernel-hacking/locking.rst <kernel_hacking_lock>` |
| 4 | 6 | :Translator: Federico Vaga <federico.vaga@vaga.pv.it> |
| 5 | 7 | |
| @@ -4,9 +4,9 @@ · 3 unmodified lines | ||
| 4 | 4 | |
| 5 | 5 | Translator: Bailu Lin <bailu.lin@vivo.com> |
| 6 | 6 | |
| 7 | −================================= | |
| 7 | +================================== | |
| 8 | 8 | AArch64 Linux 中扩展的活动监控单元 |
| 9 | −================================= | |
| 9 | +================================== | |
| 10 | 10 | |
| 11 | 11 | 作者: Ionela Voinescu <ionela.voinescu@arm.com> |
| 12 | 12 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: CEC | |
| 2 | 3 | |
| 3 | 4 | .. _cec-func-close: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | cec-close - Close a cec device |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,16 +19,13 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: int close( int fd ) |
| 24 | − :name: cec-close | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| 28 | 26 | |
| 29 | 27 | ``fd`` |
| 30 | − File descriptor returned by :c:func:`open() <cec-open>`. | |
| 31 | − | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 32 | 29 | |
| 33 | 30 | Description |
| 34 | 31 | =========== |
| @@ -36,11 +33,10 @@ Description · 1 unmodified line | ||
| 36 | 33 | Closes the cec device. Resources associated with the file descriptor are |
| 37 | 34 | freed. The device configuration remain unchanged. |
| 38 | 35 | |
| 39 | − | |
| 40 | 36 | Return Value |
| 41 | 37 | ============ |
| 42 | 38 | |
| 43 | −:c:func:`close() <cec-close>` returns 0 on success. On error, -1 is returned, and | |
| 39 | +:c:func:`close()` returns 0 on success. On error, -1 is returned, and | |
| 44 | 40 | ``errno`` is set appropriately. Possible error codes are: |
| 45 | 41 | |
| 46 | 42 | ``EBADF`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: CEC | |
| 2 | 3 | |
| 3 | 4 | .. _cec-func-ioctl: |
| 4 | 5 | |
| @@ -18,15 +19,13 @@ Synopsis · 13 unmodified lines | ||
| 18 | 19 | |
| 19 | 20 | #include <sys/ioctl.h> |
| 20 | 21 | |
| 21 | − | |
| 22 | −.. c:function:: int ioctl( int fd, int request, void *argp ) | |
| 23 | − :name: cec-ioctl | |
| 22 | +``int ioctl(int fd, int request, void *argp)`` | |
| 24 | 23 | |
| 25 | 24 | Arguments |
| 26 | 25 | ========= |
| 27 | 26 | |
| 28 | 27 | ``fd`` |
| 29 | − File descriptor returned by :c:func:`open() <cec-open>`. | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 29 | |
| 31 | 30 | ``request`` |
| 32 | 31 | CEC ioctl request code as defined in the cec.h header file, for |
| @@ -35,11 +34,10 @@ Arguments · 2 unmodified lines | ||
| 35 | 34 | ``argp`` |
| 36 | 35 | Pointer to a request-specific structure. |
| 37 | 36 | |
| 38 | − | |
| 39 | 37 | Description |
| 40 | 38 | =========== |
| 41 | 39 | |
| 42 | −The :c:func:`ioctl() <cec-ioctl>` function manipulates cec device parameters. The | |
| 40 | +The :c:func:`ioctl()` function manipulates cec device parameters. The | |
| 43 | 41 | argument ``fd`` must be an open file descriptor. |
| 44 | 42 | |
| 45 | 43 | The ioctl ``request`` code specifies the cec function to be called. It |
| @@ -51,7 +49,6 @@ their parameters are located in the cec.h header file. All cec ioctl · 5 unmodified lines | ||
| 51 | 49 | requests, their respective function and parameters are specified in |
| 52 | 50 | :ref:`cec-user-func`. |
| 53 | 51 | |
| 54 | − | |
| 55 | 52 | Return Value |
| 56 | 53 | ============ |
| 57 | 54 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: CEC | |
| 2 | 3 | |
| 3 | 4 | .. _cec-func-open: |
| 4 | 5 | |
| @@ -18,10 +19,7 @@ Synopsis · 13 unmodified lines | ||
| 18 | 19 | |
| 19 | 20 | #include <fcntl.h> |
| 20 | 21 | |
| 21 | − | |
| 22 | 22 | .. c:function:: int open( const char *device_name, int flags ) |
| 23 | − :name: cec-open | |
| 24 | − | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| @@ -42,11 +40,10 @@ Arguments · 14 unmodified lines | ||
| 42 | 40 | |
| 43 | 41 | Other flags have no effect. |
| 44 | 42 | |
| 45 | − | |
| 46 | 43 | Description |
| 47 | 44 | =========== |
| 48 | 45 | |
| 49 | −To open a cec device applications call :c:func:`open() <cec-open>` with the | |
| 46 | +To open a cec device applications call :c:func:`open()` with the | |
| 50 | 47 | desired device name. The function has no side effects; the device |
| 51 | 48 | configuration remain unchanged. |
| 52 | 49 | |
| @@ -54,11 +51,10 @@ When the device is opened in read-only mode, attempts to modify its · 1 unmodified line | ||
| 54 | 51 | configuration will result in an error, and ``errno`` will be set to |
| 55 | 52 | EBADF. |
| 56 | 53 | |
| 57 | − | |
| 58 | 54 | Return Value |
| 59 | 55 | ============ |
| 60 | 56 | |
| 61 | −:c:func:`open() <cec-open>` returns the new file descriptor on success. On error, | |
| 57 | +:c:func:`open()` returns the new file descriptor on success. On error, | |
| 62 | 58 | -1 is returned, and ``errno`` is set appropriately. Possible error codes |
| 63 | 59 | include: |
| 64 | 60 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: CEC | |
| 2 | 3 | |
| 3 | 4 | .. _cec-func-poll: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | cec-poll - Wait for some event on a file descriptor |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,9 +19,7 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <sys/poll.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: int poll( struct pollfd *ufds, unsigned int nfds, int timeout ) |
| 24 | − :name: cec-poll | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| @@ -35,14 +33,13 @@ Arguments · 7 unmodified lines | ||
| 35 | 33 | ``timeout`` |
| 36 | 34 | Timeout to wait for events |
| 37 | 35 | |
| 38 | − | |
| 39 | 36 | Description |
| 40 | 37 | =========== |
| 41 | 38 | |
| 42 | −With the :c:func:`poll() <cec-poll>` function applications can wait for CEC | |
| 39 | +With the :c:func:`poll()` function applications can wait for CEC | |
| 43 | 40 | events. |
| 44 | 41 | |
| 45 | −On success :c:func:`poll() <cec-poll>` returns the number of file descriptors | |
| 42 | +On success :c:func:`poll()` returns the number of file descriptors | |
| 46 | 43 | that have been selected (that is, file descriptors for which the |
| 47 | 44 | ``revents`` field of the respective struct :c:type:`pollfd` |
| 48 | 45 | is non-zero). CEC devices set the ``POLLIN`` and ``POLLRDNORM`` flags in |
| @@ -53,13 +50,12 @@ then the ``POLLPRI`` flag is set. When the function times out it returns · 4 unmodified lines | ||
| 53 | 50 | a value of zero, on failure it returns -1 and the ``errno`` variable is |
| 54 | 51 | set appropriately. |
| 55 | 52 | |
| 56 | −For more details see the :c:func:`poll() <cec-poll>` manual page. | |
| 57 | − | |
| 53 | +For more details see the :c:func:`poll()` manual page. | |
| 58 | 54 | |
| 59 | 55 | Return Value |
| 60 | 56 | ============ |
| 61 | 57 | |
| 62 | −On success, :c:func:`poll() <cec-poll>` returns the number structures which have | |
| 58 | +On success, :c:func:`poll()` returns the number structures which have | |
| 63 | 59 | non-zero ``revents`` fields, or zero if the call timed out. On error -1 |
| 64 | 60 | is returned, and the ``errno`` variable is set appropriately: |
| 65 | 61 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: CEC | |
| 2 | 3 | |
| 3 | 4 | .. _CEC_ADAP_G_CAPS: |
| 4 | 5 | |
| @@ -14,18 +15,18 @@ CEC_ADAP_G_CAPS - Query device capabilities · 9 unmodified lines | ||
| 14 | 15 | Synopsis |
| 15 | 16 | ======== |
| 16 | 17 | |
| 17 | −.. c:function:: int ioctl( int fd, CEC_ADAP_G_CAPS, struct cec_caps *argp ) | |
| 18 | − :name: CEC_ADAP_G_CAPS | |
| 18 | +.. c:macro:: CEC_ADAP_G_CAPS | |
| 19 | + | |
| 20 | +``int ioctl(int fd, CEC_ADAP_G_CAPS, struct cec_caps *argp)`` | |
| 19 | 21 | |
| 20 | 22 | Arguments |
| 21 | 23 | ========= |
| 22 | 24 | |
| 23 | 25 | ``fd`` |
| 24 | − File descriptor returned by :c:func:`open() <cec-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 25 | 27 | |
| 26 | 28 | ``argp`` |
| 27 | 29 | |
| 28 | − | |
| 29 | 30 | Description |
| 30 | 31 | =========== |
| 31 | 32 | |
| @@ -62,7 +63,6 @@ returns the information to the application. The ioctl never fails. · 30 unmodified lines | ||
| 62 | 63 | - CEC Framework API version, formatted with the ``KERNEL_VERSION()`` |
| 63 | 64 | macro. |
| 64 | 65 | |
| 65 | − | |
| 66 | 66 | .. tabularcolumns:: |p{4.4cm}|p{2.5cm}|p{10.6cm}| |
| 67 | 67 | |
| 68 | 68 | .. _cec-capabilities: |
| @@ -2,6 +2,8 @@ · 1 unmodified line | ||
| 2 | 2 | .. |
| 3 | 3 | .. Copyright 2019 Google LLC |
| 4 | 4 | .. |
| 5 | +.. c:namespace:: CEC | |
| 6 | + | |
| 5 | 7 | .. _CEC_ADAP_G_CONNECTOR_INFO: |
| 6 | 8 | |
| 7 | 9 | ******************************* |
| @@ -16,18 +18,18 @@ CEC_ADAP_G_CONNECTOR_INFO - Query HDMI connector information · 8 unmodified lines | ||
| 16 | 18 | Synopsis |
| 17 | 19 | ======== |
| 18 | 20 | |
| 19 | −.. c:function:: int ioctl( int fd, CEC_ADAP_G_CONNECTOR_INFO, struct cec_connector_info *argp ) | |
| 20 | − :name: CEC_ADAP_G_CONNECTOR_INFO | |
| 21 | +.. c:macro:: CEC_ADAP_G_CONNECTOR_INFO | |
| 22 | + | |
| 23 | +``int ioctl(int fd, CEC_ADAP_G_CONNECTOR_INFO, struct cec_connector_info *argp)`` | |
| 21 | 24 | |
| 22 | 25 | Arguments |
| 23 | 26 | ========= |
| 24 | 27 | |
| 25 | 28 | ``fd`` |
| 26 | − File descriptor returned by :c:func:`open() <cec-open>`. | |
| 29 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 30 | |
| 28 | 31 | ``argp`` |
| 29 | 32 | |
| 30 | − | |
| 31 | 33 | Description |
| 32 | 34 | =========== |
| 33 | 35 | |
| @@ -57,7 +59,6 @@ is only available if the ``CEC_CAP_CONNECTOR_INFO`` capability is set. · 23 unmodified lines | ||
| 57 | 59 | * - } |
| 58 | 60 | - |
| 59 | 61 | |
| 60 | − | |
| 61 | 62 | .. tabularcolumns:: |p{4.4cm}|p{2.5cm}|p{10.6cm}| |
| 62 | 63 | |
| 63 | 64 | .. _connector-type: |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: CEC | |
| 2 | 3 | |
| 3 | 4 | .. _CEC_ADAP_LOG_ADDRS: |
| 4 | 5 | .. _CEC_ADAP_G_LOG_ADDRS: |
| @@ -13,21 +14,22 @@ Name · 8 unmodified lines | ||
| 13 | 14 | |
| 14 | 15 | CEC_ADAP_G_LOG_ADDRS, CEC_ADAP_S_LOG_ADDRS - Get or set the logical addresses |
| 15 | 16 | |
| 16 | − | |
| 17 | 17 | Synopsis |
| 18 | 18 | ======== |
| 19 | 19 | |
| 20 | −.. c:function:: int ioctl( int fd, CEC_ADAP_G_LOG_ADDRS, struct cec_log_addrs *argp ) | |
| 21 | − :name: CEC_ADAP_G_LOG_ADDRS | |
| 20 | +.. c:macro:: CEC_ADAP_G_LOG_ADDRS | |
| 21 | + | |
| 22 | +``int ioctl(int fd, CEC_ADAP_G_LOG_ADDRS, struct cec_log_addrs *argp)`` | |
| 23 | + | |
| 24 | +.. c:macro:: CEC_ADAP_S_LOG_ADDRS | |
| 22 | 25 | |
| 23 | −.. c:function:: int ioctl( int fd, CEC_ADAP_S_LOG_ADDRS, struct cec_log_addrs *argp ) | |
| 24 | − :name: CEC_ADAP_S_LOG_ADDRS | |
| 26 | +``int ioctl(int fd, CEC_ADAP_S_LOG_ADDRS, struct cec_log_addrs *argp)`` | |
| 25 | 27 | |
| 26 | 28 | Arguments |
| 27 | 29 | ========= |
| 28 | 30 | |
| 29 | 31 | ``fd`` |
| 30 | − File descriptor returned by :c:func:`open() <cec-open>`. | |
| 32 | + File descriptor returned by :c:func:`open()`. | |
| 31 | 33 | |
| 32 | 34 | ``argp`` |
| 33 | 35 | Pointer to struct :c:type:`cec_log_addrs`. |
| @@ -148,7 +150,6 @@ logical address types are already defined will return with error ``EBUSY``. · 114 unmodified lines | ||
| 148 | 150 | give the CEC framework more information about the device type, even |
| 149 | 151 | though the framework won't use it directly in the CEC message. |
| 150 | 152 | |
| 151 | − | |
| 152 | 153 | .. tabularcolumns:: |p{7.8cm}|p{1.0cm}|p{8.7cm}| |
| 153 | 154 | |
| 154 | 155 | .. _cec-log-addrs-flags: |
| @@ -185,7 +186,6 @@ logical address types are already defined will return with error ``EBUSY``. · 30 unmodified lines | ||
| 185 | 186 | |
| 186 | 187 | All other messages are ignored. |
| 187 | 188 | |
| 188 | − | |
| 189 | 189 | .. tabularcolumns:: |p{7.8cm}|p{1.0cm}|p{8.7cm}| |
| 190 | 190 | |
| 191 | 191 | .. _cec-versions: |
| @@ -211,7 +211,6 @@ logical address types are already defined will return with error ``EBUSY``. · 19 unmodified lines | ||
| 211 | 211 | - 6 |
| 212 | 212 | - CEC version according to the HDMI 2.0 standard. |
| 213 | 213 | |
| 214 | − | |
| 215 | 214 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 216 | 215 | |
| 217 | 216 | .. _cec-prim-dev-types: |
| @@ -257,7 +256,6 @@ logical address types are already defined will return with error ``EBUSY``. · 39 unmodified lines | ||
| 257 | 256 | - 7 |
| 258 | 257 | - Use for a video processor device. |
| 259 | 258 | |
| 260 | − | |
| 261 | 259 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 262 | 260 | |
| 263 | 261 | .. _cec-log-addr-types: |
| @@ -306,7 +304,6 @@ logical address types are already defined will return with error ``EBUSY``. · 42 unmodified lines | ||
| 306 | 304 | Control). |
| 307 | 305 | |
| 308 | 306 | |
| 309 | − | |
| 310 | 307 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 311 | 308 | |
| 312 | 309 | .. _cec-all-dev-types-flags: |
| @@ -348,7 +345,6 @@ logical address types are already defined will return with error ``EBUSY``. · 35 unmodified lines | ||
| 348 | 345 | - This supports the CEC Switch or Video Processing type. |
| 349 | 346 | |
| 350 | 347 | |
| 351 | − | |
| 352 | 348 | Return Value |
| 353 | 349 | ============ |
| 354 | 350 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: CEC | |
| 2 | 3 | |
| 3 | 4 | .. _CEC_ADAP_PHYS_ADDR: |
| 4 | 5 | .. _CEC_ADAP_G_PHYS_ADDR: |
| @@ -13,21 +14,22 @@ Name · 8 unmodified lines | ||
| 13 | 14 | |
| 14 | 15 | CEC_ADAP_G_PHYS_ADDR, CEC_ADAP_S_PHYS_ADDR - Get or set the physical address |
| 15 | 16 | |
| 16 | − | |
| 17 | 17 | Synopsis |
| 18 | 18 | ======== |
| 19 | 19 | |
| 20 | −.. c:function:: int ioctl( int fd, CEC_ADAP_G_PHYS_ADDR, __u16 *argp ) | |
| 21 | − :name: CEC_ADAP_G_PHYS_ADDR | |
| 20 | +.. c:macro:: CEC_ADAP_G_PHYS_ADDR | |
| 21 | + | |
| 22 | +``int ioctl(int fd, CEC_ADAP_G_PHYS_ADDR, __u16 *argp)`` | |
| 22 | 23 | |
| 23 | −.. c:function:: int ioctl( int fd, CEC_ADAP_S_PHYS_ADDR, __u16 *argp ) | |
| 24 | − :name: CEC_ADAP_S_PHYS_ADDR | |
| 24 | +.. c:macro:: CEC_ADAP_S_PHYS_ADDR | |
| 25 | + | |
| 26 | +``int ioctl(int fd, CEC_ADAP_S_PHYS_ADDR, __u16 *argp)`` | |
| 25 | 27 | |
| 26 | 28 | Arguments |
| 27 | 29 | ========= |
| 28 | 30 | |
| 29 | 31 | ``fd`` |
| 30 | − File descriptor returned by :c:func:`open() <cec-open>`. | |
| 32 | + File descriptor returned by :c:func:`open()`. | |
| 31 | 33 | |
| 32 | 34 | ``argp`` |
| 33 | 35 | Pointer to the CEC address. |
| @@ -71,7 +73,6 @@ For example, the EDID for each HDMI input of the TV will have a · 37 unmodified lines | ||
| 71 | 73 | different physical address of the form a.0.0.0 that the sources will |
| 72 | 74 | read out and use as their physical address. |
| 73 | 75 | |
| 74 | − | |
| 75 | 76 | Return Value |
| 76 | 77 | ============ |
| 77 | 78 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: CEC | |
| 2 | 3 | |
| 3 | 4 | .. _CEC_DQEVENT: |
| 4 | 5 | |
| @@ -11,22 +12,21 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | CEC_DQEVENT - Dequeue a CEC event |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, CEC_DQEVENT, struct cec_event *argp ) | |
| 19 | − :name: CEC_DQEVENT | |
| 18 | +.. c:macro:: CEC_DQEVENT | |
| 19 | + | |
| 20 | +``int ioctl(int fd, CEC_DQEVENT, struct cec_event *argp)`` | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| 22 | 23 | ========= |
| 23 | 24 | |
| 24 | 25 | ``fd`` |
| 25 | − File descriptor returned by :c:func:`open() <cec-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 26 | 27 | |
| 27 | 28 | ``argp`` |
| 28 | 29 | |
| 29 | − | |
| 30 | 30 | Description |
| 31 | 31 | =========== |
| 32 | 32 | |
| @@ -72,7 +72,6 @@ it is guaranteed that the state did change in between the two events. · 39 unmodified lines | ||
| 72 | 72 | the HDMI driver is still configuring the device or because the HDMI |
| 73 | 73 | device was unbound. |
| 74 | 74 | |
| 75 | − | |
| 76 | 75 | .. c:type:: cec_event_lost_msgs |
| 77 | 76 | |
| 78 | 77 | .. tabularcolumns:: |p{1.0cm}|p{2.0cm}|p{14.5cm}| |
| @@ -94,7 +93,6 @@ it is guaranteed that the state did change in between the two events. · 15 unmodified lines | ||
| 94 | 93 | replied to within a second according to the CEC specification, |
| 95 | 94 | this is more than enough. |
| 96 | 95 | |
| 97 | − | |
| 98 | 96 | .. tabularcolumns:: |p{1.0cm}|p{4.4cm}|p{2.5cm}|p{9.6cm}| |
| 99 | 97 | |
| 100 | 98 | .. c:type:: cec_event |
| @@ -130,7 +128,6 @@ it is guaranteed that the state did change in between the two events. · 29 unmodified lines | ||
| 130 | 128 | * - } |
| 131 | 129 | - |
| 132 | 130 | |
| 133 | − | |
| 134 | 131 | .. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}| |
| 135 | 132 | |
| 136 | 133 | .. _cec-events: |
| @@ -204,7 +201,6 @@ it is guaranteed that the state did change in between the two events. · 67 unmodified lines | ||
| 204 | 201 | if the 5V is high, then an initial event will be generated for that |
| 205 | 202 | filehandle. |
| 206 | 203 | |
| 207 | − | |
| 208 | 204 | .. tabularcolumns:: |p{6.0cm}|p{0.6cm}|p{10.9cm}| |
| 209 | 205 | |
| 210 | 206 | .. _cec-event-flags: |
| @@ -230,7 +226,6 @@ it is guaranteed that the state did change in between the two events. · 19 unmodified lines | ||
| 230 | 226 | This is an indication that the application cannot keep up. |
| 231 | 227 | |
| 232 | 228 | |
| 233 | − | |
| 234 | 229 | Return Value |
| 235 | 230 | ============ |
| 236 | 231 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: CEC | |
| 2 | 3 | |
| 3 | 4 | .. _CEC_MODE: |
| 4 | 5 | .. _CEC_G_MODE: |
| @@ -13,17 +14,19 @@ CEC_G_MODE, CEC_S_MODE - Get or set exclusive use of the CEC adapter · 8 unmodified lines | ||
| 13 | 14 | Synopsis |
| 14 | 15 | ======== |
| 15 | 16 | |
| 16 | −.. c:function:: int ioctl( int fd, CEC_G_MODE, __u32 *argp ) | |
| 17 | − :name: CEC_G_MODE | |
| 17 | +.. c:macro:: CEC_G_MODE | |
| 18 | 18 | |
| 19 | −.. c:function:: int ioctl( int fd, CEC_S_MODE, __u32 *argp ) | |
| 20 | − :name: CEC_S_MODE | |
| 19 | +``int ioctl(int fd, CEC_G_MODE, __u32 *argp)`` | |
| 20 | + | |
| 21 | +.. c:macro:: CEC_S_MODE | |
| 22 | + | |
| 23 | +``int ioctl(int fd, CEC_S_MODE, __u32 *argp)`` | |
| 21 | 24 | |
| 22 | 25 | Arguments |
| 23 | 26 | ========= |
| 24 | 27 | |
| 25 | 28 | ``fd`` |
| 26 | − File descriptor returned by :c:func:`open() <cec-open>`. | |
| 29 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 30 | |
| 28 | 31 | ``argp`` |
| 29 | 32 | Pointer to CEC mode. |
| @@ -101,7 +104,6 @@ Available initiator modes are: · 71 unmodified lines | ||
| 101 | 104 | then an attempt to become one will return the ``EBUSY`` error code |
| 102 | 105 | error. |
| 103 | 106 | |
| 104 | − | |
| 105 | 107 | Available follower modes are: |
| 106 | 108 | |
| 107 | 109 | .. tabularcolumns:: |p{6.6cm}|p{0.9cm}|p{10.0cm}| |
| @@ -193,7 +195,6 @@ Available follower modes are: · 85 unmodified lines | ||
| 193 | 195 | the process has the ``CAP_NET_ADMIN`` capability. If that is not |
| 194 | 196 | set, then the ``EPERM`` error code is returned. |
| 195 | 197 | |
| 196 | − | |
| 197 | 198 | Core message processing details: |
| 198 | 199 | |
| 199 | 200 | .. tabularcolumns:: |p{6.6cm}|p{10.9cm}| |
| @@ -272,7 +273,6 @@ Core message processing details: · 72 unmodified lines | ||
| 272 | 273 | and then just pass the message on to the follower(s). |
| 273 | 274 | |
| 274 | 275 | |
| 275 | − | |
| 276 | 276 | Return Value |
| 277 | 277 | ============ |
| 278 | 278 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: CEC | |
| 2 | 3 | |
| 3 | 4 | .. _CEC_TRANSMIT: |
| 4 | 5 | .. _CEC_RECEIVE: |
| @@ -12,21 +13,22 @@ Name · 7 unmodified lines | ||
| 12 | 13 | |
| 13 | 14 | CEC_RECEIVE, CEC_TRANSMIT - Receive or transmit a CEC message |
| 14 | 15 | |
| 15 | − | |
| 16 | 16 | Synopsis |
| 17 | 17 | ======== |
| 18 | 18 | |
| 19 | −.. c:function:: int ioctl( int fd, CEC_RECEIVE, struct cec_msg \*argp ) | |
| 20 | − :name: CEC_RECEIVE | |
| 19 | +.. c:macro:: CEC_RECEIVE | |
| 20 | + | |
| 21 | +``int ioctl(int fd, CEC_RECEIVE, struct cec_msg *argp)`` | |
| 21 | 22 | |
| 22 | −.. c:function:: int ioctl( int fd, CEC_TRANSMIT, struct cec_msg \*argp ) | |
| 23 | − :name: CEC_TRANSMIT | |
| 23 | +.. c:macro:: CEC_TRANSMIT | |
| 24 | + | |
| 25 | +``int ioctl(int fd, CEC_TRANSMIT, struct cec_msg *argp)`` | |
| 24 | 26 | |
| 25 | 27 | Arguments |
| 26 | 28 | ========= |
| 27 | 29 | |
| 28 | 30 | ``fd`` |
| 29 | − File descriptor returned by :c:func:`open() <cec-open>`. | |
| 31 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 32 | |
| 31 | 33 | ``argp`` |
| 32 | 34 | Pointer to struct cec_msg. |
| @@ -194,7 +196,6 @@ View On' messages from initiator 0xf ('Unregistered') to destination 0 ('TV'). · 161 unmodified lines | ||
| 194 | 196 | supports this, otherwise it is always 0. This counter is only |
| 195 | 197 | valid if the :ref:`CEC_TX_STATUS_ERROR <CEC-TX-STATUS-ERROR>` status bit is set. |
| 196 | 198 | |
| 197 | − | |
| 198 | 199 | .. tabularcolumns:: |p{6.2cm}|p{1.0cm}|p{10.3cm}| |
| 199 | 200 | |
| 200 | 201 | .. _cec-msg-flags: |
| @@ -228,7 +229,6 @@ View On' messages from initiator 0xf ('Unregistered') to destination 0 ('TV'). · 27 unmodified lines | ||
| 228 | 229 | capability. If that is not set, then the ``EPERM`` error code is |
| 229 | 230 | returned. |
| 230 | 231 | |
| 231 | − | |
| 232 | 232 | .. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}| |
| 233 | 233 | |
| 234 | 234 | .. _cec-tx-status: |
| @@ -298,7 +298,6 @@ View On' messages from initiator 0xf ('Unregistered') to destination 0 ('TV'). · 63 unmodified lines | ||
| 298 | 298 | - The transmit timed out. This should not normally happen and this |
| 299 | 299 | indicates a driver problem. |
| 300 | 300 | |
| 301 | − | |
| 302 | 301 | .. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}| |
| 303 | 302 | |
| 304 | 303 | .. _cec-rx-status: |
| @@ -335,7 +334,6 @@ View On' messages from initiator 0xf ('Unregistered') to destination 0 ('TV'). · 30 unmodified lines | ||
| 335 | 334 | reply was interrupted. |
| 336 | 335 | |
| 337 | 336 | |
| 338 | − | |
| 339 | 337 | Return Value |
| 340 | 338 | ============ |
| 341 | 339 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_BILINGUAL_CHANNEL_SELECT: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ AUDIO_BILINGUAL_CHANNEL_SELECT · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_BILINGUAL_CHANNEL_SELECT, struct *audio_channel_select) | |
| 20 | − :name: AUDIO_BILINGUAL_CHANNEL_SELECT | |
| 20 | +.. c:macro:: AUDIO_BILINGUAL_CHANNEL_SELECT | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, AUDIO_BILINGUAL_CHANNEL_SELECT, struct audio_channel_select *select)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -39,7 +40,6 @@ Arguments · 14 unmodified lines | ||
| 39 | 40 | |
| 40 | 41 | - Select the output format of the audio (mono left/right, stereo). |
| 41 | 42 | |
| 42 | − | |
| 43 | 43 | Description |
| 44 | 44 | ----------- |
| 45 | 45 | |
| @@ -50,7 +50,6 @@ for MPEG decoders controlled through V4L2. · 4 unmodified lines | ||
| 50 | 50 | This ioctl call asks the Audio Device to select the requested channel |
| 51 | 51 | for bilingual streams if possible. |
| 52 | 52 | |
| 53 | − | |
| 54 | 53 | Return Value |
| 55 | 54 | ------------ |
| 56 | 55 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_CHANNEL_SELECT: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ AUDIO_CHANNEL_SELECT · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_CHANNEL_SELECT, struct *audio_channel_select) | |
| 20 | − :name: AUDIO_CHANNEL_SELECT | |
| 20 | +.. c:macro:: AUDIO_CHANNEL_SELECT | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, AUDIO_CHANNEL_SELECT, struct audio_channel_select *select)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -40,7 +40,6 @@ Arguments · 6 unmodified lines | ||
| 40 | 40 | |
| 41 | 41 | - Select the output format of the audio (mono left/right, stereo). |
| 42 | 42 | |
| 43 | − | |
| 44 | 43 | Description |
| 45 | 44 | ----------- |
| 46 | 45 | |
| @@ -50,7 +49,6 @@ V4L2 ``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK`` control instead. · 3 unmodified lines | ||
| 50 | 49 | This ioctl call asks the Audio Device to select the requested channel if |
| 51 | 50 | possible. |
| 52 | 51 | |
| 53 | − | |
| 54 | 52 | Return Value |
| 55 | 53 | ------------ |
| 56 | 54 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_CLEAR_BUFFER: |
| 4 | 5 | |
| @@ -16,8 +17,9 @@ AUDIO_CLEAR_BUFFER · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_CLEAR_BUFFER) | |
| 20 | − :name: AUDIO_CLEAR_BUFFER | |
| 20 | +.. c:macro:: AUDIO_CLEAR_BUFFER | |
| 21 | + | |
| 22 | +``int ioctl(int fd, AUDIO_CLEAR_BUFFER)`` | |
| 21 | 23 | |
| 22 | 24 | Arguments |
| 23 | 25 | --------- |
| @@ -26,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 26 | 28 | :header-rows: 0 |
| 27 | 29 | :stub-columns: 0 |
| 28 | 30 | |
| 29 | − | |
| 30 | 31 | - .. row 1 |
| 31 | 32 | |
| 32 | 33 | - int fd |
| @@ -39,7 +40,6 @@ Description · 6 unmodified lines | ||
| 39 | 40 | This ioctl call asks the Audio Device to clear all software and hardware |
| 40 | 41 | buffers of the audio decoder device. |
| 41 | 42 | |
| 42 | − | |
| 43 | 43 | Return Value |
| 44 | 44 | ------------ |
| 45 | 45 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_CONTINUE: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ AUDIO_CONTINUE · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_CONTINUE) | |
| 20 | − :name: AUDIO_CONTINUE | |
| 20 | +.. c:macro:: AUDIO_CONTINUE | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, AUDIO_CONTINUE)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -40,7 +40,6 @@ Description · 6 unmodified lines | ||
| 40 | 40 | This ioctl restarts the decoding and playing process previously paused |
| 41 | 41 | with AUDIO_PAUSE command. |
| 42 | 42 | |
| 43 | − | |
| 44 | 43 | Return Value |
| 45 | 44 | ------------ |
| 46 | 45 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _audio_fclose: |
| 4 | 5 | |
| @@ -17,8 +18,6 @@ Synopsis · 12 unmodified lines | ||
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | 20 | .. c:function:: int close(int fd) |
| 20 | − :name: dvb-audio-close | |
| 21 | − | |
| 22 | 21 | |
| 23 | 22 | Arguments |
| 24 | 23 | --------- |
| @@ -27,20 +26,17 @@ Arguments · 2 unmodified lines | ||
| 27 | 26 | :header-rows: 0 |
| 28 | 27 | :stub-columns: 0 |
| 29 | 28 | |
| 30 | − | |
| 31 | 29 | - .. row 1 |
| 32 | 30 | |
| 33 | 31 | - int fd |
| 34 | 32 | |
| 35 | 33 | - File descriptor returned by a previous call to open(). |
| 36 | 34 | |
| 37 | − | |
| 38 | 35 | Description |
| 39 | 36 | ----------- |
| 40 | 37 | |
| 41 | 38 | This system call closes a previously opened audio device. |
| 42 | 39 | |
| 43 | − | |
| 44 | 40 | Return Value |
| 45 | 41 | ------------ |
| 46 | 42 | |
| @@ -48,7 +44,6 @@ Return Value · 1 unmodified line | ||
| 48 | 44 | :header-rows: 0 |
| 49 | 45 | :stub-columns: 0 |
| 50 | 46 | |
| 51 | − | |
| 52 | 47 | - .. row 1 |
| 53 | 48 | |
| 54 | 49 | - ``EBADF`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _audio_fopen: |
| 4 | 5 | |
| @@ -17,8 +18,6 @@ Synopsis · 12 unmodified lines | ||
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | 20 | .. c:function:: int open(const char *deviceName, int flags) |
| 20 | − :name: dvb-audio-open | |
| 21 | − | |
| 22 | 21 | |
| 23 | 22 | Arguments |
| 24 | 23 | --------- |
| @@ -27,7 +26,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 26 | :header-rows: 0 |
| 28 | 27 | :stub-columns: 0 |
| 29 | 28 | |
| 30 | − | |
| 31 | 29 | - .. row 1 |
| 32 | 30 | |
| 33 | 31 | - const char \*deviceName |
| @@ -60,7 +58,6 @@ Arguments · 26 unmodified lines | ||
| 60 | 58 | - |
| 61 | 59 | - (blocking mode is the default) |
| 62 | 60 | |
| 63 | − | |
| 64 | 61 | Description |
| 65 | 62 | ----------- |
| 66 | 63 | |
| @@ -78,7 +75,6 @@ fail, and an error code will be returned. If the Audio Device is opened · 11 unmodified lines | ||
| 78 | 75 | in O_RDONLY mode, the only ioctl call that can be used is |
| 79 | 76 | AUDIO_GET_STATUS. All other call will return with an error code. |
| 80 | 77 | |
| 81 | − | |
| 82 | 78 | Return Value |
| 83 | 79 | ------------ |
| 84 | 80 | |
| @@ -88,7 +84,6 @@ Return Value · 3 unmodified lines | ||
| 88 | 84 | :header-rows: 0 |
| 89 | 85 | :stub-columns: 0 |
| 90 | 86 | |
| 91 | − | |
| 92 | 87 | - .. row 1 |
| 93 | 88 | |
| 94 | 89 | - ``ENODEV`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _audio_fwrite: |
| 4 | 5 | |
| @@ -17,8 +18,6 @@ Synopsis · 12 unmodified lines | ||
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | 20 | .. c:function:: size_t write(int fd, const void *buf, size_t count) |
| 20 | − :name: dvb-audio-write | |
| 21 | − | |
| 22 | 21 | |
| 23 | 22 | Arguments |
| 24 | 23 | --------- |
| @@ -27,7 +26,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 26 | :header-rows: 0 |
| 28 | 27 | :stub-columns: 0 |
| 29 | 28 | |
| 30 | − | |
| 31 | 29 | - .. row 1 |
| 32 | 30 | |
| 33 | 31 | - int fd |
| @@ -46,7 +44,6 @@ Arguments · 12 unmodified lines | ||
| 46 | 44 | |
| 47 | 45 | - Size of buf. |
| 48 | 46 | |
| 49 | − | |
| 50 | 47 | Description |
| 51 | 48 | ----------- |
| 52 | 49 | |
| @@ -56,7 +53,6 @@ PES format. If O_NONBLOCK is not specified the function will block · 3 unmodified lines | ||
| 56 | 53 | until buffer space is available. The amount of data to be transferred is |
| 57 | 54 | implied by count. |
| 58 | 55 | |
| 59 | − | |
| 60 | 56 | Return Value |
| 61 | 57 | ------------ |
| 62 | 58 | |
| @@ -64,7 +60,6 @@ Return Value · 1 unmodified line | ||
| 64 | 60 | :header-rows: 0 |
| 65 | 61 | :stub-columns: 0 |
| 66 | 62 | |
| 67 | − | |
| 68 | 63 | - .. row 1 |
| 69 | 64 | |
| 70 | 65 | - ``EPERM`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_GET_CAPABILITIES: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ AUDIO_GET_CAPABILITIES · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_GET_CAPABILITIES, unsigned int *cap) | |
| 20 | − :name: AUDIO_GET_CAPABILITIES | |
| 20 | +.. c:macro:: AUDIO_GET_CAPABILITIES | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, AUDIO_GET_CAPABILITIES, unsigned int *cap)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -40,14 +40,12 @@ Arguments · 6 unmodified lines | ||
| 40 | 40 | |
| 41 | 41 | - Returns a bit array of supported sound formats. |
| 42 | 42 | |
| 43 | − | |
| 44 | 43 | Description |
| 45 | 44 | ----------- |
| 46 | 45 | |
| 47 | 46 | This ioctl call asks the Audio Device to tell us about the decoding |
| 48 | 47 | capabilities of the audio hardware. |
| 49 | 48 | |
| 50 | − | |
| 51 | 49 | Return Value |
| 52 | 50 | ------------ |
| 53 | 51 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_GET_STATUS: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ AUDIO_GET_STATUS · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_GET_STATUS, struct audio_status *status) | |
| 20 | − :name: AUDIO_GET_STATUS | |
| 20 | +.. c:macro:: AUDIO_GET_STATUS | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, AUDIO_GET_STATUS, struct audio_status *status)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -40,14 +40,12 @@ Arguments · 6 unmodified lines | ||
| 40 | 40 | |
| 41 | 41 | - Returns the current state of Audio Device. |
| 42 | 42 | |
| 43 | − | |
| 44 | 43 | Description |
| 45 | 44 | ----------- |
| 46 | 45 | |
| 47 | 46 | This ioctl call asks the Audio Device to return the current state of the |
| 48 | 47 | Audio Device. |
| 49 | 48 | |
| 50 | − | |
| 51 | 49 | Return Value |
| 52 | 50 | ------------ |
| 53 | 51 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_PAUSE: |
| 4 | 5 | |
| @@ -16,8 +17,9 @@ AUDIO_PAUSE · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_PAUSE) | |
| 20 | − :name: AUDIO_PAUSE | |
| 20 | +.. c:macro:: AUDIO_PAUSE | |
| 21 | + | |
| 22 | +``int ioctl(int fd, AUDIO_PAUSE)`` | |
| 21 | 23 | |
| 22 | 24 | Arguments |
| 23 | 25 | --------- |
| @@ -26,14 +28,12 @@ Arguments · 2 unmodified lines | ||
| 26 | 28 | :header-rows: 0 |
| 27 | 29 | :stub-columns: 0 |
| 28 | 30 | |
| 29 | − | |
| 30 | 31 | - .. row 1 |
| 31 | 32 | |
| 32 | 33 | - int fd |
| 33 | 34 | |
| 34 | 35 | - File descriptor returned by a previous call to open(). |
| 35 | 36 | |
| 36 | − | |
| 37 | 37 | Description |
| 38 | 38 | ----------- |
| 39 | 39 | |
| @@ -41,7 +41,6 @@ This ioctl call suspends the audio stream being played. Decoding and · 1 unmodified line | ||
| 41 | 41 | playing are paused. It is then possible to restart again decoding and |
| 42 | 42 | playing process of the audio stream using AUDIO_CONTINUE command. |
| 43 | 43 | |
| 44 | − | |
| 45 | 44 | Return Value |
| 46 | 45 | ------------ |
| 47 | 46 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_PLAY: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ AUDIO_PLAY · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_PLAY) | |
| 20 | − :name: AUDIO_PLAY | |
| 20 | +.. c:macro:: AUDIO_PLAY | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, AUDIO_PLAY)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -40,7 +40,6 @@ Description · 6 unmodified lines | ||
| 40 | 40 | This ioctl call asks the Audio Device to start playing an audio stream |
| 41 | 41 | from the selected source. |
| 42 | 42 | |
| 43 | − | |
| 44 | 43 | Return Value |
| 45 | 44 | ------------ |
| 46 | 45 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_SELECT_SOURCE: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ AUDIO_SELECT_SOURCE · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_SELECT_SOURCE, struct audio_stream_source *source) | |
| 20 | − :name: AUDIO_SELECT_SOURCE | |
| 20 | +.. c:macro:: AUDIO_SELECT_SOURCE | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, AUDIO_SELECT_SOURCE, struct audio_stream_source *source)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -40,7 +40,6 @@ Arguments · 6 unmodified lines | ||
| 40 | 40 | |
| 41 | 41 | - Indicates the source that shall be used for the Audio stream. |
| 42 | 42 | |
| 43 | − | |
| 44 | 43 | Description |
| 45 | 44 | ----------- |
| 46 | 45 | |
| @@ -49,7 +48,6 @@ the input data. The possible sources are demux or memory. If · 2 unmodified lines | ||
| 49 | 48 | AUDIO_SOURCE_MEMORY is selected, the data is fed to the Audio Device |
| 50 | 49 | through the write command. |
| 51 | 50 | |
| 52 | − | |
| 53 | 51 | Return Value |
| 54 | 52 | ------------ |
| 55 | 53 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_SET_AV_SYNC: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ AUDIO_SET_AV_SYNC · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_SET_AV_SYNC, boolean state) | |
| 20 | − :name: AUDIO_SET_AV_SYNC | |
| 20 | +.. c:macro:: AUDIO_SET_AV_SYNC | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, AUDIO_SET_AV_SYNC, boolean state)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -44,14 +44,12 @@ Arguments · 10 unmodified lines | ||
| 44 | 44 | |
| 45 | 45 | FALSE: AV-sync OFF |
| 46 | 46 | |
| 47 | − | |
| 48 | 47 | Description |
| 49 | 48 | ----------- |
| 50 | 49 | |
| 51 | 50 | This ioctl call asks the Audio Device to turn ON or OFF A/V |
| 52 | 51 | synchronization. |
| 53 | 52 | |
| 54 | − | |
| 55 | 53 | Return Value |
| 56 | 54 | ------------ |
| 57 | 55 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_SET_BYPASS_MODE: |
| 4 | 5 | |
| @@ -16,8 +17,9 @@ AUDIO_SET_BYPASS_MODE · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_SET_BYPASS_MODE, boolean mode) | |
| 20 | − :name: AUDIO_SET_BYPASS_MODE | |
| 20 | +.. c:macro:: AUDIO_SET_BYPASS_MODE | |
| 21 | + | |
| 22 | +``int ioctl(int fd, AUDIO_SET_BYPASS_MODE, boolean mode)`` | |
| 21 | 23 | |
| 22 | 24 | Arguments |
| 23 | 25 | --------- |
| @@ -26,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 26 | 28 | :header-rows: 0 |
| 27 | 29 | :stub-columns: 0 |
| 28 | 30 | |
| 29 | − | |
| 30 | 31 | - |
| 31 | 32 | |
| 32 | 33 | - int fd |
| @@ -44,7 +45,6 @@ Arguments · 11 unmodified lines | ||
| 44 | 45 | |
| 45 | 46 | FALSE: Bypass is enabled |
| 46 | 47 | |
| 47 | − | |
| 48 | 48 | Description |
| 49 | 49 | ----------- |
| 50 | 50 | |
| @@ -54,7 +54,6 @@ that can’t be handled by the Digital TV system shall be decoded. Dolby · 3 unmodified lines | ||
| 54 | 54 | DigitalTM streams are automatically forwarded by the Digital TV subsystem if |
| 55 | 55 | the hardware can handle it. |
| 56 | 56 | |
| 57 | − | |
| 58 | 57 | Return Value |
| 59 | 58 | ------------ |
| 60 | 59 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_SET_ID: |
| 4 | 5 | |
| @@ -16,8 +17,9 @@ AUDIO_SET_ID · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_SET_ID, int id) | |
| 20 | − :name: AUDIO_SET_ID | |
| 20 | +.. c:macro:: AUDIO_SET_ID | |
| 21 | + | |
| 22 | +``int ioctl(int fd, AUDIO_SET_ID, int id)`` | |
| 21 | 23 | |
| 22 | 24 | Arguments |
| 23 | 25 | --------- |
| @@ -26,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 26 | 28 | :header-rows: 0 |
| 27 | 29 | :stub-columns: 0 |
| 28 | 30 | |
| 29 | − | |
| 30 | 31 | - |
| 31 | 32 | |
| 32 | 33 | - int fd |
| @@ -39,7 +40,6 @@ Arguments · 6 unmodified lines | ||
| 39 | 40 | |
| 40 | 41 | - audio sub-stream id |
| 41 | 42 | |
| 42 | − | |
| 43 | 43 | Description |
| 44 | 44 | ----------- |
| 45 | 45 | |
| @@ -51,7 +51,6 @@ other stream types. If the stream type is set the id just specifies the · 5 unmodified lines | ||
| 51 | 51 | substream id of the audio stream and only the first 5 bits are |
| 52 | 52 | recognized. |
| 53 | 53 | |
| 54 | − | |
| 55 | 54 | Return Value |
| 56 | 55 | ------------ |
| 57 | 56 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_SET_MIXER: |
| 4 | 5 | |
| @@ -16,8 +17,9 @@ AUDIO_SET_MIXER · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_SET_MIXER, struct audio_mixer *mix) | |
| 20 | − :name: AUDIO_SET_MIXER | |
| 20 | +.. c:macro:: AUDIO_SET_MIXER | |
| 21 | + | |
| 22 | +``int ioctl(int fd, AUDIO_SET_MIXER, struct audio_mixer *mix)`` | |
| 21 | 23 | |
| 22 | 24 | Arguments |
| 23 | 25 | --------- |
| @@ -26,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 26 | 28 | :header-rows: 0 |
| 27 | 29 | :stub-columns: 0 |
| 28 | 30 | |
| 29 | − | |
| 30 | 31 | - |
| 31 | 32 | |
| 32 | 33 | - int fd |
| @@ -39,13 +40,11 @@ Arguments · 6 unmodified lines | ||
| 39 | 40 | |
| 40 | 41 | - mixer settings. |
| 41 | 42 | |
| 42 | − | |
| 43 | 43 | Description |
| 44 | 44 | ----------- |
| 45 | 45 | |
| 46 | 46 | This ioctl lets you adjust the mixer settings of the audio decoder. |
| 47 | 47 | |
| 48 | − | |
| 49 | 48 | Return Value |
| 50 | 49 | ------------ |
| 51 | 50 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_SET_MUTE: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ AUDIO_SET_MUTE · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_SET_MUTE, boolean state) | |
| 20 | − :name: AUDIO_SET_MUTE | |
| 20 | +.. c:macro:: AUDIO_SET_MUTE | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, AUDIO_SET_MUTE, boolean state)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -44,7 +44,6 @@ Arguments · 10 unmodified lines | ||
| 44 | 44 | |
| 45 | 45 | FALSE: Audio Un-mute |
| 46 | 46 | |
| 47 | − | |
| 48 | 47 | Description |
| 49 | 48 | ----------- |
| 50 | 49 | |
| @@ -55,7 +54,6 @@ V4L2 :ref:`VIDIOC_DECODER_CMD` with the · 4 unmodified lines | ||
| 55 | 54 | This ioctl call asks the audio device to mute the stream that is |
| 56 | 55 | currently being played. |
| 57 | 56 | |
| 58 | − | |
| 59 | 57 | Return Value |
| 60 | 58 | ------------ |
| 61 | 59 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_SET_STREAMTYPE: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ AUDIO_SET_STREAMTYPE · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, AUDIO_SET_STREAMTYPE, int type) | |
| 20 | − :name: AUDIO_SET_STREAMTYPE | |
| 20 | +.. c:macro:: AUDIO_SET_STREAMTYPE | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, AUDIO_SET_STREAMTYPE, int type)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -40,7 +40,6 @@ Arguments · 6 unmodified lines | ||
| 40 | 40 | |
| 41 | 41 | - stream type |
| 42 | 42 | |
| 43 | − | |
| 44 | 43 | Description |
| 45 | 44 | ----------- |
| 46 | 45 | |
| @@ -48,7 +47,6 @@ This ioctl tells the driver which kind of audio stream to expect. This · 1 unmodified line | ||
| 48 | 47 | is useful if the stream offers several audio sub-streams like LPCM and |
| 49 | 48 | AC3. |
| 50 | 49 | |
| 51 | − | |
| 52 | 50 | Return Value |
| 53 | 51 | ------------ |
| 54 | 52 | |
| @@ -57,12 +55,10 @@ appropriately. The generic error codes are described at the · 2 unmodified lines | ||
| 57 | 55 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| 58 | 56 | |
| 59 | 57 | |
| 60 | − | |
| 61 | 58 | .. flat-table:: |
| 62 | 59 | :header-rows: 0 |
| 63 | 60 | :stub-columns: 0 |
| 64 | 61 | |
| 65 | − | |
| 66 | 62 | - .. row 1 |
| 67 | 63 | |
| 68 | 64 | - ``EINVAL`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.audio | |
| 2 | 3 | |
| 3 | 4 | .. _AUDIO_STOP: |
| 4 | 5 | |
| @@ -16,8 +17,9 @@ AUDIO_STOP · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, AUDIO_STOP) | |
| 20 | − :name: AUDIO_STOP | |
| 20 | +.. c:macro:: AUDIO_STOP | |
| 21 | + | |
| 22 | +``int ioctl(int fd, AUDIO_STOP)`` | |
| 21 | 23 | |
| 22 | 24 | Arguments |
| 23 | 25 | --------- |
| @@ -26,21 +28,18 @@ Arguments · 2 unmodified lines | ||
| 26 | 28 | :header-rows: 0 |
| 27 | 29 | :stub-columns: 0 |
| 28 | 30 | |
| 29 | − | |
| 30 | 31 | - .. row 1 |
| 31 | 32 | |
| 32 | 33 | - int fd |
| 33 | 34 | |
| 34 | 35 | - File descriptor returned by a previous call to open(). |
| 35 | 36 | |
| 36 | − | |
| 37 | 37 | Description |
| 38 | 38 | ----------- |
| 39 | 39 | |
| 40 | 40 | This ioctl call asks the Audio Device to stop playing the current |
| 41 | 41 | stream. |
| 42 | 42 | |
| 43 | − | |
| 44 | 43 | Return Value |
| 45 | 44 | ------------ |
| 46 | 45 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.ca | |
| 2 | 3 | |
| 3 | 4 | .. _ca_fclose: |
| 4 | 5 | |
| @@ -11,26 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | Digital TV CA close() |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | 18 | .. c:function:: int close(int fd) |
| 19 | − :name: dvb-ca-close | |
| 20 | − | |
| 21 | 19 | |
| 22 | 20 | Arguments |
| 23 | 21 | --------- |
| 24 | 22 | |
| 25 | 23 | ``fd`` |
| 26 | − File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`. | |
| 24 | + File descriptor returned by a previous call to :c:func:`open()`. | |
| 27 | 25 | |
| 28 | 26 | Description |
| 29 | 27 | ----------- |
| 30 | 28 | |
| 31 | 29 | This system call closes a previously opened CA device. |
| 32 | 30 | |
| 33 | − | |
| 34 | 31 | Return Value |
| 35 | 32 | ------------ |
| 36 | 33 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.ca | |
| 2 | 3 | |
| 3 | 4 | .. _ca_fopen: |
| 4 | 5 | |
| @@ -11,13 +12,10 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | Digital TV CA open() |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | 18 | .. c:function:: int open(const char *name, int flags) |
| 19 | − :name: dvb-ca-open | |
| 20 | − | |
| 21 | 19 | |
| 22 | 20 | Arguments |
| 23 | 21 | --------- |
| @@ -45,7 +43,6 @@ Arguments · 21 unmodified lines | ||
| 45 | 43 | - open in non-blocking mode |
| 46 | 44 | (blocking mode is the default) |
| 47 | 45 | |
| 48 | − | |
| 49 | 46 | Description |
| 50 | 47 | ----------- |
| 51 | 48 | |
| @@ -63,11 +60,9 @@ Only one user can open the CA Device in ``O_RDWR`` mode. All other · 11 unmodified lines | ||
| 63 | 60 | attempts to open the device in this mode will fail, and an error code |
| 64 | 61 | will be returned. |
| 65 | 62 | |
| 66 | − | |
| 67 | 63 | Return Value |
| 68 | 64 | ------------ |
| 69 | 65 | |
| 70 | − | |
| 71 | 66 | On success 0 is returned. |
| 72 | 67 | |
| 73 | 68 | On error -1 is returned, and the ``errno`` variable is set |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.ca | |
| 2 | 3 | |
| 3 | 4 | .. _CA_GET_CAP: |
| 4 | 5 | |
| @@ -11,19 +12,18 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | CA_GET_CAP |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl(fd, CA_GET_CAP, struct ca_caps *caps) | |
| 19 | − :name: CA_GET_CAP | |
| 18 | +.. c:macro:: CA_GET_CAP | |
| 20 | 19 | |
| 20 | +``int ioctl(fd, CA_GET_CAP, struct ca_caps *caps)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`. | |
| 26 | + File descriptor returned by a previous call to :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``caps`` |
| 29 | 29 | Pointer to struct :c:type:`ca_caps`. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.ca | |
| 2 | 3 | |
| 3 | 4 | .. _CA_GET_DESCR_INFO: |
| 4 | 5 | |
| @@ -11,18 +12,18 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | CA_GET_DESCR_INFO |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl(fd, CA_GET_DESCR_INFO, struct ca_descr_info *desc) | |
| 19 | − :name: CA_GET_DESCR_INFO | |
| 18 | +.. c:macro:: CA_GET_DESCR_INFO | |
| 19 | + | |
| 20 | +``int ioctl(fd, CA_GET_DESCR_INFO, struct ca_descr_info *desc)`` | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| 23 | 24 | |
| 24 | 25 | ``fd`` |
| 25 | − File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`. | |
| 26 | + File descriptor returned by a previous call to :c:func:`open()`. | |
| 26 | 27 | |
| 27 | 28 | ``desc`` |
| 28 | 29 | Pointer to struct :c:type:`ca_descr_info`. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.ca | |
| 2 | 3 | |
| 3 | 4 | .. _CA_GET_MSG: |
| 4 | 5 | |
| @@ -11,19 +12,18 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | CA_GET_MSG |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl(fd, CA_GET_MSG, struct ca_msg *msg) | |
| 19 | − :name: CA_GET_MSG | |
| 18 | +.. c:macro:: CA_GET_MSG | |
| 20 | 19 | |
| 20 | +``int ioctl(fd, CA_GET_MSG, struct ca_msg *msg)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`. | |
| 26 | + File descriptor returned by a previous call to :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``msg`` |
| 29 | 29 | Pointer to struct :c:type:`ca_msg`. |
| @@ -38,11 +38,9 @@ Receives a message via a CI CA module. · 8 unmodified lines | ||
| 38 | 38 | Please notice that, on most drivers, this is done by reading from |
| 39 | 39 | the /dev/adapter?/ca? device node. |
| 40 | 40 | |
| 41 | − | |
| 42 | 41 | Return Value |
| 43 | 42 | ------------ |
| 44 | 43 | |
| 45 | − | |
| 46 | 44 | On success 0 is returned. |
| 47 | 45 | |
| 48 | 46 | On error -1 is returned, and the ``errno`` variable is set |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.ca | |
| 2 | 3 | |
| 3 | 4 | .. _CA_GET_SLOT_INFO: |
| 4 | 5 | |
| @@ -11,19 +12,18 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | CA_GET_SLOT_INFO |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl(fd, CA_GET_SLOT_INFO, struct ca_slot_info *info) | |
| 19 | − :name: CA_GET_SLOT_INFO | |
| 18 | +.. c:macro:: CA_GET_SLOT_INFO | |
| 20 | 19 | |
| 20 | +``int ioctl(fd, CA_GET_SLOT_INFO, struct ca_slot_info *info)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by a previous call to :c:func:`open() <cec-open>`. | |
| 26 | + File descriptor returned by a previous call to :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``info`` |
| 29 | 29 | Pointer to struct :c:type:`ca_slot_info`. |
| @@ -34,7 +34,6 @@ Description · 4 unmodified lines | ||
| 34 | 34 | Returns information about a CA slot identified by |
| 35 | 35 | :c:type:`ca_slot_info`.slot_num. |
| 36 | 36 | |
| 37 | − | |
| 38 | 37 | Return Value |
| 39 | 38 | ------------ |
| 40 | 39 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.ca | |
| 2 | 3 | |
| 3 | 4 | .. _CA_RESET: |
| 4 | 5 | |
| @@ -11,19 +12,18 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | CA_RESET |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl(fd, CA_RESET) | |
| 19 | − :name: CA_RESET | |
| 18 | +.. c:macro:: CA_RESET | |
| 20 | 19 | |
| 20 | +``int ioctl(fd, CA_RESET)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by a previous call to :c:func:`open() <cec-open>`. | |
| 26 | + File descriptor returned by a previous call to :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | Description |
| 29 | 29 | ----------- |
| @@ -31,7 +31,6 @@ Description · 1 unmodified line | ||
| 31 | 31 | Puts the Conditional Access hardware on its initial state. It should |
| 32 | 32 | be called before start using the CA hardware. |
| 33 | 33 | |
| 34 | − | |
| 35 | 34 | Return Value |
| 36 | 35 | ------------ |
| 37 | 36 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.ca | |
| 2 | 3 | |
| 3 | 4 | .. _CA_SEND_MSG: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | CA_SEND_MSG |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl(fd, CA_SEND_MSG, struct ca_msg *msg) | |
| 19 | − :name: CA_SEND_MSG | |
| 18 | +.. c:macro:: CA_SEND_MSG | |
| 20 | 19 | |
| 20 | +``int ioctl(fd, CA_SEND_MSG, struct ca_msg *msg)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by a previous call to :c:func:`open() <cec-open>`. | |
| 26 | + File descriptor returned by a previous call to :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``msg`` |
| 29 | 29 | Pointer to struct :c:type:`ca_msg`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | ----------- |
| 34 | 33 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.ca | |
| 2 | 3 | |
| 3 | 4 | .. _CA_SET_DESCR: |
| 4 | 5 | |
| @@ -11,19 +12,18 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | CA_SET_DESCR |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl(fd, CA_SET_DESCR, struct ca_descr *desc) | |
| 19 | − :name: CA_SET_DESCR | |
| 18 | +.. c:macro:: CA_SET_DESCR | |
| 20 | 19 | |
| 20 | +``int ioctl(fd, CA_SET_DESCR, struct ca_descr *desc)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by a previous call to :c:func:`open() <cec-open>`. | |
| 26 | + File descriptor returned by a previous call to :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``msg`` |
| 29 | 29 | Pointer to struct :c:type:`ca_descr`. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _DMX_ADD_PID: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | DMX_ADD_PID |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl(fd, DMX_ADD_PID, __u16 *pid) | |
| 19 | − :name: DMX_ADD_PID | |
| 18 | +.. c:macro:: DMX_ADD_PID | |
| 20 | 19 | |
| 20 | +``int ioctl(fd, DMX_ADD_PID, __u16 *pid)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``pid`` |
| 29 | 29 | PID number to be filtered. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | ----------- |
| 34 | 33 | |
| @@ -36,7 +35,6 @@ This ioctl call allows to add multiple PIDs to a transport stream filter · 1 unmodified line | ||
| 36 | 35 | previously set up with :ref:`DMX_SET_PES_FILTER` and output equal to |
| 37 | 36 | :c:type:`DMX_OUT_TSDEMUX_TAP <dmx_output>`. |
| 38 | 37 | |
| 39 | − | |
| 40 | 38 | Return Value |
| 41 | 39 | ------------ |
| 42 | 40 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _DMX_EXPBUF: |
| 4 | 5 | |
| @@ -13,24 +14,22 @@ DMX_EXPBUF - Export a buffer as a DMABUF file descriptor. · 8 unmodified lines | ||
| 13 | 14 | |
| 14 | 15 | .. warning:: this API is still experimental |
| 15 | 16 | |
| 16 | − | |
| 17 | 17 | Synopsis |
| 18 | 18 | ======== |
| 19 | 19 | |
| 20 | −.. c:function:: int ioctl( int fd, DMX_EXPBUF, struct dmx_exportbuffer *argp ) | |
| 21 | − :name: DMX_EXPBUF | |
| 20 | +.. c:macro:: DMX_EXPBUF | |
| 22 | 21 | |
| 22 | +``int ioctl(int fd, DMX_EXPBUF, struct dmx_exportbuffer *argp)`` | |
| 23 | 23 | |
| 24 | 24 | Arguments |
| 25 | 25 | ========= |
| 26 | 26 | |
| 27 | 27 | ``fd`` |
| 28 | − File descriptor returned by :ref:`open() <dmx_fopen>`. | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 29 | 29 | |
| 30 | 30 | ``argp`` |
| 31 | 31 | Pointer to struct :c:type:`dmx_exportbuffer`. |
| 32 | 32 | |
| 33 | − | |
| 34 | 33 | Description |
| 35 | 34 | =========== |
| 36 | 35 | |
| @@ -54,11 +53,9 @@ driver, on success. This is a DMABUF file descriptor. The application may · 17 unmodified lines | ||
| 54 | 53 | pass it to other DMABUF-aware devices. It is recommended to close a DMABUF |
| 55 | 54 | file when it is no longer used to allow the associated memory to be reclaimed. |
| 56 | 55 | |
| 57 | − | |
| 58 | 56 | Examples |
| 59 | 57 | ======== |
| 60 | 58 | |
| 61 | − | |
| 62 | 59 | .. code-block:: c |
| 63 | 60 | |
| 64 | 61 | int buffer_export(int v4lfd, enum dmx_buf_type bt, int index, int *dmafd) |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _dmx_fclose: |
| 4 | 5 | |
| @@ -11,27 +12,23 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | Digital TV demux close() |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | 18 | .. c:function:: int close(int fd) |
| 19 | − :name: dvb-dmx-close | |
| 20 | − | |
| 21 | 19 | |
| 22 | 20 | Arguments |
| 23 | 21 | --------- |
| 24 | 22 | |
| 25 | 23 | ``fd`` |
| 26 | 24 | File descriptor returned by a previous call to |
| 27 | − :c:func:`open() <dvb-dmx-open>`. | |
| 25 | + :c:func:`open()`. | |
| 28 | 26 | |
| 29 | 27 | Description |
| 30 | 28 | ----------- |
| 31 | 29 | |
| 32 | 30 | This system call deactivates and deallocates a filter that was |
| 33 | −previously allocated via the :c:func:`open() <dvb-dmx-open>` call. | |
| 34 | − | |
| 31 | +previously allocated via the :c:func:`open()` call. | |
| 35 | 32 | |
| 36 | 33 | Return Value |
| 37 | 34 | ------------ |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _dmx_fopen: |
| 4 | 5 | |
| @@ -11,12 +12,10 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | Digital TV demux open() |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | 18 | .. c:function:: int open(const char *deviceName, int flags) |
| 19 | − :name: dvb-dmx-open | |
| 20 | 19 | |
| 21 | 20 | Arguments |
| 22 | 21 | --------- |
| @@ -47,7 +46,6 @@ Arguments · 24 unmodified lines | ||
| 47 | 46 | - open in non-blocking mode |
| 48 | 47 | (blocking mode is the default) |
| 49 | 48 | |
| 50 | − | |
| 51 | 49 | Description |
| 52 | 50 | ----------- |
| 53 | 51 | |
| @@ -68,7 +66,6 @@ affect the semantics of the ``open()`` call itself. A device opened · 14 unmodified lines | ||
| 68 | 66 | in blocking mode can later be put into non-blocking mode (and vice versa) |
| 69 | 67 | using the ``F_SETFL`` command of the fcntl system call. |
| 70 | 68 | |
| 71 | − | |
| 72 | 69 | Return Value |
| 73 | 70 | ------------ |
| 74 | 71 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _dmx_fread: |
| 4 | 5 | |
| @@ -11,18 +12,16 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | Digital TV demux read() |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | 18 | .. c:function:: size_t read(int fd, void *buf, size_t count) |
| 19 | − :name: dvb-dmx-read | |
| 20 | 19 | |
| 21 | 20 | Arguments |
| 22 | 21 | --------- |
| 23 | 22 | |
| 24 | 23 | ``fd`` |
| 25 | − File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`. | |
| 24 | + File descriptor returned by a previous call to :c:func:`open()`. | |
| 26 | 25 | |
| 27 | 26 | ``buf`` |
| 28 | 27 | Buffer to be filled |
| @@ -44,7 +43,6 @@ to be transferred is implied by count. · 15 unmodified lines | ||
| 44 | 43 | :c:type:`DMX_CHECK_CRC <dmx_sct_filter_params>` flag set, |
| 45 | 44 | data that fails on CRC check will be silently ignored. |
| 46 | 45 | |
| 47 | − | |
| 48 | 46 | Return Value |
| 49 | 47 | ------------ |
| 50 | 48 | |
| @@ -75,6 +73,5 @@ appropriately. · 24 unmodified lines | ||
| 75 | 73 | - The driver failed to write to the callers buffer due to an |
| 76 | 74 | invalid \*buf pointer. |
| 77 | 75 | |
| 78 | − | |
| 79 | 76 | The generic error codes are described at the |
| 80 | 77 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _dmx_fwrite: |
| 4 | 5 | |
| @@ -11,18 +12,16 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | Digital TV demux write() |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | 18 | .. c:function:: ssize_t write(int fd, const void *buf, size_t count) |
| 19 | − :name: dvb-dmx-write | |
| 20 | 19 | |
| 21 | 20 | Arguments |
| 22 | 21 | --------- |
| 23 | 22 | |
| 24 | 23 | ``fd`` |
| 25 | − File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`. | |
| 24 | + File descriptor returned by a previous call to :c:func:`open()`. | |
| 26 | 25 | |
| 27 | 26 | ``buf`` |
| 28 | 27 | Buffer with data to be written |
| @@ -40,7 +39,6 @@ digitally recorded Transport Stream. Matching filters have to be defined · 11 unmodified lines | ||
| 40 | 39 | in the corresponding physical demux device, ``/dev/dvb/adapter?/demux?``. |
| 41 | 40 | The amount of data to be transferred is implied by count. |
| 42 | 41 | |
| 43 | − | |
| 44 | 42 | Return Value |
| 45 | 43 | ------------ |
| 46 | 44 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _DMX_GET_PES_PIDS: |
| 4 | 5 | |
| @@ -11,23 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | DMX_GET_PES_PIDS |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl(fd, DMX_GET_PES_PIDS, __u16 pids[5]) | |
| 19 | − :name: DMX_GET_PES_PIDS | |
| 18 | +.. c:macro:: DMX_GET_PES_PIDS | |
| 19 | + | |
| 20 | +``int ioctl(fd, DMX_GET_PES_PIDS, __u16 pids[5])`` | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| 23 | 24 | |
| 24 | 25 | ``fd`` |
| 25 | − File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 26 | 27 | |
| 27 | 28 | ``pids`` |
| 28 | 29 | Array used to store 5 Program IDs. |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | Description |
| 32 | 32 | ----------- |
| 33 | 33 | |
| @@ -45,13 +45,11 @@ pids[DMX_PES_SUBTITLE] 3 first subtitle PID · 11 unmodified lines | ||
| 45 | 45 | pids[DMX_PES_PCR] 4 first Program Clock Reference PID |
| 46 | 46 | ======================= ======== ======================================= |
| 47 | 47 | |
| 48 | − | |
| 49 | 48 | .. note:: |
| 50 | 49 | |
| 51 | 50 | A value equal to 0xffff means that the PID was not filled by the |
| 52 | 51 | Kernel. |
| 53 | 52 | |
| 54 | − | |
| 55 | 53 | Return Value |
| 56 | 54 | ------------ |
| 57 | 55 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _DMX_GET_STC: |
| 4 | 5 | |
| @@ -11,23 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | DMX_GET_STC |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, DMX_GET_STC, struct dmx_stc *stc) | |
| 19 | − :name: DMX_GET_STC | |
| 18 | +.. c:macro:: DMX_GET_STC | |
| 19 | + | |
| 20 | +``int ioctl(int fd, DMX_GET_STC, struct dmx_stc *stc)`` | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| 23 | 24 | |
| 24 | 25 | ``fd`` |
| 25 | − File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 26 | 27 | |
| 27 | 28 | ``stc`` |
| 28 | 29 | Pointer to :c:type:`dmx_stc` where the stc data is to be stored. |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | Description |
| 32 | 32 | ----------- |
| 33 | 33 | |
| @@ -39,7 +39,6 @@ The result is returned in form of a ratio with a 64 bit numerator · 5 unmodified lines | ||
| 39 | 39 | and a 32 bit denominator, so the real 90kHz STC value is |
| 40 | 40 | ``stc->stc / stc->base``. |
| 41 | 41 | |
| 42 | − | |
| 43 | 42 | Return Value |
| 44 | 43 | ------------ |
| 45 | 44 | |
| @@ -61,6 +60,5 @@ appropriately. · 15 unmodified lines | ||
| 61 | 60 | |
| 62 | 61 | - Invalid stc number. |
| 63 | 62 | |
| 64 | − | |
| 65 | 63 | The generic error codes are described at the |
| 66 | 64 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _dmx-mmap: |
| 4 | 5 | |
| @@ -21,9 +22,7 @@ Synopsis · 16 unmodified lines | ||
| 21 | 22 | #include <unistd.h> |
| 22 | 23 | #include <sys/mman.h> |
| 23 | 24 | |
| 24 | − | |
| 25 | 25 | .. c:function:: void *mmap( void *start, size_t length, int prot, int flags, int fd, off_t offset ) |
| 26 | − :name: dmx-mmap | |
| 27 | 26 | |
| 28 | 27 | Arguments |
| 29 | 28 | ========= |
| @@ -54,7 +53,7 @@ Arguments · 24 unmodified lines | ||
| 54 | 53 | |
| 55 | 54 | ``MAP_FIXED`` requests that the driver selects no other address than |
| 56 | 55 | the one specified. If the specified address cannot be used, |
| 57 | − :ref:`mmap() <dmx-mmap>` will fail. If ``MAP_FIXED`` is specified, | |
| 56 | + :c:func:`mmap()` will fail. If ``MAP_FIXED`` is specified, | |
| 58 | 57 | ``start`` must be a multiple of the pagesize. Use of this option is |
| 59 | 58 | discouraged. |
| 60 | 59 | |
| @@ -69,17 +68,16 @@ Arguments · 8 unmodified lines | ||
| 69 | 68 | flags. |
| 70 | 69 | |
| 71 | 70 | ``fd`` |
| 72 | − File descriptor returned by :ref:`open() <dmx_fopen>`. | |
| 71 | + File descriptor returned by :c:func:`open()`. | |
| 73 | 72 | |
| 74 | 73 | ``offset`` |
| 75 | 74 | Offset of the buffer in device memory, as returned by |
| 76 | 75 | :ref:`DMX_QUERYBUF` ioctl. |
| 77 | 76 | |
| 78 | − | |
| 79 | 77 | Description |
| 80 | 78 | =========== |
| 81 | 79 | |
| 82 | −The :ref:`mmap() <dmx-mmap>` function asks to map ``length`` bytes starting at | |
| 80 | +The :c:func:`mmap()` function asks to map ``length`` bytes starting at | |
| 83 | 81 | ``offset`` in the memory of the device specified by ``fd`` into the |
| 84 | 82 | application address space, preferably at address ``start``. This latter |
| 85 | 83 | address is a hint only, and is usually specified as 0. |
| @@ -88,13 +86,12 @@ Suitable length and offset parameters are queried with the · 2 unmodified lines | ||
| 88 | 86 | :ref:`DMX_QUERYBUF` ioctl. Buffers must be allocated with the |
| 89 | 87 | :ref:`DMX_REQBUFS` ioctl before they can be queried. |
| 90 | 88 | |
| 91 | −To unmap buffers the :ref:`munmap() <dmx-munmap>` function is used. | |
| 92 | − | |
| 89 | +To unmap buffers the :c:func:`munmap()` function is used. | |
| 93 | 90 | |
| 94 | 91 | Return Value |
| 95 | 92 | ============ |
| 96 | 93 | |
| 97 | −On success :ref:`mmap() <dmx-mmap>` returns a pointer to the mapped buffer. On | |
| 94 | +On success :c:func:`mmap()` returns a pointer to the mapped buffer. On | |
| 98 | 95 | error ``MAP_FAILED`` (-1) is returned, and the ``errno`` variable is set |
| 99 | 96 | appropriately. Possible error codes are: |
| 100 | 97 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _dmx-munmap: |
| 4 | 5 | |
| @@ -13,7 +14,6 @@ dmx-munmap - Unmap device memory · 8 unmodified lines | ||
| 13 | 14 | |
| 14 | 15 | .. warning:: This API is still experimental. |
| 15 | 16 | |
| 16 | − | |
| 17 | 17 | Synopsis |
| 18 | 18 | ======== |
| 19 | 19 | |
| @@ -22,33 +22,29 @@ Synopsis · 2 unmodified lines | ||
| 22 | 22 | #include <unistd.h> |
| 23 | 23 | #include <sys/mman.h> |
| 24 | 24 | |
| 25 | − | |
| 26 | 25 | .. c:function:: int munmap( void *start, size_t length ) |
| 27 | − :name: dmx-munmap | |
| 28 | 26 | |
| 29 | 27 | Arguments |
| 30 | 28 | ========= |
| 31 | 29 | |
| 32 | 30 | ``start`` |
| 33 | 31 | Address of the mapped buffer as returned by the |
| 34 | − :ref:`mmap() <dmx-mmap>` function. | |
| 32 | + :c:func:`mmap()` function. | |
| 35 | 33 | |
| 36 | 34 | ``length`` |
| 37 | 35 | Length of the mapped buffer. This must be the same value as given to |
| 38 | − :ref:`mmap() <dmx-mmap>`. | |
| 39 | − | |
| 36 | + :c:func:`mmap()`. | |
| 40 | 37 | |
| 41 | 38 | Description |
| 42 | 39 | =========== |
| 43 | 40 | |
| 44 | −Unmaps a previously with the :ref:`mmap() <dmx-mmap>` function mapped | |
| 41 | +Unmaps a previously with the :c:func:`mmap()` function mapped | |
| 45 | 42 | buffer and frees it, if possible. |
| 46 | 43 | |
| 47 | − | |
| 48 | 44 | Return Value |
| 49 | 45 | ============ |
| 50 | 46 | |
| 51 | −On success :ref:`munmap() <dmx-munmap>` returns 0, on failure -1 and the | |
| 47 | +On success :c:func:`munmap()` returns 0, on failure -1 and the | |
| 52 | 48 | ``errno`` variable is set appropriately: |
| 53 | 49 | |
| 54 | 50 | EINVAL |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _DMX_QBUF: |
| 4 | 5 | |
| @@ -13,27 +14,26 @@ DMX_QBUF - DMX_DQBUF - Exchange a buffer with the driver · 8 unmodified lines | ||
| 13 | 14 | |
| 14 | 15 | .. warning:: this API is still experimental |
| 15 | 16 | |
| 16 | − | |
| 17 | 17 | Synopsis |
| 18 | 18 | ======== |
| 19 | 19 | |
| 20 | −.. c:function:: int ioctl( int fd, DMX_QBUF, struct dmx_buffer *argp ) | |
| 21 | − :name: DMX_QBUF | |
| 20 | +.. c:macro:: DMX_QBUF | |
| 21 | + | |
| 22 | +``int ioctl(int fd, DMX_QBUF, struct dmx_buffer *argp)`` | |
| 22 | 23 | |
| 23 | −.. c:function:: int ioctl( int fd, DMX_DQBUF, struct dmx_buffer *argp ) | |
| 24 | − :name: DMX_DQBUF | |
| 24 | +.. c:macro:: DMX_DQBUF | |
| 25 | 25 | |
| 26 | +``int ioctl(int fd, DMX_DQBUF, struct dmx_buffer *argp)`` | |
| 26 | 27 | |
| 27 | 28 | Arguments |
| 28 | 29 | ========= |
| 29 | 30 | |
| 30 | 31 | ``fd`` |
| 31 | − File descriptor returned by :ref:`open() <dmx_fopen>`. | |
| 32 | + File descriptor returned by :c:func:`open()`. | |
| 32 | 33 | |
| 33 | 34 | ``argp`` |
| 34 | 35 | Pointer to struct :c:type:`dmx_buffer`. |
| 35 | 36 | |
| 36 | − | |
| 37 | 37 | Description |
| 38 | 38 | =========== |
| 39 | 39 | |
| @@ -60,13 +60,12 @@ the driver fills the remaining fields or returns an error code. · 20 unmodified lines | ||
| 60 | 60 | |
| 61 | 61 | By default ``DMX_DQBUF`` blocks when no buffer is in the outgoing |
| 62 | 62 | queue. When the ``O_NONBLOCK`` flag was given to the |
| 63 | −:ref:`open() <dmx_fopen>` function, ``DMX_DQBUF`` returns | |
| 63 | +:c:func:`open()` function, ``DMX_DQBUF`` returns | |
| 64 | 64 | immediately with an ``EAGAIN`` error code when no buffer is available. |
| 65 | 65 | |
| 66 | 66 | The struct :c:type:`dmx_buffer` structure is specified in |
| 67 | 67 | :ref:`buffer`. |
| 68 | 68 | |
| 69 | − | |
| 70 | 69 | Return Value |
| 71 | 70 | ============ |
| 72 | 71 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _DMX_QUERYBUF: |
| 4 | 5 | |
| @@ -13,24 +14,22 @@ DMX_QUERYBUF - Query the status of a buffer · 8 unmodified lines | ||
| 13 | 14 | |
| 14 | 15 | .. warning:: this API is still experimental |
| 15 | 16 | |
| 16 | − | |
| 17 | 17 | Synopsis |
| 18 | 18 | ======== |
| 19 | 19 | |
| 20 | −.. c:function:: int ioctl( int fd, DMX_QUERYBUF, struct dvb_buffer *argp ) | |
| 21 | − :name: DMX_QUERYBUF | |
| 20 | +.. c:macro:: DMX_QUERYBUF | |
| 22 | 21 | |
| 22 | +``int ioctl(int fd, DMX_QUERYBUF, struct dvb_buffer *argp)`` | |
| 23 | 23 | |
| 24 | 24 | Arguments |
| 25 | 25 | ========= |
| 26 | 26 | |
| 27 | 27 | ``fd`` |
| 28 | − File descriptor returned by :ref:`open() <dmx_fopen>`. | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 29 | 29 | |
| 30 | 30 | ``argp`` |
| 31 | 31 | Pointer to struct :c:type:`dvb_buffer`. |
| 32 | 32 | |
| 33 | − | |
| 34 | 33 | Description |
| 35 | 34 | =========== |
| 36 | 35 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _DMX_REMOVE_PID: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | DMX_REMOVE_PID |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl(fd, DMX_REMOVE_PID, __u16 *pid) | |
| 19 | − :name: DMX_REMOVE_PID | |
| 18 | +.. c:macro:: DMX_REMOVE_PID | |
| 20 | 19 | |
| 20 | +``int ioctl(fd, DMX_REMOVE_PID, __u16 *pid)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``pid`` |
| 29 | 29 | PID of the PES filter to be removed. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | ----------- |
| 34 | 33 | |
| @@ -37,7 +36,6 @@ transport stream filter, e. g. a filter previously set up with output · 2 unmodified lines | ||
| 37 | 36 | equal to :c:type:`DMX_OUT_TSDEMUX_TAP <dmx_output>`, created via either |
| 38 | 37 | :ref:`DMX_SET_PES_FILTER` or :ref:`DMX_ADD_PID`. |
| 39 | 38 | |
| 40 | − | |
| 41 | 39 | Return Value |
| 42 | 40 | ------------ |
| 43 | 41 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _DMX_REQBUFS: |
| 4 | 5 | |
| @@ -13,19 +14,18 @@ DMX_REQBUFS - Initiate Memory Mapping and/or DMA buffer I/O · 8 unmodified lines | ||
| 13 | 14 | |
| 14 | 15 | .. warning:: this API is still experimental |
| 15 | 16 | |
| 16 | − | |
| 17 | 17 | Synopsis |
| 18 | 18 | ======== |
| 19 | 19 | |
| 20 | −.. c:function:: int ioctl( int fd, DMX_REQBUFS, struct dmx_requestbuffers *argp ) | |
| 21 | − :name: DMX_REQBUFS | |
| 20 | +.. c:macro:: DMX_REQBUFS | |
| 22 | 21 | |
| 22 | +``int ioctl(int fd, DMX_REQBUFS, struct dmx_requestbuffers *argp)`` | |
| 23 | 23 | |
| 24 | 24 | Arguments |
| 25 | 25 | ========= |
| 26 | 26 | |
| 27 | 27 | ``fd`` |
| 28 | − File descriptor returned by :ref:`open() <dmx_fopen>`. | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 29 | 29 | |
| 30 | 30 | ``argp`` |
| 31 | 31 | Pointer to struct :c:type:`dmx_requestbuffers`. |
| @@ -64,7 +64,6 @@ buffers, however this cannot succeed when any buffers are still mapped. · 32 unmodified lines | ||
| 64 | 64 | A ``count`` value of zero frees all buffers, after aborting or finishing |
| 65 | 65 | any DMA in progress. |
| 66 | 66 | |
| 67 | − | |
| 68 | 67 | Return Value |
| 69 | 68 | ============ |
| 70 | 69 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _DMX_SET_BUFFER_SIZE: |
| 4 | 5 | |
| @@ -11,19 +12,18 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | DMX_SET_BUFFER_SIZE |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, DMX_SET_BUFFER_SIZE, unsigned long size) | |
| 19 | − :name: DMX_SET_BUFFER_SIZE | |
| 18 | +.. c:macro:: DMX_SET_BUFFER_SIZE | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, DMX_SET_BUFFER_SIZE, unsigned long size)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``size`` |
| 29 | 29 | Unsigned long size |
| @@ -36,11 +36,9 @@ filtered data. The default size is two maximum sized sections, i.e. if · 6 unmodified lines | ||
| 36 | 36 | this function is not called a buffer size of ``2 * 4096`` bytes will be |
| 37 | 37 | used. |
| 38 | 38 | |
| 39 | − | |
| 40 | 39 | Return Value |
| 41 | 40 | ------------ |
| 42 | 41 | |
| 43 | − | |
| 44 | 42 | On success 0 is returned. |
| 45 | 43 | |
| 46 | 44 | On error -1 is returned, and the ``errno`` variable is set |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _DMX_SET_FILTER: |
| 4 | 5 | |
| @@ -11,24 +12,23 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | DMX_SET_FILTER |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, DMX_SET_FILTER, struct dmx_sct_filter_params *params) | |
| 19 | − :name: DMX_SET_FILTER | |
| 18 | +.. c:macro:: DMX_SET_FILTER | |
| 19 | + | |
| 20 | +``int ioctl(int fd, DMX_SET_FILTER, struct dmx_sct_filter_params *params)`` | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| 23 | 24 | |
| 24 | 25 | ``fd`` |
| 25 | − File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 26 | 27 | |
| 27 | 28 | ``params`` |
| 28 | 29 | |
| 29 | 30 | Pointer to structure containing filter parameters. |
| 30 | 31 | |
| 31 | − | |
| 32 | 32 | Description |
| 33 | 33 | ----------- |
| 34 | 34 | |
| @@ -43,11 +43,9 @@ operation should be started immediately (without waiting for a · 8 unmodified lines | ||
| 43 | 43 | :ref:`DMX_START` ioctl call). If a filter was previously set-up, this |
| 44 | 44 | filter will be canceled, and the receive buffer will be flushed. |
| 45 | 45 | |
| 46 | − | |
| 47 | 46 | Return Value |
| 48 | 47 | ------------ |
| 49 | 48 | |
| 50 | − | |
| 51 | 49 | On success 0 is returned. |
| 52 | 50 | |
| 53 | 51 | On error -1 is returned, and the ``errno`` variable is set |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _DMX_SET_PES_FILTER: |
| 4 | 5 | |
| @@ -11,25 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | DMX_SET_PES_FILTER |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, DMX_SET_PES_FILTER, struct dmx_pes_filter_params *params) | |
| 19 | − :name: DMX_SET_PES_FILTER | |
| 18 | +.. c:macro:: DMX_SET_PES_FILTER | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, DMX_SET_PES_FILTER, struct dmx_pes_filter_params *params)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| 25 | − | |
| 26 | 25 | ``fd`` |
| 27 | − File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 28 | 27 | |
| 29 | 28 | ``params`` |
| 30 | 29 | Pointer to structure containing filter parameters. |
| 31 | 30 | |
| 32 | − | |
| 33 | 31 | Description |
| 34 | 32 | ----------- |
| 35 | 33 | |
| @@ -38,7 +36,6 @@ provided. By a PES filter is meant a filter that is based just on the · 2 unmodified lines | ||
| 38 | 36 | packet identifier (PID), i.e. no PES header or payload filtering |
| 39 | 37 | capability is supported. |
| 40 | 38 | |
| 41 | − | |
| 42 | 39 | Return Value |
| 43 | 40 | ------------ |
| 44 | 41 | |
| @@ -54,7 +51,6 @@ appropriately. · 9 unmodified lines | ||
| 54 | 51 | :stub-columns: 0 |
| 55 | 52 | :widths: 1 16 |
| 56 | 53 | |
| 57 | − | |
| 58 | 54 | - .. row 1 |
| 59 | 55 | |
| 60 | 56 | - ``EBUSY`` |
| @@ -64,6 +60,5 @@ appropriately. · 3 unmodified lines | ||
| 64 | 60 | Make sure that these filters are stopped before starting this |
| 65 | 61 | filter. |
| 66 | 62 | |
| 67 | − | |
| 68 | 63 | The generic error codes are described at the |
| 69 | 64 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _DMX_START: |
| 4 | 5 | |
| @@ -11,19 +12,18 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | DMX_START |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, DMX_START) | |
| 19 | − :name: DMX_START | |
| 18 | +.. c:macro:: DMX_START | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, DMX_START)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | Description |
| 29 | 29 | ----------- |
| @@ -31,7 +31,6 @@ Description · 1 unmodified line | ||
| 31 | 31 | This ioctl call is used to start the actual filtering operation defined |
| 32 | 32 | via the ioctl calls :ref:`DMX_SET_FILTER` or :ref:`DMX_SET_PES_FILTER`. |
| 33 | 33 | |
| 34 | − | |
| 35 | 34 | Return Value |
| 36 | 35 | ------------ |
| 37 | 36 | |
| @@ -46,7 +45,6 @@ appropriately. · 8 unmodified lines | ||
| 46 | 45 | :header-rows: 0 |
| 47 | 46 | :stub-columns: 0 |
| 48 | 47 | |
| 49 | − | |
| 50 | 48 | - .. row 1 |
| 51 | 49 | |
| 52 | 50 | - ``EINVAL`` |
| @@ -63,6 +61,5 @@ appropriately. · 10 unmodified lines | ||
| 63 | 61 | Make sure that these filters are stopped before starting this |
| 64 | 62 | filter. |
| 65 | 63 | |
| 66 | − | |
| 67 | 64 | The generic error codes are described at the |
| 68 | 65 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.dmx | |
| 2 | 3 | |
| 3 | 4 | .. _DMX_STOP: |
| 4 | 5 | |
| @@ -11,19 +12,18 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | DMX_STOP |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, DMX_STOP) | |
| 19 | − :name: DMX_STOP | |
| 18 | +.. c:macro:: DMX_STOP | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, DMX_STOP)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | Description |
| 29 | 29 | ----------- |
| @@ -32,7 +32,6 @@ This ioctl call is used to stop the actual filtering operation defined · 2 unmodified lines | ||
| 32 | 32 | via the ioctl calls :ref:`DMX_SET_FILTER` or :ref:`DMX_SET_PES_FILTER` and |
| 33 | 33 | started via the :ref:`DMX_START` command. |
| 34 | 34 | |
| 35 | − | |
| 36 | 35 | Return Value |
| 37 | 36 | ------------ |
| 38 | 37 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_DISEQC_RECV_SLAVE_REPLY: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | FE_DISEQC_RECV_SLAVE_REPLY - Receives reply from a DiSEqC 2.0 command |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, FE_DISEQC_RECV_SLAVE_REPLY, struct dvb_diseqc_slave_reply *argp ) | |
| 19 | − :name: FE_DISEQC_RECV_SLAVE_REPLY | |
| 18 | +.. c:macro:: FE_DISEQC_RECV_SLAVE_REPLY | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, FE_DISEQC_RECV_SLAVE_REPLY, struct dvb_diseqc_slave_reply *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <frontend_f_open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | pointer to struct :c:type:`dvb_diseqc_slave_reply`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_DISEQC_RESET_OVERLOAD: |
| 4 | 5 | |
| @@ -11,19 +12,18 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | FE_DISEQC_RESET_OVERLOAD - Restores the power to the antenna subsystem, if it was powered off due - to power overload. |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, FE_DISEQC_RESET_OVERLOAD, NULL ) | |
| 19 | − :name: FE_DISEQC_RESET_OVERLOAD | |
| 18 | +.. c:macro:: FE_DISEQC_RESET_OVERLOAD | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, FE_DISEQC_RESET_OVERLOAD, NULL)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <frontend_f_open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | Description |
| 29 | 29 | =========== |
| @@ -33,7 +33,6 @@ this ioctl call restores the power to the bus. The call requires · 3 unmodified lines | ||
| 33 | 33 | read/write access to the device. This call has no effect if the device |
| 34 | 34 | is manually powered off. Not all Digital TV adapters support this ioctl. |
| 35 | 35 | |
| 36 | − | |
| 37 | 36 | Return Value |
| 38 | 37 | ============ |
| 39 | 38 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_DISEQC_SEND_BURST: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | FE_DISEQC_SEND_BURST - Sends a 22KHz tone burst for 2x1 mini DiSEqC satellite selection. |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, FE_DISEQC_SEND_BURST, enum fe_sec_mini_cmd tone ) | |
| 19 | − :name: FE_DISEQC_SEND_BURST | |
| 18 | +.. c:macro:: FE_DISEQC_SEND_BURST | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, FE_DISEQC_SEND_BURST, enum fe_sec_mini_cmd tone)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <frontend_f_open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``tone`` |
| 29 | 29 | An integer enumered value described at :c:type:`fe_sec_mini_cmd`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -39,7 +38,6 @@ read/write permissions. · 4 unmodified lines | ||
| 39 | 38 | It provides support for what's specified at |
| 40 | 39 | `Digital Satellite Equipment Control (DiSEqC) - Simple "ToneBurst" Detection Circuit specification. <http://www.eutelsat.com/files/contributed/satellites/pdf/Diseqc/associated%20docs/simple_tone_burst_detec.pdf>`__ |
| 41 | 40 | |
| 42 | − | |
| 43 | 41 | Return Value |
| 44 | 42 | ============ |
| 45 | 43 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_DISEQC_SEND_MASTER_CMD: |
| 4 | 5 | |
| @@ -11,25 +12,23 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | FE_DISEQC_SEND_MASTER_CMD - Sends a DiSEqC command |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, FE_DISEQC_SEND_MASTER_CMD, struct dvb_diseqc_master_cmd *argp ) | |
| 19 | − :name: FE_DISEQC_SEND_MASTER_CMD | |
| 18 | +.. c:macro:: FE_DISEQC_SEND_MASTER_CMD | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, FE_DISEQC_SEND_MASTER_CMD, struct dvb_diseqc_master_cmd *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <frontend_f_open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | pointer to struct |
| 30 | 30 | :c:type:`dvb_diseqc_master_cmd` |
| 31 | 31 | |
| 32 | − | |
| 33 | 32 | Description |
| 34 | 33 | =========== |
| 35 | 34 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_DISHNETWORK_SEND_LEGACY_CMD: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | FE_DISHNETWORK_SEND_LEGACY_CMD |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl(int fd, FE_DISHNETWORK_SEND_LEGACY_CMD, unsigned long cmd) | |
| 19 | − :name: FE_DISHNETWORK_SEND_LEGACY_CMD | |
| 18 | +.. c:macro:: FE_DISHNETWORK_SEND_LEGACY_CMD | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, FE_DISHNETWORK_SEND_LEGACY_CMD, unsigned long cmd)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``cmd`` |
| 29 | 29 | Sends the specified raw cmd to the dish via DISEqC. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -42,7 +41,6 @@ frontend, for Dish Network legacy switches. · 7 unmodified lines | ||
| 42 | 41 | As support for this ioctl were added in 2004, this means that such |
| 43 | 42 | dishes were already legacy in 2004. |
| 44 | 43 | |
| 45 | − | |
| 46 | 44 | Return Value |
| 47 | 45 | ============ |
| 48 | 46 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_ENABLE_HIGH_LNB_VOLTAGE: |
| 4 | 5 | |
| @@ -11,19 +12,18 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | FE_ENABLE_HIGH_LNB_VOLTAGE - Select output DC level between normal LNBf voltages or higher LNBf - voltages. |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, FE_ENABLE_HIGH_LNB_VOLTAGE, unsigned int high ) | |
| 19 | − :name: FE_ENABLE_HIGH_LNB_VOLTAGE | |
| 18 | +.. c:macro:: FE_ENABLE_HIGH_LNB_VOLTAGE | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, FE_ENABLE_HIGH_LNB_VOLTAGE, unsigned int high)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <frontend_f_open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``high`` |
| 29 | 29 | Valid flags: |
| @@ -33,7 +33,6 @@ Arguments · 3 unmodified lines | ||
| 33 | 33 | - >0 - enables slightly higher voltages instead of 13/18V, in order |
| 34 | 34 | to compensate for long antenna cables. |
| 35 | 35 | |
| 36 | − | |
| 37 | 36 | Description |
| 38 | 37 | =========== |
| 39 | 38 | |
| @@ -41,7 +40,6 @@ Select output DC level between normal LNBf voltages or higher LNBf · 1 unmodified line | ||
| 41 | 40 | voltages between 0 (normal) or a value grater than 0 for higher |
| 42 | 41 | voltages. |
| 43 | 42 | |
| 44 | − | |
| 45 | 43 | Return Value |
| 46 | 44 | ============ |
| 47 | 45 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_GET_EVENT: |
| 4 | 5 | |
| @@ -13,24 +14,22 @@ FE_GET_EVENT · 8 unmodified lines | ||
| 13 | 14 | |
| 14 | 15 | .. attention:: This ioctl is deprecated. |
| 15 | 16 | |
| 16 | − | |
| 17 | 17 | Synopsis |
| 18 | 18 | ======== |
| 19 | 19 | |
| 20 | −.. c:function:: int ioctl(int fd, FE_GET_EVENT, struct dvb_frontend_event *ev) | |
| 21 | − :name: FE_GET_EVENT | |
| 20 | +.. c:macro:: FE_GET_EVENT | |
| 22 | 21 | |
| 22 | +``int ioctl(int fd, FE_GET_EVENT, struct dvb_frontend_event *ev)`` | |
| 23 | 23 | |
| 24 | 24 | Arguments |
| 25 | 25 | ========= |
| 26 | 26 | |
| 27 | 27 | ``fd`` |
| 28 | − File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 29 | 29 | |
| 30 | 30 | ``ev`` |
| 31 | 31 | Points to the location where the event, if any, is to be stored. |
| 32 | 32 | |
| 33 | − | |
| 34 | 33 | Description |
| 35 | 34 | =========== |
| 36 | 35 | |
| @@ -40,7 +39,6 @@ or non-blocking mode. In the latter case, the call fails immediately · 3 unmodified lines | ||
| 40 | 39 | with errno set to ``EWOULDBLOCK``. In the former case, the call blocks until |
| 41 | 40 | an event becomes available. |
| 42 | 41 | |
| 43 | − | |
| 44 | 42 | Return Value |
| 45 | 43 | ============ |
| 46 | 44 | |
| @@ -49,12 +47,10 @@ On success 0 is returned. · 2 unmodified lines | ||
| 49 | 47 | On error -1 is returned, and the ``errno`` variable is set |
| 50 | 48 | appropriately. |
| 51 | 49 | |
| 52 | − | |
| 53 | 50 | .. flat-table:: |
| 54 | 51 | :header-rows: 0 |
| 55 | 52 | :stub-columns: 0 |
| 56 | 53 | |
| 57 | − | |
| 58 | 54 | - .. row 1 |
| 59 | 55 | |
| 60 | 56 | - ``EWOULDBLOCK`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_GET_FRONTEND: |
| 4 | 5 | |
| @@ -13,32 +14,28 @@ FE_GET_FRONTEND · 8 unmodified lines | ||
| 13 | 14 | |
| 14 | 15 | .. attention:: This ioctl is deprecated. |
| 15 | 16 | |
| 16 | − | |
| 17 | 17 | Synopsis |
| 18 | 18 | ======== |
| 19 | 19 | |
| 20 | −.. c:function:: int ioctl(int fd, FE_GET_FRONTEND, struct dvb_frontend_parameters *p) | |
| 21 | − :name: FE_GET_FRONTEND | |
| 20 | +.. c:macro:: FE_GET_FRONTEND | |
| 22 | 21 | |
| 22 | +``int ioctl(int fd, FE_GET_FRONTEND, struct dvb_frontend_parameters *p)`` | |
| 23 | 23 | |
| 24 | 24 | Arguments |
| 25 | 25 | ========= |
| 26 | 26 | |
| 27 | 27 | ``fd`` |
| 28 | − File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 29 | − | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 29 | |
| 31 | 30 | ``p`` |
| 32 | 31 | Points to parameters for tuning operation. |
| 33 | 32 | |
| 34 | − | |
| 35 | 33 | Description |
| 36 | 34 | =========== |
| 37 | 35 | |
| 38 | 36 | This ioctl call queries the currently effective frontend parameters. For |
| 39 | 37 | this command, read-only access to the device is sufficient. |
| 40 | 38 | |
| 41 | − | |
| 42 | 39 | Return Value |
| 43 | 40 | ============ |
| 44 | 41 | |
| @@ -51,7 +48,6 @@ appropriately. · 6 unmodified lines | ||
| 51 | 48 | :header-rows: 0 |
| 52 | 49 | :stub-columns: 0 |
| 53 | 50 | |
| 54 | − | |
| 55 | 51 | - .. row 1 |
| 56 | 52 | |
| 57 | 53 | - ``EINVAL`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_GET_INFO: |
| 4 | 5 | |
| @@ -12,24 +13,22 @@ Name · 7 unmodified lines | ||
| 12 | 13 | FE_GET_INFO - Query Digital TV frontend capabilities and returns information |
| 13 | 14 | about the - front-end. This call only requires read-only access to the device. |
| 14 | 15 | |
| 15 | − | |
| 16 | 16 | Synopsis |
| 17 | 17 | ======== |
| 18 | 18 | |
| 19 | −.. c:function:: int ioctl( int fd, FE_GET_INFO, struct dvb_frontend_info *argp ) | |
| 20 | − :name: FE_GET_INFO | |
| 19 | +.. c:macro:: FE_GET_INFO | |
| 21 | 20 | |
| 21 | +``int ioctl(int fd, FE_GET_INFO, struct dvb_frontend_info *argp)`` | |
| 22 | 22 | |
| 23 | 23 | Arguments |
| 24 | 24 | ========= |
| 25 | 25 | |
| 26 | 26 | ``fd`` |
| 27 | − File descriptor returned by :ref:`open() <frontend_f_open>`. | |
| 27 | + File descriptor returned by :c:func:`open()`. | |
| 28 | 28 | |
| 29 | 29 | ``argp`` |
| 30 | 30 | pointer to struct :c:type:`dvb_frontend_info` |
| 31 | 31 | |
| 32 | − | |
| 33 | 32 | Description |
| 34 | 33 | =========== |
| 35 | 34 | |
| @@ -40,7 +39,6 @@ takes a pointer to dvb_frontend_info which is filled by the driver. · 4 unmodified lines | ||
| 40 | 39 | When the driver is not compatible with this specification the ioctl |
| 41 | 40 | returns an error. |
| 42 | 41 | |
| 43 | − | |
| 44 | 42 | frontend capabilities |
| 45 | 43 | ===================== |
| 46 | 44 | |
| @@ -49,7 +47,6 @@ supported only on some specific frontend types. · 2 unmodified lines | ||
| 49 | 47 | |
| 50 | 48 | The frontend capabilities are described at :c:type:`fe_caps`. |
| 51 | 49 | |
| 52 | − | |
| 53 | 50 | Return Value |
| 54 | 51 | ============ |
| 55 | 52 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_GET_PROPERTY: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | FE_SET_PROPERTY - FE_GET_PROPERTY - FE_SET_PROPERTY sets one or more frontend properties. - FE_GET_PROPERTY returns one or more frontend properties. |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, FE_GET_PROPERTY, struct dtv_properties *argp ) | |
| 19 | − :name: FE_GET_PROPERTY | |
| 18 | +.. c:macro:: FE_GET_PROPERTY | |
| 19 | + | |
| 20 | +``int ioctl(int fd, FE_GET_PROPERTY, struct dtv_properties *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, FE_SET_PROPERTY, struct dtv_properties *argp ) | |
| 22 | − :name: FE_SET_PROPERTY | |
| 22 | +.. c:macro:: FE_SET_PROPERTY | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, FE_SET_PROPERTY, struct dtv_properties *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <frontend_f_open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`dtv_properties`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -63,7 +63,6 @@ depends on the delivery system and on the device: · 25 unmodified lines | ||
| 63 | 63 | |
| 64 | 64 | - This call only requires read-only access to the device. |
| 65 | 65 | |
| 66 | − | |
| 67 | 66 | Return Value |
| 68 | 67 | ============ |
| 69 | 68 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_READ_BER: |
| 4 | 5 | |
| @@ -16,20 +17,19 @@ FE_READ_BER · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | ======== |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, FE_READ_BER, uint32_t *ber) | |
| 20 | − :name: FE_READ_BER | |
| 20 | +.. c:macro:: FE_READ_BER | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, FE_READ_BER, uint32_t *ber)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | ========= |
| 25 | 26 | |
| 26 | 27 | ``fd`` |
| 27 | − File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 28 | 29 | |
| 29 | 30 | ``ber`` |
| 30 | 31 | The bit error rate is stored into \*ber. |
| 31 | 32 | |
| 32 | − | |
| 33 | 33 | Description |
| 34 | 34 | =========== |
| 35 | 35 | |
| @@ -37,7 +37,6 @@ This ioctl call returns the bit error rate for the signal currently · 1 unmodified line | ||
| 37 | 37 | received/demodulated by the front-end. For this command, read-only |
| 38 | 38 | access to the device is sufficient. |
| 39 | 39 | |
| 40 | − | |
| 41 | 40 | Return Value |
| 42 | 41 | ============ |
| 43 | 42 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_READ_SIGNAL_STRENGTH: |
| 4 | 5 | |
| @@ -16,20 +17,19 @@ FE_READ_SIGNAL_STRENGTH · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | ======== |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl( int fd, FE_READ_SIGNAL_STRENGTH, uint16_t *strength) | |
| 20 | − :name: FE_READ_SIGNAL_STRENGTH | |
| 20 | +.. c:macro:: FE_READ_SIGNAL_STRENGTH | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, FE_READ_SIGNAL_STRENGTH, uint16_t *strength)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | ========= |
| 25 | 26 | |
| 26 | 27 | ``fd`` |
| 27 | − File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 28 | 29 | |
| 29 | 30 | ``strength`` |
| 30 | 31 | The signal strength value is stored into \*strength. |
| 31 | 32 | |
| 32 | − | |
| 33 | 33 | Description |
| 34 | 34 | =========== |
| 35 | 35 | |
| @@ -37,7 +37,6 @@ This ioctl call returns the signal strength value for the signal · 1 unmodified line | ||
| 37 | 37 | currently received by the front-end. For this command, read-only access |
| 38 | 38 | to the device is sufficient. |
| 39 | 39 | |
| 40 | − | |
| 41 | 40 | Return Value |
| 42 | 41 | ============ |
| 43 | 42 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_READ_SNR: |
| 4 | 5 | |
| @@ -16,20 +17,19 @@ FE_READ_SNR · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | ======== |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, FE_READ_SNR, int16_t *snr) | |
| 20 | − :name: FE_READ_SNR | |
| 20 | +.. c:macro:: FE_READ_SNR | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, FE_READ_SNR, int16_t *snr)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | ========= |
| 25 | 26 | |
| 26 | 27 | ``fd`` |
| 27 | − File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 28 | 29 | |
| 29 | 30 | ``snr`` |
| 30 | 31 | The signal-to-noise ratio is stored into \*snr. |
| 31 | 32 | |
| 32 | − | |
| 33 | 33 | Description |
| 34 | 34 | =========== |
| 35 | 35 | |
| @@ -37,7 +37,6 @@ This ioctl call returns the signal-to-noise ratio for the signal · 1 unmodified line | ||
| 37 | 37 | currently received by the front-end. For this command, read-only access |
| 38 | 38 | to the device is sufficient. |
| 39 | 39 | |
| 40 | − | |
| 41 | 40 | Return Value |
| 42 | 41 | ============ |
| 43 | 42 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_READ_STATUS: |
| 4 | 5 | |
| @@ -11,25 +12,23 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | FE_READ_STATUS - Returns status information about the front-end. This call only requires - read-only access to the device |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, FE_READ_STATUS, unsigned int *status ) | |
| 19 | − :name: FE_READ_STATUS | |
| 18 | +.. c:macro:: FE_READ_STATUS | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, FE_READ_STATUS, unsigned int *status)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <frontend_f_open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``status`` |
| 29 | 29 | pointer to a bitmask integer filled with the values defined by enum |
| 30 | 30 | :c:type:`fe_status`. |
| 31 | 31 | |
| 32 | − | |
| 33 | 32 | Description |
| 34 | 33 | =========== |
| 35 | 34 | |
| @@ -44,7 +43,6 @@ written. · 8 unmodified lines | ||
| 44 | 43 | varies according with the architecture. This needs to be fixed in the |
| 45 | 44 | future. |
| 46 | 45 | |
| 47 | − | |
| 48 | 46 | int fe_status |
| 49 | 47 | ============= |
| 50 | 48 | |
| @@ -52,7 +50,6 @@ The fe_status parameter is used to indicate the current state and/or · 1 unmodified line | ||
| 52 | 50 | state changes of the frontend hardware. It is produced using the enum |
| 53 | 51 | :c:type:`fe_status` values on a bitmask |
| 54 | 52 | |
| 55 | − | |
| 56 | 53 | Return Value |
| 57 | 54 | ============ |
| 58 | 55 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_READ_UNCORRECTED_BLOCKS: |
| 4 | 5 | |
| @@ -16,20 +17,19 @@ FE_READ_UNCORRECTED_BLOCKS · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | ======== |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl( int fd, FE_READ_UNCORRECTED_BLOCKS, uint32_t *ublocks) | |
| 20 | − :name: FE_READ_UNCORRECTED_BLOCKS | |
| 20 | +.. c:macro:: FE_READ_UNCORRECTED_BLOCKS | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, FE_READ_UNCORRECTED_BLOCKS, uint32_t *ublocks)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | ========= |
| 25 | 26 | |
| 26 | 27 | ``fd`` |
| 27 | − File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 28 | 29 | |
| 29 | 30 | ``ublocks`` |
| 30 | 31 | The total number of uncorrected blocks seen by the driver so far. |
| 31 | 32 | |
| 32 | − | |
| 33 | 33 | Description |
| 34 | 34 | =========== |
| 35 | 35 | |
| @@ -39,7 +39,6 @@ increment in block count during a specific time interval should be · 3 unmodified lines | ||
| 39 | 39 | calculated. For this command, read-only access to the device is |
| 40 | 40 | sufficient. |
| 41 | 41 | |
| 42 | − | |
| 43 | 42 | Return Value |
| 44 | 43 | ============ |
| 45 | 44 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_SET_FRONTEND_TUNE_MODE: |
| 4 | 5 | |
| @@ -11,19 +12,18 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | FE_SET_FRONTEND_TUNE_MODE - Allow setting tuner mode flags to the frontend. |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, FE_SET_FRONTEND_TUNE_MODE, unsigned int flags ) | |
| 19 | − :name: FE_SET_FRONTEND_TUNE_MODE | |
| 18 | +.. c:macro:: FE_SET_FRONTEND_TUNE_MODE | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, FE_SET_FRONTEND_TUNE_MODE, unsigned int flags)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <frontend_f_open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``flags`` |
| 29 | 29 | Valid flags: |
| @@ -37,14 +37,12 @@ Arguments · 7 unmodified lines | ||
| 37 | 37 | is closed, this flag will be automatically turned off when the |
| 38 | 38 | device is reopened read-write. |
| 39 | 39 | |
| 40 | − | |
| 41 | 40 | Description |
| 42 | 41 | =========== |
| 43 | 42 | |
| 44 | 43 | Allow setting tuner mode flags to the frontend, between 0 (normal) or |
| 45 | 44 | ``FE_TUNE_MODE_ONESHOT`` mode |
| 46 | 45 | |
| 47 | − | |
| 48 | 46 | Return Value |
| 49 | 47 | ============ |
| 50 | 48 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_SET_FRONTEND: |
| 4 | 5 | |
| @@ -13,24 +14,22 @@ Name · 8 unmodified lines | ||
| 13 | 14 | |
| 14 | 15 | FE_SET_FRONTEND |
| 15 | 16 | |
| 16 | − | |
| 17 | 17 | Synopsis |
| 18 | 18 | ======== |
| 19 | 19 | |
| 20 | −.. c:function:: int ioctl(int fd, FE_SET_FRONTEND, struct dvb_frontend_parameters *p) | |
| 21 | − :name: FE_SET_FRONTEND | |
| 20 | +.. c:macro:: FE_SET_FRONTEND | |
| 22 | 21 | |
| 22 | +``int ioctl(int fd, FE_SET_FRONTEND, struct dvb_frontend_parameters *p)`` | |
| 23 | 23 | |
| 24 | 24 | Arguments |
| 25 | 25 | ========= |
| 26 | 26 | |
| 27 | 27 | ``fd`` |
| 28 | − File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 29 | 29 | |
| 30 | 30 | ``p`` |
| 31 | 31 | Points to parameters for tuning operation. |
| 32 | 32 | |
| 33 | − | |
| 34 | 33 | Description |
| 35 | 34 | =========== |
| 36 | 35 | |
| @@ -44,7 +43,6 @@ operation is initiated before the previous one was completed, the · 7 unmodified lines | ||
| 44 | 43 | previous operation will be aborted in favor of the new one. This command |
| 45 | 44 | requires read/write access to the device. |
| 46 | 45 | |
| 47 | − | |
| 48 | 46 | Return Value |
| 49 | 47 | ============ |
| 50 | 48 | |
| @@ -66,6 +64,5 @@ appropriately. · 15 unmodified lines | ||
| 66 | 64 | |
| 67 | 65 | - Maximum supported symbol rate reached. |
| 68 | 66 | |
| 69 | − | |
| 70 | 67 | Generic error codes are described at the |
| 71 | 68 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_SET_TONE: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | FE_SET_TONE - Sets/resets the generation of the continuous 22kHz tone. |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, FE_SET_TONE, enum fe_sec_tone_mode tone ) | |
| 19 | − :name: FE_SET_TONE | |
| 18 | +.. c:macro:: FE_SET_TONE | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, FE_SET_TONE, enum fe_sec_tone_mode tone)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <frontend_f_open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``tone`` |
| 29 | 29 | an integer enumered value described at :c:type:`fe_sec_tone_mode` |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -45,7 +44,6 @@ this is done using the DiSEqC ioctls. · 10 unmodified lines | ||
| 45 | 44 | capability of selecting the band. So, it is recommended that applications |
| 46 | 45 | would change to SEC_TONE_OFF when the device is not used. |
| 47 | 46 | |
| 48 | − | |
| 49 | 47 | Return Value |
| 50 | 48 | ============ |
| 51 | 49 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _FE_SET_VOLTAGE: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | FE_SET_VOLTAGE - Allow setting the DC level sent to the antenna subsystem. |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, FE_SET_VOLTAGE, enum fe_sec_voltage voltage ) | |
| 19 | − :name: FE_SET_VOLTAGE | |
| 18 | +.. c:macro:: FE_SET_VOLTAGE | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, FE_SET_VOLTAGE, enum fe_sec_voltage voltage)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <frontend_f_open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``voltage`` |
| 29 | 29 | an integer enumered value described at :c:type:`fe_sec_voltage` |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -49,7 +48,6 @@ power up the LNBf. · 14 unmodified lines | ||
| 49 | 48 | the voltage to SEC_VOLTAGE_OFF while the device is not is used is |
| 50 | 49 | recommended. |
| 51 | 50 | |
| 52 | − | |
| 53 | 51 | Return Value |
| 54 | 52 | ============ |
| 55 | 53 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _frontend_f_close: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | fe-close - Close a frontend device |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,16 +19,13 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: int close( int fd ) |
| 24 | − :name: dvb-fe-close | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| 28 | 26 | |
| 29 | 27 | ``fd`` |
| 30 | − File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 31 | − | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 32 | 29 | |
| 33 | 30 | Description |
| 34 | 31 | =========== |
| @@ -37,7 +34,6 @@ This system call closes a previously opened front-end device. After · 2 unmodified lines | ||
| 37 | 34 | closing a front-end device, its corresponding hardware might be powered |
| 38 | 35 | down automatically. |
| 39 | 36 | |
| 40 | − | |
| 41 | 37 | Return Value |
| 42 | 38 | ============ |
| 43 | 39 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.fe | |
| 2 | 3 | |
| 3 | 4 | .. _frontend_f_open: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | fe-open - Open a frontend device |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,9 +19,7 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <fcntl.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: int open( const char *device_name, int flags ) |
| 24 | − :name: dvb-fe-open | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| @@ -44,7 +42,6 @@ Arguments · 16 unmodified lines | ||
| 44 | 42 | |
| 45 | 43 | Other flags have no effect. |
| 46 | 44 | |
| 47 | − | |
| 48 | 45 | Description |
| 49 | 46 | =========== |
| 50 | 47 | |
| @@ -70,16 +67,14 @@ the specified mode. This implies that the corresponding hardware is · 19 unmodified lines | ||
| 70 | 67 | powered up, and that other front-ends may have been powered down to make |
| 71 | 68 | that possible. |
| 72 | 69 | |
| 73 | − | |
| 74 | 70 | Return Value |
| 75 | 71 | ============ |
| 76 | 72 | |
| 77 | −On success :ref:`open() <frontend_f_open>` returns the new file descriptor. | |
| 73 | +On success :c:func:`open()` returns the new file descriptor. | |
| 78 | 74 | On error, -1 is returned, and the ``errno`` variable is set appropriately. |
| 79 | 75 | |
| 80 | 76 | Possible error codes are: |
| 81 | 77 | |
| 82 | − | |
| 83 | 78 | On success 0 is returned, and :c:type:`ca_slot_info` is filled. |
| 84 | 79 | |
| 85 | 80 | On error -1 is returned, and the ``errno`` variable is set |
| @@ -105,6 +100,5 @@ appropriately. · 19 unmodified lines | ||
| 105 | 100 | - The limit on the total number of files open on the system has been |
| 106 | 101 | reached. |
| 107 | 102 | |
| 108 | − | |
| 109 | 103 | The generic error codes are described at the |
| 110 | 104 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.net | |
| 2 | 3 | |
| 3 | 4 | .. _NET_ADD_IF: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | NET_ADD_IF - Creates a new network interface for a given Packet ID. |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, NET_ADD_IF, struct dvb_net_if *net_if ) | |
| 19 | − :name: NET_ADD_IF | |
| 18 | +.. c:macro:: NET_ADD_IF | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, NET_ADD_IF, struct dvb_net_if *net_if)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <frontend_f_open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``net_if`` |
| 29 | 29 | pointer to struct :c:type:`dvb_net_if` |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.net | |
| 2 | 3 | |
| 3 | 4 | .. _NET_GET_IF: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | NET_GET_IF - Read the configuration data of an interface created via - :ref:`NET_ADD_IF <net>`. |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, NET_GET_IF, struct dvb_net_if *net_if ) | |
| 19 | − :name: NET_GET_IF | |
| 18 | +.. c:macro:: NET_GET_IF | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, NET_GET_IF, struct dvb_net_if *net_if)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <frontend_f_open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``net_if`` |
| 29 | 29 | pointer to struct :c:type:`dvb_net_if` |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -39,7 +38,6 @@ encapsulation type used on such interface. If the interface was not · 4 unmodified lines | ||
| 39 | 38 | created yet with :ref:`NET_ADD_IF <net>`, it will return -1 and fill |
| 40 | 39 | the ``errno`` with ``EINVAL`` error code. |
| 41 | 40 | |
| 42 | − | |
| 43 | 41 | Return Value |
| 44 | 42 | ============ |
| 45 | 43 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.net | |
| 2 | 3 | |
| 3 | 4 | .. _NET_REMOVE_IF: |
| 4 | 5 | |
| @@ -11,31 +12,28 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | NET_REMOVE_IF - Removes a network interface. |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, NET_REMOVE_IF, int ifnum ) | |
| 19 | − :name: NET_REMOVE_IF | |
| 18 | +.. c:macro:: NET_REMOVE_IF | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, NET_REMOVE_IF, int ifnum)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <frontend_f_open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``net_if`` |
| 29 | 29 | number of the interface to be removed |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| 35 | 34 | The NET_REMOVE_IF ioctl deletes an interface previously created via |
| 36 | 35 | :ref:`NET_ADD_IF <net>`. |
| 37 | 36 | |
| 38 | − | |
| 39 | 37 | Return Value |
| 40 | 38 | ============ |
| 41 | 39 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_CLEAR_BUFFER: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_CLEAR_BUFFER · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_CLEAR_BUFFER) | |
| 20 | − :name: VIDEO_CLEAR_BUFFER | |
| 20 | +.. c:macro:: VIDEO_CLEAR_BUFFER | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_CLEAR_BUFFER)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -40,14 +40,12 @@ Arguments · 6 unmodified lines | ||
| 40 | 40 | |
| 41 | 41 | - Equals VIDEO_CLEAR_BUFFER for this command. |
| 42 | 42 | |
| 43 | − | |
| 44 | 43 | Description |
| 45 | 44 | ----------- |
| 46 | 45 | |
| 47 | 46 | This ioctl call clears all video buffers in the driver and in the |
| 48 | 47 | decoder hardware. |
| 49 | 48 | |
| 50 | − | |
| 51 | 49 | Return Value |
| 52 | 50 | ------------ |
| 53 | 51 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_COMMAND: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_COMMAND · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, VIDEO_COMMAND, struct video_command *cmd) | |
| 20 | − :name: VIDEO_COMMAND | |
| 20 | +.. c:macro:: VIDEO_COMMAND | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, VIDEO_COMMAND, struct video_command *cmd)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -46,7 +46,6 @@ Arguments · 12 unmodified lines | ||
| 46 | 46 | |
| 47 | 47 | - Commands the decoder. |
| 48 | 48 | |
| 49 | − | |
| 50 | 49 | Description |
| 51 | 50 | ----------- |
| 52 | 51 | |
| @@ -59,7 +58,7 @@ subset of the ``v4l2_decoder_cmd`` struct, so refer to the · 6 unmodified lines | ||
| 59 | 58 | :ref:`VIDIOC_DECODER_CMD` documentation for |
| 60 | 59 | more information. |
| 61 | 60 | |
| 62 | −.. c:type:: struct video_command | |
| 61 | +.. c:type:: video_command | |
| 63 | 62 | |
| 64 | 63 | .. code-block:: c |
| 65 | 64 | |
| @@ -89,7 +88,6 @@ more information. · 23 unmodified lines | ||
| 89 | 88 | }; |
| 90 | 89 | }; |
| 91 | 90 | |
| 92 | − | |
| 93 | 91 | Return Value |
| 94 | 92 | ------------ |
| 95 | 93 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_CONTINUE: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_CONTINUE · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_CONTINUE) | |
| 20 | − :name: VIDEO_CONTINUE | |
| 20 | +.. c:macro:: VIDEO_CONTINUE | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_CONTINUE)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -40,7 +40,6 @@ Arguments · 6 unmodified lines | ||
| 40 | 40 | |
| 41 | 41 | - Equals VIDEO_CONTINUE for this command. |
| 42 | 42 | |
| 43 | − | |
| 44 | 43 | Description |
| 45 | 44 | ----------- |
| 46 | 45 | |
| @@ -50,7 +49,6 @@ V4L2 :ref:`VIDIOC_DECODER_CMD` instead. · 3 unmodified lines | ||
| 50 | 49 | This ioctl call restarts decoding and playing processes of the video |
| 51 | 50 | stream which was played before a call to VIDEO_FREEZE was made. |
| 52 | 51 | |
| 53 | − | |
| 54 | 52 | Return Value |
| 55 | 53 | ------------ |
| 56 | 54 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_FAST_FORWARD: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_FAST_FORWARD · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_FAST_FORWARD, int nFrames) | |
| 20 | − :name: VIDEO_FAST_FORWARD | |
| 20 | +.. c:macro:: VIDEO_FAST_FORWARD | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_FAST_FORWARD, int nFrames)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -46,7 +46,6 @@ Arguments · 12 unmodified lines | ||
| 46 | 46 | |
| 47 | 47 | - The number of frames to skip. |
| 48 | 48 | |
| 49 | − | |
| 50 | 49 | Description |
| 51 | 50 | ----------- |
| 52 | 51 | |
| @@ -54,7 +53,6 @@ This ioctl call asks the Video Device to skip decoding of N number of · 1 unmodified line | ||
| 54 | 53 | I-frames. This call can only be used if VIDEO_SOURCE_MEMORY is |
| 55 | 54 | selected. |
| 56 | 55 | |
| 57 | − | |
| 58 | 56 | Return Value |
| 59 | 57 | ------------ |
| 60 | 58 | |
| @@ -63,12 +61,10 @@ appropriately. The generic error codes are described at the · 2 unmodified lines | ||
| 63 | 61 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| 64 | 62 | |
| 65 | 63 | |
| 66 | − | |
| 67 | 64 | .. flat-table:: |
| 68 | 65 | :header-rows: 0 |
| 69 | 66 | :stub-columns: 0 |
| 70 | 67 | |
| 71 | − | |
| 72 | 68 | - .. row 1 |
| 73 | 69 | |
| 74 | 70 | - ``EPERM`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _video_fclose: |
| 4 | 5 | |
| @@ -18,7 +19,6 @@ Synopsis · 13 unmodified lines | ||
| 18 | 19 | |
| 19 | 20 | .. c:function:: int close(int fd) |
| 20 | 21 | |
| 21 | − | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| @@ -26,20 +26,17 @@ Arguments · 1 unmodified line | ||
| 26 | 26 | :header-rows: 0 |
| 27 | 27 | :stub-columns: 0 |
| 28 | 28 | |
| 29 | − | |
| 30 | 29 | - .. row 1 |
| 31 | 30 | |
| 32 | 31 | - int fd |
| 33 | 32 | |
| 34 | 33 | - File descriptor returned by a previous call to open(). |
| 35 | 34 | |
| 36 | − | |
| 37 | 35 | Description |
| 38 | 36 | ----------- |
| 39 | 37 | |
| 40 | 38 | This system call closes a previously opened video device. |
| 41 | 39 | |
| 42 | − | |
| 43 | 40 | Return Value |
| 44 | 41 | ------------ |
| 45 | 42 | |
| @@ -47,7 +44,6 @@ Return Value · 1 unmodified line | ||
| 47 | 44 | :header-rows: 0 |
| 48 | 45 | :stub-columns: 0 |
| 49 | 46 | |
| 50 | − | |
| 51 | 47 | - .. row 1 |
| 52 | 48 | |
| 53 | 49 | - ``EBADF`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _video_fopen: |
| 4 | 5 | |
| @@ -18,7 +19,6 @@ Synopsis · 13 unmodified lines | ||
| 18 | 19 | |
| 19 | 20 | .. c:function:: int open(const char *deviceName, int flags) |
| 20 | 21 | |
| 21 | − | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| @@ -26,7 +26,6 @@ Arguments · 1 unmodified line | ||
| 26 | 26 | :header-rows: 0 |
| 27 | 27 | :stub-columns: 0 |
| 28 | 28 | |
| 29 | − | |
| 30 | 29 | - .. row 1 |
| 31 | 30 | |
| 32 | 31 | - const char \*deviceName |
| @@ -59,7 +58,6 @@ Arguments · 26 unmodified lines | ||
| 59 | 58 | - |
| 60 | 59 | - (blocking mode is the default) |
| 61 | 60 | |
| 62 | − | |
| 63 | 61 | Description |
| 64 | 62 | ----------- |
| 65 | 63 | |
| @@ -79,7 +77,6 @@ returned. If the Video Device is opened in O_RDONLY mode, the only · 13 unmodified lines | ||
| 79 | 77 | ioctl call that can be used is VIDEO_GET_STATUS. All other call will |
| 80 | 78 | return an error code. |
| 81 | 79 | |
| 82 | − | |
| 83 | 80 | Return Value |
| 84 | 81 | ------------ |
| 85 | 82 | |
| @@ -89,7 +86,6 @@ Return Value · 3 unmodified lines | ||
| 89 | 86 | :header-rows: 0 |
| 90 | 87 | :stub-columns: 0 |
| 91 | 88 | |
| 92 | − | |
| 93 | 89 | - .. row 1 |
| 94 | 90 | |
| 95 | 91 | - ``ENODEV`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_FREEZE: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_FREEZE · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_FREEZE) | |
| 20 | − :name: VIDEO_FREEZE | |
| 20 | +.. c:macro:: VIDEO_FREEZE | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_FREEZE)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -40,7 +40,6 @@ Arguments · 6 unmodified lines | ||
| 40 | 40 | |
| 41 | 41 | - Equals VIDEO_FREEZE for this command. |
| 42 | 42 | |
| 43 | − | |
| 44 | 43 | Description |
| 45 | 44 | ----------- |
| 46 | 45 | |
| @@ -54,7 +53,6 @@ If VIDEO_SOURCE_MEMORY is selected in the ioctl call · 7 unmodified lines | ||
| 54 | 53 | VIDEO_SELECT_SOURCE, the Digital TV subsystem will not decode any more data |
| 55 | 54 | until the ioctl call VIDEO_CONTINUE or VIDEO_PLAY is performed. |
| 56 | 55 | |
| 57 | − | |
| 58 | 56 | Return Value |
| 59 | 57 | ------------ |
| 60 | 58 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _video_fwrite: |
| 4 | 5 | |
| @@ -18,7 +19,6 @@ Synopsis · 13 unmodified lines | ||
| 18 | 19 | |
| 19 | 20 | .. c:function:: size_t write(int fd, const void *buf, size_t count) |
| 20 | 21 | |
| 21 | − | |
| 22 | 22 | Arguments |
| 23 | 23 | --------- |
| 24 | 24 | |
| @@ -26,7 +26,6 @@ Arguments · 1 unmodified line | ||
| 26 | 26 | :header-rows: 0 |
| 27 | 27 | :stub-columns: 0 |
| 28 | 28 | |
| 29 | − | |
| 30 | 29 | - .. row 1 |
| 31 | 30 | |
| 32 | 31 | - int fd |
| @@ -45,7 +44,6 @@ Arguments · 12 unmodified lines | ||
| 45 | 44 | |
| 46 | 45 | - Size of buf. |
| 47 | 46 | |
| 48 | − | |
| 49 | 47 | Description |
| 50 | 48 | ----------- |
| 51 | 49 | |
| @@ -55,7 +53,6 @@ PES format, unless the capability allows other formats. If O_NONBLOCK · 3 unmodified lines | ||
| 55 | 53 | is not specified the function will block until buffer space is |
| 56 | 54 | available. The amount of data to be transferred is implied by count. |
| 57 | 55 | |
| 58 | − | |
| 59 | 56 | Return Value |
| 60 | 57 | ------------ |
| 61 | 58 | |
| @@ -63,7 +60,6 @@ Return Value · 1 unmodified line | ||
| 63 | 60 | :header-rows: 0 |
| 64 | 61 | :stub-columns: 0 |
| 65 | 62 | |
| 66 | − | |
| 67 | 63 | - .. row 1 |
| 68 | 64 | |
| 69 | 65 | - ``EPERM`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_GET_CAPABILITIES: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_GET_CAPABILITIES · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_GET_CAPABILITIES, unsigned int *cap) | |
| 20 | − :name: VIDEO_GET_CAPABILITIES | |
| 20 | +.. c:macro:: VIDEO_GET_CAPABILITIES | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_GET_CAPABILITIES, unsigned int *cap)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -46,7 +46,6 @@ Arguments · 12 unmodified lines | ||
| 46 | 46 | |
| 47 | 47 | - Pointer to a location where to store the capability information. |
| 48 | 48 | |
| 49 | − | |
| 50 | 49 | Description |
| 51 | 50 | ----------- |
| 52 | 51 | |
| @@ -54,7 +53,6 @@ This ioctl call asks the video device about its decoding capabilities. · 1 unmodified line | ||
| 54 | 53 | On success it returns and integer which has bits set according to the |
| 55 | 54 | defines in section ??. |
| 56 | 55 | |
| 57 | − | |
| 58 | 56 | Return Value |
| 59 | 57 | ------------ |
| 60 | 58 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_GET_EVENT: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_GET_EVENT · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_GET_EVENT, struct video_event *ev) | |
| 20 | − :name: VIDEO_GET_EVENT | |
| 20 | +.. c:macro:: VIDEO_GET_EVENT | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_GET_EVENT, struct video_event *ev)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -46,7 +46,6 @@ Arguments · 12 unmodified lines | ||
| 46 | 46 | |
| 47 | 47 | - Points to the location where the event, if any, is to be stored. |
| 48 | 48 | |
| 49 | − | |
| 50 | 49 | Description |
| 51 | 50 | ----------- |
| 52 | 51 | |
| @@ -93,7 +92,6 @@ appropriately. The generic error codes are described at the · 40 unmodified lines | ||
| 93 | 92 | :header-rows: 0 |
| 94 | 93 | :stub-columns: 0 |
| 95 | 94 | |
| 96 | − | |
| 97 | 95 | - .. row 1 |
| 98 | 96 | |
| 99 | 97 | - ``EWOULDBLOCK`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_GET_FRAME_COUNT: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_GET_FRAME_COUNT · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, VIDEO_GET_FRAME_COUNT, __u64 *pts) | |
| 20 | − :name: VIDEO_GET_FRAME_COUNT | |
| 20 | +.. c:macro:: VIDEO_GET_FRAME_COUNT | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, VIDEO_GET_FRAME_COUNT, __u64 *pts)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -47,7 +47,6 @@ Arguments · 13 unmodified lines | ||
| 47 | 47 | - Returns the number of frames displayed since the decoder was |
| 48 | 48 | started. |
| 49 | 49 | |
| 50 | − | |
| 51 | 50 | Description |
| 52 | 51 | ----------- |
| 53 | 52 | |
| @@ -58,7 +57,6 @@ control. · 4 unmodified lines | ||
| 58 | 57 | This ioctl call asks the Video Device to return the number of displayed |
| 59 | 58 | frames since the decoder was started. |
| 60 | 59 | |
| 61 | − | |
| 62 | 60 | Return Value |
| 63 | 61 | ------------ |
| 64 | 62 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_GET_PTS: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_GET_PTS · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, VIDEO_GET_PTS, __u64 *pts) | |
| 20 | − :name: VIDEO_GET_PTS | |
| 20 | +.. c:macro:: VIDEO_GET_PTS | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, VIDEO_GET_PTS, __u64 *pts)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -51,7 +51,6 @@ Arguments · 17 unmodified lines | ||
| 51 | 51 | but may also be a value close to it like the PTS of the last |
| 52 | 52 | decoded frame or the last PTS extracted by the PES parser. |
| 53 | 53 | |
| 54 | − | |
| 55 | 54 | Description |
| 56 | 55 | ----------- |
| 57 | 56 | |
| @@ -62,7 +61,6 @@ control. · 4 unmodified lines | ||
| 62 | 61 | This ioctl call asks the Video Device to return the current PTS |
| 63 | 62 | timestamp. |
| 64 | 63 | |
| 65 | − | |
| 66 | 64 | Return Value |
| 67 | 65 | ------------ |
| 68 | 66 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_GET_SIZE: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_GET_SIZE · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, VIDEO_GET_SIZE, video_size_t *size) | |
| 20 | − :name: VIDEO_GET_SIZE | |
| 20 | +.. c:macro:: VIDEO_GET_SIZE | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, VIDEO_GET_SIZE, video_size_t *size)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -46,7 +46,6 @@ Arguments · 12 unmodified lines | ||
| 46 | 46 | |
| 47 | 47 | - Returns the size and aspect ratio. |
| 48 | 48 | |
| 49 | − | |
| 50 | 49 | Description |
| 51 | 50 | ----------- |
| 52 | 51 | |
| @@ -62,7 +61,6 @@ This ioctl returns the size and aspect ratio. · 9 unmodified lines | ||
| 62 | 61 | video_format_t aspect_ratio; |
| 63 | 62 | } video_size_t; |
| 64 | 63 | |
| 65 | − | |
| 66 | 64 | Return Value |
| 67 | 65 | ------------ |
| 68 | 66 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_GET_STATUS: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_GET_STATUS · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_GET_STATUS, struct video_status *status) | |
| 20 | − :name: VIDEO_GET_STATUS | |
| 20 | +.. c:macro:: VIDEO_GET_STATUS | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_GET_STATUS, struct video_status *status)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -46,7 +46,6 @@ Arguments · 12 unmodified lines | ||
| 46 | 46 | |
| 47 | 47 | - Returns the current status of the Video Device. |
| 48 | 48 | |
| 49 | − | |
| 50 | 49 | Description |
| 51 | 50 | ----------- |
| 52 | 51 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_PLAY: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_PLAY · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_PLAY) | |
| 20 | − :name: VIDEO_PLAY | |
| 20 | +.. c:macro:: VIDEO_PLAY | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_PLAY)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -40,7 +40,6 @@ Arguments · 6 unmodified lines | ||
| 40 | 40 | |
| 41 | 41 | - Equals VIDEO_PLAY for this command. |
| 42 | 42 | |
| 43 | − | |
| 44 | 43 | Description |
| 45 | 44 | ----------- |
| 46 | 45 | |
| @@ -50,7 +49,6 @@ V4L2 :ref:`VIDIOC_DECODER_CMD` instead. · 3 unmodified lines | ||
| 50 | 49 | This ioctl call asks the Video Device to start playing a video stream |
| 51 | 50 | from the selected source. |
| 52 | 51 | |
| 53 | − | |
| 54 | 52 | Return Value |
| 55 | 53 | ------------ |
| 56 | 54 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_SELECT_SOURCE: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_SELECT_SOURCE · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_SELECT_SOURCE, video_stream_source_t source) | |
| 20 | − :name: VIDEO_SELECT_SOURCE | |
| 20 | +.. c:macro:: VIDEO_SELECT_SOURCE | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_SELECT_SOURCE, video_stream_source_t source)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -46,7 +46,6 @@ Arguments · 12 unmodified lines | ||
| 46 | 46 | |
| 47 | 47 | - Indicates which source shall be used for the Video stream. |
| 48 | 48 | |
| 49 | − | |
| 50 | 49 | Description |
| 51 | 50 | ----------- |
| 52 | 51 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_SET_BLANK: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_SET_BLANK · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_SET_BLANK, boolean mode) | |
| 20 | − :name: VIDEO_SET_BLANK | |
| 20 | +.. c:macro:: VIDEO_SET_BLANK | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_SET_BLANK, boolean mode)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -51,13 +51,11 @@ Arguments · 17 unmodified lines | ||
| 51 | 51 | - |
| 52 | 52 | - FALSE: Show last decoded frame. |
| 53 | 53 | |
| 54 | − | |
| 55 | 54 | Description |
| 56 | 55 | ----------- |
| 57 | 56 | |
| 58 | 57 | This ioctl call asks the Video Device to blank out the picture. |
| 59 | 58 | |
| 60 | − | |
| 61 | 59 | Return Value |
| 62 | 60 | ------------ |
| 63 | 61 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_SET_DISPLAY_FORMAT: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_SET_DISPLAY_FORMAT · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_SET_DISPLAY_FORMAT) | |
| 20 | − :name: VIDEO_SET_DISPLAY_FORMAT | |
| 20 | +.. c:macro:: VIDEO_SET_DISPLAY_FORMAT | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_SET_DISPLAY_FORMAT)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -46,14 +46,12 @@ Arguments · 12 unmodified lines | ||
| 46 | 46 | |
| 47 | 47 | - Selects the video format to be used. |
| 48 | 48 | |
| 49 | − | |
| 50 | 49 | Description |
| 51 | 50 | ----------- |
| 52 | 51 | |
| 53 | 52 | This ioctl call asks the Video Device to select the video format to be |
| 54 | 53 | applied by the MPEG chip on the video. |
| 55 | 54 | |
| 56 | − | |
| 57 | 55 | Return Value |
| 58 | 56 | ------------ |
| 59 | 57 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_SET_FORMAT: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_SET_FORMAT · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_SET_FORMAT, video_format_t format) | |
| 20 | − :name: VIDEO_SET_FORMAT | |
| 20 | +.. c:macro:: VIDEO_SET_FORMAT | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_SET_FORMAT, video_format_t format)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -46,7 +46,6 @@ Arguments · 12 unmodified lines | ||
| 46 | 46 | |
| 47 | 47 | - video format of TV as defined in section ??. |
| 48 | 48 | |
| 49 | − | |
| 50 | 49 | Description |
| 51 | 50 | ----------- |
| 52 | 51 | |
| @@ -72,12 +71,10 @@ appropriately. The generic error codes are described at the · 19 unmodified lines | ||
| 72 | 71 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| 73 | 72 | |
| 74 | 73 | |
| 75 | − | |
| 76 | 74 | .. flat-table:: |
| 77 | 75 | :header-rows: 0 |
| 78 | 76 | :stub-columns: 0 |
| 79 | 77 | |
| 80 | − | |
| 81 | 78 | - .. row 1 |
| 82 | 79 | |
| 83 | 80 | - ``EINVAL`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_SET_STREAMTYPE: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_SET_STREAMTYPE · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_SET_STREAMTYPE, int type) | |
| 20 | − :name: VIDEO_SET_STREAMTYPE | |
| 20 | +.. c:macro:: VIDEO_SET_STREAMTYPE | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_SET_STREAMTYPE, int type)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -46,7 +46,6 @@ Arguments · 12 unmodified lines | ||
| 46 | 46 | |
| 47 | 47 | - stream type |
| 48 | 48 | |
| 49 | − | |
| 50 | 49 | Description |
| 51 | 50 | ----------- |
| 52 | 51 | |
| @@ -54,7 +53,6 @@ This ioctl tells the driver which kind of stream to expect being written · 1 unmodified line | ||
| 54 | 53 | to it. If this call is not used the default of video PES is used. Some |
| 55 | 54 | drivers might not support this call and always expect PES. |
| 56 | 55 | |
| 57 | − | |
| 58 | 56 | Return Value |
| 59 | 57 | ------------ |
| 60 | 58 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_SLOWMOTION: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_SLOWMOTION · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_SLOWMOTION, int nFrames) | |
| 20 | − :name: VIDEO_SLOWMOTION | |
| 20 | +.. c:macro:: VIDEO_SLOWMOTION | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_SLOWMOTION, int nFrames)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -46,7 +46,6 @@ Arguments · 12 unmodified lines | ||
| 46 | 46 | |
| 47 | 47 | - The number of times to repeat each frame. |
| 48 | 48 | |
| 49 | − | |
| 50 | 49 | Description |
| 51 | 50 | ----------- |
| 52 | 51 | |
| @@ -54,7 +53,6 @@ This ioctl call asks the video device to repeat decoding frames N number · 1 unmodified line | ||
| 54 | 53 | of times. This call can only be used if VIDEO_SOURCE_MEMORY is |
| 55 | 54 | selected. |
| 56 | 55 | |
| 57 | − | |
| 58 | 56 | Return Value |
| 59 | 57 | ------------ |
| 60 | 58 | |
| @@ -63,12 +61,10 @@ appropriately. The generic error codes are described at the · 2 unmodified lines | ||
| 63 | 61 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| 64 | 62 | |
| 65 | 63 | |
| 66 | − | |
| 67 | 64 | .. flat-table:: |
| 68 | 65 | :header-rows: 0 |
| 69 | 66 | :stub-columns: 0 |
| 70 | 67 | |
| 71 | − | |
| 72 | 68 | - .. row 1 |
| 73 | 69 | |
| 74 | 70 | - ``EPERM`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_STILLPICTURE: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_STILLPICTURE · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_STILLPICTURE, struct video_still_picture *sp) | |
| 20 | − :name: VIDEO_STILLPICTURE | |
| 20 | +.. c:macro:: VIDEO_STILLPICTURE | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_STILLPICTURE, struct video_still_picture *sp)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -46,7 +46,6 @@ Arguments · 12 unmodified lines | ||
| 46 | 46 | |
| 47 | 47 | - Pointer to a location where an I-frame and size is stored. |
| 48 | 48 | |
| 49 | − | |
| 50 | 49 | Description |
| 51 | 50 | ----------- |
| 52 | 51 | |
| @@ -54,7 +53,6 @@ This ioctl call asks the Video Device to display a still picture · 1 unmodified line | ||
| 54 | 53 | (I-frame). The input data shall contain an I-frame. If the pointer is |
| 55 | 54 | NULL, then the current displayed still picture is blanked. |
| 56 | 55 | |
| 57 | − | |
| 58 | 56 | Return Value |
| 59 | 57 | ------------ |
| 60 | 58 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_STOP: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_STOP · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(fd, VIDEO_STOP, boolean mode) | |
| 20 | − :name: VIDEO_STOP | |
| 20 | +.. c:macro:: VIDEO_STOP | |
| 21 | 21 | |
| 22 | +``int ioctl(fd, VIDEO_STOP, boolean mode)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -56,7 +56,6 @@ Arguments · 22 unmodified lines | ||
| 56 | 56 | - |
| 57 | 57 | - FALSE: Show last decoded frame. |
| 58 | 58 | |
| 59 | − | |
| 60 | 59 | Description |
| 61 | 60 | ----------- |
| 62 | 61 | |
| @@ -67,7 +66,6 @@ This ioctl call asks the Video Device to stop playing the current · 4 unmodified lines | ||
| 67 | 66 | stream. Depending on the input parameter, the screen can be blanked out |
| 68 | 67 | or displaying the last decoded frame. |
| 69 | 68 | |
| 70 | − | |
| 71 | 69 | Return Value |
| 72 | 70 | ------------ |
| 73 | 71 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: DTV.video | |
| 2 | 3 | |
| 3 | 4 | .. _VIDEO_TRY_COMMAND: |
| 4 | 5 | |
| @@ -16,9 +17,9 @@ VIDEO_TRY_COMMAND · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | -------- |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl(int fd, VIDEO_TRY_COMMAND, struct video_command *cmd) | |
| 20 | − :name: VIDEO_TRY_COMMAND | |
| 20 | +.. c:macro:: VIDEO_TRY_COMMAND | |
| 21 | 21 | |
| 22 | +``int ioctl(int fd, VIDEO_TRY_COMMAND, struct video_command *cmd)`` | |
| 22 | 23 | |
| 23 | 24 | Arguments |
| 24 | 25 | --------- |
| @@ -27,7 +28,6 @@ Arguments · 2 unmodified lines | ||
| 27 | 28 | :header-rows: 0 |
| 28 | 29 | :stub-columns: 0 |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | - .. row 1 |
| 32 | 32 | |
| 33 | 33 | - int fd |
| @@ -46,7 +46,6 @@ Arguments · 12 unmodified lines | ||
| 46 | 46 | |
| 47 | 47 | - Try a decoder command. |
| 48 | 48 | |
| 49 | − | |
| 50 | 49 | Description |
| 51 | 50 | ----------- |
| 52 | 51 | |
| @@ -59,7 +58,6 @@ subset of the ``v4l2_decoder_cmd`` struct, so refer to the · 6 unmodified lines | ||
| 59 | 58 | :ref:`VIDIOC_TRY_DECODER_CMD <VIDIOC_DECODER_CMD>` documentation |
| 60 | 59 | for more information. |
| 61 | 60 | |
| 62 | − | |
| 63 | 61 | Return Value |
| 64 | 62 | ------------ |
| 65 | 63 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC | |
| 2 | 3 | |
| 3 | 4 | .. _media-func-close: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | media-close - Close a media device |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,16 +19,13 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: int close( int fd ) |
| 24 | − :name: mc-close | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| 28 | 26 | |
| 29 | 27 | ``fd`` |
| 30 | − File descriptor returned by :c:func:`open() <mc-open>`. | |
| 31 | − | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 32 | 29 | |
| 33 | 30 | Description |
| 34 | 31 | =========== |
| @@ -36,11 +33,10 @@ Description · 1 unmodified line | ||
| 36 | 33 | Closes the media device. Resources associated with the file descriptor |
| 37 | 34 | are freed. The device configuration remain unchanged. |
| 38 | 35 | |
| 39 | − | |
| 40 | 36 | Return Value |
| 41 | 37 | ============ |
| 42 | 38 | |
| 43 | −:ref:`close() <media-func-close>` returns 0 on success. On error, -1 is returned, and | |
| 39 | +:c:func:`close()` returns 0 on success. On error, -1 is returned, and | |
| 44 | 40 | ``errno`` is set appropriately. Possible error codes are: |
| 45 | 41 | |
| 46 | 42 | EBADF |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC | |
| 2 | 3 | |
| 3 | 4 | .. _media-func-ioctl: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | media-ioctl - Control a media device |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,15 +19,13 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <sys/ioctl.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | −.. c:function:: int ioctl( int fd, int request, void *argp ) | |
| 24 | − :name: mc-ioctl | |
| 22 | +``int ioctl(int fd, int request, void *argp)`` | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| 28 | 26 | |
| 29 | 27 | ``fd`` |
| 30 | − File descriptor returned by :c:func:`open() <mc-open>`. | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 31 | 29 | |
| 32 | 30 | ``request`` |
| 33 | 31 | Media ioctl request code as defined in the media.h header file, for |
| @@ -36,7 +34,6 @@ Arguments · 2 unmodified lines | ||
| 36 | 34 | ``argp`` |
| 37 | 35 | Pointer to a request-specific structure. |
| 38 | 36 | |
| 39 | − | |
| 40 | 37 | Description |
| 41 | 38 | =========== |
| 42 | 39 | |
| @@ -52,7 +49,6 @@ their parameters are located in the media.h header file. All media ioctl · 9 unmodified lines | ||
| 52 | 49 | requests, their respective function and parameters are specified in |
| 53 | 50 | :ref:`media-user-func`. |
| 54 | 51 | |
| 55 | − | |
| 56 | 52 | Return Value |
| 57 | 53 | ============ |
| 58 | 54 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC | |
| 2 | 3 | |
| 3 | 4 | .. _media-func-open: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | media-open - Open a media device |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,9 +19,7 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <fcntl.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: int open( const char *device_name, int flags ) |
| 24 | − :name: mc-open | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| @@ -33,11 +31,10 @@ Arguments · 5 unmodified lines | ||
| 33 | 31 | Open flags. Access mode must be either ``O_RDONLY`` or ``O_RDWR``. |
| 34 | 32 | Other flags have no effect. |
| 35 | 33 | |
| 36 | − | |
| 37 | 34 | Description |
| 38 | 35 | =========== |
| 39 | 36 | |
| 40 | −To open a media device applications call :ref:`open() <media-func-open>` with the | |
| 37 | +To open a media device applications call :c:func:`open()` with the | |
| 41 | 38 | desired device name. The function has no side effects; the device |
| 42 | 39 | configuration remain unchanged. |
| 43 | 40 | |
| @@ -45,11 +42,10 @@ When the device is opened in read-only mode, attempts to modify its · 1 unmodified line | ||
| 45 | 42 | configuration will result in an error, and ``errno`` will be set to |
| 46 | 43 | EBADF. |
| 47 | 44 | |
| 48 | − | |
| 49 | 45 | Return Value |
| 50 | 46 | ============ |
| 51 | 47 | |
| 52 | −:ref:`open() <func-open>` returns the new file descriptor on success. On error, | |
| 48 | +:c:func:`open()` returns the new file descriptor on success. On error, | |
| 53 | 49 | -1 is returned, and ``errno`` is set appropriately. Possible error codes |
| 54 | 50 | are: |
| 55 | 51 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC | |
| 2 | 3 | |
| 3 | 4 | .. _media_ioc_device_info: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | MEDIA_IOC_DEVICE_INFO - Query device information |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, MEDIA_IOC_DEVICE_INFO, struct media_device_info *argp ) | |
| 19 | − :name: MEDIA_IOC_DEVICE_INFO | |
| 18 | +.. c:macro:: MEDIA_IOC_DEVICE_INFO | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, MEDIA_IOC_DEVICE_INFO, struct media_device_info *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <media-func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`media_device_info`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -38,7 +37,6 @@ a struct :c:type:`media_device_info`. The driver · 3 unmodified lines | ||
| 38 | 37 | fills the structure and returns the information to the application. The |
| 39 | 38 | ioctl never fails. |
| 40 | 39 | |
| 41 | − | |
| 42 | 40 | .. c:type:: media_device_info |
| 43 | 41 | |
| 44 | 42 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -48,7 +46,6 @@ ioctl never fails. · 3 unmodified lines | ||
| 48 | 46 | :stub-columns: 0 |
| 49 | 47 | :widths: 1 1 2 |
| 50 | 48 | |
| 51 | − | |
| 52 | 49 | * - char |
| 53 | 50 | - ``driver``\ [16] |
| 54 | 51 | - Name of the driver implementing the media API as a NUL-terminated |
| @@ -94,7 +91,6 @@ ioctl never fails. · 39 unmodified lines | ||
| 94 | 91 | - Reserved for future extensions. Drivers and applications must set |
| 95 | 92 | this array to zero. |
| 96 | 93 | |
| 97 | − | |
| 98 | 94 | The ``serial`` and ``bus_info`` fields can be used to distinguish |
| 99 | 95 | between multiple instances of otherwise identical hardware. The serial |
| 100 | 96 | number takes precedence when provided and can be assumed to be unique. |
| @@ -102,7 +98,6 @@ If the serial number is an empty string, the ``bus_info`` field can be · 1 unmodified line | ||
| 102 | 98 | used instead. The ``bus_info`` field is guaranteed to be unique, but can |
| 103 | 99 | vary across reboots or device unplug/replug. |
| 104 | 100 | |
| 105 | − | |
| 106 | 101 | Return Value |
| 107 | 102 | ============ |
| 108 | 103 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC | |
| 2 | 3 | |
| 3 | 4 | .. _media_ioc_enum_entities: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | MEDIA_IOC_ENUM_ENTITIES - Enumerate entities and their properties |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, MEDIA_IOC_ENUM_ENTITIES, struct media_entity_desc *argp ) | |
| 19 | − :name: MEDIA_IOC_ENUM_ENTITIES | |
| 18 | +.. c:macro:: MEDIA_IOC_ENUM_ENTITIES | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, MEDIA_IOC_ENUM_ENTITIES, struct media_entity_desc *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <media-func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`media_entity_desc`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -49,7 +48,6 @@ Entity IDs can be non-contiguous. Applications must *not* try to · 14 unmodified lines | ||
| 49 | 48 | enumerate entities by calling MEDIA_IOC_ENUM_ENTITIES with increasing |
| 50 | 49 | id's until they get an error. |
| 51 | 50 | |
| 52 | − | |
| 53 | 51 | .. c:type:: media_entity_desc |
| 54 | 52 | |
| 55 | 53 | .. tabularcolumns:: |p{1.5cm}|p{1.7cm}|p{1.6cm}|p{1.5cm}|p{11.2cm}| |
| @@ -136,7 +134,6 @@ id's until they get an error. · 80 unmodified lines | ||
| 136 | 134 | * - } |
| 137 | 135 | - |
| 138 | 136 | |
| 139 | − | |
| 140 | 137 | Return Value |
| 141 | 138 | ============ |
| 142 | 139 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC | |
| 2 | 3 | |
| 3 | 4 | .. _media_ioc_enum_links: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | MEDIA_IOC_ENUM_LINKS - Enumerate all pads and links for a given entity |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, MEDIA_IOC_ENUM_LINKS, struct media_links_enum *argp ) | |
| 19 | − :name: MEDIA_IOC_ENUM_LINKS | |
| 18 | +.. c:macro:: MEDIA_IOC_ENUM_LINKS | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, MEDIA_IOC_ENUM_LINKS, struct media_links_enum *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <media-func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`media_links_enum`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -53,7 +52,6 @@ outbound links can be retrieved with :ref:`MEDIA_IOC_ENUM_ENTITIES`. · 18 unmodified lines | ||
| 53 | 52 | Only forward links that originate at one of the entity's source pads are |
| 54 | 53 | returned during the enumeration process. |
| 55 | 54 | |
| 56 | − | |
| 57 | 55 | .. c:type:: media_links_enum |
| 58 | 56 | |
| 59 | 57 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -82,7 +80,6 @@ returned during the enumeration process. · 22 unmodified lines | ||
| 82 | 80 | - Reserved for future extensions. Drivers and applications must set |
| 83 | 81 | the array to zero. |
| 84 | 82 | |
| 85 | − | |
| 86 | 83 | .. c:type:: media_pad_desc |
| 87 | 84 | |
| 88 | 85 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -110,7 +107,6 @@ returned during the enumeration process. · 21 unmodified lines | ||
| 110 | 107 | the array to zero. |
| 111 | 108 | |
| 112 | 109 | |
| 113 | − | |
| 114 | 110 | .. c:type:: media_link_desc |
| 115 | 111 | |
| 116 | 112 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -137,7 +133,6 @@ returned during the enumeration process. · 20 unmodified lines | ||
| 137 | 133 | - Reserved for future extensions. Drivers and applications must set |
| 138 | 134 | the array to zero. |
| 139 | 135 | |
| 140 | − | |
| 141 | 136 | Return Value |
| 142 | 137 | ============ |
| 143 | 138 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC | |
| 2 | 3 | |
| 3 | 4 | .. _media_ioc_g_topology: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | MEDIA_IOC_G_TOPOLOGY - Enumerate the graph topology and graph element properties |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, MEDIA_IOC_G_TOPOLOGY, struct media_v2_topology *argp ) | |
| 19 | − :name: MEDIA_IOC_G_TOPOLOGY | |
| 18 | +.. c:macro:: MEDIA_IOC_G_TOPOLOGY | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, MEDIA_IOC_G_TOPOLOGY, struct media_v2_topology *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <media-func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`media_v2_topology`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -120,7 +119,6 @@ desired arrays with the media graph elements. · 85 unmodified lines | ||
| 120 | 119 | converted to a 64-bits integer. It can be zero. if zero, the ioctl |
| 121 | 120 | won't store the links. It will just update ``num_links`` |
| 122 | 121 | |
| 123 | − | |
| 124 | 122 | .. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}| |
| 125 | 123 | |
| 126 | 124 | .. c:type:: media_v2_entity |
| @@ -158,7 +156,6 @@ desired arrays with the media graph elements. · 31 unmodified lines | ||
| 158 | 156 | - Reserved for future extensions. Drivers and applications must set |
| 159 | 157 | this array to zero. |
| 160 | 158 | |
| 161 | − | |
| 162 | 159 | .. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}| |
| 163 | 160 | |
| 164 | 161 | .. c:type:: media_v2_interface |
| @@ -192,7 +189,6 @@ desired arrays with the media graph elements. · 27 unmodified lines | ||
| 192 | 189 | - Used only for device node interfaces. See |
| 193 | 190 | :c:type:`media_v2_intf_devnode` for details. |
| 194 | 191 | |
| 195 | − | |
| 196 | 192 | .. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}| |
| 197 | 193 | |
| 198 | 194 | .. c:type:: media_v2_intf_devnode |
| @@ -245,7 +241,6 @@ desired arrays with the media graph elements. · 46 unmodified lines | ||
| 245 | 241 | - Reserved for future extensions. Drivers and applications must set |
| 246 | 242 | this array to zero. |
| 247 | 243 | |
| 248 | − | |
| 249 | 244 | .. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}| |
| 250 | 245 | |
| 251 | 246 | .. c:type:: media_v2_link |
| @@ -282,7 +277,6 @@ desired arrays with the media graph elements. · 30 unmodified lines | ||
| 282 | 277 | - Reserved for future extensions. Drivers and applications must set |
| 283 | 278 | this array to zero. |
| 284 | 279 | |
| 285 | − | |
| 286 | 280 | Return Value |
| 287 | 281 | ============ |
| 288 | 282 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC | |
| 2 | 3 | |
| 3 | 4 | .. _media_ioc_request_alloc: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | MEDIA_IOC_REQUEST_ALLOC - Allocate a request |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, MEDIA_IOC_REQUEST_ALLOC, int *argp ) | |
| 19 | − :name: MEDIA_IOC_REQUEST_ALLOC | |
| 18 | +.. c:macro:: MEDIA_IOC_REQUEST_ALLOC | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, MEDIA_IOC_REQUEST_ALLOC, int *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <media-func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to an integer. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -51,7 +50,7 @@ Finally, the file descriptor can be :ref:`polled <request-func-poll>` to wait · 16 unmodified lines | ||
| 51 | 50 | for the request to complete. |
| 52 | 51 | |
| 53 | 52 | The request will remain allocated until all the file descriptors associated |
| 54 | −with it are closed by :ref:`close() <request-func-close>` and the driver no | |
| 53 | +with it are closed by :c:func:`close()` and the driver no | |
| 55 | 54 | longer uses the request internally. See also |
| 56 | 55 | :ref:`here <media-request-life-time>` for more information. |
| 57 | 56 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC | |
| 2 | 3 | |
| 3 | 4 | .. _media_ioc_setup_link: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | MEDIA_IOC_SETUP_LINK - Modify the properties of a link |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, MEDIA_IOC_SETUP_LINK, struct media_link_desc *argp ) | |
| 19 | − :name: MEDIA_IOC_SETUP_LINK | |
| 18 | +.. c:macro:: MEDIA_IOC_SETUP_LINK | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, MEDIA_IOC_SETUP_LINK, struct media_link_desc *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <media-func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`media_link_desc`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -53,7 +52,6 @@ non-dynamic link will return an ``EBUSY`` error code. · 18 unmodified lines | ||
| 53 | 52 | If the specified link can't be found the driver returns with an ``EINVAL`` |
| 54 | 53 | error code. |
| 55 | 54 | |
| 56 | − | |
| 57 | 55 | Return Value |
| 58 | 56 | ============ |
| 59 | 57 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC | |
| 2 | 3 | |
| 3 | 4 | .. _media_request_ioc_queue: |
| 4 | 5 | |
| @@ -11,13 +12,12 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | MEDIA_REQUEST_IOC_QUEUE - Queue a request |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int request_fd, MEDIA_REQUEST_IOC_QUEUE ) | |
| 19 | − :name: MEDIA_REQUEST_IOC_QUEUE | |
| 18 | +.. c:macro:: MEDIA_REQUEST_IOC_QUEUE | |
| 20 | 19 | |
| 20 | +``int ioctl(int request_fd, MEDIA_REQUEST_IOC_QUEUE)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| @@ -25,7 +25,6 @@ Arguments · 1 unmodified line | ||
| 25 | 25 | ``request_fd`` |
| 26 | 26 | File descriptor returned by :ref:`MEDIA_IOC_REQUEST_ALLOC`. |
| 27 | 27 | |
| 28 | − | |
| 29 | 28 | Description |
| 30 | 29 | =========== |
| 31 | 30 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC | |
| 2 | 3 | |
| 3 | 4 | .. _media_request_ioc_reinit: |
| 4 | 5 | |
| @@ -11,13 +12,12 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | MEDIA_REQUEST_IOC_REINIT - Re-initialize a request |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int request_fd, MEDIA_REQUEST_IOC_REINIT ) | |
| 19 | − :name: MEDIA_REQUEST_IOC_REINIT | |
| 18 | +.. c:macro:: MEDIA_REQUEST_IOC_REINIT | |
| 20 | 19 | |
| 20 | +``int ioctl(int request_fd, MEDIA_REQUEST_IOC_REINIT)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| @@ -33,7 +33,7 @@ this request ioctl can be used to re-initialize a previously allocated · 9 unmodified lines | ||
| 33 | 33 | request. |
| 34 | 34 | |
| 35 | 35 | Re-initializing a request will clear any existing data from the request. |
| 36 | −This avoids having to :ref:`close() <request-func-close>` a completed | |
| 36 | +This avoids having to :c:func:`close()` a completed | |
| 37 | 37 | request and allocate a new request. Instead the completed request can just |
| 38 | 38 | be re-initialized and it is ready to be used again. |
| 39 | 39 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC | |
| 2 | 3 | |
| 3 | 4 | .. _media-request-api: |
| 4 | 5 | |
| @@ -93,7 +94,7 @@ regardless of whether a request is in use or not. · 88 unmodified lines | ||
| 93 | 94 | Setting the same control through a request and also directly can lead to |
| 94 | 95 | undefined behavior! |
| 95 | 96 | |
| 96 | −User-space can :ref:`poll() <request-func-poll>` a request file descriptor in | |
| 97 | +User-space can :c:func:`poll()` a request file descriptor in | |
| 97 | 98 | order to wait until the request completes. A request is considered complete |
| 98 | 99 | once all its associated buffers are available for dequeuing and all the |
| 99 | 100 | associated controls have been updated with the values at the time of completion. |
| @@ -115,7 +116,7 @@ Recycling and Destruction · 15 unmodified lines | ||
| 115 | 116 | ------------------------- |
| 116 | 117 | |
| 117 | 118 | Finally, a completed request can either be discarded or be reused. Calling |
| 118 | −:ref:`close() <request-func-close>` on a request file descriptor will make | |
| 119 | +:c:func:`close()` on a request file descriptor will make | |
| 119 | 120 | that file descriptor unusable and the request will be freed once it is no |
| 120 | 121 | longer in use by the kernel. That is, if the request is queued and then the |
| 121 | 122 | file descriptor is closed, then it won't be freed until the driver completed |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC.request | |
| 2 | 3 | |
| 3 | 4 | .. _request-func-close: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | request-close - Close a request file descriptor |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,9 +19,7 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: int close( int fd ) |
| 24 | − :name: req-close | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| @@ -29,7 +27,6 @@ Arguments · 1 unmodified line | ||
| 29 | 27 | ``fd`` |
| 30 | 28 | File descriptor returned by :ref:`MEDIA_IOC_REQUEST_ALLOC`. |
| 31 | 29 | |
| 32 | − | |
| 33 | 30 | Description |
| 34 | 31 | =========== |
| 35 | 32 | |
| @@ -38,11 +35,10 @@ are freed once all file descriptors associated with the request are closed · 2 unmodified lines | ||
| 38 | 35 | and the driver has completed the request. |
| 39 | 36 | See :ref:`here <media-request-life-time>` for more information. |
| 40 | 37 | |
| 41 | − | |
| 42 | 38 | Return Value |
| 43 | 39 | ============ |
| 44 | 40 | |
| 45 | −:ref:`close() <request-func-close>` returns 0 on success. On error, -1 is | |
| 41 | +:c:func:`close()` returns 0 on success. On error, -1 is | |
| 46 | 42 | returned, and ``errno`` is set appropriately. Possible error codes are: |
| 47 | 43 | |
| 48 | 44 | EBADF |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC | |
| 2 | 3 | |
| 3 | 4 | .. _request-func-ioctl: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | request-ioctl - Control a request file descriptor |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,9 +19,7 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <sys/ioctl.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | −.. c:function:: int ioctl( int fd, int cmd, void *argp ) | |
| 24 | − :name: req-ioctl | |
| 22 | +``int ioctl(int fd, int cmd, void *argp)`` | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| @@ -36,7 +34,6 @@ Arguments · 8 unmodified lines | ||
| 36 | 34 | ``argp`` |
| 37 | 35 | Pointer to a request-specific structure. |
| 38 | 36 | |
| 39 | − | |
| 40 | 37 | Description |
| 41 | 38 | =========== |
| 42 | 39 | |
| @@ -52,7 +49,6 @@ their parameters are located in the media.h header file. All request ioctl · 9 unmodified lines | ||
| 52 | 49 | commands, their respective function and parameters are specified in |
| 53 | 50 | :ref:`media-user-func`. |
| 54 | 51 | |
| 55 | − | |
| 56 | 52 | Return Value |
| 57 | 53 | ============ |
| 58 | 54 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: MC | |
| 2 | 3 | |
| 3 | 4 | .. _request-func-poll: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | request-poll - Wait for some event on a file descriptor |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,9 +19,7 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <sys/poll.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: int poll( struct pollfd *ufds, unsigned int nfds, int timeout ) |
| 24 | − :name: request-poll | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| @@ -35,14 +33,13 @@ Arguments · 7 unmodified lines | ||
| 35 | 33 | ``timeout`` |
| 36 | 34 | Timeout to wait for events |
| 37 | 35 | |
| 38 | − | |
| 39 | 36 | Description |
| 40 | 37 | =========== |
| 41 | 38 | |
| 42 | −With the :c:func:`poll() <request-func-poll>` function applications can wait | |
| 39 | +With the :c:func:`poll()` function applications can wait | |
| 43 | 40 | for a request to complete. |
| 44 | 41 | |
| 45 | −On success :c:func:`poll() <request-func-poll>` returns the number of file | |
| 42 | +On success :c:func:`poll()` returns the number of file | |
| 46 | 43 | descriptors that have been selected (that is, file descriptors for which the |
| 47 | 44 | ``revents`` field of the respective struct :c:type:`pollfd` |
| 48 | 45 | is non-zero). Request file descriptor set the ``POLLPRI`` flag in ``revents`` |
| @@ -53,11 +50,10 @@ set appropriately. · 4 unmodified lines | ||
| 53 | 50 | Attempting to poll for a request that is not yet queued will |
| 54 | 51 | set the ``POLLERR`` flag in ``revents``. |
| 55 | 52 | |
| 56 | − | |
| 57 | 53 | Return Value |
| 58 | 54 | ============ |
| 59 | 55 | |
| 60 | −On success, :c:func:`poll() <request-func-poll>` returns the number of | |
| 56 | +On success, :c:func:`poll()` returns the number of | |
| 61 | 57 | structures which have non-zero ``revents`` fields, or zero if the call |
| 62 | 58 | timed out. On error -1 is returned, and the ``errno`` variable is set |
| 63 | 59 | appropriately: |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc_get_features: |
| 4 | 5 | |
| @@ -14,8 +15,9 @@ LIRC_GET_FEATURES - Get the underlying hardware device's features · 9 unmodified lines | ||
| 14 | 15 | Synopsis |
| 15 | 16 | ======== |
| 16 | 17 | |
| 17 | −.. c:function:: int ioctl( int fd, LIRC_GET_FEATURES, __u32 *features) | |
| 18 | − :name: LIRC_GET_FEATURES | |
| 18 | +.. c:macro:: LIRC_GET_FEATURES | |
| 19 | + | |
| 20 | +``int ioctl(int fd, LIRC_GET_FEATURES, __u32 *features)`` | |
| 19 | 21 | |
| 20 | 22 | Arguments |
| 21 | 23 | ========= |
| @@ -26,11 +28,9 @@ Arguments · 4 unmodified lines | ||
| 26 | 28 | ``features`` |
| 27 | 29 | Bitmask with the LIRC features. |
| 28 | 30 | |
| 29 | − | |
| 30 | 31 | Description |
| 31 | 32 | =========== |
| 32 | 33 | |
| 33 | − | |
| 34 | 34 | Get the underlying hardware device's features. If a driver does not |
| 35 | 35 | announce support of certain features, calling of the corresponding ioctls |
| 36 | 36 | is undefined. |
| @@ -184,7 +184,6 @@ LIRC features · 147 unmodified lines | ||
| 184 | 184 | |
| 185 | 185 | Unused. Kept just to avoid breaking uAPI. |
| 186 | 186 | |
| 187 | − | |
| 188 | 187 | Return Value |
| 189 | 188 | ============ |
| 190 | 189 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc_get_rec_mode: |
| 4 | 5 | .. _lirc_set_rec_mode: |
| @@ -15,11 +16,13 @@ LIRC_GET_REC_MODE/LIRC_SET_REC_MODE - Get/set current receive mode. · 10 unmodified lines | ||
| 15 | 16 | Synopsis |
| 16 | 17 | ======== |
| 17 | 18 | |
| 18 | −.. c:function:: int ioctl( int fd, LIRC_GET_REC_MODE, __u32 *mode) | |
| 19 | − :name: LIRC_GET_REC_MODE | |
| 19 | +.. c:macro:: LIRC_GET_REC_MODE | |
| 20 | 20 | |
| 21 | −.. c:function:: int ioctl( int fd, LIRC_SET_REC_MODE, __u32 *mode) | |
| 22 | − :name: LIRC_SET_REC_MODE | |
| 21 | +``int ioctl(int fd, LIRC_GET_REC_MODE, __u32 *mode)`` | |
| 22 | + | |
| 23 | +.. c:macro:: LIRC_SET_REC_MODE | |
| 24 | + | |
| 25 | +``int ioctl(int fd, LIRC_SET_REC_MODE, __u32 *mode)`` | |
| 23 | 26 | |
| 24 | 27 | Arguments |
| 25 | 28 | ========= |
| @@ -47,7 +50,6 @@ Return Value · 21 unmodified lines | ||
| 47 | 50 | :header-rows: 0 |
| 48 | 51 | :stub-columns: 0 |
| 49 | 52 | |
| 50 | − | |
| 51 | 53 | - .. row 1 |
| 52 | 54 | |
| 53 | 55 | - ``ENODEV`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc_get_rec_resolution: |
| 4 | 5 | |
| @@ -14,8 +15,9 @@ LIRC_GET_REC_RESOLUTION - Obtain the value of receive resolution, in microsecond · 9 unmodified lines | ||
| 14 | 15 | Synopsis |
| 15 | 16 | ======== |
| 16 | 17 | |
| 17 | −.. c:function:: int ioctl( int fd, LIRC_GET_REC_RESOLUTION, __u32 *microseconds) | |
| 18 | − :name: LIRC_GET_REC_RESOLUTION | |
| 18 | +.. c:macro:: LIRC_GET_REC_RESOLUTION | |
| 19 | + | |
| 20 | +``int ioctl(int fd, LIRC_GET_REC_RESOLUTION, __u32 *microseconds)`` | |
| 19 | 21 | |
| 20 | 22 | Arguments |
| 21 | 23 | ========= |
| @@ -26,7 +28,6 @@ Arguments · 4 unmodified lines | ||
| 26 | 28 | ``microseconds`` |
| 27 | 29 | Resolution, in microseconds. |
| 28 | 30 | |
| 29 | − | |
| 30 | 31 | Description |
| 31 | 32 | =========== |
| 32 | 33 | |
| @@ -38,7 +39,6 @@ This ioctl returns the integer value with such resolution, with can be · 5 unmodified lines | ||
| 38 | 39 | used by userspace applications like lircd to automatically adjust the |
| 39 | 40 | tolerance value. |
| 40 | 41 | |
| 41 | − | |
| 42 | 42 | Return Value |
| 43 | 43 | ============ |
| 44 | 44 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc_get_send_mode: |
| 4 | 5 | .. _lirc_set_send_mode: |
| @@ -15,11 +16,13 @@ LIRC_GET_SEND_MODE/LIRC_SET_SEND_MODE - Get/set current transmit mode. · 10 unmodified lines | ||
| 15 | 16 | Synopsis |
| 16 | 17 | ======== |
| 17 | 18 | |
| 18 | −.. c:function:: int ioctl( int fd, LIRC_GET_SEND_MODE, __u32 *mode ) | |
| 19 | − :name: LIRC_GET_SEND_MODE | |
| 19 | +.. c:macro:: LIRC_GET_SEND_MODE | |
| 20 | 20 | |
| 21 | −.. c:function:: int ioctl( int fd, LIRC_SET_SEND_MODE, __u32 *mode ) | |
| 22 | − :name: LIRC_SET_SEND_MODE | |
| 21 | +``int ioctl(int fd, LIRC_GET_SEND_MODE, __u32 *mode)`` | |
| 22 | + | |
| 23 | +.. c:macro:: LIRC_SET_SEND_MODE | |
| 24 | + | |
| 25 | +``int ioctl(int fd, LIRC_SET_SEND_MODE, __u32 *mode)`` | |
| 23 | 26 | |
| 24 | 27 | Arguments |
| 25 | 28 | ========= |
| @@ -30,7 +33,6 @@ Arguments · 4 unmodified lines | ||
| 30 | 33 | ``mode`` |
| 31 | 34 | The mode used for transmitting. |
| 32 | 35 | |
| 33 | − | |
| 34 | 36 | Description |
| 35 | 37 | =========== |
| 36 | 38 | |
| @@ -44,14 +46,12 @@ modes the driver supports. · 7 unmodified lines | ||
| 44 | 46 | Return Value |
| 45 | 47 | ============ |
| 46 | 48 | |
| 47 | − | |
| 48 | 49 | .. tabularcolumns:: |p{2.5cm}|p{15.0cm}| |
| 49 | 50 | |
| 50 | 51 | .. flat-table:: |
| 51 | 52 | :header-rows: 0 |
| 52 | 53 | :stub-columns: 0 |
| 53 | 54 | |
| 54 | − | |
| 55 | 55 | - .. row 1 |
| 56 | 56 | |
| 57 | 57 | - ``ENODEV`` |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc_get_min_timeout: |
| 4 | 5 | .. _lirc_get_max_timeout: |
| @@ -16,11 +17,13 @@ range for IR receive. · 11 unmodified lines | ||
| 16 | 17 | Synopsis |
| 17 | 18 | ======== |
| 18 | 19 | |
| 19 | −.. c:function:: int ioctl( int fd, LIRC_GET_MIN_TIMEOUT, __u32 *timeout) | |
| 20 | − :name: LIRC_GET_MIN_TIMEOUT | |
| 20 | +.. c:macro:: LIRC_GET_MIN_TIMEOUT | |
| 21 | 21 | |
| 22 | −.. c:function:: int ioctl( int fd, LIRC_GET_MAX_TIMEOUT, __u32 *timeout) | |
| 23 | − :name: LIRC_GET_MAX_TIMEOUT | |
| 22 | +``int ioctl(int fd, LIRC_GET_MIN_TIMEOUT, __u32 *timeout)`` | |
| 23 | + | |
| 24 | +.. c:macro:: LIRC_GET_MAX_TIMEOUT | |
| 25 | + | |
| 26 | +``int ioctl(int fd, LIRC_GET_MAX_TIMEOUT, __u32 *timeout)`` | |
| 24 | 27 | |
| 25 | 28 | Arguments |
| 26 | 29 | ========= |
| @@ -31,7 +34,6 @@ Arguments · 4 unmodified lines | ||
| 31 | 34 | ``timeout`` |
| 32 | 35 | Timeout, in microseconds. |
| 33 | 36 | |
| 34 | − | |
| 35 | 37 | Description |
| 36 | 38 | =========== |
| 37 | 39 | |
| @@ -47,7 +49,6 @@ that can be set. · 9 unmodified lines | ||
| 47 | 49 | both ioctls will return the same value even though the timeout |
| 48 | 50 | cannot be changed via :ref:`LIRC_SET_REC_TIMEOUT`. |
| 49 | 51 | |
| 50 | − | |
| 51 | 52 | Return Value |
| 52 | 53 | ============ |
| 53 | 54 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc-read: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | lirc-read - Read from a LIRC device |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,10 +19,7 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: ssize_t read( int fd, void *buf, size_t count ) |
| 24 | − :name: lirc-read | |
| 25 | − | |
| 26 | 23 | |
| 27 | 24 | Arguments |
| 28 | 25 | ========= |
| @@ -39,9 +36,9 @@ Arguments · 10 unmodified lines | ||
| 39 | 36 | Description |
| 40 | 37 | =========== |
| 41 | 38 | |
| 42 | −:ref:`read() <lirc-read>` attempts to read up to ``count`` bytes from file | |
| 39 | +:c:func:`read()` attempts to read up to ``count`` bytes from file | |
| 43 | 40 | descriptor ``fd`` into the buffer starting at ``buf``. If ``count`` is zero, |
| 44 | −:ref:`read() <lirc-read>` returns zero and has no other results. If ``count`` | |
| 41 | +:c:func:`read()` returns zero and has no other results. If ``count`` | |
| 45 | 42 | is greater than ``SSIZE_MAX``, the result is unspecified. |
| 46 | 43 | |
| 47 | 44 | The exact format of the data depends on what :ref:`lirc_modes` a driver |
| @@ -59,7 +56,6 @@ by hardware decoders. The :c:type:`rc_proto` member is set to the · 11 unmodified lines | ||
| 59 | 56 | used for transmission, and ``scancode`` to the decoded scancode, |
| 60 | 57 | and the ``keycode`` set to the keycode or ``KEY_RESERVED``. |
| 61 | 58 | |
| 62 | − | |
| 63 | 59 | Return Value |
| 64 | 60 | ============ |
| 65 | 61 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc_set_measure_carrier_mode: |
| 4 | 5 | |
| @@ -14,8 +15,9 @@ LIRC_SET_MEASURE_CARRIER_MODE - enable or disable measure mode · 9 unmodified lines | ||
| 14 | 15 | Synopsis |
| 15 | 16 | ======== |
| 16 | 17 | |
| 17 | −.. c:function:: int ioctl( int fd, LIRC_SET_MEASURE_CARRIER_MODE, __u32 *enable ) | |
| 18 | − :name: LIRC_SET_MEASURE_CARRIER_MODE | |
| 18 | +.. c:macro:: LIRC_SET_MEASURE_CARRIER_MODE | |
| 19 | + | |
| 20 | +``int ioctl(int fd, LIRC_SET_MEASURE_CARRIER_MODE, __u32 *enable)`` | |
| 19 | 21 | |
| 20 | 22 | Arguments |
| 21 | 23 | ========= |
| @@ -27,7 +29,6 @@ Arguments · 5 unmodified lines | ||
| 27 | 29 | enable = 1 means enable measure mode, enable = 0 means disable measure |
| 28 | 30 | mode. |
| 29 | 31 | |
| 30 | − | |
| 31 | 32 | Description |
| 32 | 33 | =========== |
| 33 | 34 | |
| @@ -37,7 +38,6 @@ Enable or disable measure mode. If enabled, from the next key · 3 unmodified lines | ||
| 37 | 38 | press on, the driver will send ``LIRC_MODE2_FREQUENCY`` packets. By |
| 38 | 39 | default this should be turned off. |
| 39 | 40 | |
| 40 | − | |
| 41 | 41 | Return Value |
| 42 | 42 | ============ |
| 43 | 43 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc_set_rec_carrier_range: |
| 4 | 5 | |
| @@ -15,8 +16,9 @@ IR receive. · 10 unmodified lines | ||
| 15 | 16 | Synopsis |
| 16 | 17 | ======== |
| 17 | 18 | |
| 18 | −.. c:function:: int ioctl( int fd, LIRC_SET_REC_CARRIER_RANGE, __u32 *frequency ) | |
| 19 | − :name: LIRC_SET_REC_CARRIER_RANGE | |
| 19 | +.. c:macro:: LIRC_SET_REC_CARRIER_RANGE | |
| 20 | + | |
| 21 | +``int ioctl(int fd, LIRC_SET_REC_CARRIER_RANGE, __u32 *frequency)`` | |
| 20 | 22 | |
| 21 | 23 | Arguments |
| 22 | 24 | ========= |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc_set_rec_carrier: |
| 4 | 5 | |
| @@ -11,12 +12,12 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | LIRC_SET_REC_CARRIER - Set carrier used to modulate IR receive. |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, LIRC_SET_REC_CARRIER, __u32 *frequency ) | |
| 19 | − :name: LIRC_SET_REC_CARRIER | |
| 18 | +.. c:macro:: LIRC_SET_REC_CARRIER | |
| 19 | + | |
| 20 | +``int ioctl(int fd, LIRC_SET_REC_CARRIER, __u32 *frequency)`` | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| 22 | 23 | ========= |
| @@ -37,7 +38,6 @@ Set receive carrier used to modulate IR PWM pulses and spaces. · 14 unmodified lines | ||
| 37 | 38 | If called together with :ref:`LIRC_SET_REC_CARRIER_RANGE`, this ioctl |
| 38 | 39 | sets the upper bound frequency that will be recognized by the device. |
| 39 | 40 | |
| 40 | − | |
| 41 | 41 | Return Value |
| 42 | 42 | ============ |
| 43 | 43 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc_set_rec_timeout_reports: |
| 4 | 5 | |
| @@ -14,8 +15,9 @@ LIRC_SET_REC_TIMEOUT_REPORTS - enable or disable timeout reports for IR receive · 9 unmodified lines | ||
| 14 | 15 | Synopsis |
| 15 | 16 | ======== |
| 16 | 17 | |
| 17 | −.. c:function:: int ioctl( int fd, LIRC_SET_REC_TIMEOUT_REPORTS, __u32 *enable ) | |
| 18 | − :name: LIRC_SET_REC_TIMEOUT_REPORTS | |
| 18 | +.. c:macro:: LIRC_SET_REC_TIMEOUT_REPORTS | |
| 19 | + | |
| 20 | +``int ioctl(int fd, LIRC_SET_REC_TIMEOUT_REPORTS, __u32 *enable)`` | |
| 19 | 21 | |
| 20 | 22 | Arguments |
| 21 | 23 | ========= |
| @@ -27,7 +29,6 @@ Arguments · 5 unmodified lines | ||
| 27 | 29 | enable = 1 means enable timeout report, enable = 0 means disable timeout |
| 28 | 30 | reports. |
| 29 | 31 | |
| 30 | − | |
| 31 | 32 | Description |
| 32 | 33 | =========== |
| 33 | 34 | |
| @@ -40,7 +41,6 @@ should be turned off. · 6 unmodified lines | ||
| 40 | 41 | |
| 41 | 42 | This ioctl is only valid for :ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>`. |
| 42 | 43 | |
| 43 | − | |
| 44 | 44 | Return Value |
| 45 | 45 | ============ |
| 46 | 46 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc_set_rec_timeout: |
| 4 | 5 | .. _lirc_get_rec_timeout: |
| @@ -15,11 +16,13 @@ LIRC_GET_REC_TIMEOUT/LIRC_SET_REC_TIMEOUT - Get/set the integer value for IR ina · 10 unmodified lines | ||
| 15 | 16 | Synopsis |
| 16 | 17 | ======== |
| 17 | 18 | |
| 18 | −.. c:function:: int ioctl( int fd, LIRC_GET_REC_TIMEOUT, __u32 *timeout ) | |
| 19 | − :name: LIRC_GET_REC_TIMEOUT | |
| 19 | +.. c:macro:: LIRC_GET_REC_TIMEOUT | |
| 20 | 20 | |
| 21 | −.. c:function:: int ioctl( int fd, LIRC_SET_REC_TIMEOUT, __u32 *timeout ) | |
| 22 | − :name: LIRC_SET_REC_TIMEOUT | |
| 21 | +``int ioctl(int fd, LIRC_GET_REC_TIMEOUT, __u32 *timeout)`` | |
| 22 | + | |
| 23 | +.. c:macro:: LIRC_SET_REC_TIMEOUT | |
| 24 | + | |
| 25 | +``int ioctl(int fd, LIRC_SET_REC_TIMEOUT, __u32 *timeout)`` | |
| 23 | 26 | |
| 24 | 27 | Arguments |
| 25 | 28 | ========= |
| @@ -30,7 +33,6 @@ Arguments · 4 unmodified lines | ||
| 30 | 33 | ``timeout`` |
| 31 | 34 | Timeout, in microseconds. |
| 32 | 35 | |
| 33 | − | |
| 34 | 36 | Description |
| 35 | 37 | =========== |
| 36 | 38 | |
| @@ -45,7 +47,6 @@ given value should be set. · 8 unmodified lines | ||
| 45 | 47 | |
| 46 | 48 | The range of supported timeout is given by :ref:`LIRC_GET_MIN_TIMEOUT`. |
| 47 | 49 | |
| 48 | − | |
| 49 | 50 | Return Value |
| 50 | 51 | ============ |
| 51 | 52 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc_set_send_carrier: |
| 4 | 5 | |
| @@ -11,12 +12,12 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | LIRC_SET_SEND_CARRIER - Set send carrier used to modulate IR TX. |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, LIRC_SET_SEND_CARRIER, __u32 *frequency ) | |
| 19 | − :name: LIRC_SET_SEND_CARRIER | |
| 18 | +.. c:macro:: LIRC_SET_SEND_CARRIER | |
| 19 | + | |
| 20 | +``int ioctl(int fd, LIRC_SET_SEND_CARRIER, __u32 *frequency)`` | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| 22 | 23 | ========= |
| @@ -32,7 +33,6 @@ Description · 9 unmodified lines | ||
| 32 | 33 | |
| 33 | 34 | Set send carrier used to modulate IR PWM pulses and spaces. |
| 34 | 35 | |
| 35 | − | |
| 36 | 36 | Return Value |
| 37 | 37 | ============ |
| 38 | 38 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc_set_send_duty_cycle: |
| 4 | 5 | |
| @@ -15,8 +16,9 @@ IR transmit. · 10 unmodified lines | ||
| 15 | 16 | Synopsis |
| 16 | 17 | ======== |
| 17 | 18 | |
| 18 | −.. c:function:: int ioctl( int fd, LIRC_SET_SEND_DUTY_CYCLE, __u32 *duty_cycle) | |
| 19 | − :name: LIRC_SET_SEND_DUTY_CYCLE | |
| 19 | +.. c:macro:: LIRC_SET_SEND_DUTY_CYCLE | |
| 20 | + | |
| 21 | +``int ioctl(int fd, LIRC_SET_SEND_DUTY_CYCLE, __u32 *duty_cycle)`` | |
| 20 | 22 | |
| 21 | 23 | Arguments |
| 22 | 24 | ========= |
| @@ -28,7 +30,6 @@ Arguments · 5 unmodified lines | ||
| 28 | 30 | Duty cicle, describing the pulse width in percent (from 1 to 99) of |
| 29 | 31 | the total cycle. Values 0 and 100 are reserved. |
| 30 | 32 | |
| 31 | − | |
| 32 | 33 | Description |
| 33 | 34 | =========== |
| 34 | 35 | |
| @@ -38,7 +39,6 @@ Currently, no special meaning is defined for 0 or 100, but this · 3 unmodified lines | ||
| 38 | 39 | could be used to switch off carrier generation in the future, so |
| 39 | 40 | these values should be reserved. |
| 40 | 41 | |
| 41 | − | |
| 42 | 42 | Return Value |
| 43 | 43 | ============ |
| 44 | 44 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc_set_transmitter_mask: |
| 4 | 5 | |
| @@ -14,8 +15,9 @@ LIRC_SET_TRANSMITTER_MASK - Enables send codes on a given set of transmitters · 9 unmodified lines | ||
| 14 | 15 | Synopsis |
| 15 | 16 | ======== |
| 16 | 17 | |
| 17 | −.. c:function:: int ioctl( int fd, LIRC_SET_TRANSMITTER_MASK, __u32 *mask ) | |
| 18 | − :name: LIRC_SET_TRANSMITTER_MASK | |
| 18 | +.. c:macro:: LIRC_SET_TRANSMITTER_MASK | |
| 19 | + | |
| 20 | +``int ioctl(int fd, LIRC_SET_TRANSMITTER_MASK, __u32 *mask)`` | |
| 19 | 21 | |
| 20 | 22 | Arguments |
| 21 | 23 | ========= |
| @@ -26,7 +28,6 @@ Arguments · 4 unmodified lines | ||
| 26 | 28 | ``mask`` |
| 27 | 29 | Mask with channels to enable tx. Channel 0 is the least significant bit. |
| 28 | 30 | |
| 29 | − | |
| 30 | 31 | Description |
| 31 | 32 | =========== |
| 32 | 33 | |
| @@ -42,7 +43,6 @@ When an invalid bit mask is given, i.e. a bit is set, even though the device · 9 unmodified lines | ||
| 42 | 43 | does not have so many transitters, then this ioctl returns the number of |
| 43 | 44 | available transitters and does nothing otherwise. |
| 44 | 45 | |
| 45 | − | |
| 46 | 46 | Return Value |
| 47 | 47 | ============ |
| 48 | 48 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc_set_wideband_receiver: |
| 4 | 5 | |
| @@ -14,8 +15,9 @@ LIRC_SET_WIDEBAND_RECEIVER - enable wide band receiver. · 9 unmodified lines | ||
| 14 | 15 | Synopsis |
| 15 | 16 | ======== |
| 16 | 17 | |
| 17 | −.. c:function:: int ioctl( int fd, LIRC_SET_WIDEBAND_RECEIVER, __u32 *enable ) | |
| 18 | − :name: LIRC_SET_WIDEBAND_RECEIVER | |
| 18 | +.. c:macro:: LIRC_SET_WIDEBAND_RECEIVER | |
| 19 | + | |
| 20 | +``int ioctl(int fd, LIRC_SET_WIDEBAND_RECEIVER, __u32 *enable)`` | |
| 19 | 21 | |
| 20 | 22 | Arguments |
| 21 | 23 | ========= |
| @@ -27,7 +29,6 @@ Arguments · 5 unmodified lines | ||
| 27 | 29 | enable = 1 means enable wideband receiver, enable = 0 means disable |
| 28 | 30 | wideband receiver. |
| 29 | 31 | |
| 30 | − | |
| 31 | 32 | Description |
| 32 | 33 | =========== |
| 33 | 34 | |
| @@ -47,7 +48,6 @@ reduced range of reception. · 13 unmodified lines | ||
| 47 | 48 | carrier reports. Trying to disable wide band receiver while carrier |
| 48 | 49 | reports are active will do nothing. |
| 49 | 50 | |
| 50 | − | |
| 51 | 51 | Return Value |
| 52 | 52 | ============ |
| 53 | 53 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: RC | |
| 2 | 3 | |
| 3 | 4 | .. _lirc-write: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | lirc-write - Write to a LIRC device |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,9 +19,7 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: ssize_t write( int fd, void *buf, size_t count ) |
| 24 | − :name: lirc-write | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| @@ -38,7 +36,7 @@ Arguments · 10 unmodified lines | ||
| 38 | 36 | Description |
| 39 | 37 | =========== |
| 40 | 38 | |
| 41 | −:ref:`write() <lirc-write>` writes up to ``count`` bytes to the device | |
| 39 | +:c:func:`write()` writes up to ``count`` bytes to the device | |
| 42 | 40 | referenced by the file descriptor ``fd`` from the buffer starting at |
| 43 | 41 | ``buf``. |
| 44 | 42 | |
| @@ -64,7 +62,6 @@ for the protocol or the scancode is not valid for the specified protocol, · 19 unmodified lines | ||
| 64 | 62 | ``EINVAL`` is returned. The write function blocks until the scancode |
| 65 | 63 | is transmitted by the hardware. |
| 66 | 64 | |
| 67 | − | |
| 68 | 65 | Return Value |
| 69 | 66 | ============ |
| 70 | 67 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _buffer: |
| 4 | 5 | |
| @@ -33,7 +34,6 @@ mem-to-mem devices is an exception to the rule: the timestamp source · 28 unmodified lines | ||
| 33 | 34 | flags are copied from the OUTPUT video buffer to the CAPTURE video |
| 34 | 35 | buffer. |
| 35 | 36 | |
| 36 | − | |
| 37 | 37 | Interactions between formats, controls and buffers |
| 38 | 38 | ================================================== |
| 39 | 39 | |
| @@ -152,7 +152,6 @@ based on the queried sizes (for instance by allocating a set of buffers large · 112 unmodified lines | ||
| 152 | 152 | enough for all the desired formats and controls, or by allocating separate set |
| 153 | 153 | of appropriately sized buffers for each use case). |
| 154 | 154 | |
| 155 | − | |
| 156 | 155 | .. c:type:: v4l2_buffer |
| 157 | 156 | |
| 158 | 157 | struct v4l2_buffer |
| @@ -257,7 +256,7 @@ struct v4l2_buffer · 98 unmodified lines | ||
| 257 | 256 | ``V4L2_MEMORY_MMAP`` this is the offset of the buffer from the |
| 258 | 257 | start of the device memory. The value is returned by the driver |
| 259 | 258 | and apart of serving as parameter to the |
| 260 | − :ref:`mmap() <func-mmap>` function not useful for applications. | |
| 259 | + :c:func:`mmap()` function not useful for applications. | |
| 261 | 260 | See :ref:`mmap` for details |
| 262 | 261 | * - unsigned long |
| 263 | 262 | - ``userptr`` |
| @@ -310,7 +309,6 @@ struct v4l2_buffer · 46 unmodified lines | ||
| 310 | 309 | given, then ``EINVAL`` will be returned. |
| 311 | 310 | |
| 312 | 311 | |
| 313 | − | |
| 314 | 312 | .. c:type:: v4l2_plane |
| 315 | 313 | |
| 316 | 314 | struct v4l2_plane |
| @@ -350,7 +348,7 @@ struct v4l2_plane · 33 unmodified lines | ||
| 350 | 348 | - ``mem_offset`` |
| 351 | 349 | - When the memory type in the containing struct |
| 352 | 350 | :c:type:`v4l2_buffer` is ``V4L2_MEMORY_MMAP``, this |
| 353 | − is the value that should be passed to :ref:`mmap() <func-mmap>`, | |
| 351 | + is the value that should be passed to :c:func:`mmap()`, | |
| 354 | 352 | similar to the ``offset`` field in struct |
| 355 | 353 | :c:type:`v4l2_buffer`. |
| 356 | 354 | * - unsigned long |
| @@ -384,7 +382,6 @@ struct v4l2_plane · 27 unmodified lines | ||
| 384 | 382 | applications. |
| 385 | 383 | |
| 386 | 384 | |
| 387 | − | |
| 388 | 385 | .. c:type:: v4l2_buf_type |
| 389 | 386 | |
| 390 | 387 | enum v4l2_buf_type |
| @@ -448,7 +445,6 @@ enum v4l2_buf_type · 57 unmodified lines | ||
| 448 | 445 | - Buffer for metadata output, see :ref:`metadata`. |
| 449 | 446 | |
| 450 | 447 | |
| 451 | − | |
| 452 | 448 | .. _buffer-flags: |
| 453 | 449 | |
| 454 | 450 | Buffer Flags |
| @@ -682,20 +678,6 @@ Buffer Flags · 227 unmodified lines | ||
| 682 | 678 | |
| 683 | 679 | .. _memory-flags: |
| 684 | 680 | |
| 685 | −Memory Consistency Flags | |
| 686 | −======================== | |
| 687 | − | |
| 688 | −.. tabularcolumns:: |p{7.0cm}|p{2.2cm}|p{8.3cm}| | |
| 689 | − | |
| 690 | −.. cssclass:: longtable | |
| 691 | − | |
| 692 | −.. flat-table:: | |
| 693 | − :header-rows: 0 | |
| 694 | − :stub-columns: 0 | |
| 695 | − :widths: 3 1 4 | |
| 696 | − | |
| 697 | −.. c:type:: v4l2_memory | |
| 698 | − | |
| 699 | 681 | enum v4l2_memory |
| 700 | 682 | ================ |
| 701 | 683 | |
| @@ -720,7 +702,6 @@ enum v4l2_memory · 18 unmodified lines | ||
| 720 | 702 | - The buffer is used for :ref:`DMA shared buffer <dmabuf>` I/O. |
| 721 | 703 | |
| 722 | 704 | |
| 723 | − | |
| 724 | 705 | Timecodes |
| 725 | 706 | ========= |
| 726 | 707 | |
| @@ -729,7 +710,6 @@ The :c:type:`v4l2_buffer_timecode` structure is designed to hold a · 2 unmodified lines | ||
| 729 | 710 | (struct :c:type:`timeval` timestamps are stored in the struct |
| 730 | 711 | :c:type:`v4l2_buffer` ``timestamp`` field.) |
| 731 | 712 | |
| 732 | − | |
| 733 | 713 | .. c:type:: v4l2_timecode |
| 734 | 714 | |
| 735 | 715 | struct v4l2_timecode |
| @@ -766,7 +746,6 @@ struct v4l2_timecode · 30 unmodified lines | ||
| 766 | 746 | - The "user group" bits from the timecode. |
| 767 | 747 | |
| 768 | 748 | |
| 769 | − | |
| 770 | 749 | .. _timecode-type: |
| 771 | 750 | |
| 772 | 751 | Timecode Types |
| @@ -796,7 +775,6 @@ Timecode Types · 23 unmodified lines | ||
| 796 | 775 | - |
| 797 | 776 | |
| 798 | 777 | |
| 799 | − | |
| 800 | 778 | .. _timecode-flags: |
| 801 | 779 | |
| 802 | 780 | Timecode Flags |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _capture: |
| 4 | 5 | |
| @@ -19,7 +20,6 @@ device. · 14 unmodified lines | ||
| 19 | 20 | |
| 20 | 21 | .. note:: The same device file names are used for video output devices. |
| 21 | 22 | |
| 22 | − | |
| 23 | 23 | Querying Capabilities |
| 24 | 24 | ===================== |
| 25 | 25 | |
| @@ -34,7 +34,6 @@ functions they may also support the :ref:`video overlay <overlay>` · 8 unmodified lines | ||
| 34 | 34 | streaming I/O methods must be supported. Tuners and audio inputs are |
| 35 | 35 | optional. |
| 36 | 36 | |
| 37 | − | |
| 38 | 37 | Supplemental Functions |
| 39 | 38 | ====================== |
| 40 | 39 | |
| @@ -45,7 +44,6 @@ Video capture devices shall support :ref:`audio input <audio>`, · 4 unmodified lines | ||
| 45 | 44 | :ref:`video input <video>` ioctls must be supported by all video |
| 46 | 45 | capture devices. |
| 47 | 46 | |
| 48 | − | |
| 49 | 47 | Image Format Negotiation |
| 50 | 48 | ======================== |
| 51 | 49 | |
| @@ -55,7 +53,7 @@ capture, the latter how images are stored in memory, i. e. in RGB or YUV · 3 unmodified lines | ||
| 55 | 53 | format, the number of bits per pixel or width and height. Together they |
| 56 | 54 | also define how images are scaled in the process. |
| 57 | 55 | |
| 58 | −As usual these parameters are *not* reset at :ref:`open() <func-open>` | |
| 56 | +As usual these parameters are *not* reset at :c:func:`open()` | |
| 59 | 57 | time to permit Unix tool chains, programming a device and then reading |
| 60 | 58 | from it as if it was a plain file. Well written V4L2 applications ensure |
| 61 | 59 | they really get what they want, including cropping and scaling. |
| @@ -95,7 +93,6 @@ and :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, even if :ref:`VIDIOC_S_FMT <VIDIOC · 33 unmodified lines | ||
| 95 | 93 | requests and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does. |
| 96 | 94 | :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` is optional. |
| 97 | 95 | |
| 98 | − | |
| 99 | 96 | Reading Images |
| 100 | 97 | ============== |
| 101 | 98 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _output: |
| 4 | 5 | |
| @@ -18,7 +19,6 @@ device. · 13 unmodified lines | ||
| 18 | 19 | |
| 19 | 20 | .. note:: The same device file names are used also for video capture devices. |
| 20 | 21 | |
| 21 | − | |
| 22 | 22 | Querying Capabilities |
| 23 | 23 | ===================== |
| 24 | 24 | |
| @@ -32,7 +32,6 @@ functions they may also support the :ref:`raw VBI output <raw-vbi>` · 7 unmodified lines | ||
| 32 | 32 | streaming I/O methods must be supported. Modulators and audio outputs |
| 33 | 33 | are optional. |
| 34 | 34 | |
| 35 | − | |
| 36 | 35 | Supplemental Functions |
| 37 | 36 | ====================== |
| 38 | 37 | |
| @@ -43,7 +42,6 @@ Video output devices shall support :ref:`audio output <audio>`, · 4 unmodified lines | ||
| 43 | 42 | :ref:`video output <video>` ioctls must be supported by all video |
| 44 | 43 | output devices. |
| 45 | 44 | |
| 46 | − | |
| 47 | 45 | Image Format Negotiation |
| 48 | 46 | ======================== |
| 49 | 47 | |
| @@ -53,7 +51,7 @@ the latter how images are stored in memory, i. e. in RGB or YUV format, · 3 unmodified lines | ||
| 53 | 51 | the number of bits per pixel or width and height. Together they also |
| 54 | 52 | define how images are scaled in the process. |
| 55 | 53 | |
| 56 | −As usual these parameters are *not* reset at :ref:`open() <func-open>` | |
| 54 | +As usual these parameters are *not* reset at :c:func:`open()` | |
| 57 | 55 | time to permit Unix tool chains, programming a device and then writing |
| 58 | 56 | to it as if it was a plain file. Well written V4L2 applications ensure |
| 59 | 57 | they really get what they want, including cropping and scaling. |
| @@ -92,7 +90,6 @@ and :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, even if :ref:`VIDIOC_S_FMT <VIDIOC · 32 unmodified lines | ||
| 92 | 90 | requests and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does. |
| 93 | 91 | :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` is optional. |
| 94 | 92 | |
| 95 | − | |
| 96 | 93 | Writing Images |
| 97 | 94 | ============== |
| 98 | 95 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _raw-vbi: |
| 4 | 5 | |
| @@ -32,7 +33,6 @@ applications must call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. · 27 unmodified lines | ||
| 32 | 33 | Accessed as ``/dev/vbi``, raw VBI capturing or output is the default |
| 33 | 34 | device function. |
| 34 | 35 | |
| 35 | − | |
| 36 | 36 | Querying Capabilities |
| 37 | 37 | ===================== |
| 38 | 38 | |
| @@ -44,7 +44,6 @@ in the ``capabilities`` field of struct · 5 unmodified lines | ||
| 44 | 44 | read/write, streaming or asynchronous I/O methods must be supported. VBI |
| 45 | 45 | devices may or may not have a tuner or modulator. |
| 46 | 46 | |
| 47 | − | |
| 48 | 47 | Supplemental Functions |
| 49 | 48 | ====================== |
| 50 | 49 | |
| @@ -53,7 +52,6 @@ VBI devices shall support :ref:`video input or output <video>`, · 2 unmodified lines | ||
| 53 | 52 | ioctls as needed. The :ref:`video standard <standard>` ioctls provide |
| 54 | 53 | information vital to program a VBI device, therefore must be supported. |
| 55 | 54 | |
| 56 | − | |
| 57 | 55 | Raw VBI Format Negotiation |
| 58 | 56 | ========================== |
| 59 | 57 | |
| @@ -62,7 +60,7 @@ frequency. To properly interpret the data V4L2 specifies an ioctl to · 2 unmodified lines | ||
| 62 | 60 | query the sampling parameters. Moreover, to allow for some flexibility |
| 63 | 61 | applications can also suggest different parameters. |
| 64 | 62 | |
| 65 | −As usual these parameters are *not* reset at :ref:`open() <func-open>` | |
| 63 | +As usual these parameters are *not* reset at :c:func:`open()` | |
| 66 | 64 | time to permit Unix tool chains, programming a device and then reading |
| 67 | 65 | from it as if it was a plain file. Well written V4L2 applications should |
| 68 | 66 | always ensure they really get what they want, requesting reasonable |
| @@ -91,8 +89,8 @@ happen for instance when the video and VBI areas to capture would · 22 unmodified lines | ||
| 91 | 89 | overlap, or when the driver supports multiple opens and another process |
| 92 | 90 | already requested VBI capturing or output. Anyway, applications must |
| 93 | 91 | expect other resource allocation points which may return ``EBUSY``, at the |
| 94 | −:ref:`VIDIOC_STREAMON` ioctl and the first :ref:`read() <func-read>` | |
| 95 | −, :ref:`write() <func-write>` and :ref:`select() <func-select>` calls. | |
| 92 | +:ref:`VIDIOC_STREAMON` ioctl and the first :c:func:`read()` | |
| 93 | +, :c:func:`write()` and :c:func:`select()` calls. | |
| 96 | 94 | |
| 97 | 95 | VBI devices must implement both the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and |
| 98 | 96 | :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, even if :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ignores all requests |
| @@ -182,7 +180,6 @@ and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does · 83 unmodified lines | ||
| 182 | 180 | - This array is reserved for future extensions. Drivers and |
| 183 | 181 | applications must set it to zero. |
| 184 | 182 | |
| 185 | − | |
| 186 | 183 | .. tabularcolumns:: |p{4.4cm}|p{1.5cm}|p{11.6cm}| |
| 187 | 184 | |
| 188 | 185 | .. _vbifmt-flags: |
| @@ -218,7 +215,6 @@ and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does · 29 unmodified lines | ||
| 218 | 215 | non-zero. |
| 219 | 216 | |
| 220 | 217 | |
| 221 | − | |
| 222 | 218 | .. _vbi-hsync: |
| 223 | 219 | |
| 224 | 220 | .. kernel-figure:: vbi_hsync.svg |
| @@ -227,7 +223,6 @@ and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does · 2 unmodified lines | ||
| 227 | 223 | |
| 228 | 224 | **Figure 4.1. Line synchronization** |
| 229 | 225 | |
| 230 | − | |
| 231 | 226 | .. _vbi-525: |
| 232 | 227 | |
| 233 | 228 | .. kernel-figure:: vbi_525.svg |
| @@ -251,7 +246,6 @@ negotiation, or after switching the video standard which may invalidate · 17 unmodified lines | ||
| 251 | 246 | the negotiated VBI parameters, should be refused by the driver. A format |
| 252 | 247 | change during active I/O is not permitted. |
| 253 | 248 | |
| 254 | − | |
| 255 | 249 | Reading and writing VBI images |
| 256 | 250 | ============================== |
| 257 | 251 | |
| @@ -261,7 +255,6 @@ consisting of two fields of VBI images immediately following in memory. · 3 unmodified lines | ||
| 261 | 255 | |
| 262 | 256 | The total size of a frame computes as follows: |
| 263 | 257 | |
| 264 | − | |
| 265 | 258 | .. code-block:: c |
| 266 | 259 | |
| 267 | 260 | (count[0] + count[1]) * samples_per_line * sample size in bytes |
| @@ -276,8 +269,8 @@ The latter bears the possibility of synchronizing video and VBI data by · 8 unmodified lines | ||
| 276 | 269 | using buffer timestamps. |
| 277 | 270 | |
| 278 | 271 | Remember the :ref:`VIDIOC_STREAMON <VIDIOC_STREAMON>` ioctl and the |
| 279 | −first :ref:`read() <func-read>`, :ref:`write() <func-write>` and | |
| 280 | −:ref:`select() <func-select>` call can be resource allocation | |
| 272 | +first :c:func:`read()`, :c:func:`write()` and | |
| 273 | +:c:func:`select()` call can be resource allocation | |
| 281 | 274 | points returning an ``EBUSY`` error code if the required hardware resources |
| 282 | 275 | are temporarily unavailable, for example the device is already in use by |
| 283 | 276 | another process. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _rds: |
| 4 | 5 | |
| @@ -28,7 +29,6 @@ The RDS interface does not support this format. Should support for MMBS · 23 unmodified lines | ||
| 28 | 29 | the linux-media mailing list: |
| 29 | 30 | `https://linuxtv.org/lists.php <https://linuxtv.org/lists.php>`__. |
| 30 | 31 | |
| 31 | − | |
| 32 | 32 | Querying Capabilities |
| 33 | 33 | ===================== |
| 34 | 34 | |
| @@ -68,31 +68,27 @@ like program identification codes and radio text, the flag · 33 unmodified lines | ||
| 68 | 68 | :ref:`Writing RDS data <writing-rds-data>` and |
| 69 | 69 | :ref:`FM Transmitter Control Reference <fm-tx-controls>`. |
| 70 | 70 | |
| 71 | − | |
| 72 | 71 | .. _reading-rds-data: |
| 73 | 72 | |
| 74 | 73 | Reading RDS data |
| 75 | 74 | ================ |
| 76 | 75 | |
| 77 | 76 | RDS data can be read from the radio device with the |
| 78 | −:ref:`read() <func-read>` function. The data is packed in groups of | |
| 77 | +:c:func:`read()` function. The data is packed in groups of | |
| 79 | 78 | three bytes. |
| 80 | 79 | |
| 81 | − | |
| 82 | 80 | .. _writing-rds-data: |
| 83 | 81 | |
| 84 | 82 | Writing RDS data |
| 85 | 83 | ================ |
| 86 | 84 | |
| 87 | 85 | RDS data can be written to the radio device with the |
| 88 | −:ref:`write() <func-write>` function. The data is packed in groups of | |
| 86 | +:c:func:`write()` function. The data is packed in groups of | |
| 89 | 87 | three bytes, as follows: |
| 90 | 88 | |
| 91 | − | |
| 92 | 89 | RDS datastructures |
| 93 | 90 | ================== |
| 94 | 91 | |
| 95 | − | |
| 96 | 92 | .. c:type:: v4l2_rds_data |
| 97 | 93 | |
| 98 | 94 | .. tabularcolumns:: |p{2.5cm}|p{2.5cm}|p{12.5cm}| |
| @@ -113,7 +109,6 @@ RDS datastructures · 14 unmodified lines | ||
| 113 | 109 | - Block description |
| 114 | 110 | |
| 115 | 111 | |
| 116 | − | |
| 117 | 112 | .. _v4l2-rds-block: |
| 118 | 113 | |
| 119 | 114 | .. tabularcolumns:: |p{2.9cm}|p{14.6cm}| |
| @@ -136,7 +131,6 @@ RDS datastructures · 16 unmodified lines | ||
| 136 | 131 | reception of this block. |
| 137 | 132 | |
| 138 | 133 | |
| 139 | − | |
| 140 | 134 | .. _v4l2-rds-block-codes: |
| 141 | 135 | |
| 142 | 136 | .. tabularcolumns:: |p{6.4cm}|p{2.0cm}|p{1.2cm}|p{7.9cm}| |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _sliced: |
| 4 | 5 | |
| @@ -27,7 +28,6 @@ however the default function here is video capturing or output. · 22 unmodified lines | ||
| 27 | 28 | Different file descriptors must be used to pass raw and sliced VBI data |
| 28 | 29 | simultaneously, if this is supported by the driver. |
| 29 | 30 | |
| 30 | − | |
| 31 | 31 | Querying Capabilities |
| 32 | 32 | ===================== |
| 33 | 33 | |
| @@ -39,7 +39,6 @@ respectively, in the ``capabilities`` field of struct · 5 unmodified lines | ||
| 39 | 39 | read/write, streaming or asynchronous :ref:`I/O methods <io>` must be |
| 40 | 40 | supported. Sliced VBI devices may have a tuner or modulator. |
| 41 | 41 | |
| 42 | − | |
| 43 | 42 | Supplemental Functions |
| 44 | 43 | ====================== |
| 45 | 44 | |
| @@ -49,7 +48,6 @@ capabilities, and they may support :ref:`control` ioctls. · 3 unmodified lines | ||
| 49 | 48 | The :ref:`video standard <standard>` ioctls provide information vital |
| 50 | 49 | to program a sliced VBI device, therefore must be supported. |
| 51 | 50 | |
| 52 | − | |
| 53 | 51 | .. _sliced-vbi-format-negotitation: |
| 54 | 52 | |
| 55 | 53 | Sliced VBI Format Negotiation |
| @@ -96,9 +94,8 @@ at this point, it may return an ``EBUSY`` error code if the required · 40 unmodified lines | ||
| 96 | 94 | resources are temporarily unavailable. Other resource allocation points |
| 97 | 95 | which may return ``EBUSY`` can be the |
| 98 | 96 | :ref:`VIDIOC_STREAMON` ioctl and the first |
| 99 | −:ref:`read() <func-read>`, :ref:`write() <func-write>` and | |
| 100 | −:ref:`select() <func-select>` call. | |
| 101 | − | |
| 97 | +:c:func:`read()`, :c:func:`write()` and | |
| 98 | +:c:func:`select()` call. | |
| 102 | 99 | |
| 103 | 100 | .. c:type:: v4l2_sliced_vbi_format |
| 104 | 101 | |
| @@ -191,7 +188,7 @@ struct v4l2_sliced_vbi_format · 86 unmodified lines | ||
| 191 | 188 | * - __u32 |
| 192 | 189 | - ``io_size`` |
| 193 | 190 | - :cspan:`2` Maximum number of bytes passed by one |
| 194 | − :ref:`read() <func-read>` or :ref:`write() <func-write>` call, | |
| 191 | + :c:func:`read()` or :c:func:`write()` call, | |
| 195 | 192 | and the buffer size in bytes for the |
| 196 | 193 | :ref:`VIDIOC_QBUF` and |
| 197 | 194 | :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. Drivers set this field |
| @@ -274,7 +271,6 @@ Sliced VBI services · 76 unmodified lines | ||
| 274 | 271 | |
| 275 | 272 | \normalsize |
| 276 | 273 | |
| 277 | − | |
| 278 | 274 | Drivers may return an ``EINVAL`` error code when applications attempt to |
| 279 | 275 | read or write data without prior format negotiation, after switching the |
| 280 | 276 | video standard (which may invalidate the negotiated VBI parameters) and |
| @@ -284,13 +280,12 @@ return an ``EBUSY`` error code when applications attempt to change the · 3 unmodified lines | ||
| 284 | 280 | format while i/o is in progress (between a |
| 285 | 281 | :ref:`VIDIOC_STREAMON` and |
| 286 | 282 | :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` call, and after the first |
| 287 | −:ref:`read() <func-read>` or :ref:`write() <func-write>` call). | |
| 288 | − | |
| 283 | +:c:func:`read()` or :c:func:`write()` call). | |
| 289 | 284 | |
| 290 | 285 | Reading and writing sliced VBI data |
| 291 | 286 | =================================== |
| 292 | 287 | |
| 293 | −A single :ref:`read() <func-read>` or :ref:`write() <func-write>` | |
| 288 | +A single :c:func:`read()` or :c:func:`write()` | |
| 294 | 289 | call must pass all data belonging to one video frame. That is an array |
| 295 | 290 | of struct :c:type:`v4l2_sliced_vbi_data` structures with one or |
| 296 | 291 | more elements and a total size not exceeding ``io_size`` bytes. Likewise |
| @@ -298,7 +293,6 @@ in streaming I/O mode one buffer of ``io_size`` bytes must contain data · 1 unmodified line | ||
| 298 | 293 | of one video frame. The ``id`` of unused |
| 299 | 294 | struct :c:type:`v4l2_sliced_vbi_data` elements must be zero. |
| 300 | 295 | |
| 301 | − | |
| 302 | 296 | .. c:type:: v4l2_sliced_vbi_data |
| 303 | 297 | |
| 304 | 298 | struct v4l2_sliced_vbi_data |
| @@ -344,9 +338,8 @@ struct v4l2_sliced_vbi_data · 39 unmodified lines | ||
| 344 | 338 | bytes at the end of this array are undefined, drivers and |
| 345 | 339 | applications shall ignore them. |
| 346 | 340 | |
| 347 | − | |
| 348 | 341 | Packets are always passed in ascending line number order, without |
| 349 | −duplicate line numbers. The :ref:`write() <func-write>` function and | |
| 342 | +duplicate line numbers. The :c:func:`write()` function and | |
| 350 | 343 | the :ref:`VIDIOC_QBUF` ioctl must return an ``EINVAL`` |
| 351 | 344 | error code when applications violate this rule. They must also return an |
| 352 | 345 | EINVAL error code when applications pass an incorrect field or line |
| @@ -370,7 +363,6 @@ streaming (:ref:`memory mapping <mmap>` and/or · 17 unmodified lines | ||
| 370 | 363 | :ref:`user pointer <userp>`) I/O. The latter bears the possibility of |
| 371 | 364 | synchronizing video and VBI data by using buffer timestamps. |
| 372 | 365 | |
| 373 | − | |
| 374 | 366 | Sliced VBI Data in MPEG Streams |
| 375 | 367 | =============================== |
| 376 | 368 | |
| @@ -405,7 +397,6 @@ data insertion is not supported by the device. · 28 unmodified lines | ||
| 405 | 397 | The following subsections specify the format of the embedded sliced VBI |
| 406 | 398 | data. |
| 407 | 399 | |
| 408 | − | |
| 409 | 400 | MPEG Stream Embedded, Sliced VBI Data Format: NONE |
| 410 | 401 | -------------------------------------------------- |
| 411 | 402 | |
| @@ -417,7 +408,6 @@ nor driver shall insert "empty" embedded sliced VBI data packets in the · 5 unmodified lines | ||
| 417 | 408 | MPEG stream when this format is set. No MPEG stream data structures are |
| 418 | 409 | specified for this format. |
| 419 | 410 | |
| 420 | − | |
| 421 | 411 | MPEG Stream Embedded, Sliced VBI Data Format: IVTV |
| 422 | 412 | -------------------------------------------------- |
| 423 | 413 | |
| @@ -460,7 +450,6 @@ the end with unspecified fill bytes to align the end of the payload to a · 36 unmodified lines | ||
| 460 | 450 | with 18 lines/field with 43 bytes of data/line and a 4 byte magic |
| 461 | 451 | number). |
| 462 | 452 | |
| 463 | − | |
| 464 | 453 | .. c:type:: v4l2_mpeg_vbi_fmt_ivtv |
| 465 | 454 | |
| 466 | 455 | struct v4l2_mpeg_vbi_fmt_ivtv |
| @@ -523,7 +512,6 @@ Magic Constants for struct v4l2_mpeg_vbi_fmt_ivtv magic field · 56 unmodified lines | ||
| 523 | 512 | valid and that 36 lines of sliced VBI data are present. |
| 524 | 513 | |
| 525 | 514 | |
| 526 | − | |
| 527 | 515 | .. c:type:: v4l2_mpeg_vbi_itv0 |
| 528 | 516 | |
| 529 | 517 | .. c:type:: v4l2_mpeg_vbi_ITV0 |
| @@ -548,7 +536,6 @@ structs v4l2_mpeg_vbi_itv0 and v4l2_mpeg_vbi_ITV0 · 18 unmodified lines | ||
| 548 | 536 | value: |
| 549 | 537 | |
| 550 | 538 | |
| 551 | − | |
| 552 | 539 | :: |
| 553 | 540 | |
| 554 | 541 | linemask[0] b0: line 6 first field |
| @@ -574,7 +561,6 @@ structs v4l2_mpeg_vbi_itv0 and v4l2_mpeg_vbi_ITV0 · 19 unmodified lines | ||
| 574 | 561 | applications. |
| 575 | 562 | |
| 576 | 563 | |
| 577 | − | |
| 578 | 564 | .. _v4l2-mpeg-vbi-itv0-1: |
| 579 | 565 | |
| 580 | 566 | struct v4l2_mpeg_vbi_ITV0 |
| @@ -596,7 +582,6 @@ struct v4l2_mpeg_vbi_ITV0 · 15 unmodified lines | ||
| 596 | 582 | lines 6 through 23 of the second field. |
| 597 | 583 | |
| 598 | 584 | |
| 599 | − | |
| 600 | 585 | .. c:type:: v4l2_mpeg_vbi_itv0_line |
| 601 | 586 | |
| 602 | 587 | struct v4l2_mpeg_vbi_itv0_line |
| @@ -619,7 +604,6 @@ struct v4l2_mpeg_vbi_itv0_line · 16 unmodified lines | ||
| 619 | 604 | - The sliced VBI data for the line. |
| 620 | 605 | |
| 621 | 606 | |
| 622 | − | |
| 623 | 607 | .. _ITV0-Line-Identifier-Constants: |
| 624 | 608 | |
| 625 | 609 | Line Identifiers for struct v4l2_mpeg_vbi_itv0_line id field |
| @@ -653,7 +637,6 @@ Line Identifiers for struct v4l2_mpeg_vbi_itv0_line id field · 27 unmodified lines | ||
| 653 | 637 | description of the line payload. |
| 654 | 638 | |
| 655 | 639 | |
| 656 | − | |
| 657 | 640 | .. [#f1] |
| 658 | 641 | According to :ref:`ETS 300 706 <ets300706>` lines 6-22 of the first |
| 659 | 642 | field and lines 5-22 of the second field may carry Teletext data. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _diff-v4l: |
| 4 | 5 | |
| @@ -13,7 +14,6 @@ the much improved V4L2 API replaces the V4L API. The support for the old · 8 unmodified lines | ||
| 13 | 14 | V4L calls were removed from Kernel, but the library :ref:`libv4l` |
| 14 | 15 | supports the conversion of a V4L API system call into a V4L2 one. |
| 15 | 16 | |
| 16 | − | |
| 17 | 17 | Opening and Closing Devices |
| 18 | 18 | =========================== |
| 19 | 19 | |
| @@ -32,7 +32,6 @@ recommend that V4L2 drivers by default register devices with the same · 12 unmodified lines | ||
| 32 | 32 | numbers, but the system administrator can assign arbitrary minor numbers |
| 33 | 33 | using driver module options. The major device number remains 81. |
| 34 | 34 | |
| 35 | − | |
| 36 | 35 | .. _v4l-dev: |
| 37 | 36 | |
| 38 | 37 | .. flat-table:: V4L Device Types, Names and Numbers |
| @@ -53,14 +52,12 @@ using driver module options. The major device number remains 81. · 14 unmodified lines | ||
| 53 | 52 | - ``/dev/vbi``, ``/dev/vbi0`` to ``/dev/vbi31`` |
| 54 | 53 | - 224-255 |
| 55 | 54 | |
| 56 | − | |
| 57 | 55 | V4L prohibits (or used to prohibit) multiple opens of a device file. |
| 58 | 56 | V4L2 drivers *may* support multiple opens, see :ref:`open` for details |
| 59 | 57 | and consequences. |
| 60 | 58 | |
| 61 | 59 | V4L drivers respond to V4L2 ioctls with an ``EINVAL`` error code. |
| 62 | 60 | |
| 63 | − | |
| 64 | 61 | Querying Capabilities |
| 65 | 62 | ===================== |
| 66 | 63 | |
| @@ -151,7 +148,6 @@ introduction. · 84 unmodified lines | ||
| 151 | 148 | - ``-`` |
| 152 | 149 | - See above. |
| 153 | 150 | |
| 154 | − | |
| 155 | 151 | The ``audios`` field was replaced by ``capabilities`` flag |
| 156 | 152 | ``V4L2_CAP_AUDIO``, indicating *if* the device has any audio inputs or |
| 157 | 153 | outputs. To determine their number applications can enumerate audio |
| @@ -164,7 +160,6 @@ were removed. Calling the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or · 6 unmodified lines | ||
| 164 | 160 | dimensions returns the closest size possible, taking into account the |
| 165 | 161 | current video standard, cropping and scaling limitations. |
| 166 | 162 | |
| 167 | − | |
| 168 | 163 | Video Sources |
| 169 | 164 | ============= |
| 170 | 165 | |
| @@ -180,7 +175,6 @@ The ``channel`` field counting inputs was renamed to ``index``, the · 9 unmodified lines | ||
| 180 | 175 | video input types were renamed as follows: |
| 181 | 176 | |
| 182 | 177 | |
| 183 | − | |
| 184 | 178 | .. flat-table:: |
| 185 | 179 | :header-rows: 1 |
| 186 | 180 | :stub-columns: 0 |
| @@ -192,7 +186,6 @@ video input types were renamed as follows: · 5 unmodified lines | ||
| 192 | 186 | * - ``VIDEO_TYPE_CAMERA`` |
| 193 | 187 | - ``V4L2_INPUT_TYPE_CAMERA`` |
| 194 | 188 | |
| 195 | − | |
| 196 | 189 | Unlike the ``tuners`` field expressing the number of tuners of this |
| 197 | 190 | input, V4L2 assumes each video input is connected to at most one tuner. |
| 198 | 191 | However a tuner can have more than one input, i. e. RF connectors, and a |
| @@ -216,7 +209,6 @@ addition together with the ``norm`` field and has been removed in the · 17 unmodified lines | ||
| 216 | 209 | meantime. V4L2 has a similar, albeit more comprehensive approach to |
| 217 | 210 | video standards, see :ref:`standard` for more information. |
| 218 | 211 | |
| 219 | − | |
| 220 | 212 | Tuning |
| 221 | 213 | ====== |
| 222 | 214 | |
| @@ -260,7 +252,6 @@ frequency where renamed to · 37 unmodified lines | ||
| 260 | 252 | to a struct :c:type:`v4l2_frequency` instead of an |
| 261 | 253 | unsigned long integer. |
| 262 | 254 | |
| 263 | − | |
| 264 | 255 | .. _v4l-image-properties: |
| 265 | 256 | |
| 266 | 257 | Image Properties |
| @@ -274,7 +265,6 @@ replaced by V4L2 controls accessible with the · 7 unmodified lines | ||
| 274 | 265 | :ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>` ioctls: |
| 275 | 266 | |
| 276 | 267 | |
| 277 | − | |
| 278 | 268 | .. flat-table:: |
| 279 | 269 | :header-rows: 1 |
| 280 | 270 | :stub-columns: 0 |
| @@ -292,7 +282,6 @@ replaced by V4L2 controls accessible with the · 11 unmodified lines | ||
| 292 | 282 | * - ``whiteness`` |
| 293 | 283 | - ``V4L2_CID_WHITENESS`` |
| 294 | 284 | |
| 295 | − | |
| 296 | 285 | The V4L picture controls are assumed to range from 0 to 65535 with no |
| 297 | 286 | particular reset value. The V4L2 API permits arbitrary limits and |
| 298 | 287 | defaults which can be queried with the |
| @@ -306,7 +295,6 @@ of the image depth and others need not know. The ``palette`` field moved · 7 unmodified lines | ||
| 306 | 295 | into the struct :c:type:`v4l2_pix_format`: |
| 307 | 296 | |
| 308 | 297 | |
| 309 | − | |
| 310 | 298 | .. flat-table:: |
| 311 | 299 | :header-rows: 1 |
| 312 | 300 | :stub-columns: 0 |
| @@ -346,11 +334,9 @@ into the struct :c:type:`v4l2_pix_format`: · 33 unmodified lines | ||
| 346 | 334 | * - ``VIDEO_PALETTE_YUV410P`` |
| 347 | 335 | - :ref:`V4L2_PIX_FMT_YVU410 <V4L2-PIX-FMT-YVU410>` |
| 348 | 336 | |
| 349 | − | |
| 350 | 337 | V4L2 image formats are defined in :ref:`pixfmt`. The image format can |
| 351 | 338 | be selected with the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. |
| 352 | 339 | |
| 353 | − | |
| 354 | 340 | Audio |
| 355 | 341 | ===== |
| 356 | 342 | |
| @@ -384,7 +370,6 @@ The following fields where replaced by V4L2 controls accessible with the · 27 unmodified lines | ||
| 384 | 370 | :ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>` ioctls: |
| 385 | 371 | |
| 386 | 372 | |
| 387 | − | |
| 388 | 373 | .. flat-table:: |
| 389 | 374 | :header-rows: 1 |
| 390 | 375 | :stub-columns: 0 |
| @@ -400,7 +385,6 @@ The following fields where replaced by V4L2 controls accessible with the · 9 unmodified lines | ||
| 400 | 385 | * - ``balance`` |
| 401 | 386 | - ``V4L2_CID_AUDIO_BALANCE`` |
| 402 | 387 | |
| 403 | − | |
| 404 | 388 | To determine which of these controls are supported by a driver V4L |
| 405 | 389 | provides the ``flags`` ``VIDEO_AUDIO_VOLUME``, ``VIDEO_AUDIO_BASS``, |
| 406 | 390 | ``VIDEO_AUDIO_TREBLE`` and ``VIDEO_AUDIO_BALANCE``. In the V4L2 API the |
| @@ -416,7 +400,6 @@ V4L2 API permits arbitrary limits and defaults which can be queried with · 9 unmodified lines | ||
| 416 | 400 | the :ref:`VIDIOC_QUERYCTRL` ioctl. For general |
| 417 | 401 | information about controls see :ref:`control`. |
| 418 | 402 | |
| 419 | − | |
| 420 | 403 | Frame Buffer Overlay |
| 421 | 404 | ==================== |
| 422 | 405 | |
| @@ -463,7 +446,6 @@ size is determined by ``w.width`` and ``w.height``. · 40 unmodified lines | ||
| 463 | 446 | The ``VIDIOCCAPTURE`` ioctl to enable or disable overlay was renamed to |
| 464 | 447 | :ref:`VIDIOC_OVERLAY`. |
| 465 | 448 | |
| 466 | − | |
| 467 | 449 | Cropping |
| 468 | 450 | ======== |
| 469 | 451 | |
| @@ -490,21 +472,19 @@ struct :c:type:`v4l2_window`. These structures are used to · 20 unmodified lines | ||
| 490 | 472 | select a capture or overlay format with the |
| 491 | 473 | :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. |
| 492 | 474 | |
| 493 | − | |
| 494 | 475 | Reading Images, Memory Mapping |
| 495 | 476 | ============================== |
| 496 | 477 | |
| 497 | − | |
| 498 | 478 | Capturing using the read method |
| 499 | 479 | ------------------------------- |
| 500 | 480 | |
| 501 | 481 | There is no essential difference between reading images from a V4L or |
| 502 | −V4L2 device using the :ref:`read() <func-read>` function, however V4L2 | |
| 482 | +V4L2 device using the :c:func:`read()` function, however V4L2 | |
| 503 | 483 | drivers are not required to support this I/O method. Applications can |
| 504 | 484 | determine if the function is available with the |
| 505 | 485 | :ref:`VIDIOC_QUERYCAP` ioctl. All V4L2 devices |
| 506 | 486 | exchanging data with applications must support the |
| 507 | −:ref:`select() <func-select>` and :ref:`poll() <func-poll>` | |
| 487 | +:c:func:`select()` and :c:func:`poll()` | |
| 508 | 488 | functions. |
| 509 | 489 | |
| 510 | 490 | To select an image format and size, V4L provides the ``VIDIOCSPICT`` and |
| @@ -517,7 +497,6 @@ negotiation ioctls :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and · 6 unmodified lines | ||
| 517 | 497 | |
| 518 | 498 | For more information about the V4L2 read interface see :ref:`rw`. |
| 519 | 499 | |
| 520 | − | |
| 521 | 500 | Capturing using memory mapping |
| 522 | 501 | ------------------------------ |
| 523 | 502 | |
| @@ -528,7 +507,6 @@ read method. V4L2 supports memory mapping as well, with a few · 4 unmodified lines | ||
| 528 | 507 | differences. |
| 529 | 508 | |
| 530 | 509 | |
| 531 | − | |
| 532 | 510 | .. flat-table:: |
| 533 | 511 | :header-rows: 1 |
| 534 | 512 | :stub-columns: 0 |
| @@ -550,7 +528,7 @@ differences. · 15 unmodified lines | ||
| 550 | 528 | ``VIDIOCGMBUF`` ioctl is available to query the number of buffers, |
| 551 | 529 | the offset of each buffer from the start of the virtual file, and |
| 552 | 530 | the overall amount of memory used, which can be used as arguments |
| 553 | − for the :ref:`mmap() <func-mmap>` function. | |
| 531 | + for the :c:func:`mmap()` function. | |
| 554 | 532 | - Buffers are individually mapped. The offset and size of each |
| 555 | 533 | buffer can be determined with the |
| 556 | 534 | :ref:`VIDIOC_QUERYBUF` ioctl. |
| @@ -568,7 +546,7 @@ differences. · 11 unmodified lines | ||
| 568 | 546 | the incoming queue. Filled buffers are dequeued from the outgoing |
| 569 | 547 | queue with the :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. To wait |
| 570 | 548 | until filled buffers become available this function, |
| 571 | − :ref:`select() <func-select>` or :ref:`poll() <func-poll>` can | |
| 549 | + :c:func:`select()` or :c:func:`poll()` can | |
| 572 | 550 | be used. The :ref:`VIDIOC_STREAMON` ioctl |
| 573 | 551 | must be called once after enqueuing one or more buffers to start |
| 574 | 552 | capturing. Its counterpart |
| @@ -577,11 +555,9 @@ differences. · 2 unmodified lines | ||
| 577 | 555 | signal status, if known, with the |
| 578 | 556 | :ref:`VIDIOC_ENUMINPUT` ioctl. |
| 579 | 557 | |
| 580 | − | |
| 581 | 558 | For a more in-depth discussion of memory mapping and examples, see |
| 582 | 559 | :ref:`mmap`. |
| 583 | 560 | |
| 584 | − | |
| 585 | 561 | Reading Raw VBI Data |
| 586 | 562 | ==================== |
| 587 | 563 | |
| @@ -592,7 +568,6 @@ the V4L VBI interface. Reading from the device yields a raw VBI image · 4 unmodified lines | ||
| 592 | 568 | with the following parameters: |
| 593 | 569 | |
| 594 | 570 | |
| 595 | − | |
| 596 | 571 | .. flat-table:: |
| 597 | 572 | :header-rows: 1 |
| 598 | 573 | :stub-columns: 0 |
| @@ -616,7 +591,6 @@ with the following parameters: · 17 unmodified lines | ||
| 616 | 591 | * - flags |
| 617 | 592 | - 0 |
| 618 | 593 | |
| 619 | − | |
| 620 | 594 | Undocumented in the V4L specification, in Linux 2.3 the |
| 621 | 595 | ``VIDIOCGVBIFMT`` and ``VIDIOCSVBIFMT`` ioctls using struct |
| 622 | 596 | ``vbi_format`` were added to determine the VBI image |
| @@ -630,11 +604,10 @@ remaining fields are probably equivalent to struct · 7 unmodified lines | ||
| 630 | 604 | |
| 631 | 605 | Apparently only the Zoran (ZR 36120) driver implements these ioctls. The |
| 632 | 606 | semantics differ from those specified for V4L2 in two ways. The |
| 633 | −parameters are reset on :ref:`open() <func-open>` and | |
| 607 | +parameters are reset on :c:func:`open()` and | |
| 634 | 608 | ``VIDIOCSVBIFMT`` always returns an ``EINVAL`` error code if the parameters |
| 635 | 609 | are invalid. |
| 636 | 610 | |
| 637 | − | |
| 638 | 611 | Miscellaneous |
| 639 | 612 | ============= |
| 640 | 613 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _dmabuf: |
| 4 | 5 | |
| @@ -36,7 +37,6 @@ are passed in struct :c:type:`v4l2_buffer` (or in struct · 31 unmodified lines | ||
| 36 | 37 | driver must be switched into DMABUF I/O mode by calling the |
| 37 | 38 | :ref:`VIDIOC_REQBUFS <VIDIOC_REQBUFS>` with the desired buffer type. |
| 38 | 39 | |
| 39 | − | |
| 40 | 40 | Example: Initiating streaming I/O with DMABUF file descriptors |
| 41 | 41 | ============================================================== |
| 42 | 42 | |
| @@ -135,10 +135,10 @@ buffers it must wait until an empty buffer can be dequeued and reused. · 92 unmodified lines | ||
| 135 | 135 | Two methods exist to suspend execution of the application until one or |
| 136 | 136 | more buffers can be dequeued. By default :ref:`VIDIOC_DQBUF |
| 137 | 137 | <VIDIOC_QBUF>` blocks when no buffer is in the outgoing queue. When the |
| 138 | −``O_NONBLOCK`` flag was given to the :ref:`open() <func-open>` function, | |
| 138 | +``O_NONBLOCK`` flag was given to the :c:func:`open()` function, | |
| 139 | 139 | :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` returns immediately with an ``EAGAIN`` |
| 140 | 140 | error code when no buffer is available. The |
| 141 | −:ref:`select() <func-select>` and :ref:`poll() <func-poll>` | |
| 141 | +:c:func:`select()` and :c:func:`poll()` | |
| 142 | 142 | functions are always available. |
| 143 | 143 | |
| 144 | 144 | To start and stop capturing or displaying applications call the |
| @@ -158,5 +158,5 @@ Drivers implementing DMABUF importing I/O must support the · 13 unmodified lines | ||
| 158 | 158 | :ref:`VIDIOC_REQBUFS <VIDIOC_REQBUFS>`, :ref:`VIDIOC_QBUF <VIDIOC_QBUF>`, |
| 159 | 159 | :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>`, :ref:`VIDIOC_STREAMON |
| 160 | 160 | <VIDIOC_STREAMON>` and :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` ioctls, |
| 161 | −and the :ref:`select() <func-select>` and :ref:`poll() <func-poll>` | |
| 161 | +and the :c:func:`select()` and :c:func:`poll()` | |
| 162 | 162 | functions. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _format: |
| 4 | 5 | |
| @@ -6,7 +7,6 @@ · 1 unmodified line | ||
| 6 | 7 | Data Formats |
| 7 | 8 | ************ |
| 8 | 9 | |
| 9 | − | |
| 10 | 10 | Data Format Negotiation |
| 11 | 11 | ======================= |
| 12 | 12 | |
| @@ -53,8 +53,8 @@ image size. · 40 unmodified lines | ||
| 53 | 53 | When applications omit the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl its locking side |
| 54 | 54 | effects are implied by the next step, the selection of an I/O method |
| 55 | 55 | with the :ref:`VIDIOC_REQBUFS` ioctl or implicit |
| 56 | −with the first :ref:`read() <func-read>` or | |
| 57 | −:ref:`write() <func-write>` call. | |
| 56 | +with the first :c:func:`read()` or | |
| 57 | +:c:func:`write()` call. | |
| 58 | 58 | |
| 59 | 59 | Generally only one logical stream can be assigned to a file descriptor, |
| 60 | 60 | the exception being drivers permitting simultaneous video capturing and |
| @@ -67,7 +67,6 @@ All drivers exchanging data with applications must support the · 6 unmodified lines | ||
| 67 | 67 | :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. Implementation of the |
| 68 | 68 | :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` is highly recommended but optional. |
| 69 | 69 | |
| 70 | − | |
| 71 | 70 | Image Format Enumeration |
| 72 | 71 | ======================== |
| 73 | 72 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _func-close: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | v4l2-close - Close a V4L2 device |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,16 +19,13 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: int close( int fd ) |
| 24 | − :name: v4l2-close | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| 28 | 26 | |
| 29 | 27 | ``fd`` |
| 30 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 31 | − | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 32 | 29 | |
| 33 | 30 | Description |
| 34 | 31 | =========== |
| @@ -38,7 +35,6 @@ associated with the file descriptor are freed. However data format · 3 unmodified lines | ||
| 38 | 35 | parameters, current input or output, control values or other properties |
| 39 | 36 | remain unchanged. |
| 40 | 37 | |
| 41 | − | |
| 42 | 38 | Return Value |
| 43 | 39 | ============ |
| 44 | 40 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _func-ioctl: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | v4l2-ioctl - Program a V4L2 device |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,15 +19,13 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <sys/ioctl.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | −.. c:function:: int ioctl( int fd, int request, void *argp ) | |
| 24 | − :name: v4l2-ioctl | |
| 22 | +``int ioctl(int fd, int request, void *argp)`` | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| 28 | 26 | |
| 29 | 27 | ``fd`` |
| 30 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 31 | 29 | |
| 32 | 30 | ``request`` |
| 33 | 31 | V4L2 ioctl request code as defined in the ``videodev2.h`` header |
| @@ -36,7 +34,6 @@ Arguments · 2 unmodified lines | ||
| 36 | 34 | ``argp`` |
| 37 | 35 | Pointer to a function parameter, usually a structure. |
| 38 | 36 | |
| 39 | − | |
| 40 | 37 | Description |
| 41 | 38 | =========== |
| 42 | 39 | |
| @@ -50,7 +47,6 @@ include the version in the kernel sources on the system they compile on. · 7 unmodified lines | ||
| 50 | 47 | All V4L2 ioctl requests, their respective function and parameters are |
| 51 | 48 | specified in :ref:`user-func`. |
| 52 | 49 | |
| 53 | − | |
| 54 | 50 | Return Value |
| 55 | 51 | ============ |
| 56 | 52 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _func-mmap: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | v4l2-mmap - Map device memory into application address space |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -20,9 +20,7 @@ Synopsis · 2 unmodified lines | ||
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | #include <sys/mman.h> |
| 22 | 22 | |
| 23 | − | |
| 24 | 23 | .. c:function:: void *mmap( void *start, size_t length, int prot, int flags, int fd, off_t offset ) |
| 25 | − :name: v4l2-mmap | |
| 26 | 24 | |
| 27 | 25 | Arguments |
| 28 | 26 | ========= |
| @@ -54,7 +52,7 @@ Arguments · 25 unmodified lines | ||
| 54 | 52 | #. The Linux ``videobuf`` kernel module, which is used by some |
| 55 | 53 | drivers supports only ``PROT_READ`` | ``PROT_WRITE``. When the |
| 56 | 54 | driver does not support the desired protection, the |
| 57 | − :ref:`mmap() <func-mmap>` function fails. | |
| 55 | + :c:func:`mmap()` function fails. | |
| 58 | 56 | |
| 59 | 57 | #. Device memory accesses (e. g. the memory on a graphics card |
| 60 | 58 | with video capturing hardware) may incur a performance penalty |
| @@ -70,7 +68,7 @@ Arguments · 9 unmodified lines | ||
| 70 | 68 | |
| 71 | 69 | ``MAP_FIXED`` requests that the driver selects no other address than |
| 72 | 70 | the one specified. If the specified address cannot be used, |
| 73 | − :ref:`mmap() <func-mmap>` will fail. If ``MAP_FIXED`` is specified, | |
| 71 | + :c:func:`mmap()` will fail. If ``MAP_FIXED`` is specified, | |
| 74 | 72 | ``start`` must be a multiple of the pagesize. Use of this option is |
| 75 | 73 | discouraged. |
| 76 | 74 | |
| @@ -87,7 +85,7 @@ Arguments · 10 unmodified lines | ||
| 87 | 85 | flags. |
| 88 | 86 | |
| 89 | 87 | ``fd`` |
| 90 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 88 | + File descriptor returned by :c:func:`open()`. | |
| 91 | 89 | |
| 92 | 90 | ``offset`` |
| 93 | 91 | Offset of the buffer in device memory. This must be the same value |
| @@ -97,11 +95,10 @@ Arguments · 3 unmodified lines | ||
| 97 | 95 | in the struct :c:type:`v4l2_plane` ``m`` union |
| 98 | 96 | ``mem_offset`` field for the multi-planar API. |
| 99 | 97 | |
| 100 | − | |
| 101 | 98 | Description |
| 102 | 99 | =========== |
| 103 | 100 | |
| 104 | −The :ref:`mmap() <func-mmap>` function asks to map ``length`` bytes starting at | |
| 101 | +The :c:func:`mmap()` function asks to map ``length`` bytes starting at | |
| 105 | 102 | ``offset`` in the memory of the device specified by ``fd`` into the |
| 106 | 103 | application address space, preferably at address ``start``. This latter |
| 107 | 104 | address is a hint only, and is usually specified as 0. |
| @@ -111,13 +108,12 @@ Suitable length and offset parameters are queried with the · 3 unmodified lines | ||
| 111 | 108 | allocated with the :ref:`VIDIOC_REQBUFS` ioctl |
| 112 | 109 | before they can be queried. |
| 113 | 110 | |
| 114 | −To unmap buffers the :ref:`munmap() <func-munmap>` function is used. | |
| 115 | − | |
| 111 | +To unmap buffers the :c:func:`munmap()` function is used. | |
| 116 | 112 | |
| 117 | 113 | Return Value |
| 118 | 114 | ============ |
| 119 | 115 | |
| 120 | −On success :ref:`mmap() <func-mmap>` returns a pointer to the mapped buffer. On | |
| 116 | +On success :c:func:`mmap()` returns a pointer to the mapped buffer. On | |
| 121 | 117 | error ``MAP_FAILED`` (-1) is returned, and the ``errno`` variable is set |
| 122 | 118 | appropriately. Possible error codes are: |
| 123 | 119 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _func-munmap: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | v4l2-munmap - Unmap device memory |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -20,37 +20,33 @@ Synopsis · 2 unmodified lines | ||
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | #include <sys/mman.h> |
| 22 | 22 | |
| 23 | − | |
| 24 | 23 | .. c:function:: int munmap( void *start, size_t length ) |
| 25 | − :name: v4l2-munmap | |
| 26 | 24 | |
| 27 | 25 | Arguments |
| 28 | 26 | ========= |
| 29 | 27 | |
| 30 | 28 | ``start`` |
| 31 | 29 | Address of the mapped buffer as returned by the |
| 32 | − :ref:`mmap() <func-mmap>` function. | |
| 30 | + :c:func:`mmap()` function. | |
| 33 | 31 | |
| 34 | 32 | ``length`` |
| 35 | 33 | Length of the mapped buffer. This must be the same value as given to |
| 36 | − :ref:`mmap() <func-mmap>` and returned by the driver in the struct | |
| 34 | + :c:func:`mmap()` and returned by the driver in the struct | |
| 37 | 35 | :c:type:`v4l2_buffer` ``length`` field for the |
| 38 | 36 | single-planar API and in the struct |
| 39 | 37 | :c:type:`v4l2_plane` ``length`` field for the |
| 40 | 38 | multi-planar API. |
| 41 | 39 | |
| 42 | − | |
| 43 | 40 | Description |
| 44 | 41 | =========== |
| 45 | 42 | |
| 46 | −Unmaps a previously with the :ref:`mmap() <func-mmap>` function mapped | |
| 43 | +Unmaps a previously with the :c:func:`mmap()` function mapped | |
| 47 | 44 | buffer and frees it, if possible. |
| 48 | 45 | |
| 49 | − | |
| 50 | 46 | Return Value |
| 51 | 47 | ============ |
| 52 | 48 | |
| 53 | −On success :ref:`munmap() <func-munmap>` returns 0, on failure -1 and the | |
| 49 | +On success :c:func:`munmap()` returns 0, on failure -1 and the | |
| 54 | 50 | ``errno`` variable is set appropriately: |
| 55 | 51 | |
| 56 | 52 | EINVAL |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _func-open: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | v4l2-open - Open a V4L2 device |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,9 +19,7 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <fcntl.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: int open( const char *device_name, int flags ) |
| 24 | − :name: v4l2-open | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| @@ -34,7 +32,7 @@ Arguments · 6 unmodified lines | ||
| 34 | 32 | technicality, input devices still support only reading and output |
| 35 | 33 | devices only writing. |
| 36 | 34 | |
| 37 | − When the ``O_NONBLOCK`` flag is given, the :ref:`read() <func-read>` | |
| 35 | + When the ``O_NONBLOCK`` flag is given, the :c:func:`read()` | |
| 38 | 36 | function and the :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl will |
| 39 | 37 | return the ``EAGAIN`` error code when no data is available or no |
| 40 | 38 | buffer is in the driver outgoing queue, otherwise these functions |
| @@ -43,22 +41,20 @@ Arguments · 2 unmodified lines | ||
| 43 | 41 | |
| 44 | 42 | Other flags have no effect. |
| 45 | 43 | |
| 46 | − | |
| 47 | 44 | Description |
| 48 | 45 | =========== |
| 49 | 46 | |
| 50 | −To open a V4L2 device applications call :ref:`open() <func-open>` with the | |
| 47 | +To open a V4L2 device applications call :c:func:`open()` with the | |
| 51 | 48 | desired device name. This function has no side effects; all data format |
| 52 | 49 | parameters, current input or output, control values or other properties |
| 53 | −remain unchanged. At the first :ref:`open() <func-open>` call after loading the | |
| 50 | +remain unchanged. At the first :c:func:`open()` call after loading the | |
| 54 | 51 | driver they will be reset to default values, drivers are never in an |
| 55 | 52 | undefined state. |
| 56 | 53 | |
| 57 | − | |
| 58 | 54 | Return Value |
| 59 | 55 | ============ |
| 60 | 56 | |
| 61 | −On success :ref:`open() <func-open>` returns the new file descriptor. On error | |
| 57 | +On success :c:func:`open()` returns the new file descriptor. On error | |
| 62 | 58 | -1 is returned, and the ``errno`` variable is set appropriately. |
| 63 | 59 | Possible error codes are: |
| 64 | 60 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _func-poll: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | v4l2-poll - Wait for some event on a file descriptor |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,19 +19,16 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <sys/poll.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: int poll( struct pollfd *ufds, unsigned int nfds, int timeout ) |
| 24 | − :name: v4l2-poll | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| 28 | 26 | |
| 29 | 27 | |
| 30 | − | |
| 31 | 28 | Description |
| 32 | 29 | =========== |
| 33 | 30 | |
| 34 | −With the :ref:`poll() <func-poll>` function applications can suspend execution | |
| 31 | +With the :c:func:`poll()` function applications can suspend execution | |
| 35 | 32 | until the driver has captured data or is ready to accept data for |
| 36 | 33 | output. |
| 37 | 34 | |
| @@ -44,57 +41,56 @@ display. When buffers are already in the outgoing queue of the driver · 6 unmodified lines | ||
| 44 | 41 | (capture) or the incoming queue isn't full (display) the function |
| 45 | 42 | returns immediately. |
| 46 | 43 | |
| 47 | −On success :ref:`poll() <func-poll>` returns the number of file descriptors | |
| 44 | +On success :c:func:`poll()` returns the number of file descriptors | |
| 48 | 45 | that have been selected (that is, file descriptors for which the |
| 49 | −``revents`` field of the respective :c:func:`struct pollfd` structure | |
| 46 | +``revents`` field of the respective ``struct pollfd`` structure | |
| 50 | 47 | is non-zero). Capture devices set the ``POLLIN`` and ``POLLRDNORM`` |
| 51 | 48 | flags in the ``revents`` field, output devices the ``POLLOUT`` and |
| 52 | 49 | ``POLLWRNORM`` flags. When the function timed out it returns a value of |
| 53 | 50 | zero, on failure it returns -1 and the ``errno`` variable is set |
| 54 | 51 | appropriately. When the application did not call |
| 55 | −:ref:`VIDIOC_STREAMON <VIDIOC_STREAMON>` the :ref:`poll() <func-poll>` | |
| 52 | +:ref:`VIDIOC_STREAMON <VIDIOC_STREAMON>` the :c:func:`poll()` | |
| 56 | 53 | function succeeds, but sets the ``POLLERR`` flag in the ``revents`` |
| 57 | 54 | field. When the application has called |
| 58 | 55 | :ref:`VIDIOC_STREAMON <VIDIOC_STREAMON>` for a capture device but |
| 59 | 56 | hasn't yet called :ref:`VIDIOC_QBUF <VIDIOC_QBUF>`, the |
| 60 | −:ref:`poll() <func-poll>` function succeeds and sets the ``POLLERR`` flag in | |
| 57 | +:c:func:`poll()` function succeeds and sets the ``POLLERR`` flag in | |
| 61 | 58 | the ``revents`` field. For output devices this same situation will cause |
| 62 | −:ref:`poll() <func-poll>` to succeed as well, but it sets the ``POLLOUT`` and | |
| 59 | +:c:func:`poll()` to succeed as well, but it sets the ``POLLOUT`` and | |
| 63 | 60 | ``POLLWRNORM`` flags in the ``revents`` field. |
| 64 | 61 | |
| 65 | 62 | If an event occurred (see :ref:`VIDIOC_DQEVENT`) |
| 66 | 63 | then ``POLLPRI`` will be set in the ``revents`` field and |
| 67 | −:ref:`poll() <func-poll>` will return. | |
| 64 | +:c:func:`poll()` will return. | |
| 68 | 65 | |
| 69 | −When use of the :ref:`read() <func-read>` function has been negotiated and the | |
| 70 | −driver does not capture yet, the :ref:`poll() <func-poll>` function starts | |
| 66 | +When use of the :c:func:`read()` function has been negotiated and the | |
| 67 | +driver does not capture yet, the :c:func:`poll()` function starts | |
| 71 | 68 | capturing. When that fails it returns a ``POLLERR`` as above. Otherwise |
| 72 | 69 | it waits until data has been captured and can be read. When the driver |
| 73 | 70 | captures continuously (as opposed to, for example, still images) the |
| 74 | 71 | function may return immediately. |
| 75 | 72 | |
| 76 | −When use of the :ref:`write() <func-write>` function has been negotiated and the | |
| 77 | −driver does not stream yet, the :ref:`poll() <func-poll>` function starts | |
| 73 | +When use of the :c:func:`write()` function has been negotiated and the | |
| 74 | +driver does not stream yet, the :c:func:`poll()` function starts | |
| 78 | 75 | streaming. When that fails it returns a ``POLLERR`` as above. Otherwise |
| 79 | 76 | it waits until the driver is ready for a non-blocking |
| 80 | −:ref:`write() <func-write>` call. | |
| 77 | +:c:func:`write()` call. | |
| 81 | 78 | |
| 82 | 79 | If the caller is only interested in events (just ``POLLPRI`` is set in |
| 83 | −the ``events`` field), then :ref:`poll() <func-poll>` will *not* start | |
| 80 | +the ``events`` field), then :c:func:`poll()` will *not* start | |
| 84 | 81 | streaming if the driver does not stream yet. This makes it possible to |
| 85 | 82 | just poll for events and not for buffers. |
| 86 | 83 | |
| 87 | −All drivers implementing the :ref:`read() <func-read>` or :ref:`write() <func-write>` | |
| 88 | −function or streaming I/O must also support the :ref:`poll() <func-poll>` | |
| 84 | +All drivers implementing the :c:func:`read()` or :c:func:`write()` | |
| 85 | +function or streaming I/O must also support the :c:func:`poll()` | |
| 89 | 86 | function. |
| 90 | 87 | |
| 91 | −For more details see the :ref:`poll() <func-poll>` manual page. | |
| 92 | − | |
| 88 | +For more details see the :c:func:`poll()` manual page. | |
| 93 | 89 | |
| 94 | 90 | Return Value |
| 95 | 91 | ============ |
| 96 | 92 | |
| 97 | −On success, :ref:`poll() <func-poll>` returns the number structures which have | |
| 93 | +On success, :c:func:`poll()` returns the number structures which have | |
| 98 | 94 | non-zero ``revents`` fields, or zero if the call timed out. On error -1 |
| 99 | 95 | is returned, and the ``errno`` variable is set appropriately: |
| 100 | 96 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _func-read: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | v4l2-read - Read from a V4L2 device |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,15 +19,13 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: ssize_t read( int fd, void *buf, size_t count ) |
| 24 | − :name: v4l2-read | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| 28 | 26 | |
| 29 | 27 | ``fd`` |
| 30 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 31 | 29 | |
| 32 | 30 | ``buf`` |
| 33 | 31 | Buffer to be filled |
| @@ -38,48 +36,48 @@ Arguments · 4 unmodified lines | ||
| 38 | 36 | Description |
| 39 | 37 | =========== |
| 40 | 38 | |
| 41 | −:ref:`read() <func-read>` attempts to read up to ``count`` bytes from file | |
| 39 | +:c:func:`read()` attempts to read up to ``count`` bytes from file | |
| 42 | 40 | descriptor ``fd`` into the buffer starting at ``buf``. The layout of the |
| 43 | 41 | data in the buffer is discussed in the respective device interface |
| 44 | −section, see ##. If ``count`` is zero, :ref:`read() <func-read>` returns zero | |
| 42 | +section, see ##. If ``count`` is zero, :c:func:`read()` returns zero | |
| 45 | 43 | and has no other results. If ``count`` is greater than ``SSIZE_MAX``, |
| 46 | 44 | the result is unspecified. Regardless of the ``count`` value each |
| 47 | −:ref:`read() <func-read>` call will provide at most one frame (two fields) | |
| 45 | +:c:func:`read()` call will provide at most one frame (two fields) | |
| 48 | 46 | worth of data. |
| 49 | 47 | |
| 50 | −By default :ref:`read() <func-read>` blocks until data becomes available. When | |
| 51 | −the ``O_NONBLOCK`` flag was given to the :ref:`open() <func-open>` | |
| 48 | +By default :c:func:`read()` blocks until data becomes available. When | |
| 49 | +the ``O_NONBLOCK`` flag was given to the :c:func:`open()` | |
| 52 | 50 | function it returns immediately with an ``EAGAIN`` error code when no data |
| 53 | −is available. The :ref:`select() <func-select>` or | |
| 54 | −:ref:`poll() <func-poll>` functions can always be used to suspend | |
| 51 | +is available. The :c:func:`select()` or | |
| 52 | +:c:func:`poll()` functions can always be used to suspend | |
| 55 | 53 | execution until data becomes available. All drivers supporting the |
| 56 | −:ref:`read() <func-read>` function must also support :ref:`select() <func-select>` and | |
| 57 | −:ref:`poll() <func-poll>`. | |
| 54 | +:c:func:`read()` function must also support :c:func:`select()` and | |
| 55 | +:c:func:`poll()`. | |
| 58 | 56 | |
| 59 | 57 | Drivers can implement read functionality in different ways, using a |
| 60 | 58 | single or multiple buffers and discarding the oldest or newest frames |
| 61 | 59 | once the internal buffers are filled. |
| 62 | 60 | |
| 63 | −:ref:`read() <func-read>` never returns a "snapshot" of a buffer being filled. | |
| 61 | +:c:func:`read()` never returns a "snapshot" of a buffer being filled. | |
| 64 | 62 | Using a single buffer the driver will stop capturing when the |
| 65 | 63 | application starts reading the buffer until the read is finished. Thus |
| 66 | 64 | only the period of the vertical blanking interval is available for |
| 67 | 65 | reading, or the capture rate must fall below the nominal frame rate of |
| 68 | 66 | the video standard. |
| 69 | 67 | |
| 70 | −The behavior of :ref:`read() <func-read>` when called during the active picture | |
| 68 | +The behavior of :c:func:`read()` when called during the active picture | |
| 71 | 69 | period or the vertical blanking separating the top and bottom field |
| 72 | 70 | depends on the discarding policy. A driver discarding the oldest frames |
| 73 | 71 | keeps capturing into an internal buffer, continuously overwriting the |
| 74 | 72 | previously, not read frame, and returns the frame being received at the |
| 75 | −time of the :ref:`read() <func-read>` call as soon as it is complete. | |
| 73 | +time of the :c:func:`read()` call as soon as it is complete. | |
| 76 | 74 | |
| 77 | 75 | A driver discarding the newest frames stops capturing until the next |
| 78 | −:ref:`read() <func-read>` call. The frame being received at :ref:`read() <func-read>` | |
| 76 | +:c:func:`read()` call. The frame being received at :c:func:`read()` | |
| 79 | 77 | time is discarded, returning the following frame instead. Again this |
| 80 | 78 | implies a reduction of the capture rate to one half or less of the |
| 81 | 79 | nominal frame rate. An example of this model is the video read mode of |
| 82 | −the bttv driver, initiating a DMA to user memory when :ref:`read() <func-read>` | |
| 80 | +the bttv driver, initiating a DMA to user memory when :c:func:`read()` | |
| 83 | 81 | is called and returning when the DMA finished. |
| 84 | 82 | |
| 85 | 83 | In the multiple buffer model drivers maintain a ring of internal |
| @@ -94,14 +92,13 @@ the driver with the :ref:`VIDIOC_G_PARM <VIDIOC_G_PARM>` and · 8 unmodified lines | ||
| 94 | 92 | however. The discarding policy is not reported and cannot be changed. |
| 95 | 93 | For minimum requirements see :ref:`devices`. |
| 96 | 94 | |
| 97 | − | |
| 98 | 95 | Return Value |
| 99 | 96 | ============ |
| 100 | 97 | |
| 101 | 98 | On success, the number of bytes read is returned. It is not an error if |
| 102 | 99 | this number is smaller than the number of bytes requested, or the amount |
| 103 | 100 | of data required for one frame. This may happen for example because |
| 104 | −:ref:`read() <func-read>` was interrupted by a signal. On error, -1 is | |
| 101 | +:c:func:`read()` was interrupted by a signal. On error, -1 is | |
| 105 | 102 | returned, and the ``errno`` variable is set appropriately. In this case |
| 106 | 103 | the next read will start at the beginning of a new frame. Possible error |
| 107 | 104 | codes are: |
| @@ -129,5 +126,5 @@ EIO · 21 unmodified lines | ||
| 129 | 126 | communicate with a remote device (USB camera etc.). |
| 130 | 127 | |
| 131 | 128 | EINVAL |
| 132 | − The :ref:`read() <func-read>` function is not supported by this driver, not | |
| 129 | + The :c:func:`read()` function is not supported by this driver, not | |
| 133 | 130 | on this device, or generally not on this type of device. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _func-select: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | v4l2-select - Synchronous I/O multiplexing |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -21,9 +21,7 @@ Synopsis · 3 unmodified lines | ||
| 21 | 21 | #include <sys/types.h> |
| 22 | 22 | #include <unistd.h> |
| 23 | 23 | |
| 24 | − | |
| 25 | 24 | .. c:function:: int select( int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout ) |
| 26 | − :name: v4l2-select | |
| 27 | 25 | |
| 28 | 26 | Arguments |
| 29 | 27 | ========= |
| @@ -43,11 +41,10 @@ Arguments · 13 unmodified lines | ||
| 43 | 41 | ``timeout`` |
| 44 | 42 | Maximum time to wait. |
| 45 | 43 | |
| 46 | − | |
| 47 | 44 | Description |
| 48 | 45 | =========== |
| 49 | 46 | |
| 50 | −With the :ref:`select() <func-select>` function applications can suspend | |
| 47 | +With the :c:func:`select()` function applications can suspend | |
| 51 | 48 | execution until the driver has captured data or is ready to accept data |
| 52 | 49 | for output. |
| 53 | 50 | |
| @@ -56,40 +53,39 @@ buffer has been filled or displayed and can be dequeued with the · 2 unmodified lines | ||
| 56 | 53 | :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. When buffers are already in |
| 57 | 54 | the outgoing queue of the driver the function returns immediately. |
| 58 | 55 | |
| 59 | −On success :ref:`select() <func-select>` returns the total number of bits set in | |
| 60 | −:c:func:`struct fd_set`. When the function timed out it returns | |
| 56 | +On success :c:func:`select()` returns the total number of bits set in | |
| 57 | +``fd_set``. When the function timed out it returns | |
| 61 | 58 | a value of zero. On failure it returns -1 and the ``errno`` variable is |
| 62 | 59 | set appropriately. When the application did not call |
| 63 | 60 | :ref:`VIDIOC_QBUF` or |
| 64 | −:ref:`VIDIOC_STREAMON` yet the :ref:`select() <func-select>` | |
| 61 | +:ref:`VIDIOC_STREAMON` yet the :c:func:`select()` | |
| 65 | 62 | function succeeds, setting the bit of the file descriptor in ``readfds`` |
| 66 | 63 | or ``writefds``, but subsequent :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` |
| 67 | 64 | calls will fail. [#f1]_ |
| 68 | 65 | |
| 69 | −When use of the :ref:`read() <func-read>` function has been negotiated and the | |
| 70 | −driver does not capture yet, the :ref:`select() <func-select>` function starts | |
| 71 | −capturing. When that fails, :ref:`select() <func-select>` returns successful and | |
| 72 | −a subsequent :ref:`read() <func-read>` call, which also attempts to start | |
| 66 | +When use of the :c:func:`read()` function has been negotiated and the | |
| 67 | +driver does not capture yet, the :c:func:`select()` function starts | |
| 68 | +capturing. When that fails, :c:func:`select()` returns successful and | |
| 69 | +a subsequent :c:func:`read()` call, which also attempts to start | |
| 73 | 70 | capturing, will return an appropriate error code. When the driver |
| 74 | 71 | captures continuously (as opposed to, for example, still images) and |
| 75 | −data is already available the :ref:`select() <func-select>` function returns | |
| 72 | +data is already available the :c:func:`select()` function returns | |
| 76 | 73 | immediately. |
| 77 | 74 | |
| 78 | −When use of the :ref:`write() <func-write>` function has been negotiated the | |
| 79 | −:ref:`select() <func-select>` function just waits until the driver is ready for a | |
| 80 | −non-blocking :ref:`write() <func-write>` call. | |
| 75 | +When use of the :c:func:`write()` function has been negotiated the | |
| 76 | +:c:func:`select()` function just waits until the driver is ready for a | |
| 77 | +non-blocking :c:func:`write()` call. | |
| 81 | 78 | |
| 82 | −All drivers implementing the :ref:`read() <func-read>` or :ref:`write() <func-write>` | |
| 83 | −function or streaming I/O must also support the :ref:`select() <func-select>` | |
| 79 | +All drivers implementing the :c:func:`read()` or :c:func:`write()` | |
| 80 | +function or streaming I/O must also support the :c:func:`select()` | |
| 84 | 81 | function. |
| 85 | 82 | |
| 86 | −For more details see the :ref:`select() <func-select>` manual page. | |
| 87 | − | |
| 83 | +For more details see the :c:func:`select()` manual page. | |
| 88 | 84 | |
| 89 | 85 | Return Value |
| 90 | 86 | ============ |
| 91 | 87 | |
| 92 | −On success, :ref:`select() <func-select>` returns the number of descriptors | |
| 88 | +On success, :c:func:`select()` returns the number of descriptors | |
| 93 | 89 | contained in the three returned descriptor sets, which will be zero if |
| 94 | 90 | the timeout expired. On error -1 is returned, and the ``errno`` variable |
| 95 | 91 | is set appropriately; the sets and ``timeout`` are undefined. Possible |
| @@ -115,6 +111,6 @@ EINVAL · 19 unmodified lines | ||
| 115 | 111 | ``FD_SETSIZE``. |
| 116 | 112 | |
| 117 | 113 | .. [#f1] |
| 118 | − The Linux kernel implements :ref:`select() <func-select>` like the | |
| 119 | − :ref:`poll() <func-poll>` function, but :ref:`select() <func-select>` cannot | |
| 114 | + The Linux kernel implements :c:func:`select()` like the | |
| 115 | + :c:func:`poll()` function, but :c:func:`select()` cannot | |
| 120 | 116 | return a ``POLLERR``. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _func-write: |
| 4 | 5 | |
| @@ -11,7 +12,6 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | v4l2-write - Write to a V4L2 device |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| @@ -19,15 +19,13 @@ Synopsis · 1 unmodified line | ||
| 19 | 19 | |
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | − | |
| 23 | 22 | .. c:function:: ssize_t write( int fd, void *buf, size_t count ) |
| 24 | − :name: v4l2-write | |
| 25 | 23 | |
| 26 | 24 | Arguments |
| 27 | 25 | ========= |
| 28 | 26 | |
| 29 | 27 | ``fd`` |
| 30 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 28 | + File descriptor returned by :c:func:`open()`. | |
| 31 | 29 | |
| 32 | 30 | ``buf`` |
| 33 | 31 | Buffer with data to be written |
| @@ -38,10 +36,10 @@ Arguments · 4 unmodified lines | ||
| 38 | 36 | Description |
| 39 | 37 | =========== |
| 40 | 38 | |
| 41 | −:ref:`write() <func-write>` writes up to ``count`` bytes to the device | |
| 39 | +:c:func:`write()` writes up to ``count`` bytes to the device | |
| 42 | 40 | referenced by the file descriptor ``fd`` from the buffer starting at |
| 43 | 41 | ``buf``. When the hardware outputs are not active yet, this function |
| 44 | −enables them. When ``count`` is zero, :ref:`write() <func-write>` returns 0 | |
| 42 | +enables them. When ``count`` is zero, :c:func:`write()` returns 0 | |
| 45 | 43 | without any other effect. |
| 46 | 44 | |
| 47 | 45 | When the application does not provide more data in time, the previous |
| @@ -49,7 +47,6 @@ video frame, raw VBI image, sliced VPS or WSS data is displayed again. · 1 unmodified line | ||
| 49 | 47 | Sliced Teletext or Closed Caption data is not repeated, the driver |
| 50 | 48 | inserts a blank line instead. |
| 51 | 49 | |
| 52 | − | |
| 53 | 50 | Return Value |
| 54 | 51 | ============ |
| 55 | 52 | |
| @@ -80,5 +77,5 @@ EIO · 24 unmodified lines | ||
| 80 | 77 | I/O error. This indicates some hardware problem. |
| 81 | 78 | |
| 82 | 79 | EINVAL |
| 83 | − The :ref:`write() <func-write>` function is not supported by this driver, | |
| 80 | + The :c:func:`write()` function is not supported by this driver, | |
| 84 | 81 | not on this device, or generally not on this type of device. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _hist-v4l2: |
| 4 | 5 | |
| @@ -14,18 +15,17 @@ not just an extension but a replacement for the V4L API. However it took · 9 unmodified lines | ||
| 14 | 15 | another four years and two stable kernel releases until the new API was |
| 15 | 16 | finally accepted for inclusion into the kernel in its present form. |
| 16 | 17 | |
| 17 | − | |
| 18 | 18 | Early Versions |
| 19 | 19 | ============== |
| 20 | 20 | |
| 21 | 21 | 1998-08-20: First version. |
| 22 | 22 | |
| 23 | −1998-08-27: The :ref:`select() <func-select>` function was introduced. | |
| 23 | +1998-08-27: The :c:func:`select()` function was introduced. | |
| 24 | 24 | |
| 25 | 25 | 1998-09-10: New video standard interface. |
| 26 | 26 | |
| 27 | 27 | 1998-09-18: The ``VIDIOC_NONCAP`` ioctl was replaced by the otherwise |
| 28 | −meaningless ``O_TRUNC`` :ref:`open() <func-open>` flag, and the | |
| 28 | +meaningless ``O_TRUNC`` :c:func:`open()` flag, and the | |
| 29 | 29 | aliases ``O_NONCAP`` and ``O_NOIO`` were defined. Applications can set |
| 30 | 30 | this flag if they intend to access controls only, as opposed to capture |
| 31 | 31 | applications which need exclusive access. The ``VIDEO_STD_XXX`` |
| @@ -65,7 +65,6 @@ output devices were added. · 33 unmodified lines | ||
| 65 | 65 | |
| 66 | 66 | 1999-01-19: The ``VIDIOC_NEXTBUF`` ioctl was removed. |
| 67 | 67 | |
| 68 | − | |
| 69 | 68 | V4L2 Version 0.16 1999-01-31 |
| 70 | 69 | ============================ |
| 71 | 70 | |
| @@ -73,7 +72,6 @@ V4L2 Version 0.16 1999-01-31 · 1 unmodified line | ||
| 73 | 72 | are gone. VIDIOC_QBUF takes a v4l2_buffer as a parameter. Added |
| 74 | 73 | digital zoom (cropping) controls. |
| 75 | 74 | |
| 76 | − | |
| 77 | 75 | V4L2 Version 0.18 1999-03-16 |
| 78 | 76 | ============================ |
| 79 | 77 | |
| @@ -81,7 +79,6 @@ Added a v4l to V4L2 ioctl compatibility layer to videodev.c. Driver · 1 unmodified line | ||
| 81 | 79 | writers, this changes how you implement your ioctl handler. See the |
| 82 | 80 | Driver Writer's Guide. Added some more control id codes. |
| 83 | 81 | |
| 84 | − | |
| 85 | 82 | V4L2 Version 0.19 1999-06-05 |
| 86 | 83 | ============================ |
| 87 | 84 | |
| @@ -107,7 +104,6 @@ malfunction of this ioctl. · 19 unmodified lines | ||
| 107 | 104 | |
| 108 | 105 | 1999-06-05: Changed the value of V4L2_CID_WHITENESS. |
| 109 | 106 | |
| 110 | − | |
| 111 | 107 | V4L2 Version 0.20 (1999-09-10) |
| 112 | 108 | ============================== |
| 113 | 109 | |
| @@ -128,14 +124,12 @@ common Linux driver API conventions. · 14 unmodified lines | ||
| 128 | 124 | VIDIOC_STREAMON, VIDIOC_STREAMOFF, VIDIOC_S_FREQ, |
| 129 | 125 | VIDIOC_S_INPUT, VIDIOC_S_OUTPUT, VIDIOC_S_EFFECT. For example |
| 130 | 126 | |
| 131 | − | |
| 132 | 127 | .. code-block:: c |
| 133 | 128 | |
| 134 | 129 | err = ioctl (fd, VIDIOC_XXX, V4L2_XXX); |
| 135 | 130 | |
| 136 | 131 | becomes |
| 137 | 132 | |
| 138 | − | |
| 139 | 133 | .. code-block:: c |
| 140 | 134 | |
| 141 | 135 | int a = V4L2_XXX; err = ioctl(fd, VIDIOC_XXX, &a); |
| @@ -202,7 +196,6 @@ common Linux driver API conventions. · 60 unmodified lines | ||
| 202 | 196 | field counts captured frames, it is ignored by output devices. When a |
| 203 | 197 | capture driver drops a frame, the sequence number of that frame is skipped. |
| 204 | 198 | |
| 205 | − | |
| 206 | 199 | V4L2 Version 0.20 incremental changes |
| 207 | 200 | ===================================== |
| 208 | 201 | |
| @@ -290,13 +283,11 @@ A number of changes were made to the raw VBI interface. · 81 unmodified lines | ||
| 290 | 283 | were added. The former is an alias for the old ``V4L2_TYPE_VBI``, the |
| 291 | 284 | latter was missing in the ``videodev.h`` file. |
| 292 | 285 | |
| 293 | − | |
| 294 | 286 | V4L2 Version 0.20 2002-07-25 |
| 295 | 287 | ============================ |
| 296 | 288 | |
| 297 | 289 | Added sliced VBI interface proposal. |
| 298 | 290 | |
| 299 | − | |
| 300 | 291 | V4L2 in Linux 2.5.46, 2002-10 |
| 301 | 292 | ============================= |
| 302 | 293 | |
| @@ -307,7 +298,7 @@ This unnamed version was finally merged into Linux 2.5.46. · 4 unmodified lines | ||
| 307 | 298 | 1. As specified in :ref:`related`, drivers must make related device |
| 308 | 299 | functions available under all minor device numbers. |
| 309 | 300 | |
| 310 | −2. The :ref:`open() <func-open>` function requires access mode | |
| 301 | +2. The :c:func:`open()` function requires access mode | |
| 311 | 302 | ``O_RDWR`` regardless of the device type. All V4L2 drivers |
| 312 | 303 | exchanging data with applications must support the ``O_NONBLOCK`` |
| 313 | 304 | flag. The ``O_NOIO`` flag, a V4L2 symbol which aliased the |
| @@ -435,7 +426,6 @@ This unnamed version was finally merged into Linux 2.5.46. · 121 unmodified lines | ||
| 435 | 426 | the buffer type names changed as follows. |
| 436 | 427 | |
| 437 | 428 | |
| 438 | − | |
| 439 | 429 | .. flat-table:: |
| 440 | 430 | :header-rows: 1 |
| 441 | 431 | :stub-columns: 0 |
| @@ -597,7 +587,6 @@ This unnamed version was finally merged into Linux 2.5.46. · 155 unmodified lines | ||
| 597 | 587 | V4L2 documentation was inaccurate, this has been corrected in |
| 598 | 588 | :ref:`pixfmt`. |
| 599 | 589 | |
| 600 | − | |
| 601 | 590 | V4L2 2003-06-19 |
| 602 | 591 | =============== |
| 603 | 592 | |
| @@ -648,7 +637,6 @@ V4L2 2003-06-19 · 44 unmodified lines | ||
| 648 | 637 | Kernel 2.6.39. Drivers and applications assuming a constant parameter |
| 649 | 638 | need an update. |
| 650 | 639 | |
| 651 | − | |
| 652 | 640 | V4L2 2003-11-05 |
| 653 | 641 | =============== |
| 654 | 642 | |
| @@ -657,7 +645,6 @@ V4L2 2003-11-05 · 2 unmodified lines | ||
| 657 | 645 | refer to bytes in memory, in ascending address order. |
| 658 | 646 | |
| 659 | 647 | |
| 660 | − | |
| 661 | 648 | .. flat-table:: |
| 662 | 649 | :header-rows: 1 |
| 663 | 650 | :stub-columns: 0 |
| @@ -678,7 +665,6 @@ V4L2 2003-11-05 · 14 unmodified lines | ||
| 678 | 665 | - R, G, B, X |
| 679 | 666 | - B, G, R, X |
| 680 | 667 | |
| 681 | − | |
| 682 | 668 | The ``V4L2_PIX_FMT_BGR24`` example was always correct. |
| 683 | 669 | |
| 684 | 670 | In :ref:`v4l-image-properties` the mapping of the V4L |
| @@ -689,7 +675,6 @@ V4L2 2003-11-05 · 4 unmodified lines | ||
| 689 | 675 | RGB pixel formats differently. These issues have yet to be addressed, |
| 690 | 676 | for details see :ref:`pixfmt-rgb`. |
| 691 | 677 | |
| 692 | − | |
| 693 | 678 | V4L2 in Linux 2.6.6, 2004-05-09 |
| 694 | 679 | =============================== |
| 695 | 680 | |
| @@ -698,7 +683,6 @@ V4L2 in Linux 2.6.6, 2004-05-09 · 2 unmodified lines | ||
| 698 | 683 | ioctl, while the read-only version was renamed to |
| 699 | 684 | ``VIDIOC_CROPCAP_OLD``. The old ioctl was removed on Kernel 2.6.39. |
| 700 | 685 | |
| 701 | − | |
| 702 | 686 | V4L2 in Linux 2.6.8 |
| 703 | 687 | =================== |
| 704 | 688 | |
| @@ -709,7 +693,6 @@ V4L2 in Linux 2.6.8 · 4 unmodified lines | ||
| 709 | 693 | the new ``V4L2_BUF_FLAG_INPUT`` flag. The ``flags`` field is no |
| 710 | 694 | longer read-only. |
| 711 | 695 | |
| 712 | − | |
| 713 | 696 | V4L2 spec erratum 2004-08-01 |
| 714 | 697 | ============================ |
| 715 | 698 | |
| @@ -727,7 +710,6 @@ V4L2 spec erratum 2004-08-01 · 11 unmodified lines | ||
| 727 | 710 | also missing from examples. Also on the ``VIDIOC_DQBUF`` page the ``EIO`` |
| 728 | 711 | error code was not documented. |
| 729 | 712 | |
| 730 | − | |
| 731 | 713 | V4L2 in Linux 2.6.14 |
| 732 | 714 | ==================== |
| 733 | 715 | |
| @@ -735,7 +717,6 @@ V4L2 in Linux 2.6.14 · 1 unmodified line | ||
| 735 | 717 | :ref:`sliced` and replaces the interface first proposed in V4L2 |
| 736 | 718 | specification 0.8. |
| 737 | 719 | |
| 738 | − | |
| 739 | 720 | V4L2 in Linux 2.6.15 |
| 740 | 721 | ==================== |
| 741 | 722 | |
| @@ -755,7 +736,6 @@ V4L2 in Linux 2.6.15 · 13 unmodified lines | ||
| 755 | 736 | ``VIDIOC_G_MPEGCOMP`` and ``VIDIOC_S_MPEGCOMP`` ioctls where removed |
| 756 | 737 | in Linux 2.6.25.) |
| 757 | 738 | |
| 758 | − | |
| 759 | 739 | V4L2 spec erratum 2005-11-27 |
| 760 | 740 | ============================ |
| 761 | 741 | |
| @@ -765,7 +745,6 @@ cropping is supported. In the video standard selection example in · 3 unmodified lines | ||
| 765 | 745 | :ref:`standard` the :ref:`VIDIOC_S_STD <VIDIOC_G_STD>` call used |
| 766 | 746 | the wrong argument type. |
| 767 | 747 | |
| 768 | − | |
| 769 | 748 | V4L2 spec erratum 2006-01-10 |
| 770 | 749 | ============================ |
| 771 | 750 | |
| @@ -778,14 +757,12 @@ V4L2 spec erratum 2006-01-10 · 6 unmodified lines | ||
| 778 | 757 | write-only as stated on its reference page. The ioctl changed in 2003 |
| 779 | 758 | as noted above. |
| 780 | 759 | |
| 781 | − | |
| 782 | 760 | V4L2 spec erratum 2006-02-03 |
| 783 | 761 | ============================ |
| 784 | 762 | |
| 785 | 763 | 1. In struct v4l2_captureparm and struct v4l2_outputparm the ``timeperframe`` |
| 786 | 764 | field gives the time in seconds, not microseconds. |
| 787 | 765 | |
| 788 | − | |
| 789 | 766 | V4L2 spec erratum 2006-02-04 |
| 790 | 767 | ============================ |
| 791 | 768 | |
| @@ -808,7 +785,6 @@ V4L2 in Linux 2.6.17 · 16 unmodified lines | ||
| 808 | 785 | ``V4L2_TUNER_MODE_STEREO`` for this purpose is deprecated now. See |
| 809 | 786 | the :ref:`VIDIOC_G_TUNER <VIDIOC_G_TUNER>` section for details. |
| 810 | 787 | |
| 811 | − | |
| 812 | 788 | V4L2 spec erratum 2006-09-23 (Draft 0.15) |
| 813 | 789 | ========================================= |
| 814 | 790 | |
| @@ -837,7 +813,6 @@ V4L2 spec erratum 2006-09-23 (Draft 0.15) · 22 unmodified lines | ||
| 837 | 813 | extended from 224-239 to 224-255. Accordingly device file names |
| 838 | 814 | ``/dev/vbi0`` to ``/dev/vbi31`` are possible now. |
| 839 | 815 | |
| 840 | − | |
| 841 | 816 | V4L2 in Linux 2.6.18 |
| 842 | 817 | ==================== |
| 843 | 818 | |
| @@ -852,7 +827,6 @@ V4L2 in Linux 2.6.18 · 8 unmodified lines | ||
| 852 | 827 | ``V4L2_CTRL_FLAG_INACTIVE`` and ``V4L2_CTRL_FLAG_SLIDER`` |
| 853 | 828 | (:ref:`control-flags`). See :ref:`extended-controls` for details. |
| 854 | 829 | |
| 855 | − | |
| 856 | 830 | V4L2 in Linux 2.6.19 |
| 857 | 831 | ==================== |
| 858 | 832 | |
| @@ -874,14 +848,12 @@ V4L2 in Linux 2.6.19 · 15 unmodified lines | ||
| 874 | 848 | 3. A new pixel format ``V4L2_PIX_FMT_RGB444`` (:ref:`pixfmt-rgb`) was |
| 875 | 849 | added. |
| 876 | 850 | |
| 877 | − | |
| 878 | 851 | V4L2 spec erratum 2006-10-12 (Draft 0.17) |
| 879 | 852 | ========================================= |
| 880 | 853 | |
| 881 | 854 | 1. ``V4L2_PIX_FMT_HM12`` (:ref:`reserved-formats`) is a YUV 4:2:0, not |
| 882 | 855 | 4:2:2 format. |
| 883 | 856 | |
| 884 | − | |
| 885 | 857 | V4L2 in Linux 2.6.21 |
| 886 | 858 | ==================== |
| 887 | 859 | |
| @@ -889,7 +861,6 @@ V4L2 in Linux 2.6.21 · 1 unmodified line | ||
| 889 | 861 | General Public License version two or later, and under a 3-clause |
| 890 | 862 | BSD-style license. |
| 891 | 863 | |
| 892 | − | |
| 893 | 864 | V4L2 in Linux 2.6.22 |
| 894 | 865 | ==================== |
| 895 | 866 | |
| @@ -914,7 +885,6 @@ V4L2 in Linux 2.6.22 · 18 unmodified lines | ||
| 914 | 885 | This may **break compatibility** with existing applications. Drivers |
| 915 | 886 | supporting the "host order RGB32" format are not known. |
| 916 | 887 | |
| 917 | − | |
| 918 | 888 | V4L2 in Linux 2.6.24 |
| 919 | 889 | ==================== |
| 920 | 890 | |
| @@ -922,7 +892,6 @@ V4L2 in Linux 2.6.24 · 1 unmodified line | ||
| 922 | 892 | ``V4L2_PIX_FMT_YUV555``, ``V4L2_PIX_FMT_YUV565`` and |
| 923 | 893 | ``V4L2_PIX_FMT_YUV32`` were added. |
| 924 | 894 | |
| 925 | − | |
| 926 | 895 | V4L2 in Linux 2.6.25 |
| 927 | 896 | ==================== |
| 928 | 897 | |
| @@ -949,7 +918,6 @@ V4L2 in Linux 2.6.25 · 20 unmodified lines | ||
| 949 | 918 | interface in Linux 2.6.18, where finally removed from the |
| 950 | 919 | ``videodev2.h`` header file. |
| 951 | 920 | |
| 952 | − | |
| 953 | 921 | V4L2 in Linux 2.6.26 |
| 954 | 922 | ==================== |
| 955 | 923 | |
| @@ -959,7 +927,6 @@ V4L2 in Linux 2.6.26 · 3 unmodified lines | ||
| 959 | 927 | 2. Added user controls ``V4L2_CID_CHROMA_AGC`` and |
| 960 | 928 | ``V4L2_CID_COLOR_KILLER``. |
| 961 | 929 | |
| 962 | − | |
| 963 | 930 | V4L2 in Linux 2.6.27 |
| 964 | 931 | ==================== |
| 965 | 932 | |
| @@ -971,7 +938,6 @@ V4L2 in Linux 2.6.27 · 5 unmodified lines | ||
| 971 | 938 | ``V4L2_PIX_FMT_PCA561``, ``V4L2_PIX_FMT_SGBRG8``, |
| 972 | 939 | ``V4L2_PIX_FMT_PAC207`` and ``V4L2_PIX_FMT_PJPG`` were added. |
| 973 | 940 | |
| 974 | − | |
| 975 | 941 | V4L2 in Linux 2.6.28 |
| 976 | 942 | ==================== |
| 977 | 943 | |
| @@ -983,7 +949,6 @@ V4L2 in Linux 2.6.28 · 5 unmodified lines | ||
| 983 | 949 | 3. The pixel formats ``V4L2_PIX_FMT_SGRBG10`` and |
| 984 | 950 | ``V4L2_PIX_FMT_SGRBG10DPCM8`` were added. |
| 985 | 951 | |
| 986 | − | |
| 987 | 952 | V4L2 in Linux 2.6.29 |
| 988 | 953 | ==================== |
| 989 | 954 | |
| @@ -999,7 +964,6 @@ V4L2 in Linux 2.6.29 · 9 unmodified lines | ||
| 999 | 964 | ``V4L2_CID_ZOOM_RELATIVE``, ``V4L2_CID_ZOOM_CONTINUOUS`` and |
| 1000 | 965 | ``V4L2_CID_PRIVACY``. |
| 1001 | 966 | |
| 1002 | − | |
| 1003 | 967 | V4L2 in Linux 2.6.30 |
| 1004 | 968 | ==================== |
| 1005 | 969 | |
| @@ -1007,7 +971,6 @@ V4L2 in Linux 2.6.30 · 1 unmodified line | ||
| 1007 | 971 | |
| 1008 | 972 | 2. New control ``V4L2_CID_COLORFX`` was added. |
| 1009 | 973 | |
| 1010 | − | |
| 1011 | 974 | V4L2 in Linux 2.6.32 |
| 1012 | 975 | ==================== |
| 1013 | 976 | |
| @@ -1034,21 +997,18 @@ V4L2 in Linux 2.6.32 · 20 unmodified lines | ||
| 1034 | 997 | 9. Added Remote Controller chapter, describing the default Remote |
| 1035 | 998 | Controller mapping for media devices. |
| 1036 | 999 | |
| 1037 | − | |
| 1038 | 1000 | V4L2 in Linux 2.6.33 |
| 1039 | 1001 | ==================== |
| 1040 | 1002 | |
| 1041 | 1003 | 1. Added support for Digital Video timings in order to support HDTV |
| 1042 | 1004 | receivers and transmitters. |
| 1043 | 1005 | |
| 1044 | − | |
| 1045 | 1006 | V4L2 in Linux 2.6.34 |
| 1046 | 1007 | ==================== |
| 1047 | 1008 | |
| 1048 | 1009 | 1. Added ``V4L2_CID_IRIS_ABSOLUTE`` and ``V4L2_CID_IRIS_RELATIVE`` |
| 1049 | 1010 | controls to the :ref:`Camera controls class <camera-controls>`. |
| 1050 | 1011 | |
| 1051 | − | |
| 1052 | 1012 | V4L2 in Linux 2.6.37 |
| 1053 | 1013 | ==================== |
| 1054 | 1014 | |
| @@ -1057,7 +1017,6 @@ V4L2 in Linux 2.6.37 · 2 unmodified lines | ||
| 1057 | 1017 | applications found that used it. It was originally scheduled for |
| 1058 | 1018 | removal in 2.6.35. |
| 1059 | 1019 | |
| 1060 | − | |
| 1061 | 1020 | V4L2 in Linux 2.6.39 |
| 1062 | 1021 | ==================== |
| 1063 | 1022 | |
| @@ -1067,7 +1026,6 @@ V4L2 in Linux 2.6.39 · 3 unmodified lines | ||
| 1067 | 1026 | drivers and applications. See :ref:`multi-planar API <planar-apis>` |
| 1068 | 1027 | for details. |
| 1069 | 1028 | |
| 1070 | − | |
| 1071 | 1029 | V4L2 in Linux 3.1 |
| 1072 | 1030 | ================= |
| 1073 | 1031 | |
| @@ -1078,7 +1036,6 @@ V4L2 in Linux 3.1 · 4 unmodified lines | ||
| 1078 | 1036 | |
| 1079 | 1037 | Added V4L2_CTRL_TYPE_BITMASK. |
| 1080 | 1038 | |
| 1081 | − | |
| 1082 | 1039 | V4L2 in Linux 3.2 |
| 1083 | 1040 | ================= |
| 1084 | 1041 | |
| @@ -1089,7 +1046,6 @@ V4L2 in Linux 3.2 · 4 unmodified lines | ||
| 1089 | 1046 | Does not affect the compatibility of current drivers and |
| 1090 | 1047 | applications. See :ref:`selection API <selection-api>` for details. |
| 1091 | 1048 | |
| 1092 | − | |
| 1093 | 1049 | V4L2 in Linux 3.3 |
| 1094 | 1050 | ================= |
| 1095 | 1051 | |
| @@ -1099,7 +1055,6 @@ V4L2 in Linux 3.3 · 3 unmodified lines | ||
| 1099 | 1055 | 2. Added the device_caps field to struct v4l2_capabilities and added |
| 1100 | 1056 | the new V4L2_CAP_DEVICE_CAPS capability. |
| 1101 | 1057 | |
| 1102 | − | |
| 1103 | 1058 | V4L2 in Linux 3.4 |
| 1104 | 1059 | ================= |
| 1105 | 1060 | |
| @@ -1110,7 +1065,6 @@ V4L2 in Linux 3.4 · 4 unmodified lines | ||
| 1110 | 1065 | :ref:`VIDIOC_QUERY_DV_TIMINGS` and |
| 1111 | 1066 | :ref:`VIDIOC_DV_TIMINGS_CAP`. |
| 1112 | 1067 | |
| 1113 | − | |
| 1114 | 1068 | V4L2 in Linux 3.5 |
| 1115 | 1069 | ================= |
| 1116 | 1070 | |
| @@ -1137,7 +1091,6 @@ V4L2 in Linux 3.5 · 20 unmodified lines | ||
| 1137 | 1091 | ``V4L2_CID_AUTO_FOCUS_START``, ``V4L2_CID_AUTO_FOCUS_STOP``, |
| 1138 | 1092 | ``V4L2_CID_AUTO_FOCUS_STATUS`` and ``V4L2_CID_AUTO_FOCUS_RANGE``. |
| 1139 | 1093 | |
| 1140 | − | |
| 1141 | 1094 | V4L2 in Linux 3.6 |
| 1142 | 1095 | ================= |
| 1143 | 1096 | |
| @@ -1150,7 +1103,6 @@ V4L2 in Linux 3.6 · 6 unmodified lines | ||
| 1150 | 1103 | 3. Added support for frequency band enumerations: |
| 1151 | 1104 | :ref:`VIDIOC_ENUM_FREQ_BANDS`. |
| 1152 | 1105 | |
| 1153 | − | |
| 1154 | 1106 | V4L2 in Linux 3.9 |
| 1155 | 1107 | ================= |
| 1156 | 1108 | |
| @@ -1160,7 +1112,6 @@ V4L2 in Linux 3.9 · 3 unmodified lines | ||
| 1160 | 1112 | 2. Added ``V4L2_EVENT_CTRL_CH_RANGE`` control event changes flag. See |
| 1161 | 1113 | :ref:`ctrl-changes-flags`. |
| 1162 | 1114 | |
| 1163 | − | |
| 1164 | 1115 | V4L2 in Linux 3.10 |
| 1165 | 1116 | ================== |
| 1166 | 1117 | |
| @@ -1172,32 +1123,27 @@ V4L2 in Linux 3.10 · 5 unmodified lines | ||
| 1172 | 1123 | 2. Added new debugging ioctl |
| 1173 | 1124 | :ref:`VIDIOC_DBG_G_CHIP_INFO`. |
| 1174 | 1125 | |
| 1175 | − | |
| 1176 | 1126 | V4L2 in Linux 3.11 |
| 1177 | 1127 | ================== |
| 1178 | 1128 | |
| 1179 | 1129 | 1. Remove obsolete ``VIDIOC_DBG_G_CHIP_IDENT`` ioctl. |
| 1180 | 1130 | |
| 1181 | − | |
| 1182 | 1131 | V4L2 in Linux 3.14 |
| 1183 | 1132 | ================== |
| 1184 | 1133 | |
| 1185 | 1134 | 1. In struct v4l2_rect, the type of ``width`` and |
| 1186 | 1135 | ``height`` fields changed from _s32 to _u32. |
| 1187 | 1136 | |
| 1188 | − | |
| 1189 | 1137 | V4L2 in Linux 3.15 |
| 1190 | 1138 | ================== |
| 1191 | 1139 | |
| 1192 | 1140 | 1. Added Software Defined Radio (SDR) Interface. |
| 1193 | 1141 | |
| 1194 | − | |
| 1195 | 1142 | V4L2 in Linux 3.16 |
| 1196 | 1143 | ================== |
| 1197 | 1144 | |
| 1198 | 1145 | 1. Added event V4L2_EVENT_SOURCE_CHANGE. |
| 1199 | 1146 | |
| 1200 | − | |
| 1201 | 1147 | V4L2 in Linux 3.17 |
| 1202 | 1148 | ================== |
| 1203 | 1149 | |
| @@ -1207,14 +1153,12 @@ V4L2 in Linux 3.17 · 3 unmodified lines | ||
| 1207 | 1153 | 2. Added compound control types and |
| 1208 | 1154 | :ref:`VIDIOC_QUERY_EXT_CTRL <VIDIOC_QUERYCTRL>`. |
| 1209 | 1155 | |
| 1210 | − | |
| 1211 | 1156 | V4L2 in Linux 3.18 |
| 1212 | 1157 | ================== |
| 1213 | 1158 | |
| 1214 | 1159 | 1. Added ``V4L2_CID_PAN_SPEED`` and ``V4L2_CID_TILT_SPEED`` camera |
| 1215 | 1160 | controls. |
| 1216 | 1161 | |
| 1217 | − | |
| 1218 | 1162 | V4L2 in Linux 3.19 |
| 1219 | 1163 | ================== |
| 1220 | 1164 | |
| @@ -1232,13 +1176,11 @@ V4L2 in Linux 4.4 · 11 unmodified lines | ||
| 1232 | 1176 | |
| 1233 | 1177 | 3. Added transmitter support for Software Defined Radio (SDR) Interface. |
| 1234 | 1178 | |
| 1235 | − | |
| 1236 | 1179 | .. _other: |
| 1237 | 1180 | |
| 1238 | 1181 | Relation of V4L2 to other Linux multimedia APIs |
| 1239 | 1182 | =============================================== |
| 1240 | 1183 | |
| 1241 | − | |
| 1242 | 1184 | .. _xvideo: |
| 1243 | 1185 | |
| 1244 | 1186 | X Video Extension |
| @@ -1284,7 +1226,6 @@ YUV to RGB conversion and scaling for faster video playback, and added · 39 unmodified lines | ||
| 1284 | 1226 | an interface to MPEG-2 decoding hardware. This API is useful to display |
| 1285 | 1227 | images captured with V4L2 devices. |
| 1286 | 1228 | |
| 1287 | − | |
| 1288 | 1229 | Digital Video |
| 1289 | 1230 | ------------- |
| 1290 | 1231 | |
| @@ -1294,13 +1235,11 @@ homepage at `https://linuxtv.org <https://linuxtv.org>`__. The Linux · 3 unmodified lines | ||
| 1294 | 1235 | DVB API has no connection to the V4L2 API except that drivers for hybrid |
| 1295 | 1236 | hardware may support both. |
| 1296 | 1237 | |
| 1297 | − | |
| 1298 | 1238 | Audio Interfaces |
| 1299 | 1239 | ---------------- |
| 1300 | 1240 | |
| 1301 | 1241 | [to do - OSS/ALSA] |
| 1302 | 1242 | |
| 1303 | − | |
| 1304 | 1243 | .. _experimental: |
| 1305 | 1244 | |
| 1306 | 1245 | Experimental API Elements |
| @@ -1314,7 +1253,6 @@ change in the future. · 7 unmodified lines | ||
| 1314 | 1253 | |
| 1315 | 1254 | - :ref:`VIDIOC_DBG_G_CHIP_INFO` ioctl. |
| 1316 | 1255 | |
| 1317 | − | |
| 1318 | 1256 | .. _obsolete: |
| 1319 | 1257 | |
| 1320 | 1258 | Obsolete API Elements |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _io: |
| 4 | 5 | |
| @@ -9,8 +10,8 @@ The V4L2 API defines several different methods to read from or write to · 4 unmodified lines | ||
| 9 | 10 | a device. All drivers exchanging data with applications must support at |
| 10 | 11 | least one of them. |
| 11 | 12 | |
| 12 | −The classic I/O method using the :ref:`read() <func-read>` and | |
| 13 | −:ref:`write() <func-write>` function is automatically selected after opening a | |
| 13 | +The classic I/O method using the :c:func:`read()` and | |
| 14 | +:c:func:`write()` function is automatically selected after opening a | |
| 14 | 15 | V4L2 device. When the driver does not support this method attempts to |
| 15 | 16 | read or write will fail at any time. |
| 16 | 17 | |
| @@ -38,7 +39,6 @@ closing and reopening the device. · 21 unmodified lines | ||
| 38 | 39 | |
| 39 | 40 | The following sections describe the various I/O methods in more detail. |
| 40 | 41 | |
| 41 | − | |
| 42 | 42 | .. toctree:: |
| 43 | 43 | :maxdepth: 1 |
| 44 | 44 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _libv4l-introduction: |
| 4 | 5 | |
| @@ -17,7 +18,6 @@ An example of using libv4l is provided by · 12 unmodified lines | ||
| 17 | 18 | |
| 18 | 19 | libv4l consists of 3 different libraries: |
| 19 | 20 | |
| 20 | − | |
| 21 | 21 | libv4lconvert |
| 22 | 22 | ============= |
| 23 | 23 | |
| @@ -65,7 +65,6 @@ libv4lconvert/processing. These controls are stored application wide · 41 unmodified lines | ||
| 65 | 65 | libv4lconvert/processing offers the actual video processing |
| 66 | 66 | functionality. |
| 67 | 67 | |
| 68 | − | |
| 69 | 68 | libv4l1 |
| 70 | 69 | ======= |
| 71 | 70 | |
| @@ -78,7 +77,6 @@ just pass calls through. · 6 unmodified lines | ||
| 78 | 77 | Since those functions are emulations of the old V4L1 API, it shouldn't |
| 79 | 78 | be used for new applications. |
| 80 | 79 | |
| 81 | − | |
| 82 | 80 | libv4l2 |
| 83 | 81 | ======= |
| 84 | 82 | |
| @@ -105,7 +103,6 @@ available in the driver. :ref:`VIDIOC_ENUM_FMT <VIDIOC_ENUM_FMT>` · 20 unmodified lines | ||
| 105 | 103 | keeps enumerating the hardware supported formats, plus the emulated |
| 106 | 104 | formats offered by libv4l at the end. |
| 107 | 105 | |
| 108 | − | |
| 109 | 106 | .. _libv4l-ops: |
| 110 | 107 | |
| 111 | 108 | Libv4l device control functions |
| @@ -115,17 +112,17 @@ The common file operation methods are provided by libv4l. · 3 unmodified lines | ||
| 115 | 112 | |
| 116 | 113 | Those functions operate just like the gcc function ``dup()`` and |
| 117 | 114 | V4L2 functions |
| 118 | −:c:func:`open() <v4l2-open>`, :c:func:`close() <v4l2-close>`, | |
| 119 | −:c:func:`ioctl() <v4l2-ioctl>`, :c:func:`read() <v4l2-read>`, | |
| 120 | −:c:func:`mmap() <v4l2-mmap>` and :c:func:`munmap() <v4l2-munmap>`: | |
| 115 | +:c:func:`open()`, :c:func:`close()`, | |
| 116 | +:c:func:`ioctl()`, :c:func:`read()`, | |
| 117 | +:c:func:`mmap()` and :c:func:`munmap()`: | |
| 121 | 118 | |
| 122 | 119 | .. c:function:: int v4l2_open(const char *file, int oflag, ...) |
| 123 | 120 | |
| 124 | − operates like the :c:func:`open() <v4l2-open>` function. | |
| 121 | + operates like the :c:func:`open()` function. | |
| 125 | 122 | |
| 126 | 123 | .. c:function:: int v4l2_close(int fd) |
| 127 | 124 | |
| 128 | − operates like the :c:func:`close() <v4l2-close>` function. | |
| 125 | + operates like the :c:func:`close()` function. | |
| 129 | 126 | |
| 130 | 127 | .. c:function:: int v4l2_dup(int fd) |
| 131 | 128 | |
| @@ -133,19 +130,19 @@ V4L2 functions · 1 unmodified line | ||
| 133 | 130 | |
| 134 | 131 | .. c:function:: int v4l2_ioctl (int fd, unsigned long int request, ...) |
| 135 | 132 | |
| 136 | − operates like the :c:func:`ioctl() <v4l2-ioctl>` function. | |
| 133 | + operates like the :c:func:`ioctl()` function. | |
| 137 | 134 | |
| 138 | 135 | .. c:function:: int v4l2_read (int fd, void* buffer, size_t n) |
| 139 | 136 | |
| 140 | − operates like the :c:func:`read() <v4l2-read>` function. | |
| 137 | + operates like the :c:func:`read()` function. | |
| 141 | 138 | |
| 142 | 139 | .. c:function:: void v4l2_mmap(void *start, size_t length, int prot, int flags, int fd, int64_t offset); |
| 143 | 140 | |
| 144 | − operates like the :c:func:`munmap() <v4l2-munmap>` function. | |
| 141 | + operates like the :c:func:`munmap()` function. | |
| 145 | 142 | |
| 146 | 143 | .. c:function:: int v4l2_munmap(void *_start, size_t length); |
| 147 | 144 | |
| 148 | − operates like the :c:func:`munmap() <v4l2-munmap>` function. | |
| 145 | + operates like the :c:func:`munmap()` function. | |
| 149 | 146 | |
| 150 | 147 | Those functions provide additional control: |
| 151 | 148 | |
| @@ -168,14 +165,13 @@ Those functions provide additional control: · 16 unmodified lines | ||
| 168 | 165 | of the given v4l control id. when the cid does not exist, could not be |
| 169 | 166 | accessed for some reason, or some error occurred 0 is returned. |
| 170 | 167 | |
| 171 | − | |
| 172 | 168 | v4l1compat.so wrapper library |
| 173 | 169 | ============================= |
| 174 | 170 | |
| 175 | 171 | This library intercepts calls to |
| 176 | −:c:func:`open() <v4l2-open>`, :c:func:`close() <v4l2-close>`, | |
| 177 | −:c:func:`ioctl() <v4l2-ioctl>`, :c:func:`mmap() <v4l2-mmap>` and | |
| 178 | −:c:func:`munmap() <v4l2-munmap>` | |
| 172 | +:c:func:`open()`, :c:func:`close()`, | |
| 173 | +:c:func:`ioctl()`, :c:func:`mmap()` and | |
| 174 | +:c:func:`munmap()` | |
| 179 | 175 | operations and redirects them to the libv4l counterparts, by using |
| 180 | 176 | ``LD_PRELOAD=/usr/lib/v4l1compat.so``. It also emulates V4L1 calls via V4L2 |
| 181 | 177 | API. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _mmap: |
| 4 | 5 | |
| @@ -35,22 +36,22 @@ This ioctl can also be used to change the number of buffers or to free · 30 unmodified lines | ||
| 35 | 36 | the allocated memory, provided none of the buffers are still mapped. |
| 36 | 37 | |
| 37 | 38 | Before applications can access the buffers they must map them into their |
| 38 | −address space with the :ref:`mmap() <func-mmap>` function. The | |
| 39 | +address space with the :c:func:`mmap()` function. The | |
| 39 | 40 | location of the buffers in device memory can be determined with the |
| 40 | 41 | :ref:`VIDIOC_QUERYBUF` ioctl. In the single-planar |
| 41 | 42 | API case, the ``m.offset`` and ``length`` returned in a struct |
| 42 | 43 | :c:type:`v4l2_buffer` are passed as sixth and second |
| 43 | −parameter to the :ref:`mmap() <func-mmap>` function. When using the | |
| 44 | +parameter to the :c:func:`mmap()` function. When using the | |
| 44 | 45 | multi-planar API, struct :c:type:`v4l2_buffer` contains an |
| 45 | 46 | array of struct :c:type:`v4l2_plane` structures, each |
| 46 | 47 | containing its own ``m.offset`` and ``length``. When using the |
| 47 | 48 | multi-planar API, every plane of every buffer has to be mapped |
| 48 | −separately, so the number of calls to :ref:`mmap() <func-mmap>` should | |
| 49 | +separately, so the number of calls to :c:func:`mmap()` should | |
| 49 | 50 | be equal to number of buffers times number of planes in each buffer. The |
| 50 | 51 | offset and length values must not be modified. Remember, the buffers are |
| 51 | 52 | allocated in physical memory, as opposed to virtual memory, which can be |
| 52 | 53 | swapped out to disk. Applications should free the buffers as soon as |
| 53 | −possible with the :ref:`munmap() <func-munmap>` function. | |
| 54 | +possible with the :c:func:`munmap()` function. | |
| 54 | 55 | |
| 55 | 56 | Example: Mapping buffers in the single-planar API |
| 56 | 57 | ================================================= |
| @@ -122,7 +123,6 @@ Example: Mapping buffers in the single-planar API · 65 unmodified lines | ||
| 122 | 123 | for (i = 0; i < reqbuf.count; i++) |
| 123 | 124 | munmap(buffers[i].start, buffers[i].length); |
| 124 | 125 | |
| 125 | − | |
| 126 | 126 | Example: Mapping buffers in the multi-planar API |
| 127 | 127 | ================================================ |
| 128 | 128 | |
| @@ -238,10 +238,10 @@ be determined at any time using the :ref:`VIDIOC_QUERYBUF` ioctl. Two · 109 unmodified lines | ||
| 238 | 238 | methods exist to suspend execution of the application until one or more |
| 239 | 239 | buffers can be dequeued. By default :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` |
| 240 | 240 | blocks when no buffer is in the outgoing queue. When the ``O_NONBLOCK`` |
| 241 | −flag was given to the :ref:`open() <func-open>` function, | |
| 241 | +flag was given to the :c:func:`open()` function, | |
| 242 | 242 | :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` returns immediately with an ``EAGAIN`` |
| 243 | −error code when no buffer is available. The :ref:`select() <func-select>` | |
| 244 | −or :ref:`poll() <func-poll>` functions are always available. | |
| 243 | +error code when no buffer is available. The :c:func:`select()` | |
| 244 | +or :c:func:`poll()` functions are always available. | |
| 245 | 245 | |
| 246 | 246 | To start and stop capturing or output applications call the |
| 247 | 247 | :ref:`VIDIOC_STREAMON <VIDIOC_STREAMON>` and :ref:`VIDIOC_STREAMOFF |
| @@ -259,15 +259,15 @@ Drivers implementing memory mapping I/O must support the · 11 unmodified lines | ||
| 259 | 259 | <VIDIOC_QUERYBUF>`, :ref:`VIDIOC_QBUF <VIDIOC_QBUF>`, :ref:`VIDIOC_DQBUF |
| 260 | 260 | <VIDIOC_QBUF>`, :ref:`VIDIOC_STREAMON <VIDIOC_STREAMON>` |
| 261 | 261 | and :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` ioctls, the :ref:`mmap() |
| 262 | −<func-mmap>`, :ref:`munmap() <func-munmap>`, :ref:`select() | |
| 263 | −<func-select>` and :ref:`poll() <func-poll>` function. [#f3]_ | |
| 262 | +<func-mmap>`, :c:func:`munmap()`, :ref:`select() | |
| 263 | +<func-select>` and :c:func:`poll()` function. [#f3]_ | |
| 264 | 264 | |
| 265 | 265 | [capture example] |
| 266 | 266 | |
| 267 | 267 | .. [#f1] |
| 268 | 268 | One could use one file descriptor and set the buffer type field |
| 269 | 269 | accordingly when calling :ref:`VIDIOC_QBUF` etc., |
| 270 | − but it makes the :ref:`select() <func-select>` function ambiguous. We also | |
| 270 | + but it makes the :c:func:`select()` function ambiguous. We also | |
| 271 | 271 | like the clean approach of one file descriptor per logical stream. |
| 272 | 272 | Video overlay for example is also a logical stream, although the CPU |
| 273 | 273 | is not needed for continuous operation. |
| @@ -280,6 +280,6 @@ and :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` ioctls, the :ref:`mmap() · 6 unmodified lines | ||
| 280 | 280 | scatter-gather lists and the like. |
| 281 | 281 | |
| 282 | 282 | .. [#f3] |
| 283 | − At the driver level :ref:`select() <func-select>` and :ref:`poll() <func-poll>` are | |
| 284 | − the same, and :ref:`select() <func-select>` is too important to be optional. | |
| 283 | + At the driver level :c:func:`select()` and :c:func:`poll()` are | |
| 284 | + the same, and :c:func:`select()` is too important to be optional. | |
| 285 | 285 | The rest should be evident. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _open: |
| 4 | 5 | |
| @@ -140,7 +141,6 @@ means applications cannot *reliably* scan for loaded or installed · 135 unmodified lines | ||
| 140 | 141 | drivers. The user must enter a device name, or the application can try |
| 141 | 142 | the conventional device names. |
| 142 | 143 | |
| 143 | − | |
| 144 | 144 | .. _related: |
| 145 | 145 | |
| 146 | 146 | Related Devices |
| @@ -157,7 +157,7 @@ support all functions. However, in practice this never worked: this · 10 unmodified lines | ||
| 157 | 157 | support it and if they did it was certainly never tested. In addition, |
| 158 | 158 | switching a device node between different functions only works when |
| 159 | 159 | using the streaming I/O API, not with the |
| 160 | −:ref:`read() <func-read>`/\ :ref:`write() <func-write>` API. | |
| 160 | +:c:func:`read()`/\ :c:func:`write()` API. | |
| 161 | 161 | |
| 162 | 162 | Today each V4L2 device node supports just one function. |
| 163 | 163 | |
| @@ -178,7 +178,6 @@ the Media Controller. If you want to work on this please write to the · 14 unmodified lines | ||
| 178 | 178 | linux-media mailing list: |
| 179 | 179 | `https://linuxtv.org/lists.php <https://linuxtv.org/lists.php>`__. |
| 180 | 180 | |
| 181 | − | |
| 182 | 181 | Multiple Opens |
| 183 | 182 | ============== |
| 184 | 183 | |
| @@ -192,8 +191,8 @@ device should not change the state of the device. [#f2]_ · 7 unmodified lines | ||
| 192 | 191 | Once an application has allocated the memory buffers needed for |
| 193 | 192 | streaming data (by calling the :ref:`VIDIOC_REQBUFS` |
| 194 | 193 | or :ref:`VIDIOC_CREATE_BUFS` ioctls, or |
| 195 | −implicitly by calling the :ref:`read() <func-read>` or | |
| 196 | −:ref:`write() <func-write>` functions) that application (filehandle) | |
| 194 | +implicitly by calling the :c:func:`read()` or | |
| 195 | +:c:func:`write()` functions) that application (filehandle) | |
| 197 | 196 | becomes the owner of the device. It is no longer allowed to make changes |
| 198 | 197 | that would affect the buffer sizes (e.g. by calling the |
| 199 | 198 | :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl) and other applications are |
| @@ -206,7 +205,6 @@ requested type of data, and to change related properties, to this file · 6 unmodified lines | ||
| 206 | 205 | descriptor. Applications can request additional access privileges using |
| 207 | 206 | the priority mechanism described in :ref:`app-pri`. |
| 208 | 207 | |
| 209 | − | |
| 210 | 208 | Shared Data Streams |
| 211 | 209 | =================== |
| 212 | 210 | |
| @@ -215,12 +213,11 @@ the same data stream on a device by copying buffers, time multiplexing · 2 unmodified lines | ||
| 215 | 213 | or similar means. This is better handled by a proxy application in user |
| 216 | 214 | space. |
| 217 | 215 | |
| 218 | − | |
| 219 | 216 | Functions |
| 220 | 217 | ========= |
| 221 | 218 | |
| 222 | 219 | To open and close V4L2 devices applications use the |
| 223 | −:ref:`open() <func-open>` and :ref:`close() <func-close>` function, | |
| 220 | +:c:func:`open()` and :c:func:`close()` function, | |
| 224 | 221 | respectively. Devices are programmed using the |
| 225 | 222 | :ref:`ioctl() <func-ioctl>` function as explained in the following |
| 226 | 223 | sections. |
| @@ -228,7 +225,7 @@ sections. · 1 unmodified line | ||
| 228 | 225 | .. [#f1] |
| 229 | 226 | There are still some old and obscure drivers that have not been |
| 230 | 227 | updated to allow for multiple opens. This implies that for such |
| 231 | − drivers :ref:`open() <func-open>` can return an ``EBUSY`` error code | |
| 228 | + drivers :c:func:`open()` can return an ``EBUSY`` error code | |
| 232 | 229 | when the device is already in use. |
| 233 | 230 | |
| 234 | 231 | .. [#f2] |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _rw: |
| 4 | 5 | |
| @@ -6,8 +7,8 @@ · 1 unmodified line | ||
| 6 | 7 | Read/Write |
| 7 | 8 | ********** |
| 8 | 9 | |
| 9 | −Input and output devices support the :ref:`read() <func-read>` and | |
| 10 | −:ref:`write() <func-write>` function, respectively, when the | |
| 10 | +Input and output devices support the :c:func:`read()` and | |
| 11 | +:c:func:`write()` function, respectively, when the | |
| 11 | 12 | ``V4L2_CAP_READWRITE`` flag in the ``capabilities`` field of struct |
| 12 | 13 | :c:type:`v4l2_capability` returned by the |
| 13 | 14 | :ref:`VIDIOC_QUERYCAP` ioctl is set. |
| @@ -22,18 +23,17 @@ However this is also the simplest I/O method, requiring little or no · 8 unmodified lines | ||
| 22 | 23 | setup to exchange data. It permits command line stunts like this (the |
| 23 | 24 | vidctrl tool is fictitious): |
| 24 | 25 | |
| 25 | − | |
| 26 | 26 | .. code-block:: none |
| 27 | 27 | |
| 28 | 28 | $ vidctrl /dev/video --input=0 --format=YUYV --size=352x288 |
| 29 | 29 | $ dd if=/dev/video of=myimage.422 bs=202752 count=1 |
| 30 | 30 | |
| 31 | −To read from the device applications use the :ref:`read() <func-read>` | |
| 32 | −function, to write the :ref:`write() <func-write>` function. Drivers | |
| 31 | +To read from the device applications use the :c:func:`read()` | |
| 32 | +function, to write the :c:func:`write()` function. Drivers | |
| 33 | 33 | must implement one I/O method if they exchange data with applications, |
| 34 | 34 | but it need not be this. [#f1]_ When reading or writing is supported, the |
| 35 | −driver must also support the :ref:`select() <func-select>` and | |
| 36 | −:ref:`poll() <func-poll>` function. [#f2]_ | |
| 35 | +driver must also support the :c:func:`select()` and | |
| 36 | +:c:func:`poll()` function. [#f2]_ | |
| 37 | 37 | |
| 38 | 38 | .. [#f1] |
| 39 | 39 | It would be desirable if applications could depend on drivers |
| @@ -43,5 +43,5 @@ driver must also support the :ref:`select() <func-select>` and · 3 unmodified lines | ||
| 43 | 43 | capturing still images. |
| 44 | 44 | |
| 45 | 45 | .. [#f2] |
| 46 | − At the driver level :ref:`select() <func-select>` and :ref:`poll() <func-poll>` are | |
| 47 | − the same, and :ref:`select() <func-select>` is too important to be optional. | |
| 46 | + At the driver level :c:func:`select()` and :c:func:`poll()` are | |
| 47 | + the same, and :c:func:`select()` is too important to be optional. | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _streaming-par: |
| 4 | 5 | |
| @@ -14,13 +15,13 @@ The current video standard determines a nominal number of frames per · 9 unmodified lines | ||
| 14 | 15 | second. If less than this number of frames is to be captured or output, |
| 15 | 16 | applications can request frame skipping or duplicating on the driver |
| 16 | 17 | side. This is especially useful when using the |
| 17 | −:ref:`read() <func-read>` or :ref:`write() <func-write>`, which are | |
| 18 | +:c:func:`read()` or :c:func:`write()`, which are | |
| 18 | 19 | not augmented by timestamps or sequence counters, and to avoid |
| 19 | 20 | unnecessary data copying. |
| 20 | 21 | |
| 21 | 22 | Finally these ioctls can be used to determine the number of buffers used |
| 22 | 23 | internally by a driver in read/write mode. For implications see the |
| 23 | −section discussing the :ref:`read() <func-read>` function. | |
| 24 | +section discussing the :c:func:`read()` function. | |
| 24 | 25 | |
| 25 | 26 | To get and set the streaming parameters applications call the |
| 26 | 27 | :ref:`VIDIOC_G_PARM <VIDIOC_G_PARM>` and |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _userp: |
| 4 | 5 | |
| @@ -78,10 +79,10 @@ buffers it must wait until an empty buffer can be dequeued and reused. · 73 unmodified lines | ||
| 78 | 79 | Two methods exist to suspend execution of the application until one or |
| 79 | 80 | more buffers can be dequeued. By default :ref:`VIDIOC_DQBUF |
| 80 | 81 | <VIDIOC_QBUF>` blocks when no buffer is in the outgoing queue. When the |
| 81 | −``O_NONBLOCK`` flag was given to the :ref:`open() <func-open>` function, | |
| 82 | +``O_NONBLOCK`` flag was given to the :c:func:`open()` function, | |
| 82 | 83 | :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` returns immediately with an ``EAGAIN`` |
| 83 | 84 | error code when no buffer is available. The :ref:`select() |
| 84 | −<func-select>` or :ref:`poll() <func-poll>` function are always | |
| 85 | +<func-select>` or :c:func:`poll()` function are always | |
| 85 | 86 | available. |
| 86 | 87 | |
| 87 | 88 | To start and stop capturing or output applications call the |
| @@ -101,7 +102,7 @@ Drivers implementing user pointer I/O must support the · 13 unmodified lines | ||
| 101 | 102 | :ref:`VIDIOC_REQBUFS <VIDIOC_REQBUFS>`, :ref:`VIDIOC_QBUF <VIDIOC_QBUF>`, |
| 102 | 103 | :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>`, :ref:`VIDIOC_STREAMON <VIDIOC_STREAMON>` |
| 103 | 104 | and :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` ioctls, the |
| 104 | −:ref:`select() <func-select>` and :ref:`poll() <func-poll>` function. [#f2]_ | |
| 105 | +:c:func:`select()` and :c:func:`poll()` function. [#f2]_ | |
| 105 | 106 | |
| 106 | 107 | .. [#f1] |
| 107 | 108 | We expect that frequently used buffers are typically not swapped out. |
| @@ -116,6 +117,6 @@ and :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` ioctls, the · 8 unmodified lines | ||
| 116 | 117 | because an application may share them with other processes. |
| 117 | 118 | |
| 118 | 119 | .. [#f2] |
| 119 | − At the driver level :ref:`select() <func-select>` and :ref:`poll() <func-poll>` are | |
| 120 | − the same, and :ref:`select() <func-select>` is too important to be optional. | |
| 120 | + At the driver level :c:func:`select()` and :c:func:`poll()` are | |
| 121 | + the same, and :c:func:`select()` is too important to be optional. | |
| 121 | 122 | The rest should be evident. |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_CREATE_BUFS: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_CREATE_BUFS - Create buffers for Memory Mapped or User Pointer or DMA Buffer I/O |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_CREATE_BUFS, struct v4l2_create_buffers *argp ) | |
| 19 | − :name: VIDIOC_CREATE_BUFS | |
| 18 | +.. c:macro:: VIDIOC_CREATE_BUFS | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_CREATE_BUFS, struct v4l2_create_buffers *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_create_buffers`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -71,7 +70,6 @@ the actual number allocated and the starting index in the ``count`` and · 36 unmodified lines | ||
| 71 | 70 | the ``index`` fields respectively. On return ``count`` can be smaller |
| 72 | 71 | than the number requested. |
| 73 | 72 | |
| 74 | − | |
| 75 | 73 | .. c:type:: v4l2_create_buffers |
| 76 | 74 | |
| 77 | 75 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -119,7 +117,6 @@ than the number requested. · 41 unmodified lines | ||
| 119 | 117 | - A place holder for future extensions. Drivers and applications |
| 120 | 118 | must set the array to zero. |
| 121 | 119 | |
| 122 | − | |
| 123 | 120 | Return Value |
| 124 | 121 | ============ |
| 125 | 122 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_CROPCAP: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_CROPCAP - Information about the video cropping and scaling abilities |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_CROPCAP, struct v4l2_cropcap *argp ) | |
| 19 | − :name: VIDIOC_CROPCAP | |
| 18 | +.. c:macro:: VIDIOC_CROPCAP | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_CROPCAP, struct v4l2_cropcap *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_cropcap`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -95,7 +94,6 @@ overlay devices. · 60 unmodified lines | ||
| 95 | 94 | Starting with kernel 4.13 both variations are allowed. |
| 96 | 95 | |
| 97 | 96 | |
| 98 | − | |
| 99 | 97 | .. _v4l2-rect-crop: |
| 100 | 98 | |
| 101 | 99 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -120,7 +118,6 @@ overlay devices. · 18 unmodified lines | ||
| 120 | 118 | - ``height`` |
| 121 | 119 | - Height of the rectangle, in pixels. |
| 122 | 120 | |
| 123 | − | |
| 124 | 121 | Return Value |
| 125 | 122 | ============ |
| 126 | 123 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_DBG_G_CHIP_INFO: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_DBG_G_CHIP_INFO - Identify the chips on a TV card |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_DBG_G_CHIP_INFO, struct v4l2_dbg_chip_info *argp ) | |
| 19 | − :name: VIDIOC_DBG_G_CHIP_INFO | |
| 18 | +.. c:macro:: VIDIOC_DBG_G_CHIP_INFO | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_DBG_G_CHIP_INFO, struct v4l2_dbg_chip_info *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_dbg_chip_info`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -76,7 +75,6 @@ is available from the LinuxTV v4l-dvb repository; see · 41 unmodified lines | ||
| 76 | 75 | `https://linuxtv.org/repo/ <https://linuxtv.org/repo/>`__ for access |
| 77 | 76 | instructions. |
| 78 | 77 | |
| 79 | − | |
| 80 | 78 | .. tabularcolumns:: |p{3.5cm}|p{3.5cm}|p{3.5cm}|p{7.0cm}| |
| 81 | 79 | |
| 82 | 80 | .. _name-v4l2-dbg-match: |
| @@ -103,7 +101,6 @@ instructions. · 20 unmodified lines | ||
| 103 | 101 | - |
| 104 | 102 | |
| 105 | 103 | |
| 106 | − | |
| 107 | 104 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 108 | 105 | |
| 109 | 106 | .. c:type:: v4l2_dbg_chip_info |
| @@ -130,7 +127,6 @@ instructions. · 20 unmodified lines | ||
| 130 | 127 | - Reserved fields, both application and driver must set these to 0. |
| 131 | 128 | |
| 132 | 129 | |
| 133 | − | |
| 134 | 130 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 135 | 131 | |
| 136 | 132 | .. _name-chip-match-types: |
| @@ -148,7 +144,6 @@ instructions. · 11 unmodified lines | ||
| 148 | 144 | - 4 |
| 149 | 145 | - Match the nth sub-device. |
| 150 | 146 | |
| 151 | − | |
| 152 | 147 | Return Value |
| 153 | 148 | ============ |
| 154 | 149 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_DBG_G_REGISTER: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_DBG_G_REGISTER - VIDIOC_DBG_S_REGISTER - Read or write hardware registers |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_DBG_G_REGISTER, struct v4l2_dbg_register *argp ) | |
| 19 | − :name: VIDIOC_DBG_G_REGISTER | |
| 18 | +.. c:macro:: VIDIOC_DBG_G_REGISTER | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_DBG_G_REGISTER, struct v4l2_dbg_register *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_DBG_S_REGISTER, const struct v4l2_dbg_register *argp ) | |
| 22 | − :name: VIDIOC_DBG_S_REGISTER | |
| 22 | +.. c:macro:: VIDIOC_DBG_S_REGISTER | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_DBG_S_REGISTER, const struct v4l2_dbg_register *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_dbg_register`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -85,7 +85,6 @@ It is available from the LinuxTV v4l-dvb repository; see · 47 unmodified lines | ||
| 85 | 85 | `https://linuxtv.org/repo/ <https://linuxtv.org/repo/>`__ for access |
| 86 | 86 | instructions. |
| 87 | 87 | |
| 88 | − | |
| 89 | 88 | .. tabularcolumns:: |p{3.5cm}|p{3.5cm}|p{3.5cm}|p{7.0cm}| |
| 90 | 89 | |
| 91 | 90 | .. c:type:: v4l2_dbg_match |
| @@ -112,7 +111,6 @@ instructions. · 20 unmodified lines | ||
| 112 | 111 | - |
| 113 | 112 | |
| 114 | 113 | |
| 115 | − | |
| 116 | 114 | .. c:type:: v4l2_dbg_register |
| 117 | 115 | |
| 118 | 116 | .. flat-table:: struct v4l2_dbg_register |
| @@ -133,7 +131,6 @@ instructions. · 14 unmodified lines | ||
| 133 | 131 | - The value read from, or to be written into the register. |
| 134 | 132 | |
| 135 | 133 | |
| 136 | − | |
| 137 | 134 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 138 | 135 | |
| 139 | 136 | .. _chip-match-types: |
| @@ -151,7 +148,6 @@ instructions. · 11 unmodified lines | ||
| 151 | 148 | - 4 |
| 152 | 149 | - Match the nth sub-device. |
| 153 | 150 | |
| 154 | − | |
| 155 | 151 | Return Value |
| 156 | 152 | ============ |
| 157 | 153 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_DECODER_CMD: |
| 4 | 5 | |
| @@ -11,28 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_DECODER_CMD - VIDIOC_TRY_DECODER_CMD - Execute an decoder command |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_DECODER_CMD, struct v4l2_decoder_cmd *argp ) | |
| 19 | − :name: VIDIOC_DECODER_CMD | |
| 18 | +.. c:macro:: VIDIOC_DECODER_CMD | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_DECODER_CMD, struct v4l2_decoder_cmd *argp)`` | |
| 21 | 21 | |
| 22 | −.. c:function:: int ioctl( int fd, VIDIOC_TRY_DECODER_CMD, struct v4l2_decoder_cmd *argp ) | |
| 23 | − :name: VIDIOC_TRY_DECODER_CMD | |
| 22 | +.. c:macro:: VIDIOC_TRY_DECODER_CMD | |
| 24 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_TRY_DECODER_CMD, struct v4l2_decoder_cmd *argp)`` | |
| 25 | 25 | |
| 26 | 26 | Arguments |
| 27 | 27 | ========= |
| 28 | 28 | |
| 29 | 29 | ``fd`` |
| 30 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 31 | 31 | |
| 32 | 32 | ``argp`` |
| 33 | 33 | pointer to struct :c:type:`v4l2_decoder_cmd`. |
| 34 | 34 | |
| 35 | − | |
| 36 | 35 | Description |
| 37 | 36 | =========== |
| 38 | 37 | |
| @@ -47,11 +46,11 @@ this structure. · 8 unmodified lines | ||
| 47 | 46 | The ``cmd`` field must contain the command code. Some commands use the |
| 48 | 47 | ``flags`` field for additional information. |
| 49 | 48 | |
| 50 | −A :ref:`write() <func-write>` or :ref:`VIDIOC_STREAMON` | |
| 49 | +A :c:func:`write()` or :ref:`VIDIOC_STREAMON` | |
| 51 | 50 | call sends an implicit START command to the decoder if it has not been |
| 52 | 51 | started yet. Applies to both queues of mem2mem decoders. |
| 53 | 52 | |
| 54 | −A :ref:`close() <func-close>` or :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` | |
| 53 | +A :c:func:`close()` or :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` | |
| 55 | 54 | call of a streaming file descriptor sends an implicit immediate STOP |
| 56 | 55 | command to the decoder, and all buffered data is discarded. Applies to both |
| 57 | 56 | queues of mem2mem decoders. |
| @@ -60,7 +59,6 @@ In principle, these ioctls are optional, not all drivers may support them. They · 2 unmodified lines | ||
| 60 | 59 | introduced in Linux 3.3. They are, however, mandatory for stateful mem2mem decoders |
| 61 | 60 | (as further documented in :ref:`decoder`). |
| 62 | 61 | |
| 63 | − | |
| 64 | 62 | .. tabularcolumns:: |p{1.1cm}|p{2.4cm}|p{1.2cm}|p{1.6cm}|p{10.6cm}| |
| 65 | 63 | |
| 66 | 64 | .. c:type:: v4l2_decoder_cmd |
| @@ -131,7 +129,6 @@ introduced in Linux 3.3. They are, however, mandatory for stateful mem2mem decod · 64 unmodified lines | ||
| 131 | 129 | - |
| 132 | 130 | |
| 133 | 131 | |
| 134 | − | |
| 135 | 132 | .. tabularcolumns:: |p{5.6cm}|p{0.6cm}|p{11.3cm}| |
| 136 | 133 | |
| 137 | 134 | .. _decoder-cmds: |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_DQEVENT: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_DQEVENT - Dequeue event |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_DQEVENT, struct v4l2_event *argp ) | |
| 19 | − :name: VIDIOC_DQEVENT | |
| 18 | +.. c:macro:: VIDIOC_DQEVENT | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_DQEVENT, struct v4l2_event *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_event`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -38,7 +37,6 @@ structure are filled by the driver. The file handle will also receive · 3 unmodified lines | ||
| 38 | 37 | exceptions which the application may get by e.g. using the select system |
| 39 | 38 | call. |
| 40 | 39 | |
| 41 | − | |
| 42 | 40 | .. tabularcolumns:: |p{3.0cm}|p{4.4cm}|p{2.4cm}|p{7.7cm}| |
| 43 | 41 | |
| 44 | 42 | .. c:type:: v4l2_event |
| @@ -100,7 +98,6 @@ call. · 55 unmodified lines | ||
| 100 | 98 | zero. |
| 101 | 99 | |
| 102 | 100 | |
| 103 | − | |
| 104 | 101 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 105 | 102 | |
| 106 | 103 | .. cssclass:: longtable |
| @@ -191,7 +188,6 @@ call. · 84 unmodified lines | ||
| 191 | 188 | - Base event number for driver-private events. |
| 192 | 189 | |
| 193 | 190 | |
| 194 | − | |
| 195 | 191 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 196 | 192 | |
| 197 | 193 | .. c:type:: v4l2_event_vsync |
| @@ -206,7 +202,6 @@ call. · 8 unmodified lines | ||
| 206 | 202 | - The upcoming field. See enum :c:type:`v4l2_field`. |
| 207 | 203 | |
| 208 | 204 | |
| 209 | − | |
| 210 | 205 | .. tabularcolumns:: |p{3.5cm}|p{3.0cm}|p{1.8cm}|p{8.5cm}| |
| 211 | 206 | |
| 212 | 207 | .. c:type:: v4l2_event_ctrl |
| @@ -257,7 +252,6 @@ call. · 44 unmodified lines | ||
| 257 | 252 | :ref:`v4l2_queryctrl <v4l2-queryctrl>`. |
| 258 | 253 | |
| 259 | 254 | |
| 260 | − | |
| 261 | 255 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 262 | 256 | |
| 263 | 257 | .. c:type:: v4l2_event_frame_sync |
| @@ -272,7 +266,6 @@ call. · 8 unmodified lines | ||
| 272 | 266 | - The sequence number of the frame being received. |
| 273 | 267 | |
| 274 | 268 | |
| 275 | − | |
| 276 | 269 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 277 | 270 | |
| 278 | 271 | .. c:type:: v4l2_event_src_change |
| @@ -288,7 +281,6 @@ call. · 9 unmodified lines | ||
| 288 | 281 | :ref:`src-changes-flags`. |
| 289 | 282 | |
| 290 | 283 | |
| 291 | − | |
| 292 | 284 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 293 | 285 | |
| 294 | 286 | .. c:type:: v4l2_event_motion_det |
| @@ -318,7 +310,6 @@ call. · 23 unmodified lines | ||
| 318 | 310 | automatically assigned to the default region 0. |
| 319 | 311 | |
| 320 | 312 | |
| 321 | − | |
| 322 | 313 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 323 | 314 | |
| 324 | 315 | .. _ctrl-changes-flags: |
| @@ -344,7 +335,6 @@ call. · 19 unmodified lines | ||
| 344 | 335 | step or the default value of the control changed. |
| 345 | 336 | |
| 346 | 337 | |
| 347 | − | |
| 348 | 338 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 349 | 339 | |
| 350 | 340 | .. _src-changes-flags: |
| @@ -375,7 +365,6 @@ call. · 24 unmodified lines | ||
| 375 | 365 | loss of signal and so restarting streaming I/O is required in order for |
| 376 | 366 | the hardware to synchronize to the video signal. |
| 377 | 367 | |
| 378 | − | |
| 379 | 368 | Return Value |
| 380 | 369 | ============ |
| 381 | 370 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_DV_TIMINGS_CAP: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_DV_TIMINGS_CAP - VIDIOC_SUBDEV_DV_TIMINGS_CAP - The capabilities of the Digital Video receiver/transmitter |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_DV_TIMINGS_CAP, struct v4l2_dv_timings_cap *argp ) | |
| 19 | − :name: VIDIOC_DV_TIMINGS_CAP | |
| 18 | +.. c:macro:: VIDIOC_DV_TIMINGS_CAP | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_DV_TIMINGS_CAP, struct v4l2_dv_timings_cap *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_DV_TIMINGS_CAP, struct v4l2_dv_timings_cap *argp ) | |
| 22 | − :name: VIDIOC_SUBDEV_DV_TIMINGS_CAP | |
| 22 | +.. c:macro:: VIDIOC_SUBDEV_DV_TIMINGS_CAP | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_SUBDEV_DV_TIMINGS_CAP, struct v4l2_dv_timings_cap *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_dv_timings_cap`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -55,7 +55,6 @@ the desired pad number in the struct · 17 unmodified lines | ||
| 55 | 55 | zero the ``reserved`` array. Attempts to query capabilities on a pad |
| 56 | 56 | that doesn't support them will return an ``EINVAL`` error code. |
| 57 | 57 | |
| 58 | − | |
| 59 | 58 | .. tabularcolumns:: |p{1.2cm}|p{3.0cm}|p{13.3cm}| |
| 60 | 59 | |
| 61 | 60 | .. c:type:: v4l2_bt_timings_cap |
| @@ -97,7 +96,6 @@ that doesn't support them will return an ``EINVAL`` error code. · 35 unmodified lines | ||
| 97 | 96 | Drivers must set the array to zero. |
| 98 | 97 | |
| 99 | 98 | |
| 100 | − | |
| 101 | 99 | .. tabularcolumns:: |p{1.0cm}|p{4.0cm}|p{3.5cm}|p{9.2cm}| |
| 102 | 100 | |
| 103 | 101 | .. c:type:: v4l2_dv_timings_cap |
| @@ -153,7 +151,6 @@ that doesn't support them will return an ``EINVAL`` error code. · 49 unmodified lines | ||
| 153 | 151 | - Can support non-standard timings, i.e. timings not belonging to |
| 154 | 152 | the standards set in the ``standards`` field. |
| 155 | 153 | |
| 156 | − | |
| 157 | 154 | Return Value |
| 158 | 155 | ============ |
| 159 | 156 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_ENCODER_CMD: |
| 4 | 5 | |
| @@ -11,22 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_ENCODER_CMD - VIDIOC_TRY_ENCODER_CMD - Execute an encoder command |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_ENCODER_CMD, struct v4l2_encoder_cmd *argp ) | |
| 19 | − :name: VIDIOC_ENCODER_CMD | |
| 18 | +.. c:macro:: VIDIOC_ENCODER_CMD | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_ENCODER_CMD, struct v4l2_encoder_cmd *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_TRY_ENCODER_CMD, struct v4l2_encoder_cmd *argp ) | |
| 22 | − :name: VIDIOC_TRY_ENCODER_CMD | |
| 22 | +.. c:macro:: VIDIOC_TRY_ENCODER_CMD | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_TRY_ENCODER_CMD, struct v4l2_encoder_cmd *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_encoder_cmd`. |
| @@ -47,16 +48,16 @@ this structure. · 14 unmodified lines | ||
| 47 | 48 | The ``cmd`` field must contain the command code. Some commands use the |
| 48 | 49 | ``flags`` field for additional information. |
| 49 | 50 | |
| 50 | −After a STOP command, :ref:`read() <func-read>` calls will read | |
| 51 | +After a STOP command, :c:func:`read()` calls will read | |
| 51 | 52 | the remaining data buffered by the driver. When the buffer is empty, |
| 52 | −:ref:`read() <func-read>` will return zero and the next :ref:`read() <func-read>` | |
| 53 | +:c:func:`read()` will return zero and the next :c:func:`read()` | |
| 53 | 54 | call will restart the encoder. |
| 54 | 55 | |
| 55 | −A :ref:`read() <func-read>` or :ref:`VIDIOC_STREAMON <VIDIOC_STREAMON>` | |
| 56 | +A :c:func:`read()` or :ref:`VIDIOC_STREAMON <VIDIOC_STREAMON>` | |
| 56 | 57 | call sends an implicit START command to the encoder if it has not been |
| 57 | 58 | started yet. Applies to both queues of mem2mem encoders. |
| 58 | 59 | |
| 59 | −A :ref:`close() <func-close>` or :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` | |
| 60 | +A :c:func:`close()` or :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` | |
| 60 | 61 | call of a streaming file descriptor sends an implicit immediate STOP to |
| 61 | 62 | the encoder, and all buffered data is discarded. Applies to both queues of |
| 62 | 63 | mem2mem encoders. |
| @@ -65,7 +66,6 @@ These ioctls are optional, not all drivers may support them. They were · 2 unmodified lines | ||
| 65 | 66 | introduced in Linux 2.6.21. They are, however, mandatory for stateful mem2mem |
| 66 | 67 | encoders (as further documented in :ref:`encoder`). |
| 67 | 68 | |
| 68 | − | |
| 69 | 69 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 70 | 70 | |
| 71 | 71 | .. c:type:: v4l2_encoder_cmd |
| @@ -89,7 +89,6 @@ encoders (as further documented in :ref:`encoder`). · 17 unmodified lines | ||
| 89 | 89 | the array to zero. |
| 90 | 90 | |
| 91 | 91 | |
| 92 | − | |
| 93 | 92 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 94 | 93 | |
| 95 | 94 | .. _encoder-cmds: |
| @@ -134,7 +133,6 @@ encoders (as further documented in :ref:`encoder`). · 38 unmodified lines | ||
| 134 | 133 | the encoder is already running, this command does nothing. No |
| 135 | 134 | flags are defined for this command. |
| 136 | 135 | |
| 137 | − | |
| 138 | 136 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 139 | 137 | |
| 140 | 138 | .. _encoder-flags: |
| @@ -151,7 +149,6 @@ encoders (as further documented in :ref:`encoder`). · 10 unmodified lines | ||
| 151 | 149 | |
| 152 | 150 | Does not apply to :ref:`encoder`. |
| 153 | 151 | |
| 154 | − | |
| 155 | 152 | Return Value |
| 156 | 153 | ============ |
| 157 | 154 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_ENUM_DV_TIMINGS: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_ENUM_DV_TIMINGS - VIDIOC_SUBDEV_ENUM_DV_TIMINGS - Enumerate supported Digital Video timings |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_ENUM_DV_TIMINGS, struct v4l2_enum_dv_timings *argp ) | |
| 19 | − :name: VIDIOC_ENUM_DV_TIMINGS | |
| 18 | +.. c:macro:: VIDIOC_ENUM_DV_TIMINGS | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_ENUM_DV_TIMINGS, struct v4l2_enum_dv_timings *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_ENUM_DV_TIMINGS, struct v4l2_enum_dv_timings *argp ) | |
| 22 | − :name: VIDIOC_SUBDEV_ENUM_DV_TIMINGS | |
| 22 | +.. c:macro:: VIDIOC_SUBDEV_ENUM_DV_TIMINGS | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_SUBDEV_ENUM_DV_TIMINGS, struct v4l2_enum_dv_timings *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_enum_dv_timings`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -65,7 +65,6 @@ pad number in the struct · 27 unmodified lines | ||
| 65 | 65 | Attempts to enumerate timings on a pad that doesn't support them will |
| 66 | 66 | return an ``EINVAL`` error code. |
| 67 | 67 | |
| 68 | − | |
| 69 | 68 | .. c:type:: v4l2_enum_dv_timings |
| 70 | 69 | |
| 71 | 70 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -91,7 +90,6 @@ return an ``EINVAL`` error code. · 19 unmodified lines | ||
| 91 | 90 | - ``timings`` |
| 92 | 91 | - The timings. |
| 93 | 92 | |
| 94 | − | |
| 95 | 93 | Return Value |
| 96 | 94 | ============ |
| 97 | 95 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_ENUM_FMT: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_ENUM_FMT - Enumerate image formats |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_ENUM_FMT, struct v4l2_fmtdesc *argp ) | |
| 19 | − :name: VIDIOC_ENUM_FMT | |
| 18 | +.. c:macro:: VIDIOC_ENUM_FMT | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_ENUM_FMT, struct v4l2_fmtdesc *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_fmtdesc`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -72,7 +71,6 @@ the ``mbus_code`` field is handled differently: · 37 unmodified lines | ||
| 72 | 71 | formats shall not depend on the active configuration of the video device |
| 73 | 72 | or device pipeline. |
| 74 | 73 | |
| 75 | − | |
| 76 | 74 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 77 | 75 | |
| 78 | 76 | .. c:type:: v4l2_fmtdesc |
| @@ -137,7 +135,6 @@ the ``mbus_code`` field is handled differently: · 58 unmodified lines | ||
| 137 | 135 | zero. |
| 138 | 136 | |
| 139 | 137 | |
| 140 | − | |
| 141 | 138 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 142 | 139 | |
| 143 | 140 | .. _fmtdesc-flags: |
| @@ -227,7 +224,6 @@ the ``mbus_code`` field is handled differently: · 83 unmodified lines | ||
| 227 | 224 | device when calling the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl with |
| 228 | 225 | :ref:`V4L2_PIX_FMT_FLAG_SET_CSC <v4l2-pix-fmt-flag-set-csc>` set. |
| 229 | 226 | |
| 230 | − | |
| 231 | 227 | Return Value |
| 232 | 228 | ============ |
| 233 | 229 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_ENUM_FRAMEINTERVALS: |
| 4 | 5 | |
| @@ -11,25 +12,23 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_ENUM_FRAMEINTERVALS - Enumerate frame intervals |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_ENUM_FRAMEINTERVALS, struct v4l2_frmivalenum *argp ) | |
| 19 | − :name: VIDIOC_ENUM_FRAMEINTERVALS | |
| 18 | +.. c:macro:: VIDIOC_ENUM_FRAMEINTERVALS | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_ENUM_FRAMEINTERVALS, struct v4l2_frmivalenum *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_frmivalenum` |
| 30 | 30 | that contains a pixel format and size and receives a frame interval. |
| 31 | 31 | |
| 32 | − | |
| 33 | 32 | Description |
| 34 | 33 | =========== |
| 35 | 34 | |
| @@ -91,7 +90,6 @@ other ioctl calls while it runs the frame interval enumeration. · 55 unmodified lines | ||
| 91 | 90 | |
| 92 | 91 | frame_rate = 1 / frame_interval |
| 93 | 92 | |
| 94 | − | |
| 95 | 93 | Structs |
| 96 | 94 | ======= |
| 97 | 95 | |
| @@ -99,7 +97,6 @@ In the structs below, *IN* denotes a value that has to be filled in by · 1 unmodified line | ||
| 99 | 97 | the application, *OUT* denotes values that the driver fills in. The |
| 100 | 98 | application should zero out all members except for the *IN* fields. |
| 101 | 99 | |
| 102 | − | |
| 103 | 100 | .. c:type:: v4l2_frmival_stepwise |
| 104 | 101 | |
| 105 | 102 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -120,7 +117,6 @@ application should zero out all members except for the *IN* fields. · 14 unmodified lines | ||
| 120 | 117 | - Frame interval step size [s]. |
| 121 | 118 | |
| 122 | 119 | |
| 123 | − | |
| 124 | 120 | .. c:type:: v4l2_frmivalenum |
| 125 | 121 | |
| 126 | 122 | .. tabularcolumns:: |p{1.8cm}|p{4.4cm}|p{2.4cm}|p{8.9cm}| |
| @@ -163,11 +159,9 @@ application should zero out all members except for the *IN* fields. · 36 unmodified lines | ||
| 163 | 159 | applications. |
| 164 | 160 | |
| 165 | 161 | |
| 166 | − | |
| 167 | 162 | Enums |
| 168 | 163 | ===== |
| 169 | 164 | |
| 170 | − | |
| 171 | 165 | .. c:type:: v4l2_frmivaltypes |
| 172 | 166 | |
| 173 | 167 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| @@ -187,7 +181,6 @@ Enums · 13 unmodified lines | ||
| 187 | 181 | - 3 |
| 188 | 182 | - Step-wise defined frame interval. |
| 189 | 183 | |
| 190 | − | |
| 191 | 184 | Return Value |
| 192 | 185 | ============ |
| 193 | 186 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_ENUM_FRAMESIZES: |
| 4 | 5 | |
| @@ -11,26 +12,24 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_ENUM_FRAMESIZES - Enumerate frame sizes |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_ENUM_FRAMESIZES, struct v4l2_frmsizeenum *argp ) | |
| 19 | − :name: VIDIOC_ENUM_FRAMESIZES | |
| 18 | +.. c:macro:: VIDIOC_ENUM_FRAMESIZES | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_ENUM_FRAMESIZES, struct v4l2_frmsizeenum *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_frmsizeenum` |
| 30 | 30 | that contains an index and pixel format and receives a frame width |
| 31 | 31 | and height. |
| 32 | 32 | |
| 33 | − | |
| 34 | 33 | Description |
| 35 | 34 | =========== |
| 36 | 35 | |
| @@ -81,7 +80,6 @@ without any interaction from the application itself. This means that the · 44 unmodified lines | ||
| 81 | 80 | enumeration data is consistent if the application does not perform any |
| 82 | 81 | other ioctl calls while it runs the frame size enumeration. |
| 83 | 82 | |
| 84 | − | |
| 85 | 83 | Structs |
| 86 | 84 | ======= |
| 87 | 85 | |
| @@ -89,7 +87,6 @@ In the structs below, *IN* denotes a value that has to be filled in by · 1 unmodified line | ||
| 89 | 87 | the application, *OUT* denotes values that the driver fills in. The |
| 90 | 88 | application should zero out all members except for the *IN* fields. |
| 91 | 89 | |
| 92 | − | |
| 93 | 90 | .. c:type:: v4l2_frmsize_discrete |
| 94 | 91 | |
| 95 | 92 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -107,7 +104,6 @@ application should zero out all members except for the *IN* fields. · 11 unmodified lines | ||
| 107 | 104 | - Height of the frame [pixel]. |
| 108 | 105 | |
| 109 | 106 | |
| 110 | − | |
| 111 | 107 | .. c:type:: v4l2_frmsize_stepwise |
| 112 | 108 | |
| 113 | 109 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -137,7 +133,6 @@ application should zero out all members except for the *IN* fields. · 23 unmodified lines | ||
| 137 | 133 | - Frame height step size [pixel]. |
| 138 | 134 | |
| 139 | 135 | |
| 140 | − | |
| 141 | 136 | .. c:type:: v4l2_frmsizeenum |
| 142 | 137 | |
| 143 | 138 | .. tabularcolumns:: |p{1.4cm}|p{5.9cm}|p{2.3cm}|p{8.0cm}| |
| @@ -173,11 +168,9 @@ application should zero out all members except for the *IN* fields. · 29 unmodified lines | ||
| 173 | 168 | applications. |
| 174 | 169 | |
| 175 | 170 | |
| 176 | − | |
| 177 | 171 | Enums |
| 178 | 172 | ===== |
| 179 | 173 | |
| 180 | − | |
| 181 | 174 | .. c:type:: v4l2_frmsizetypes |
| 182 | 175 | |
| 183 | 176 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| @@ -197,7 +190,6 @@ Enums · 13 unmodified lines | ||
| 197 | 190 | - 3 |
| 198 | 191 | - Step-wise defined frame size. |
| 199 | 192 | |
| 200 | − | |
| 201 | 193 | Return Value |
| 202 | 194 | ============ |
| 203 | 195 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_ENUM_FREQ_BANDS: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_ENUM_FREQ_BANDS - Enumerate supported frequency bands |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_ENUM_FREQ_BANDS, struct v4l2_frequency_band *argp ) | |
| 19 | − :name: VIDIOC_ENUM_FREQ_BANDS | |
| 18 | +.. c:macro:: VIDIOC_ENUM_FREQ_BANDS | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_ENUM_FREQ_BANDS, struct v4l2_frequency_band *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_frequency_band`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -41,7 +40,6 @@ fields, and zero out the ``reserved`` array of a struct · 6 unmodified lines | ||
| 41 | 40 | This ioctl is supported if the ``V4L2_TUNER_CAP_FREQ_BANDS`` capability |
| 42 | 41 | of the corresponding tuner/modulator is set. |
| 43 | 42 | |
| 44 | − | |
| 45 | 43 | .. tabularcolumns:: |p{2.9cm}|p{2.9cm}|p{5.8cm}|p{2.9cm}|p{3.0cm}| |
| 46 | 44 | |
| 47 | 45 | .. c:type:: v4l2_frequency_band |
| @@ -110,7 +108,6 @@ of the corresponding tuner/modulator is set. · 62 unmodified lines | ||
| 110 | 108 | Applications and drivers must set the array to zero. |
| 111 | 109 | |
| 112 | 110 | |
| 113 | − | |
| 114 | 111 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 115 | 112 | |
| 116 | 113 | .. _band-modulation: |
| @@ -130,7 +127,6 @@ of the corresponding tuner/modulator is set. · 13 unmodified lines | ||
| 130 | 127 | - 0x08 |
| 131 | 128 | - Amplitude Modulation, commonly used for analog radio. |
| 132 | 129 | |
| 133 | − | |
| 134 | 130 | Return Value |
| 135 | 131 | ============ |
| 136 | 132 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_ENUMAUDIO: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_ENUMAUDIO - Enumerate audio inputs |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_ENUMAUDIO, struct v4l2_audio *argp ) | |
| 19 | − :name: VIDIOC_ENUMAUDIO | |
| 18 | +.. c:macro:: VIDIOC_ENUMAUDIO | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_ENUMAUDIO, struct v4l2_audio *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_audio`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -43,7 +42,6 @@ zero, incrementing by one until the driver returns ``EINVAL``. · 8 unmodified lines | ||
| 43 | 42 | See :ref:`VIDIOC_G_AUDIO <VIDIOC_G_AUDIO>` for a description of struct |
| 44 | 43 | :c:type:`v4l2_audio`. |
| 45 | 44 | |
| 46 | − | |
| 47 | 45 | Return Value |
| 48 | 46 | ============ |
| 49 | 47 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_ENUMAUDOUT: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_ENUMAUDOUT - Enumerate audio outputs |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_ENUMAUDOUT, struct v4l2_audioout *argp ) | |
| 19 | − :name: VIDIOC_ENUMAUDOUT | |
| 18 | +.. c:macro:: VIDIOC_ENUMAUDOUT | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_ENUMAUDOUT, struct v4l2_audioout *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_audioout`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -48,7 +47,6 @@ zero, incrementing by one until the driver returns ``EINVAL``. · 13 unmodified lines | ||
| 48 | 47 | See :ref:`VIDIOC_G_AUDIOout <VIDIOC_G_AUDOUT>` for a description of struct |
| 49 | 48 | :c:type:`v4l2_audioout`. |
| 50 | 49 | |
| 51 | − | |
| 52 | 50 | Return Value |
| 53 | 51 | ============ |
| 54 | 52 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_ENUMINPUT: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_ENUMINPUT - Enumerate video inputs |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_ENUMINPUT, struct v4l2_input *argp ) | |
| 19 | − :name: VIDIOC_ENUMINPUT | |
| 18 | +.. c:macro:: VIDIOC_ENUMINPUT | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_ENUMINPUT, struct v4l2_input *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_input`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -39,7 +38,6 @@ fill the rest of the structure or return an ``EINVAL`` error code when the · 4 unmodified lines | ||
| 39 | 38 | index is out of bounds. To enumerate all inputs applications shall begin |
| 40 | 39 | at index zero, incrementing by one until the driver returns ``EINVAL``. |
| 41 | 40 | |
| 42 | − | |
| 43 | 41 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 44 | 42 | |
| 45 | 43 | .. c:type:: v4l2_input |
| @@ -103,7 +101,6 @@ at index zero, incrementing by one until the driver returns ``EINVAL``. · 57 unmodified lines | ||
| 103 | 101 | zero. |
| 104 | 102 | |
| 105 | 103 | |
| 106 | − | |
| 107 | 104 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 108 | 105 | |
| 109 | 106 | .. _input-type: |
| @@ -126,7 +123,6 @@ at index zero, incrementing by one until the driver returns ``EINVAL``. · 16 unmodified lines | ||
| 126 | 123 | - This input is a touch device for capturing raw touch data. |
| 127 | 124 | |
| 128 | 125 | |
| 129 | − | |
| 130 | 126 | .. tabularcolumns:: |p{4.8cm}|p{2.6cm}|p{10.1cm}| |
| 131 | 127 | |
| 132 | 128 | .. _input-status: |
| @@ -198,7 +194,6 @@ at index zero, incrementing by one until the driver returns ``EINVAL``. · 65 unmodified lines | ||
| 198 | 194 | - VTR time constant. [?] |
| 199 | 195 | |
| 200 | 196 | |
| 201 | − | |
| 202 | 197 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 203 | 198 | |
| 204 | 199 | .. _input-capabilities: |
| @@ -222,7 +217,6 @@ at index zero, incrementing by one until the driver returns ``EINVAL``. · 17 unmodified lines | ||
| 222 | 217 | ``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see |
| 223 | 218 | :ref:`v4l2-selections-common`. |
| 224 | 219 | |
| 225 | − | |
| 226 | 220 | Return Value |
| 227 | 221 | ============ |
| 228 | 222 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_ENUMOUTPUT: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_ENUMOUTPUT - Enumerate video outputs |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_ENUMOUTPUT, struct v4l2_output *argp ) | |
| 19 | − :name: VIDIOC_ENUMOUTPUT | |
| 18 | +.. c:macro:: VIDIOC_ENUMOUTPUT | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_ENUMOUTPUT, struct v4l2_output *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_output`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -40,7 +39,6 @@ when the index is out of bounds. To enumerate all outputs applications · 5 unmodified lines | ||
| 40 | 39 | shall begin at index zero, incrementing by one until the driver returns |
| 41 | 40 | ``EINVAL``. |
| 42 | 41 | |
| 43 | − | |
| 44 | 42 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 45 | 43 | |
| 46 | 44 | .. c:type:: v4l2_output |
| @@ -98,7 +96,6 @@ shall begin at index zero, incrementing by one until the driver returns · 51 unmodified lines | ||
| 98 | 96 | zero. |
| 99 | 97 | |
| 100 | 98 | |
| 101 | − | |
| 102 | 99 | .. tabularcolumns:: |p{7.0cm}|p{1.8cm}|p{8.7cm}| |
| 103 | 100 | |
| 104 | 101 | .. _output-type: |
| @@ -121,7 +118,6 @@ shall begin at index zero, incrementing by one until the driver returns · 16 unmodified lines | ||
| 121 | 118 | - The video output will be copied to a :ref:`video overlay <overlay>`. |
| 122 | 119 | |
| 123 | 120 | |
| 124 | − | |
| 125 | 121 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 126 | 122 | |
| 127 | 123 | .. _output-capabilities: |
| @@ -145,7 +141,6 @@ shall begin at index zero, incrementing by one until the driver returns · 17 unmodified lines | ||
| 145 | 141 | ``V4L2_SEL_TGT_NATIVE_SIZE`` selection target, see |
| 146 | 142 | :ref:`v4l2-selections-common`. |
| 147 | 143 | |
| 148 | − | |
| 149 | 144 | Return Value |
| 150 | 145 | ============ |
| 151 | 146 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_ENUMSTD: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_ENUMSTD - VIDIOC_SUBDEV_ENUMSTD - Enumerate supported video standards |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_ENUMSTD, struct v4l2_standard *argp ) | |
| 19 | − :name: VIDIOC_ENUMSTD | |
| 18 | +.. c:macro:: VIDIOC_ENUMSTD | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_ENUMSTD, struct v4l2_standard *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_ENUMSTD, struct v4l2_standard *argp ) | |
| 22 | − :name: VIDIOC_SUBDEV_ENUMSTD | |
| 22 | +.. c:macro:: VIDIOC_SUBDEV_ENUMSTD | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_SUBDEV_ENUMSTD, struct v4l2_standard *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_standard`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -45,7 +45,6 @@ zero, incrementing by one until the driver returns ``EINVAL``. Drivers may · 7 unmodified lines | ||
| 45 | 45 | enumerate a different set of standards after switching the video input |
| 46 | 46 | or output. [#f1]_ |
| 47 | 47 | |
| 48 | − | |
| 49 | 48 | .. c:type:: v4l2_standard |
| 50 | 49 | |
| 51 | 50 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -85,7 +84,6 @@ or output. [#f1]_ · 33 unmodified lines | ||
| 85 | 84 | zero. |
| 86 | 85 | |
| 87 | 86 | |
| 88 | − | |
| 89 | 87 | .. c:type:: v4l2_fract |
| 90 | 88 | |
| 91 | 89 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -102,7 +100,6 @@ or output. [#f1]_ · 10 unmodified lines | ||
| 102 | 100 | - ``denominator`` |
| 103 | 101 | - |
| 104 | 102 | |
| 105 | − | |
| 106 | 103 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 107 | 104 | |
| 108 | 105 | .. _v4l2-std-id: |
| @@ -120,7 +117,6 @@ or output. [#f1]_ · 11 unmodified lines | ||
| 120 | 117 | standards. |
| 121 | 118 | |
| 122 | 119 | |
| 123 | − | |
| 124 | 120 | .. code-block:: c |
| 125 | 121 | |
| 126 | 122 | #define V4L2_STD_PAL_B ((v4l2_std_id)0x00000001) |
| @@ -142,7 +138,6 @@ rate, and PAL color modulation with a 4.43 MHz color subcarrier. Some · 15 unmodified lines | ||
| 142 | 138 | PAL video recorders can play back NTSC tapes in this mode for display on |
| 143 | 139 | a 50/60 Hz agnostic PAL TV. |
| 144 | 140 | |
| 145 | − | |
| 146 | 141 | .. code-block:: c |
| 147 | 142 | |
| 148 | 143 | #define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000) |
| @@ -152,7 +147,6 @@ a 50/60 Hz agnostic PAL TV. · 3 unmodified lines | ||
| 152 | 147 | ``V4L2_STD_NTSC_443`` is a hybrid standard with 525 lines, 60 Hz refresh |
| 153 | 148 | rate, and NTSC color modulation with a 4.43 MHz color subcarrier. |
| 154 | 149 | |
| 155 | − | |
| 156 | 150 | .. code-block:: c |
| 157 | 151 | |
| 158 | 152 | #define V4L2_STD_NTSC_M_KR ((v4l2_std_id)0x00008000) |
| @@ -175,7 +169,6 @@ terrestrial digital TV standards. Presently the V4L2 API does not · 16 unmodified lines | ||
| 175 | 169 | support digital TV. See also the Linux DVB API at |
| 176 | 170 | `https://linuxtv.org <https://linuxtv.org>`__. |
| 177 | 171 | |
| 178 | − | |
| 179 | 172 | .. code-block:: c |
| 180 | 173 | |
| 181 | 174 | #define V4L2_STD_PAL_BG (V4L2_STD_PAL_B | |
| @@ -228,7 +221,6 @@ support digital TV. See also the Linux DVB API at · 46 unmodified lines | ||
| 228 | 221 | #define V4L2_STD_ALL (V4L2_STD_525_60 | |
| 229 | 222 | V4L2_STD_625_50) |
| 230 | 223 | |
| 231 | − | |
| 232 | 224 | .. raw:: latex |
| 233 | 225 | |
| 234 | 226 | \begingroup |
| @@ -303,7 +295,6 @@ support digital TV. See also the Linux DVB API at · 68 unmodified lines | ||
| 303 | 295 | \endgroup |
| 304 | 296 | |
| 305 | 297 | |
| 306 | − | |
| 307 | 298 | Return Value |
| 308 | 299 | ============ |
| 309 | 300 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_EXPBUF: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_EXPBUF - Export a buffer as a DMABUF file descriptor. |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_EXPBUF, struct v4l2_exportbuffer *argp ) | |
| 19 | − :name: VIDIOC_EXPBUF | |
| 18 | +.. c:macro:: VIDIOC_EXPBUF | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_EXPBUF, struct v4l2_exportbuffer *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_exportbuffer`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -63,11 +62,9 @@ for details about importing DMABUF files into V4L2 nodes. It is · 28 unmodified lines | ||
| 63 | 62 | recommended to close a DMABUF file when it is no longer used to allow |
| 64 | 63 | the associated memory to be reclaimed. |
| 65 | 64 | |
| 66 | − | |
| 67 | 65 | Examples |
| 68 | 66 | ======== |
| 69 | 67 | |
| 70 | − | |
| 71 | 68 | .. code-block:: c |
| 72 | 69 | |
| 73 | 70 | int buffer_export(int v4lfd, enum v4l2_buf_type bt, int index, int *dmafd) |
| @@ -87,7 +84,6 @@ Examples · 13 unmodified lines | ||
| 87 | 84 | return 0; |
| 88 | 85 | } |
| 89 | 86 | |
| 90 | − | |
| 91 | 87 | .. code-block:: c |
| 92 | 88 | |
| 93 | 89 | int buffer_export_mp(int v4lfd, enum v4l2_buf_type bt, int index, |
| @@ -114,7 +110,6 @@ Examples · 20 unmodified lines | ||
| 114 | 110 | return 0; |
| 115 | 111 | } |
| 116 | 112 | |
| 117 | − | |
| 118 | 113 | .. c:type:: v4l2_exportbuffer |
| 119 | 114 | |
| 120 | 115 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -155,7 +150,6 @@ Examples · 34 unmodified lines | ||
| 155 | 150 | - Reserved field for future use. Drivers and applications must set |
| 156 | 151 | the array to zero. |
| 157 | 152 | |
| 158 | − | |
| 159 | 153 | Return Value |
| 160 | 154 | ============ |
| 161 | 155 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_AUDIO: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_AUDIO - VIDIOC_S_AUDIO - Query or select the current audio input and its attributes |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_AUDIO, struct v4l2_audio *argp ) | |
| 19 | − :name: VIDIOC_G_AUDIO | |
| 18 | +.. c:macro:: VIDIOC_G_AUDIO | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_AUDIO, struct v4l2_audio *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_AUDIO, const struct v4l2_audio *argp ) | |
| 22 | − :name: VIDIOC_S_AUDIO | |
| 22 | +.. c:macro:: VIDIOC_S_AUDIO | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_AUDIO, const struct v4l2_audio *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_audio`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -49,7 +49,6 @@ ioctl. Drivers may switch to a different audio mode if the request · 11 unmodified lines | ||
| 49 | 49 | cannot be satisfied. However, this is a write-only ioctl, it does not |
| 50 | 50 | return the actual new audio mode. |
| 51 | 51 | |
| 52 | − | |
| 53 | 52 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 54 | 53 | |
| 55 | 54 | .. c:type:: v4l2_audio |
| @@ -80,7 +79,6 @@ return the actual new audio mode. · 24 unmodified lines | ||
| 80 | 79 | the array to zero. |
| 81 | 80 | |
| 82 | 81 | |
| 83 | − | |
| 84 | 82 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 85 | 83 | |
| 86 | 84 | .. _audio-capability: |
| @@ -101,7 +99,6 @@ return the actual new audio mode. · 14 unmodified lines | ||
| 101 | 99 | - Automatic Volume Level mode is supported. |
| 102 | 100 | |
| 103 | 101 | |
| 104 | − | |
| 105 | 102 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 106 | 103 | |
| 107 | 104 | .. _audio-mode: |
| @@ -115,7 +112,6 @@ return the actual new audio mode. · 7 unmodified lines | ||
| 115 | 112 | - 0x00001 |
| 116 | 113 | - AVL mode is on. |
| 117 | 114 | |
| 118 | − | |
| 119 | 115 | Return Value |
| 120 | 116 | ============ |
| 121 | 117 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_AUDOUT: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_AUDOUT - VIDIOC_S_AUDOUT - Query or select the current audio output |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_AUDOUT, struct v4l2_audioout *argp ) | |
| 19 | − :name: VIDIOC_G_AUDOUT | |
| 18 | +.. c:macro:: VIDIOC_G_AUDOUT | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_AUDOUT, struct v4l2_audioout *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_AUDOUT, const struct v4l2_audioout *argp ) | |
| 22 | − :name: VIDIOC_S_AUDOUT | |
| 22 | +.. c:macro:: VIDIOC_S_AUDOUT | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_AUDOUT, const struct v4l2_audioout *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_audioout`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -56,7 +56,6 @@ as ``VIDIOC_G_AUDOUT`` does. · 18 unmodified lines | ||
| 56 | 56 | Connectors on a TV card to loop back the received audio signal |
| 57 | 57 | to a sound card are not audio outputs in this sense. |
| 58 | 58 | |
| 59 | − | |
| 60 | 59 | .. c:type:: v4l2_audioout |
| 61 | 60 | |
| 62 | 61 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -87,7 +86,6 @@ as ``VIDIOC_G_AUDOUT`` does. · 24 unmodified lines | ||
| 87 | 86 | - Reserved for future extensions. Drivers and applications must set |
| 88 | 87 | the array to zero. |
| 89 | 88 | |
| 90 | − | |
| 91 | 89 | Return Value |
| 92 | 90 | ============ |
| 93 | 91 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_CROP: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_CROP - VIDIOC_S_CROP - Get or set the current cropping rectangle |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_CROP, struct v4l2_crop *argp ) | |
| 19 | − :name: VIDIOC_G_CROP | |
| 18 | +.. c:macro:: VIDIOC_G_CROP | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_CROP, struct v4l2_crop *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_CROP, const struct v4l2_crop *argp ) | |
| 22 | − :name: VIDIOC_S_CROP | |
| 22 | +.. c:macro:: VIDIOC_S_CROP | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_CROP, const struct v4l2_crop *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_crop`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -69,7 +69,6 @@ been negotiated. · 31 unmodified lines | ||
| 69 | 69 | When cropping is not supported then no parameters are changed and |
| 70 | 70 | :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` returns the ``EINVAL`` error code. |
| 71 | 71 | |
| 72 | − | |
| 73 | 72 | .. c:type:: v4l2_crop |
| 74 | 73 | |
| 75 | 74 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -100,7 +99,6 @@ When cropping is not supported then no parameters are changed and · 24 unmodified lines | ||
| 100 | 99 | |
| 101 | 100 | Starting with kernel 4.13 both variations are allowed. |
| 102 | 101 | |
| 103 | − | |
| 104 | 102 | Return Value |
| 105 | 103 | ============ |
| 106 | 104 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_CTRL: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_CTRL - VIDIOC_S_CTRL - Get or set the value of a control |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_CTRL, struct v4l2_control *argp ) | |
| 19 | − :name: VIDIOC_G_CTRL | |
| 18 | +.. c:macro:: VIDIOC_G_CTRL | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_CTRL, struct v4l2_control *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_CTRL, struct v4l2_control *argp ) | |
| 22 | − :name: VIDIOC_S_CTRL | |
| 22 | +.. c:macro:: VIDIOC_S_CTRL | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_CTRL, struct v4l2_control *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_control`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -55,7 +55,6 @@ These ioctls work only with user controls. For other control classes the · 17 unmodified lines | ||
| 55 | 55 | :ref:`VIDIOC_S_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` or |
| 56 | 56 | :ref:`VIDIOC_TRY_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` must be used. |
| 57 | 57 | |
| 58 | − | |
| 59 | 58 | .. c:type:: v4l2_control |
| 60 | 59 | |
| 61 | 60 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -72,7 +71,6 @@ These ioctls work only with user controls. For other control classes the · 10 unmodified lines | ||
| 72 | 71 | - ``value`` |
| 73 | 72 | - New value or current value. |
| 74 | 73 | |
| 75 | − | |
| 76 | 74 | Return Value |
| 77 | 75 | ============ |
| 78 | 76 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_DV_TIMINGS: |
| 4 | 5 | |
| @@ -11,33 +12,34 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_DV_TIMINGS - VIDIOC_S_DV_TIMINGS - VIDIOC_SUBDEV_G_DV_TIMINGS - VIDIOC_SUBDEV_S_DV_TIMINGS - Get or set DV timings for input or output |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_DV_TIMINGS, struct v4l2_dv_timings *argp ) | |
| 19 | − :name: VIDIOC_G_DV_TIMINGS | |
| 18 | +.. c:macro:: VIDIOC_G_DV_TIMINGS | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_DV_TIMINGS, struct v4l2_dv_timings *argp)`` | |
| 21 | + | |
| 22 | +.. c:macro:: VIDIOC_S_DV_TIMINGS | |
| 23 | + | |
| 24 | +``int ioctl(int fd, VIDIOC_S_DV_TIMINGS, struct v4l2_dv_timings *argp)`` | |
| 20 | 25 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_DV_TIMINGS, struct v4l2_dv_timings *argp ) | |
| 22 | − :name: VIDIOC_S_DV_TIMINGS | |
| 26 | +.. c:macro:: VIDIOC_SUBDEV_G_DV_TIMINGS | |
| 23 | 27 | |
| 24 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_G_DV_TIMINGS, struct v4l2_dv_timings *argp ) | |
| 25 | − :name: VIDIOC_SUBDEV_G_DV_TIMINGS | |
| 28 | +``int ioctl(int fd, VIDIOC_SUBDEV_G_DV_TIMINGS, struct v4l2_dv_timings *argp)`` | |
| 26 | 29 | |
| 27 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_S_DV_TIMINGS, struct v4l2_dv_timings *argp ) | |
| 28 | − :name: VIDIOC_SUBDEV_S_DV_TIMINGS | |
| 30 | +.. c:macro:: VIDIOC_SUBDEV_S_DV_TIMINGS | |
| 29 | 31 | |
| 32 | +``int ioctl(int fd, VIDIOC_SUBDEV_S_DV_TIMINGS, struct v4l2_dv_timings *argp)`` | |
| 30 | 33 | |
| 31 | 34 | Arguments |
| 32 | 35 | ========= |
| 33 | 36 | |
| 34 | 37 | ``fd`` |
| 35 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 38 | + File descriptor returned by :c:func:`open()`. | |
| 36 | 39 | |
| 37 | 40 | ``argp`` |
| 38 | 41 | Pointer to struct :c:type:`v4l2_dv_timings`. |
| 39 | 42 | |
| 40 | − | |
| 41 | 43 | Description |
| 42 | 44 | =========== |
| 43 | 45 | |
| @@ -60,7 +62,6 @@ the current input or output does not support DV timings (e.g. if · 16 unmodified lines | ||
| 60 | 62 | :ref:`VIDIOC_ENUMINPUT` does not set the |
| 61 | 63 | ``V4L2_IN_CAP_DV_TIMINGS`` flag), then ``ENODATA`` error code is returned. |
| 62 | 64 | |
| 63 | − | |
| 64 | 65 | Return Value |
| 65 | 66 | ============ |
| 66 | 67 | |
| @@ -170,7 +171,6 @@ EPERM · 103 unmodified lines | ||
| 170 | 171 | - Reserved for future extensions. Drivers and applications must set |
| 171 | 172 | the array to zero. |
| 172 | 173 | |
| 173 | − | |
| 174 | 174 | .. tabularcolumns:: |p{3.5cm}|p{3.5cm}|p{7.0cm}|p{3.5cm}| |
| 175 | 175 | |
| 176 | 176 | .. c:type:: v4l2_dv_timings |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_EDID: |
| 4 | 5 | |
| @@ -11,34 +12,34 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_EDID - VIDIOC_S_EDID - VIDIOC_SUBDEV_G_EDID - VIDIOC_SUBDEV_S_EDID - Get or set the EDID of a video receiver/transmitter |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_EDID, struct v4l2_edid *argp ) | |
| 19 | − :name: VIDIOC_G_EDID | |
| 18 | +.. c:macro:: VIDIOC_G_EDID | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_EDID, struct v4l2_edid *argp)`` | |
| 21 | + | |
| 22 | +.. c:macro:: VIDIOC_S_EDID | |
| 20 | 23 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_EDID, struct v4l2_edid *argp ) | |
| 22 | − :name: VIDIOC_S_EDID | |
| 24 | +``int ioctl(int fd, VIDIOC_S_EDID, struct v4l2_edid *argp)`` | |
| 23 | 25 | |
| 26 | +.. c:macro:: VIDIOC_SUBDEV_G_EDID | |
| 24 | 27 | |
| 25 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_G_EDID, struct v4l2_edid *argp ) | |
| 26 | − :name: VIDIOC_SUBDEV_G_EDID | |
| 28 | +``int ioctl(int fd, VIDIOC_SUBDEV_G_EDID, struct v4l2_edid *argp)`` | |
| 27 | 29 | |
| 28 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_S_EDID, struct v4l2_edid *argp ) | |
| 29 | − :name: VIDIOC_SUBDEV_S_EDID | |
| 30 | +.. c:macro:: VIDIOC_SUBDEV_S_EDID | |
| 30 | 31 | |
| 32 | +``int ioctl(int fd, VIDIOC_SUBDEV_S_EDID, struct v4l2_edid *argp)`` | |
| 31 | 33 | |
| 32 | 34 | Arguments |
| 33 | 35 | ========= |
| 34 | 36 | |
| 35 | 37 | ``fd`` |
| 36 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 38 | + File descriptor returned by :c:func:`open()`. | |
| 37 | 39 | |
| 38 | 40 | ``argp`` |
| 39 | 41 | Pointer to struct :c:type:`v4l2_edid`. |
| 40 | 42 | |
| 41 | − | |
| 42 | 43 | Description |
| 43 | 44 | =========== |
| 44 | 45 | |
| @@ -97,7 +98,6 @@ this will drive the hotplug pin low and/or block the source from reading · 52 unmodified lines | ||
| 97 | 98 | the EDID data in some way. In any case, the end result is the same: the |
| 98 | 99 | EDID is no longer available. |
| 99 | 100 | |
| 100 | − | |
| 101 | 101 | .. c:type:: v4l2_edid |
| 102 | 102 | |
| 103 | 103 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -132,7 +132,6 @@ EDID is no longer available. · 28 unmodified lines | ||
| 132 | 132 | - Pointer to memory that contains the EDID. The minimum size is |
| 133 | 133 | ``blocks`` * 128. |
| 134 | 134 | |
| 135 | − | |
| 136 | 135 | Return Value |
| 137 | 136 | ============ |
| 138 | 137 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_ENC_INDEX: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_ENC_INDEX - Get meta data about a compressed video stream |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_ENC_INDEX, struct v4l2_enc_idx *argp ) | |
| 19 | − :name: VIDIOC_G_ENC_INDEX | |
| 18 | +.. c:macro:: VIDIOC_G_ENC_INDEX | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_G_ENC_INDEX, struct v4l2_enc_idx *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_enc_idx`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -55,7 +54,6 @@ will be zero. · 20 unmodified lines | ||
| 55 | 54 | Currently this ioctl is only defined for MPEG-2 program streams and |
| 56 | 55 | video elementary streams. |
| 57 | 56 | |
| 58 | − | |
| 59 | 57 | .. tabularcolumns:: |p{3.8cm}|p{5.6cm}|p{8.1cm}| |
| 60 | 58 | |
| 61 | 59 | .. c:type:: v4l2_enc_idx |
| @@ -83,7 +81,6 @@ video elementary streams. · 21 unmodified lines | ||
| 83 | 81 | their ``offset``. |
| 84 | 82 | |
| 85 | 83 | |
| 86 | − | |
| 87 | 84 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 88 | 85 | |
| 89 | 86 | .. c:type:: v4l2_enc_idx_entry |
| @@ -116,7 +113,6 @@ video elementary streams. · 26 unmodified lines | ||
| 116 | 113 | - Reserved for future extensions. Drivers must set the array to |
| 117 | 114 | zero. |
| 118 | 115 | |
| 119 | − | |
| 120 | 116 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 121 | 117 | |
| 122 | 118 | .. _enc-idx-flags: |
| @@ -140,7 +136,6 @@ video elementary streams. · 17 unmodified lines | ||
| 140 | 136 | - *AND* the flags field with this mask to obtain the picture coding |
| 141 | 137 | type. |
| 142 | 138 | |
| 143 | − | |
| 144 | 139 | Return Value |
| 145 | 140 | ============ |
| 146 | 141 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_EXT_CTRLS: |
| 4 | 5 | |
| @@ -11,32 +12,30 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_EXT_CTRLS - VIDIOC_S_EXT_CTRLS - VIDIOC_TRY_EXT_CTRLS - Get or set the value of several controls, try control values |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_EXT_CTRLS, struct v4l2_ext_controls *argp ) | |
| 19 | − :name: VIDIOC_G_EXT_CTRLS | |
| 18 | +.. c:macro:: VIDIOC_G_EXT_CTRLS | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_G_EXT_CTRLS, struct v4l2_ext_controls *argp)`` | |
| 21 | 21 | |
| 22 | −.. c:function:: int ioctl( int fd, VIDIOC_S_EXT_CTRLS, struct v4l2_ext_controls *argp ) | |
| 23 | − :name: VIDIOC_S_EXT_CTRLS | |
| 22 | +.. c:macro:: VIDIOC_S_EXT_CTRLS | |
| 24 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_EXT_CTRLS, struct v4l2_ext_controls *argp)`` | |
| 25 | 25 | |
| 26 | −.. c:function:: int ioctl( int fd, VIDIOC_TRY_EXT_CTRLS, struct v4l2_ext_controls *argp ) | |
| 27 | − :name: VIDIOC_TRY_EXT_CTRLS | |
| 26 | +.. c:macro:: VIDIOC_TRY_EXT_CTRLS | |
| 28 | 27 | |
| 28 | +``int ioctl(int fd, VIDIOC_TRY_EXT_CTRLS, struct v4l2_ext_controls *argp)`` | |
| 29 | 29 | |
| 30 | 30 | Arguments |
| 31 | 31 | ========= |
| 32 | 32 | |
| 33 | 33 | ``fd`` |
| 34 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 34 | + File descriptor returned by :c:func:`open()`. | |
| 35 | 35 | |
| 36 | 36 | ``argp`` |
| 37 | 37 | Pointer to struct :c:type:`v4l2_ext_controls`. |
| 38 | 38 | |
| 39 | − | |
| 40 | 39 | Description |
| 41 | 40 | =========== |
| 42 | 41 | |
| @@ -119,7 +118,6 @@ correct. This prevents the situation where only some of the controls · 76 unmodified lines | ||
| 119 | 118 | were set/get. Only low-level errors (e. g. a failed i2c command) can |
| 120 | 119 | still cause this situation. |
| 121 | 120 | |
| 122 | − | |
| 123 | 121 | .. tabularcolumns:: |p{1.2cm}|p{3.0cm}|p{1.5cm}|p{11.8cm}| |
| 124 | 122 | |
| 125 | 123 | .. c:type:: v4l2_ext_control |
| @@ -195,7 +193,6 @@ still cause this situation. · 69 unmodified lines | ||
| 195 | 193 | * - } |
| 196 | 194 | - |
| 197 | 195 | |
| 198 | − | |
| 199 | 196 | .. tabularcolumns:: |p{4.0cm}|p{2.2cm}|p{2.1cm}|p{8.2cm}| |
| 200 | 197 | |
| 201 | 198 | .. c:type:: v4l2_ext_controls |
| @@ -309,7 +306,6 @@ still cause this situation. · 107 unmodified lines | ||
| 309 | 306 | |
| 310 | 307 | Ignored if ``count`` equals zero. |
| 311 | 308 | |
| 312 | − | |
| 313 | 309 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 314 | 310 | |
| 315 | 311 | .. _ctrl-class: |
| @@ -363,7 +359,6 @@ still cause this situation. · 47 unmodified lines | ||
| 363 | 359 | - The class containing RF tuner controls. These controls are |
| 364 | 360 | described in :ref:`rf-tuner-controls`. |
| 365 | 361 | |
| 366 | − | |
| 367 | 362 | Return Value |
| 368 | 363 | ============ |
| 369 | 364 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_FBUF: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_FBUF - VIDIOC_S_FBUF - Get or set frame buffer overlay parameters |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_FBUF, struct v4l2_framebuffer *argp ) | |
| 19 | − :name: VIDIOC_G_FBUF | |
| 18 | +.. c:macro:: VIDIOC_G_FBUF | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_FBUF, struct v4l2_framebuffer *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_FBUF, const struct v4l2_framebuffer *argp ) | |
| 22 | − :name: VIDIOC_S_FBUF | |
| 22 | +.. c:macro:: VIDIOC_S_FBUF | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_FBUF, const struct v4l2_framebuffer *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_framebuffer`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -75,7 +75,6 @@ jeopardize the system security, its stability or even damage the · 37 unmodified lines | ||
| 75 | 75 | hardware, therefore only the superuser can set the parameters for a |
| 76 | 76 | destructive video overlay. |
| 77 | 77 | |
| 78 | − | |
| 79 | 78 | .. tabularcolumns:: |p{3.5cm}|p{3.5cm}|p{3.5cm}|p{7.0cm}| |
| 80 | 79 | |
| 81 | 80 | .. c:type:: v4l2_framebuffer |
| @@ -208,7 +207,6 @@ destructive video overlay. · 126 unmodified lines | ||
| 208 | 207 | - ``priv`` |
| 209 | 208 | - Reserved. Drivers and applications must set this field to zero. |
| 210 | 209 | |
| 211 | − | |
| 212 | 210 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 213 | 211 | |
| 214 | 212 | .. _framebuffer-cap: |
| @@ -257,7 +255,6 @@ destructive video overlay. · 42 unmodified lines | ||
| 257 | 255 | chroma-key colors are replaced by framebuffer pixels, which is |
| 258 | 256 | exactly opposite of ``V4L2_FBUF_CAP_CHROMAKEY`` |
| 259 | 257 | |
| 260 | − | |
| 261 | 258 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 262 | 259 | |
| 263 | 260 | .. _framebuffer-flags: |
| @@ -332,7 +329,6 @@ destructive video overlay. · 68 unmodified lines | ||
| 332 | 329 | other, so same ``chromakey`` field of struct |
| 333 | 330 | :c:type:`v4l2_window` is being used. |
| 334 | 331 | |
| 335 | − | |
| 336 | 332 | Return Value |
| 337 | 333 | ============ |
| 338 | 334 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_FMT: |
| 4 | 5 | |
| @@ -11,29 +12,30 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_FMT - VIDIOC_S_FMT - VIDIOC_TRY_FMT - Get or set the data format, try a format |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_FMT, struct v4l2_format *argp ) | |
| 19 | − :name: VIDIOC_G_FMT | |
| 18 | +.. c:macro:: VIDIOC_G_FMT | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_FMT, struct v4l2_format *argp)`` | |
| 21 | + | |
| 22 | +.. c:macro:: VIDIOC_S_FMT | |
| 23 | + | |
| 24 | +``int ioctl(int fd, VIDIOC_S_FMT, struct v4l2_format *argp)`` | |
| 20 | 25 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_FMT, struct v4l2_format *argp ) | |
| 22 | − :name: VIDIOC_S_FMT | |
| 26 | +.. c:macro:: VIDIOC_TRY_FMT | |
| 23 | 27 | |
| 24 | −.. c:function:: int ioctl( int fd, VIDIOC_TRY_FMT, struct v4l2_format *argp ) | |
| 25 | − :name: VIDIOC_TRY_FMT | |
| 28 | +``int ioctl(int fd, VIDIOC_TRY_FMT, struct v4l2_format *argp)`` | |
| 26 | 29 | |
| 27 | 30 | Arguments |
| 28 | 31 | ========= |
| 29 | 32 | |
| 30 | 33 | ``fd`` |
| 31 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 34 | + File descriptor returned by :c:func:`open()`. | |
| 32 | 35 | |
| 33 | 36 | ``argp`` |
| 34 | 37 | Pointer to struct :c:type:`v4l2_format`. |
| 35 | 38 | |
| 36 | − | |
| 37 | 39 | Description |
| 38 | 40 | =========== |
| 39 | 41 | |
| @@ -85,7 +87,6 @@ recommended drivers are not required to implement this ioctl. · 45 unmodified lines | ||
| 85 | 87 | The format as returned by :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` must be identical to what |
| 86 | 88 | :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` returns for the same input or output. |
| 87 | 89 | |
| 88 | − | |
| 89 | 90 | .. c:type:: v4l2_format |
| 90 | 91 | |
| 91 | 92 | .. tabularcolumns:: |p{1.2cm}|p{4.6cm}|p{3.0cm}|p{8.6cm}| |
| @@ -135,7 +136,6 @@ The format as returned by :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` must be identical · 43 unmodified lines | ||
| 135 | 136 | * - } |
| 136 | 137 | - |
| 137 | 138 | |
| 138 | − | |
| 139 | 139 | Return Value |
| 140 | 140 | ============ |
| 141 | 141 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_FREQUENCY: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_FREQUENCY - VIDIOC_S_FREQUENCY - Get or set tuner or modulator radio frequency |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_FREQUENCY, struct v4l2_frequency *argp ) | |
| 19 | − :name: VIDIOC_G_FREQUENCY | |
| 18 | +.. c:macro:: VIDIOC_G_FREQUENCY | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_FREQUENCY, struct v4l2_frequency *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_FREQUENCY, const struct v4l2_frequency *argp ) | |
| 22 | − :name: VIDIOC_S_FREQUENCY | |
| 22 | +.. c:macro:: VIDIOC_S_FREQUENCY | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_FREQUENCY, const struct v4l2_frequency *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_frequency`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -51,7 +51,6 @@ structure. When the requested frequency is not possible the driver · 13 unmodified lines | ||
| 51 | 51 | assumes the closest possible value. However :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>` is a |
| 52 | 52 | write-only ioctl, it does not return the actual new frequency. |
| 53 | 53 | |
| 54 | − | |
| 55 | 54 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 56 | 55 | |
| 57 | 56 | .. c:type:: v4l2_frequency |
| @@ -89,7 +88,6 @@ write-only ioctl, it does not return the actual new frequency. · 31 unmodified lines | ||
| 89 | 88 | - Reserved for future extensions. Drivers and applications must set |
| 90 | 89 | the array to zero. |
| 91 | 90 | |
| 92 | − | |
| 93 | 91 | Return Value |
| 94 | 92 | ============ |
| 95 | 93 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_INPUT: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_INPUT - VIDIOC_S_INPUT - Query or select the current video input |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_INPUT, int *argp ) | |
| 19 | − :name: VIDIOC_G_INPUT | |
| 18 | +.. c:macro:: VIDIOC_G_INPUT | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_INPUT, int *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_INPUT, int *argp ) | |
| 22 | − :name: VIDIOC_S_INPUT | |
| 22 | +.. c:macro:: VIDIOC_S_INPUT | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_INPUT, int *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer an integer with input index. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -52,7 +52,6 @@ other parameters. · 14 unmodified lines | ||
| 52 | 52 | Information about video inputs is available using the |
| 53 | 53 | :ref:`VIDIOC_ENUMINPUT` ioctl. |
| 54 | 54 | |
| 55 | − | |
| 56 | 55 | Return Value |
| 57 | 56 | ============ |
| 58 | 57 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_JPEGCOMP: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_JPEGCOMP - VIDIOC_S_JPEGCOMP |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_JPEGCOMP, v4l2_jpegcompression *argp ) | |
| 19 | − :name: VIDIOC_G_JPEGCOMP | |
| 18 | +.. c:macro:: VIDIOC_G_JPEGCOMP | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_JPEGCOMP, v4l2_jpegcompression *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_JPEGCOMP, const v4l2_jpegcompression *argp ) | |
| 22 | − :name: VIDIOC_S_JPEGCOMP | |
| 22 | +.. c:macro:: VIDIOC_S_JPEGCOMP | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_JPEGCOMP, const v4l2_jpegcompression *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_jpegcompression`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -54,7 +54,6 @@ stored in the JPEG-encoded fields. These define how the JPEG field is · 16 unmodified lines | ||
| 54 | 54 | encoded. If you omit them, applications assume you've used standard |
| 55 | 55 | encoding. You usually do want to add them. |
| 56 | 56 | |
| 57 | − | |
| 58 | 57 | .. tabularcolumns:: |p{1.2cm}|p{3.0cm}|p{13.3cm}| |
| 59 | 58 | |
| 60 | 59 | .. c:type:: v4l2_jpegcompression |
| @@ -92,7 +91,6 @@ encoding. You usually do want to add them. · 31 unmodified lines | ||
| 92 | 91 | control is exposed by a driver applications should use it instead |
| 93 | 92 | and ignore this field. |
| 94 | 93 | |
| 95 | − | |
| 96 | 94 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 97 | 95 | |
| 98 | 96 | .. _jpeg-markers: |
| @@ -118,7 +116,6 @@ encoding. You usually do want to add them. · 19 unmodified lines | ||
| 118 | 116 | - (1<<7) |
| 119 | 117 | - App segment, driver will always use APP0 |
| 120 | 118 | |
| 121 | − | |
| 122 | 119 | Return Value |
| 123 | 120 | ============ |
| 124 | 121 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_MODULATOR: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_MODULATOR - VIDIOC_S_MODULATOR - Get or set modulator attributes |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_MODULATOR, struct v4l2_modulator *argp ) | |
| 19 | − :name: VIDIOC_G_MODULATOR | |
| 18 | +.. c:macro:: VIDIOC_G_MODULATOR | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_MODULATOR, struct v4l2_modulator *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_MODULATOR, const struct v4l2_modulator *argp ) | |
| 22 | − :name: VIDIOC_S_MODULATOR | |
| 22 | +.. c:macro:: VIDIOC_S_MODULATOR | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_MODULATOR, const struct v4l2_modulator *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_modulator`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -60,7 +60,6 @@ context. · 22 unmodified lines | ||
| 60 | 60 | To change the radio frequency the |
| 61 | 61 | :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>` ioctl is available. |
| 62 | 62 | |
| 63 | − | |
| 64 | 63 | .. tabularcolumns:: |p{2.9cm}|p{2.9cm}|p{5.8cm}|p{2.9cm}|p{3.0cm}| |
| 65 | 64 | |
| 66 | 65 | .. c:type:: v4l2_modulator |
| @@ -121,7 +120,6 @@ To change the radio frequency the · 54 unmodified lines | ||
| 121 | 120 | Drivers and applications must set the array to zero. |
| 122 | 121 | |
| 123 | 122 | |
| 124 | − | |
| 125 | 123 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 126 | 124 | |
| 127 | 125 | .. _modulator-txsubchans: |
| @@ -182,7 +180,6 @@ To change the radio frequency the · 54 unmodified lines | ||
| 182 | 180 | - 0x0010 |
| 183 | 181 | - Enable the RDS encoder for a radio FM transmitter. |
| 184 | 182 | |
| 185 | − | |
| 186 | 183 | Return Value |
| 187 | 184 | ============ |
| 188 | 185 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_OUTPUT: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_OUTPUT - VIDIOC_S_OUTPUT - Query or select the current video output |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_OUTPUT, int *argp ) | |
| 19 | − :name: VIDIOC_G_OUTPUT | |
| 18 | +.. c:macro:: VIDIOC_G_OUTPUT | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_OUTPUT, int *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_OUTPUT, int *argp ) | |
| 22 | − :name: VIDIOC_S_OUTPUT | |
| 22 | +.. c:macro:: VIDIOC_S_OUTPUT | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_OUTPUT, int *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to an integer with output index. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -53,7 +53,6 @@ negotiating any other parameters. · 15 unmodified lines | ||
| 53 | 53 | Information about video outputs is available using the |
| 54 | 54 | :ref:`VIDIOC_ENUMOUTPUT` ioctl. |
| 55 | 55 | |
| 56 | − | |
| 57 | 56 | Return Value |
| 58 | 57 | ============ |
| 59 | 58 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_PARM: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_PARM - VIDIOC_S_PARM - Get or set streaming parameters |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_PARM, v4l2_streamparm *argp ) | |
| 19 | − :name: VIDIOC_G_PARM | |
| 18 | +.. c:macro:: VIDIOC_G_PARM | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_PARM, v4l2_streamparm *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_PARM, v4l2_streamparm *argp ) | |
| 22 | − :name: VIDIOC_S_PARM | |
| 22 | +.. c:macro:: VIDIOC_S_PARM | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_PARM, v4l2_streamparm *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_streamparm`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -48,7 +48,7 @@ format, on the other hand, may change the frame interval. · 10 unmodified lines | ||
| 48 | 48 | |
| 49 | 49 | Further these ioctls can be used to determine the number of buffers used |
| 50 | 50 | internally by a driver in read/write mode. For implications see the |
| 51 | −section discussing the :ref:`read() <func-read>` function. | |
| 51 | +section discussing the :c:func:`read()` function. | |
| 52 | 52 | |
| 53 | 53 | To get and set the streaming parameters applications call the |
| 54 | 54 | :ref:`VIDIOC_G_PARM <VIDIOC_G_PARM>` and |
| @@ -56,7 +56,6 @@ To get and set the streaming parameters applications call the · 1 unmodified line | ||
| 56 | 56 | pointer to a struct :c:type:`v4l2_streamparm` which contains a |
| 57 | 57 | union holding separate parameters for input and output devices. |
| 58 | 58 | |
| 59 | − | |
| 60 | 59 | .. tabularcolumns:: |p{3.5cm}|p{3.5cm}|p{3.5cm}|p{7.0cm}| |
| 61 | 60 | |
| 62 | 61 | .. c:type:: v4l2_streamparm |
| @@ -89,7 +88,6 @@ union holding separate parameters for input and output devices. · 26 unmodified lines | ||
| 89 | 88 | - |
| 90 | 89 | |
| 91 | 90 | |
| 92 | − | |
| 93 | 91 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 94 | 92 | |
| 95 | 93 | .. c:type:: v4l2_captureparm |
| @@ -138,7 +136,7 @@ union holding separate parameters for input and output devices. · 42 unmodified lines | ||
| 138 | 136 | * - __u32 |
| 139 | 137 | - ``readbuffers`` |
| 140 | 138 | - Applications set this field to the desired number of buffers used |
| 141 | − internally by the driver in :ref:`read() <func-read>` mode. | |
| 139 | + internally by the driver in :c:func:`read()` mode. | |
| 142 | 140 | Drivers return the actual number of buffers. When an application |
| 143 | 141 | requests zero buffers, drivers should just return the current |
| 144 | 142 | setting rather than the minimum or an error code. For details see |
| @@ -149,7 +147,6 @@ union holding separate parameters for input and output devices. · 4 unmodified lines | ||
| 149 | 147 | the array to zero. |
| 150 | 148 | |
| 151 | 149 | |
| 152 | − | |
| 153 | 150 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 154 | 151 | |
| 155 | 152 | .. c:type:: v4l2_outputparm |
| @@ -172,7 +169,7 @@ union holding separate parameters for input and output devices. · 16 unmodified lines | ||
| 172 | 169 | * - :cspan:`2` |
| 173 | 170 | |
| 174 | 171 | The field is intended to repeat frames on the driver side in |
| 175 | − :ref:`write() <func-write>` mode (in streaming mode timestamps | |
| 172 | + :c:func:`write()` mode (in streaming mode timestamps | |
| 176 | 173 | can be used to throttle the output), saving I/O bandwidth. |
| 177 | 174 | |
| 178 | 175 | For stateful encoders (see :ref:`encoder`) this represents the |
| @@ -199,7 +196,7 @@ union holding separate parameters for input and output devices. · 20 unmodified lines | ||
| 199 | 196 | * - __u32 |
| 200 | 197 | - ``writebuffers`` |
| 201 | 198 | - Applications set this field to the desired number of buffers used |
| 202 | − internally by the driver in :ref:`write() <func-write>` mode. Drivers | |
| 199 | + internally by the driver in :c:func:`write()` mode. Drivers | |
| 203 | 200 | return the actual number of buffers. When an application requests |
| 204 | 201 | zero buffers, drivers should just return the current setting |
| 205 | 202 | rather than the minimum or an error code. For details see |
| @@ -210,7 +207,6 @@ union holding separate parameters for input and output devices. · 4 unmodified lines | ||
| 210 | 207 | the array to zero. |
| 211 | 208 | |
| 212 | 209 | |
| 213 | − | |
| 214 | 210 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 215 | 211 | |
| 216 | 212 | .. _parm-caps: |
| @@ -226,7 +222,6 @@ union holding separate parameters for input and output devices. · 9 unmodified lines | ||
| 226 | 222 | field. |
| 227 | 223 | |
| 228 | 224 | |
| 229 | − | |
| 230 | 225 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 231 | 226 | |
| 232 | 227 | .. _parm-flags: |
| @@ -265,8 +260,7 @@ union holding separate parameters for input and output devices. · 32 unmodified lines | ||
| 265 | 260 | |
| 266 | 261 | - Moving objects in the image might have excessive motion blur. |
| 267 | 262 | |
| 268 | − - Capture might only work through the :ref:`read() <func-read>` call. | |
| 269 | − | |
| 263 | + - Capture might only work through the :c:func:`read()` call. | |
| 270 | 264 | |
| 271 | 265 | Return Value |
| 272 | 266 | ============ |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_PRIORITY: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_PRIORITY - VIDIOC_S_PRIORITY - Query or request the access priority associated with a file descriptor |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_PRIORITY, enum v4l2_priority *argp ) | |
| 19 | − :name: VIDIOC_G_PRIORITY | |
| 18 | +.. c:macro:: VIDIOC_G_PRIORITY | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_PRIORITY, enum v4l2_priority *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_PRIORITY, const enum v4l2_priority *argp ) | |
| 22 | − :name: VIDIOC_S_PRIORITY | |
| 22 | +.. c:macro:: VIDIOC_S_PRIORITY | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_PRIORITY, const enum v4l2_priority *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to an enum :c:type:`v4l2_priority` type. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -43,7 +43,6 @@ To request an access priority applications store the desired priority in · 5 unmodified lines | ||
| 43 | 43 | an enum v4l2_priority variable and call :ref:`VIDIOC_S_PRIORITY <VIDIOC_G_PRIORITY>` ioctl |
| 44 | 44 | with a pointer to this variable. |
| 45 | 45 | |
| 46 | − | |
| 47 | 46 | .. c:type:: v4l2_priority |
| 48 | 47 | |
| 49 | 48 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| @@ -78,7 +77,6 @@ with a pointer to this variable. · 28 unmodified lines | ||
| 78 | 77 | it blocks any other fd from changing device properties. Usually |
| 79 | 78 | applications which must not be interrupted, like video recording. |
| 80 | 79 | |
| 81 | − | |
| 82 | 80 | Return Value |
| 83 | 81 | ============ |
| 84 | 82 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_SELECTION: |
| 4 | 5 | |
| @@ -11,23 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_SELECTION - VIDIOC_S_SELECTION - Get or set one of the selection rectangles |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_SELECTION, struct v4l2_selection *argp ) | |
| 19 | − :name: VIDIOC_G_SELECTION | |
| 18 | +.. c:macro:: VIDIOC_G_SELECTION | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_G_SELECTION, struct v4l2_selection *argp)`` | |
| 21 | 21 | |
| 22 | −.. c:function:: int ioctl( int fd, VIDIOC_S_SELECTION, struct v4l2_selection *argp ) | |
| 23 | − :name: VIDIOC_S_SELECTION | |
| 22 | +.. c:macro:: VIDIOC_S_SELECTION | |
| 24 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_SELECTION, struct v4l2_selection *argp)`` | |
| 25 | 25 | |
| 26 | 26 | Arguments |
| 27 | 27 | ========= |
| 28 | 28 | |
| 29 | 29 | ``fd`` |
| 30 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 31 | 31 | |
| 32 | 32 | ``argp`` |
| 33 | 33 | Pointer to struct :c:type:`v4l2_selection`. |
| @@ -115,7 +115,6 @@ constraints. · 81 unmodified lines | ||
| 115 | 115 | Selection targets and flags are documented in |
| 116 | 116 | :ref:`v4l2-selections-common`. |
| 117 | 117 | |
| 118 | − | |
| 119 | 118 | .. _sel-const-adjust: |
| 120 | 119 | |
| 121 | 120 | .. kernel-figure:: constraints.svg |
| @@ -128,7 +127,6 @@ Selection targets and flags are documented in · 6 unmodified lines | ||
| 128 | 127 | |
| 129 | 128 | |
| 130 | 129 | |
| 131 | − | |
| 132 | 130 | .. c:type:: v4l2_selection |
| 133 | 131 | |
| 134 | 132 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -168,7 +166,6 @@ Selection targets and flags are documented in · 33 unmodified lines | ||
| 168 | 166 | |
| 169 | 167 | Starting with kernel 4.13 both variations are allowed. |
| 170 | 168 | |
| 171 | − | |
| 172 | 169 | Return Value |
| 173 | 170 | ============ |
| 174 | 171 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_SLICED_VBI_CAP: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_SLICED_VBI_CAP - Query sliced VBI capabilities |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_SLICED_VBI_CAP, struct v4l2_sliced_vbi_cap *argp ) | |
| 19 | − :name: VIDIOC_G_SLICED_VBI_CAP | |
| 18 | +.. c:macro:: VIDIOC_G_SLICED_VBI_CAP | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_G_SLICED_VBI_CAP, struct v4l2_sliced_vbi_cap *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_sliced_vbi_cap`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -44,7 +43,6 @@ the sliced VBI API is unsupported or ``type`` is invalid. · 9 unmodified lines | ||
| 44 | 43 | The ``type`` field was added, and the ioctl changed from read-only |
| 45 | 44 | to write-read, in Linux 2.6.19. |
| 46 | 45 | |
| 47 | − | |
| 48 | 46 | .. c:type:: v4l2_sliced_vbi_cap |
| 49 | 47 | |
| 50 | 48 | .. tabularcolumns:: |p{1.2cm}|p{4.2cm}|p{4.1cm}|p{4.0cm}|p{4.0cm}| |
| @@ -120,7 +118,6 @@ the sliced VBI API is unsupported or ``type`` is invalid. · 69 unmodified lines | ||
| 120 | 118 | |
| 121 | 119 | See also :ref:`vbi-525` and :ref:`vbi-625`. |
| 122 | 120 | |
| 123 | − | |
| 124 | 121 | .. raw:: latex |
| 125 | 122 | |
| 126 | 123 | \scriptsize |
| @@ -183,7 +180,6 @@ the sliced VBI API is unsupported or ``type`` is invalid. · 56 unmodified lines | ||
| 183 | 180 | |
| 184 | 181 | \normalsize |
| 185 | 182 | |
| 186 | − | |
| 187 | 183 | Return Value |
| 188 | 184 | ============ |
| 189 | 185 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_STD: |
| 4 | 5 | |
| @@ -11,33 +12,34 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_STD - VIDIOC_S_STD - VIDIOC_SUBDEV_G_STD - VIDIOC_SUBDEV_S_STD - Query or select the video standard of the current input |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_STD, v4l2_std_id *argp ) | |
| 19 | − :name: VIDIOC_G_STD | |
| 18 | +.. c:macro:: VIDIOC_G_STD | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_STD, v4l2_std_id *argp)`` | |
| 21 | + | |
| 22 | +.. c:macro:: VIDIOC_S_STD | |
| 20 | 23 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_STD, const v4l2_std_id *argp ) | |
| 22 | − :name: VIDIOC_S_STD | |
| 24 | +``int ioctl(int fd, VIDIOC_S_STD, const v4l2_std_id *argp)`` | |
| 23 | 25 | |
| 24 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_G_STD, v4l2_std_id *argp ) | |
| 25 | − :name: VIDIOC_SUBDEV_G_STD | |
| 26 | +.. c:macro:: VIDIOC_SUBDEV_G_STD | |
| 26 | 27 | |
| 27 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_S_STD, const v4l2_std_id *argp ) | |
| 28 | − :name: VIDIOC_SUBDEV_S_STD | |
| 28 | +``int ioctl(int fd, VIDIOC_SUBDEV_G_STD, v4l2_std_id *argp)`` | |
| 29 | 29 | |
| 30 | +.. c:macro:: VIDIOC_SUBDEV_S_STD | |
| 31 | + | |
| 32 | +``int ioctl(int fd, VIDIOC_SUBDEV_S_STD, const v4l2_std_id *argp)`` | |
| 30 | 33 | |
| 31 | 34 | Arguments |
| 32 | 35 | ========= |
| 33 | 36 | |
| 34 | 37 | ``fd`` |
| 35 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 38 | + File descriptor returned by :c:func:`open()`. | |
| 36 | 39 | |
| 37 | 40 | ``argp`` |
| 38 | 41 | Pointer to :c:type:`v4l2_std_id`. |
| 39 | 42 | |
| 40 | − | |
| 41 | 43 | Description |
| 42 | 44 | =========== |
| 43 | 45 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_G_TUNER: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_G_TUNER - VIDIOC_S_TUNER - Get or set tuner attributes |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_G_TUNER, struct v4l2_tuner *argp ) | |
| 19 | − :name: VIDIOC_G_TUNER | |
| 18 | +.. c:macro:: VIDIOC_G_TUNER | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_G_TUNER, struct v4l2_tuner *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_S_TUNER, const struct v4l2_tuner *argp ) | |
| 22 | − :name: VIDIOC_S_TUNER | |
| 22 | +.. c:macro:: VIDIOC_S_TUNER | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_S_TUNER, const struct v4l2_tuner *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_tuner`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -59,7 +59,6 @@ to zero. The term 'tuner' means SDR receiver in this context. · 21 unmodified lines | ||
| 59 | 59 | To change the radio frequency the |
| 60 | 60 | :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>` ioctl is available. |
| 61 | 61 | |
| 62 | − | |
| 63 | 62 | .. tabularcolumns:: |p{1.3cm}|p{3.0cm}|p{6.6cm}|p{6.6cm}| |
| 64 | 63 | |
| 65 | 64 | .. c:type:: v4l2_tuner |
| @@ -183,7 +182,6 @@ To change the radio frequency the · 117 unmodified lines | ||
| 183 | 182 | Drivers and applications must set the array to zero. |
| 184 | 183 | |
| 185 | 184 | |
| 186 | − | |
| 187 | 185 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 188 | 186 | |
| 189 | 187 | .. c:type:: v4l2_tuner_type |
| @@ -207,7 +205,6 @@ To change the radio frequency the · 17 unmodified lines | ||
| 207 | 205 | - 5 |
| 208 | 206 | - Tuner controls the RF part of a Software Digital Radio (SDR) |
| 209 | 207 | |
| 210 | − | |
| 211 | 208 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 212 | 209 | |
| 213 | 210 | .. _tuner-capability: |
| @@ -299,7 +296,6 @@ To change the radio frequency the · 85 unmodified lines | ||
| 299 | 296 | instead of 62.5 kHz. |
| 300 | 297 | |
| 301 | 298 | |
| 302 | − | |
| 303 | 299 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 304 | 300 | |
| 305 | 301 | .. _tuner-rxsubchans: |
| @@ -338,7 +334,6 @@ To change the radio frequency the · 32 unmodified lines | ||
| 338 | 334 | - The tuner receives an RDS channel. |
| 339 | 335 | |
| 340 | 336 | |
| 341 | − | |
| 342 | 337 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 343 | 338 | |
| 344 | 339 | .. _tuner-audmode: |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_LOG_STATUS: |
| 4 | 5 | |
| @@ -11,20 +12,18 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_LOG_STATUS - Log driver status information |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_LOG_STATUS) | |
| 19 | − :name: VIDIOC_LOG_STATUS | |
| 18 | +.. c:macro:: VIDIOC_LOG_STATUS | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_LOG_STATUS)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 27 | − | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 28 | 27 | |
| 29 | 28 | Description |
| 30 | 29 | =========== |
| @@ -40,7 +39,6 @@ Mismatches may give an indication where the problem is. · 9 unmodified lines | ||
| 40 | 39 | This ioctl is optional and not all drivers support it. It was introduced |
| 41 | 40 | in Linux 2.6.15. |
| 42 | 41 | |
| 43 | − | |
| 44 | 42 | Return Value |
| 45 | 43 | ============ |
| 46 | 44 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_OVERLAY: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_OVERLAY - Start or stop video overlay |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_OVERLAY, const int *argp ) | |
| 19 | − :name: VIDIOC_OVERLAY | |
| 18 | +.. c:macro:: VIDIOC_OVERLAY | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_OVERLAY, const int *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to an integer. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -41,7 +40,6 @@ Drivers do not support :ref:`VIDIOC_STREAMON` or · 6 unmodified lines | ||
| 41 | 40 | :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` with |
| 42 | 41 | ``V4L2_BUF_TYPE_VIDEO_OVERLAY``. |
| 43 | 42 | |
| 44 | − | |
| 45 | 43 | Return Value |
| 46 | 44 | ============ |
| 47 | 45 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_PREPARE_BUF: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_PREPARE_BUF - Prepare a buffer for I/O |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_PREPARE_BUF, struct v4l2_buffer *argp ) | |
| 19 | − :name: VIDIOC_PREPARE_BUF | |
| 18 | +.. c:macro:: VIDIOC_PREPARE_BUF | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_PREPARE_BUF, struct v4l2_buffer *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_buffer`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -41,7 +40,6 @@ in advance saves time during the actual I/O. · 6 unmodified lines | ||
| 41 | 40 | The struct :c:type:`v4l2_buffer` structure is specified in |
| 42 | 41 | :ref:`buffer`. |
| 43 | 42 | |
| 44 | − | |
| 45 | 43 | Return Value |
| 46 | 44 | ============ |
| 47 | 45 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_QBUF: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_QBUF - VIDIOC_DQBUF - Exchange a buffer with the driver |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_QBUF, struct v4l2_buffer *argp ) | |
| 19 | − :name: VIDIOC_QBUF | |
| 18 | +.. c:macro:: VIDIOC_QBUF | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_QBUF, struct v4l2_buffer *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_DQBUF, struct v4l2_buffer *argp ) | |
| 22 | − :name: VIDIOC_DQBUF | |
| 22 | +.. c:macro:: VIDIOC_DQBUF | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_DQBUF, struct v4l2_buffer *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_buffer`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -142,13 +142,12 @@ API is used the ``m.fd`` fields of the passed array of struct · 104 unmodified lines | ||
| 142 | 142 | |
| 143 | 143 | By default ``VIDIOC_DQBUF`` blocks when no buffer is in the outgoing |
| 144 | 144 | queue. When the ``O_NONBLOCK`` flag was given to the |
| 145 | −:ref:`open() <func-open>` function, ``VIDIOC_DQBUF`` returns | |
| 145 | +:c:func:`open()` function, ``VIDIOC_DQBUF`` returns | |
| 146 | 146 | immediately with an ``EAGAIN`` error code when no buffer is available. |
| 147 | 147 | |
| 148 | 148 | The struct :c:type:`v4l2_buffer` structure is specified in |
| 149 | 149 | :ref:`buffer`. |
| 150 | 150 | |
| 151 | − | |
| 152 | 151 | Return Value |
| 153 | 152 | ============ |
| 154 | 153 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_QUERY_DV_TIMINGS: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_QUERY_DV_TIMINGS - VIDIOC_SUBDEV_QUERY_DV_TIMINGS - Sense the DV preset received by the current input |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_QUERY_DV_TIMINGS, struct v4l2_dv_timings *argp ) | |
| 19 | − :name: VIDIOC_QUERY_DV_TIMINGS | |
| 18 | +.. c:macro:: VIDIOC_QUERY_DV_TIMINGS | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_QUERY_DV_TIMINGS, struct v4l2_dv_timings *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_QUERY_DV_TIMINGS, struct v4l2_dv_timings *argp ) | |
| 22 | − :name: VIDIOC_SUBDEV_QUERY_DV_TIMINGS | |
| 22 | +.. c:macro:: VIDIOC_SUBDEV_QUERY_DV_TIMINGS | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_SUBDEV_QUERY_DV_TIMINGS, struct v4l2_dv_timings *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_dv_timings`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -65,7 +65,6 @@ and returns ``ERANGE``. In that case the application can call · 27 unmodified lines | ||
| 65 | 65 | found timings with the hardware's capabilities in order to give more |
| 66 | 66 | precise feedback to the user. |
| 67 | 67 | |
| 68 | − | |
| 69 | 68 | Return Value |
| 70 | 69 | ============ |
| 71 | 70 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_QUERYBUF: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_QUERYBUF - Query the status of a buffer |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_QUERYBUF, struct v4l2_buffer *argp ) | |
| 19 | − :name: VIDIOC_QUERYBUF | |
| 18 | +.. c:macro:: VIDIOC_QUERYBUF | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_QUERYBUF, struct v4l2_buffer *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_buffer`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -67,7 +66,6 @@ flags, they are meaningless in this context. · 32 unmodified lines | ||
| 67 | 66 | The struct :c:type:`v4l2_buffer` structure is specified in |
| 68 | 67 | :ref:`buffer`. |
| 69 | 68 | |
| 70 | − | |
| 71 | 69 | Return Value |
| 72 | 70 | ============ |
| 73 | 71 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_QUERYCAP: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_QUERYCAP - Query device capabilities |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_QUERYCAP, struct v4l2_capability *argp ) | |
| 19 | − :name: VIDIOC_QUERYCAP | |
| 18 | +.. c:macro:: VIDIOC_QUERYCAP | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_QUERYCAP, struct v4l2_capability *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_capability`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -39,7 +38,6 @@ pointer to a struct :c:type:`v4l2_capability` which is · 4 unmodified lines | ||
| 39 | 38 | filled by the driver. When the driver is not compatible with this |
| 40 | 39 | specification the ioctl returns an ``EINVAL`` error code. |
| 41 | 40 | |
| 42 | − | |
| 43 | 41 | .. tabularcolumns:: |p{1.5cm}|p{2.5cm}|p{13cm}| |
| 44 | 42 | |
| 45 | 43 | .. c:type:: v4l2_capability |
| @@ -132,7 +130,6 @@ specification the ioctl returns an ``EINVAL`` error code. · 86 unmodified lines | ||
| 132 | 130 | zero. |
| 133 | 131 | |
| 134 | 132 | |
| 135 | − | |
| 136 | 133 | .. tabularcolumns:: |p{6.1cm}|p{2.2cm}|p{8.7cm}| |
| 137 | 134 | |
| 138 | 135 | .. _device-capabilities: |
| @@ -243,8 +240,8 @@ specification the ioctl returns an ``EINVAL`` error code. · 104 unmodified lines | ||
| 243 | 240 | - The device supports the :ref:`metadata` capture interface. |
| 244 | 241 | * - ``V4L2_CAP_READWRITE`` |
| 245 | 242 | - 0x01000000 |
| 246 | − - The device supports the :ref:`read() <rw>` and/or | |
| 247 | − :ref:`write() <rw>` I/O methods. | |
| 243 | + - The device supports the :c:func:`read()` and/or | |
| 244 | + :c:func:`write()` I/O methods. | |
| 248 | 245 | * - ``V4L2_CAP_ASYNCIO`` |
| 249 | 246 | - 0x02000000 |
| 250 | 247 | - The device supports the :ref:`asynchronous <async>` I/O methods. |
| @@ -269,7 +266,6 @@ specification the ioctl returns an ``EINVAL`` error code. · 18 unmodified lines | ||
| 269 | 266 | only appear in the ``capabilities`` field and never in the |
| 270 | 267 | ``device_caps`` field. |
| 271 | 268 | |
| 272 | − | |
| 273 | 269 | Return Value |
| 274 | 270 | ============ |
| 275 | 271 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_QUERYCTRL: |
| 4 | 5 | |
| @@ -11,31 +12,29 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_QUERYCTRL - VIDIOC_QUERY_EXT_CTRL - VIDIOC_QUERYMENU - Enumerate controls and menu control items |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, int VIDIOC_QUERYCTRL, struct v4l2_queryctrl *argp ) | |
| 19 | − :name: VIDIOC_QUERYCTRL | |
| 18 | +``int ioctl(int fd, int VIDIOC_QUERYCTRL, struct v4l2_queryctrl *argp)`` | |
| 19 | + | |
| 20 | +.. c:macro:: VIDIOC_QUERY_EXT_CTRL | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_QUERY_EXT_CTRL, struct v4l2_query_ext_ctrl *argp ) | |
| 22 | − :name: VIDIOC_QUERY_EXT_CTRL | |
| 22 | +``int ioctl(int fd, VIDIOC_QUERY_EXT_CTRL, struct v4l2_query_ext_ctrl *argp)`` | |
| 23 | 23 | |
| 24 | −.. c:function:: int ioctl( int fd, VIDIOC_QUERYMENU, struct v4l2_querymenu *argp ) | |
| 25 | − :name: VIDIOC_QUERYMENU | |
| 24 | +.. c:macro:: VIDIOC_QUERYMENU | |
| 26 | 25 | |
| 26 | +``int ioctl(int fd, VIDIOC_QUERYMENU, struct v4l2_querymenu *argp)`` | |
| 27 | 27 | |
| 28 | 28 | Arguments |
| 29 | 29 | ========= |
| 30 | 30 | |
| 31 | 31 | ``fd`` |
| 32 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 32 | + File descriptor returned by :c:func:`open()`. | |
| 33 | 33 | |
| 34 | 34 | ``argp`` |
| 35 | 35 | Pointer to struct :c:type:`v4l2_queryctrl`, :c:type:`v4l2_query_ext_ctrl` |
| 36 | 36 | or :c:type:`v4l2_querymenu` (depending on the ioctl). |
| 37 | 37 | |
| 38 | − | |
| 39 | 38 | Description |
| 40 | 39 | =========== |
| 41 | 40 | |
| @@ -95,7 +94,6 @@ inclusive. · 53 unmodified lines | ||
| 95 | 94 | |
| 96 | 95 | See also the examples in :ref:`control`. |
| 97 | 96 | |
| 98 | − | |
| 99 | 97 | .. tabularcolumns:: |p{1.2cm}|p{3.6cm}|p{12.7cm}| |
| 100 | 98 | |
| 101 | 99 | .. _v4l2-queryctrl: |
| @@ -174,7 +172,6 @@ See also the examples in :ref:`control`. · 72 unmodified lines | ||
| 174 | 172 | zero. |
| 175 | 173 | |
| 176 | 174 | |
| 177 | − | |
| 178 | 175 | .. tabularcolumns:: |p{1.2cm}|p{5.0cm}|p{11.3cm}| |
| 179 | 176 | |
| 180 | 177 | .. _v4l2-query-ext-ctrl: |
| @@ -275,7 +272,6 @@ See also the examples in :ref:`control`. · 94 unmodified lines | ||
| 275 | 272 | the array to zero. |
| 276 | 273 | |
| 277 | 274 | |
| 278 | − | |
| 279 | 275 | .. tabularcolumns:: |p{1.2cm}|p{1.0cm}|p{1.7cm}|p{13.0cm}| |
| 280 | 276 | |
| 281 | 277 | .. _v4l2-querymenu: |
| @@ -311,7 +307,6 @@ See also the examples in :ref:`control`. · 29 unmodified lines | ||
| 311 | 307 | zero. |
| 312 | 308 | |
| 313 | 309 | |
| 314 | − | |
| 315 | 310 | .. tabularcolumns:: |p{5.8cm}|p{1.4cm}|p{1.0cm}|p{1.4cm}|p{6.9cm}| |
| 316 | 311 | |
| 317 | 312 | .. c:type:: v4l2_ctrl_type |
| @@ -582,7 +577,6 @@ See also the examples in :ref:`control`. · 264 unmodified lines | ||
| 582 | 577 | streaming is in progress since most drivers do not support changing |
| 583 | 578 | the format in that case. |
| 584 | 579 | |
| 585 | − | |
| 586 | 580 | Return Value |
| 587 | 581 | ============ |
| 588 | 582 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_QUERYSTD: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_QUERYSTD - VIDIOC_SUBDEV_QUERYSTD - Sense the video standard received by the current input |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_QUERYSTD, v4l2_std_id *argp ) | |
| 19 | − :name: VIDIOC_QUERYSTD | |
| 18 | +.. c:macro:: VIDIOC_QUERYSTD | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_QUERYSTD, v4l2_std_id *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_QUERYSTD, v4l2_std_id *argp ) | |
| 22 | − :name: VIDIOC_SUBDEV_QUERYSTD | |
| 22 | +.. c:macro:: VIDIOC_SUBDEV_QUERYSTD | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_SUBDEV_QUERYSTD, v4l2_std_id *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to :c:type:`v4l2_std_id`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -58,7 +58,6 @@ or output. · 20 unmodified lines | ||
| 58 | 58 | standard is valid they will have to stop streaming, set the new |
| 59 | 59 | standard, allocate new buffers and start streaming again. |
| 60 | 60 | |
| 61 | − | |
| 62 | 61 | Return Value |
| 63 | 62 | ============ |
| 64 | 63 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_REQBUFS: |
| 4 | 5 | |
| @@ -11,19 +12,18 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_REQBUFS - Initiate Memory Mapping, User Pointer I/O or DMA buffer I/O |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_REQBUFS, struct v4l2_requestbuffers *argp ) | |
| 19 | − :name: VIDIOC_REQBUFS | |
| 18 | +.. c:macro:: VIDIOC_REQBUFS | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_REQBUFS, struct v4l2_requestbuffers *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_requestbuffers`. |
| @@ -69,7 +69,6 @@ fds are closed. A ``count`` value of zero frees or orphans all buffers, after · 39 unmodified lines | ||
| 69 | 69 | aborting or finishing any DMA in progress, an implicit |
| 70 | 70 | :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>`. |
| 71 | 71 | |
| 72 | − | |
| 73 | 72 | .. c:type:: v4l2_requestbuffers |
| 74 | 73 | |
| 75 | 74 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -158,7 +157,6 @@ aborting or finishing any DMA in progress, an implicit · 82 unmodified lines | ||
| 158 | 157 | :ref:`V4L2_BUF_FLAG_NO_CACHE_INVALIDATE <V4L2-BUF-FLAG-NO-CACHE-INVALIDATE>` and |
| 159 | 158 | :ref:`V4L2_BUF_FLAG_NO_CACHE_CLEAN <V4L2-BUF-FLAG-NO-CACHE-CLEAN>`. |
| 160 | 159 | |
| 161 | − | |
| 162 | 160 | Return Value |
| 163 | 161 | ============ |
| 164 | 162 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_S_HW_FREQ_SEEK: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_S_HW_FREQ_SEEK - Perform a hardware frequency seek |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_S_HW_FREQ_SEEK, struct v4l2_hw_freq_seek *argp ) | |
| 19 | − :name: VIDIOC_S_HW_FREQ_SEEK | |
| 18 | +.. c:macro:: VIDIOC_S_HW_FREQ_SEEK | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_S_HW_FREQ_SEEK, struct v4l2_hw_freq_seek *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_hw_freq_seek`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -59,7 +58,6 @@ set. · 24 unmodified lines | ||
| 59 | 58 | If this ioctl is called from a non-blocking filehandle, then ``EAGAIN`` |
| 60 | 59 | error code is returned and no seek takes place. |
| 61 | 60 | |
| 62 | − | |
| 63 | 61 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 64 | 62 | |
| 65 | 63 | .. c:type:: v4l2_hw_freq_seek |
| @@ -116,7 +114,6 @@ error code is returned and no seek takes place. · 50 unmodified lines | ||
| 116 | 114 | - Reserved for future extensions. Applications must set the array to |
| 117 | 115 | zero. |
| 118 | 116 | |
| 119 | − | |
| 120 | 117 | Return Value |
| 121 | 118 | ============ |
| 122 | 119 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_STREAMON: |
| 4 | 5 | |
| @@ -11,22 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_STREAMON - VIDIOC_STREAMOFF - Start or stop streaming I/O |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_STREAMON, const int *argp ) | |
| 19 | − :name: VIDIOC_STREAMON | |
| 18 | +.. c:macro:: VIDIOC_STREAMON | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_STREAMON, const int *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_STREAMOFF, const int *argp ) | |
| 22 | − :name: VIDIOC_STREAMOFF | |
| 22 | +.. c:macro:: VIDIOC_STREAMOFF | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_STREAMOFF, const int *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to an integer. |
| @@ -84,7 +85,6 @@ state as mentioned above. · 51 unmodified lines | ||
| 84 | 85 | no notion of starting or stopping "now". Buffer timestamps can be used |
| 85 | 86 | to synchronize with other events. |
| 86 | 87 | |
| 87 | − | |
| 88 | 88 | Return Value |
| 89 | 89 | ============ |
| 90 | 90 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL - Enumerate frame intervals |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL, struct v4l2_subdev_frame_interval_enum * argp ) | |
| 19 | − :name: VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL | |
| 18 | +.. c:macro:: VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL, struct v4l2_subdev_frame_interval_enum * argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_subdev_frame_interval_enum`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -97,7 +96,6 @@ multiple pads of the same sub-device is not defined. · 62 unmodified lines | ||
| 97 | 96 | - Reserved for future extensions. Applications and drivers must set |
| 98 | 97 | the array to zero. |
| 99 | 98 | |
| 100 | − | |
| 101 | 99 | Return Value |
| 102 | 100 | ============ |
| 103 | 101 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_SUBDEV_ENUM_FRAME_SIZE: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_SUBDEV_ENUM_FRAME_SIZE - Enumerate media bus frame sizes |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_ENUM_FRAME_SIZE, struct v4l2_subdev_frame_size_enum * argp ) | |
| 19 | − :name: VIDIOC_SUBDEV_ENUM_FRAME_SIZE | |
| 18 | +.. c:macro:: VIDIOC_SUBDEV_ENUM_FRAME_SIZE | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_SUBDEV_ENUM_FRAME_SIZE, struct v4l2_subdev_frame_size_enum * argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_subdev_frame_size_enum`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -62,7 +61,6 @@ current values of V4L2 controls. See · 27 unmodified lines | ||
| 62 | 61 | :ref:`VIDIOC_SUBDEV_G_FMT` for more |
| 63 | 62 | information about try formats. |
| 64 | 63 | |
| 65 | − | |
| 66 | 64 | .. c:type:: v4l2_subdev_frame_size_enum |
| 67 | 65 | |
| 68 | 66 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -103,7 +101,6 @@ information about try formats. · 34 unmodified lines | ||
| 103 | 101 | - Reserved for future extensions. Applications and drivers must set |
| 104 | 102 | the array to zero. |
| 105 | 103 | |
| 106 | − | |
| 107 | 104 | Return Value |
| 108 | 105 | ============ |
| 109 | 106 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_SUBDEV_ENUM_MBUS_CODE: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_SUBDEV_ENUM_MBUS_CODE - Enumerate media bus formats |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_ENUM_MBUS_CODE, struct v4l2_subdev_mbus_code_enum * argp ) | |
| 19 | − :name: VIDIOC_SUBDEV_ENUM_MBUS_CODE | |
| 18 | +.. c:macro:: VIDIOC_SUBDEV_ENUM_MBUS_CODE | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_SUBDEV_ENUM_MBUS_CODE, struct v4l2_subdev_mbus_code_enum * argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_subdev_mbus_code_enum`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -47,7 +46,6 @@ other pads of the sub-device, as well as on the current active links. · 12 unmodified lines | ||
| 47 | 46 | See :ref:`VIDIOC_SUBDEV_G_FMT` for more |
| 48 | 47 | information about the try formats. |
| 49 | 48 | |
| 50 | − | |
| 51 | 49 | .. c:type:: v4l2_subdev_mbus_code_enum |
| 52 | 50 | |
| 53 | 51 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_SUBDEV_G_CROP: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_SUBDEV_G_CROP - VIDIOC_SUBDEV_S_CROP - Get or set the crop rectangle on a subdev pad |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_G_CROP, struct v4l2_subdev_crop *argp ) | |
| 19 | − :name: VIDIOC_SUBDEV_G_CROP | |
| 18 | +.. c:macro:: VIDIOC_SUBDEV_G_CROP | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_SUBDEV_G_CROP, struct v4l2_subdev_crop *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_S_CROP, const struct v4l2_subdev_crop *argp ) | |
| 22 | − :name: VIDIOC_SUBDEV_S_CROP | |
| 22 | +.. c:macro:: VIDIOC_SUBDEV_S_CROP | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_SUBDEV_S_CROP, const struct v4l2_subdev_crop *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_subdev_crop`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -76,7 +76,6 @@ rectangle doesn't match the device capabilities. They must instead · 38 unmodified lines | ||
| 76 | 76 | modify the rectangle to match what the hardware can provide. The |
| 77 | 77 | modified format should be as close as possible to the original request. |
| 78 | 78 | |
| 79 | − | |
| 80 | 79 | .. c:type:: v4l2_subdev_crop |
| 81 | 80 | |
| 82 | 81 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -101,7 +100,6 @@ modified format should be as close as possible to the original request. · 18 unmodified lines | ||
| 101 | 100 | - Reserved for future extensions. Applications and drivers must set |
| 102 | 101 | the array to zero. |
| 103 | 102 | |
| 104 | − | |
| 105 | 103 | Return Value |
| 106 | 104 | ============ |
| 107 | 105 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_SUBDEV_G_FMT: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_SUBDEV_G_FMT - VIDIOC_SUBDEV_S_FMT - Get or set the data format on a subdev pad |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_G_FMT, struct v4l2_subdev_format *argp ) | |
| 19 | − :name: VIDIOC_SUBDEV_G_FMT | |
| 18 | +.. c:macro:: VIDIOC_SUBDEV_G_FMT | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_SUBDEV_G_FMT, struct v4l2_subdev_format *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_S_FMT, struct v4l2_subdev_format *argp ) | |
| 22 | − :name: VIDIOC_SUBDEV_S_FMT | |
| 22 | +.. c:macro:: VIDIOC_SUBDEV_S_FMT | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_SUBDEV_S_FMT, struct v4l2_subdev_format *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_subdev_format`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -81,7 +81,6 @@ doesn't match the device capabilities. They must instead modify the · 43 unmodified lines | ||
| 81 | 81 | format to match what the hardware can provide. The modified format |
| 82 | 82 | should be as close as possible to the original request. |
| 83 | 83 | |
| 84 | − | |
| 85 | 84 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| 86 | 85 | |
| 87 | 86 | .. c:type:: v4l2_subdev_format |
| @@ -108,7 +107,6 @@ should be as close as possible to the original request. · 20 unmodified lines | ||
| 108 | 107 | the array to zero. |
| 109 | 108 | |
| 110 | 109 | |
| 111 | − | |
| 112 | 110 | .. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| |
| 113 | 111 | |
| 114 | 112 | .. _v4l2-subdev-format-whence: |
| @@ -125,7 +123,6 @@ should be as close as possible to the original request. · 10 unmodified lines | ||
| 125 | 123 | - 1 |
| 126 | 124 | - Active formats, applied to the hardware. |
| 127 | 125 | |
| 128 | − | |
| 129 | 126 | Return Value |
| 130 | 127 | ============ |
| 131 | 128 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_SUBDEV_G_FRAME_INTERVAL: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_SUBDEV_G_FRAME_INTERVAL - VIDIOC_SUBDEV_S_FRAME_INTERVAL - Get or set the frame interval on a subdev pad |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_G_FRAME_INTERVAL, struct v4l2_subdev_frame_interval *argp ) | |
| 19 | − :name: VIDIOC_SUBDEV_G_FRAME_INTERVAL | |
| 18 | +.. c:macro:: VIDIOC_SUBDEV_G_FRAME_INTERVAL | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_SUBDEV_G_FRAME_INTERVAL, struct v4l2_subdev_frame_interval *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_S_FRAME_INTERVAL, struct v4l2_subdev_frame_interval *argp ) | |
| 22 | − :name: VIDIOC_SUBDEV_S_FRAME_INTERVAL | |
| 22 | +.. c:macro:: VIDIOC_SUBDEV_S_FRAME_INTERVAL | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_SUBDEV_S_FRAME_INTERVAL, struct v4l2_subdev_frame_interval *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_subdev_frame_interval`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -74,7 +74,6 @@ Sub-devices that support the frame interval ioctls should implement them · 36 unmodified lines | ||
| 74 | 74 | on a single pad only. Their behaviour when supported on multiple pads of |
| 75 | 75 | the same sub-device is not defined. |
| 76 | 76 | |
| 77 | − | |
| 78 | 77 | .. c:type:: v4l2_subdev_frame_interval |
| 79 | 78 | |
| 80 | 79 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -95,7 +94,6 @@ the same sub-device is not defined. · 14 unmodified lines | ||
| 95 | 94 | - Reserved for future extensions. Applications and drivers must set |
| 96 | 95 | the array to zero. |
| 97 | 96 | |
| 98 | − | |
| 99 | 97 | Return Value |
| 100 | 98 | ============ |
| 101 | 99 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_SUBDEV_G_SELECTION: |
| 4 | 5 | |
| @@ -11,27 +12,26 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_SUBDEV_G_SELECTION - VIDIOC_SUBDEV_S_SELECTION - Get or set selection rectangles on a subdev pad |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_G_SELECTION, struct v4l2_subdev_selection *argp ) | |
| 19 | − :name: VIDIOC_SUBDEV_G_SELECTION | |
| 18 | +.. c:macro:: VIDIOC_SUBDEV_G_SELECTION | |
| 19 | + | |
| 20 | +``int ioctl(int fd, VIDIOC_SUBDEV_G_SELECTION, struct v4l2_subdev_selection *argp)`` | |
| 20 | 21 | |
| 21 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_S_SELECTION, struct v4l2_subdev_selection *argp ) | |
| 22 | − :name: VIDIOC_SUBDEV_S_SELECTION | |
| 22 | +.. c:macro:: VIDIOC_SUBDEV_S_SELECTION | |
| 23 | 23 | |
| 24 | +``int ioctl(int fd, VIDIOC_SUBDEV_S_SELECTION, struct v4l2_subdev_selection *argp)`` | |
| 24 | 25 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 29 | ``fd`` |
| 29 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 30 | + File descriptor returned by :c:func:`open()`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | 33 | Pointer to struct :c:type:`v4l2_subdev_selection`. |
| 33 | 34 | |
| 34 | − | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| @@ -58,7 +58,6 @@ There are two types of selection targets: actual and bounds. The actual · 20 unmodified lines | ||
| 58 | 58 | targets are the targets which configure the hardware. The BOUNDS target |
| 59 | 59 | will return a rectangle that contain all possible actual rectangles. |
| 60 | 60 | |
| 61 | − | |
| 62 | 61 | Discovering supported features |
| 63 | 62 | ------------------------------ |
| 64 | 63 | |
| @@ -69,7 +68,6 @@ return ``EINVAL``. · 4 unmodified lines | ||
| 69 | 68 | Selection targets and flags are documented in |
| 70 | 69 | :ref:`v4l2-selections-common`. |
| 71 | 70 | |
| 72 | − | |
| 73 | 71 | .. c:type:: v4l2_subdev_selection |
| 74 | 72 | |
| 75 | 73 | .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| |
| @@ -100,7 +98,6 @@ Selection targets and flags are documented in · 24 unmodified lines | ||
| 100 | 98 | - Reserved for future extensions. Applications and drivers must set |
| 101 | 99 | the array to zero. |
| 102 | 100 | |
| 103 | − | |
| 104 | 101 | Return Value |
| 105 | 102 | ============ |
| 106 | 103 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_SUBDEV_QUERYCAP: |
| 4 | 5 | |
| @@ -11,24 +12,22 @@ Name · 6 unmodified lines | ||
| 11 | 12 | |
| 12 | 13 | VIDIOC_SUBDEV_QUERYCAP - Query sub-device capabilities |
| 13 | 14 | |
| 14 | − | |
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_QUERYCAP, struct v4l2_subdev_capability *argp ) | |
| 19 | − :name: VIDIOC_SUBDEV_QUERYCAP | |
| 18 | +.. c:macro:: VIDIOC_SUBDEV_QUERYCAP | |
| 20 | 19 | |
| 20 | +``int ioctl(int fd, VIDIOC_SUBDEV_QUERYCAP, struct v4l2_subdev_capability *argp)`` | |
| 21 | 21 | |
| 22 | 22 | Arguments |
| 23 | 23 | ========= |
| 24 | 24 | |
| 25 | 25 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 26 | + File descriptor returned by :c:func:`open()`. | |
| 27 | 27 | |
| 28 | 28 | ``argp`` |
| 29 | 29 | Pointer to struct :c:type:`v4l2_subdev_capability`. |
| 30 | 30 | |
| 31 | − | |
| 32 | 31 | Description |
| 33 | 32 | =========== |
| 34 | 33 | |
| @@ -1,4 +1,5 @@ | ||
| 1 | 1 | .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later |
| 2 | +.. c:namespace:: V4L | |
| 2 | 3 | |
| 3 | 4 | .. _VIDIOC_SUBSCRIBE_EVENT: |
| 4 | 5 | .. _VIDIOC_UNSUBSCRIBE_EVENT: |
| @@ -12,34 +13,32 @@ Name · 7 unmodified lines | ||
| 12 | 13 | |
| 13 | 14 | VIDIOC_SUBSCRIBE_EVENT - VIDIOC_UNSUBSCRIBE_EVENT - Subscribe or unsubscribe event |
| 14 | 15 | |
| 15 | − | |
| 16 | 16 | Synopsis |
| 17 | 17 | ======== |
| 18 | 18 | |
| 19 | −.. c:function:: int ioctl( int fd, VIDIOC_SUBSCRIBE_EVENT, struct v4l2_event_subscription *argp ) | |
| 20 | − :name: VIDIOC_SUBSCRIBE_EVENT | |
| 19 | +.. c:macro:: VIDIOC_SUBSCRIBE_EVENT | |
| 20 | + | |
| 21 | +``int ioctl(int fd, VIDIOC_SUBSCRIBE_EVENT, struct v4l2_event_subscription *argp)`` | |
| 21 | 22 | |
| 22 | −.. c:function:: int ioctl( int fd, VIDIOC_UNSUBSCRIBE_EVENT, struct v4l2_event_subscription *argp ) | |
| 23 | − :name: VIDIOC_UNSUBSCRIBE_EVENT | |
| 23 | +.. c:macro:: VIDIOC_UNSUBSCRIBE_EVENT | |
| 24 | 24 | |
| 25 | +``int ioctl(int fd, VIDIOC_UNSUBSCRIBE_EVENT, struct v4l2_event_subscription *argp)`` | |
| 25 | 26 | |
| 26 | 27 | Arguments |
| 27 | 28 | ========= |
| 28 | 29 | |
| 29 | 30 | ``fd`` |
| 30 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 31 | + File descriptor returned by :c:func:`open()`. | |
| 31 | 32 | |
| 32 | 33 | ``argp`` |
| 33 | 34 | Pointer to struct :c:type:`v4l2_event_subscription`. |
| 34 | 35 | |
| 35 | − | |
| 36 | 36 | Description |
| 37 | 37 | =========== |
| 38 | 38 | |
| 39 | 39 | Subscribe or unsubscribe V4L2 event. Subscribed events are dequeued by |
| 40 | 40 | using the :ref:`VIDIOC_DQEVENT` ioctl. |
| 41 | 41 | |
| 42 | − | |
| 43 | 42 | .. tabularcolumns:: |p{4.6cm}|p{4.4cm}|p{8.7cm}| |
| 44 | 43 | |
| 45 | 44 | .. c:type:: v4l2_event_subscription |
| @@ -72,7 +71,6 @@ using the :ref:`VIDIOC_DQEVENT` ioctl. · 26 unmodified lines | ||
| 72 | 71 | the array to zero. |
| 73 | 72 | |
| 74 | 73 | |
| 75 | − | |
| 76 | 74 | .. tabularcolumns:: |p{6.8cm}|p{2.2cm}|p{8.5cm}| |
| 77 | 75 | |
| 78 | 76 | .. _event-flags: |
| @@ -107,7 +105,6 @@ using the :ref:`VIDIOC_DQEVENT` ioctl. · 28 unmodified lines | ||
| 107 | 105 | Think carefully when you set this flag so you won't get into |
| 108 | 106 | situations like that. |
| 109 | 107 | |
| 110 | − | |
| 111 | 108 | Return Value |
| 112 | 109 | ============ |
| 113 | 110 | |
| @@ -679,6 +679,7 @@ Starting UML · 678 unmodified lines | ||
| 679 | 679 | |
| 680 | 680 | We can now run UML. |
| 681 | 681 | :: |
| 682 | + | |
| 682 | 683 | # linux mem=2048M umid=TEST \ |
| 683 | 684 | ubd0=Filesystem.img \ |
| 684 | 685 | vec0:transport=tap,ifname=tap0,depth=128,gro=1 \ |
| @@ -360,7 +360,7 @@ between device driver specific code and shared common code: · 359 unmodified lines | ||
| 360 | 360 | system memory page, locks the page with ``lock_page()``, and fills in the |
| 361 | 361 | ``dst`` array entry with:: |
| 362 | 362 | |
| 363 | − dst[i] = migrate_pfn(page_to_pfn(dpage)) | MIGRATE_PFN_LOCKED; | |
| 363 | + dst[i] = migrate_pfn(page_to_pfn(dpage)) | MIGRATE_PFN_LOCKED; | |
| 364 | 364 | |
| 365 | 365 | Now that the driver knows that this page is being migrated, it can |
| 366 | 366 | invalidate device private MMU mappings and copy device private memory |
| @@ -26,7 +26,7 @@ tree. · 25 unmodified lines | ||
| 26 | 26 | |
| 27 | 27 | If a KSM page is shared between less than ``max_page_sharing`` VMAs, |
| 28 | 28 | the node of the stable tree that represents such KSM page points to a |
| 29 | −list of :c:type:`struct rmap_item` and the ``page->mapping`` of the | |
| 29 | +list of struct rmap_item and the ``page->mapping`` of the | |
| 30 | 30 | KSM page points to the stable tree node. |
| 31 | 31 | |
| 32 | 32 | When the sharing passes this threshold, KSM adds a second dimension to |
| @@ -24,7 +24,7 @@ whether it is possible to manually override that default. · 23 unmodified lines | ||
| 24 | 24 | although it is still in use by several architectures. |
| 25 | 25 | |
| 26 | 26 | All the memory models track the status of physical page frames using |
| 27 | −:c:type:`struct page` arranged in one or more arrays. | |
| 27 | +struct page arranged in one or more arrays. | |
| 28 | 28 | |
| 29 | 29 | Regardless of the selected memory model, there exists one-to-one |
| 30 | 30 | mapping between the physical page frame number (PFN) and the |
| @@ -111,7 +111,7 @@ maps for non-volatile memory devices and deferred initialization of · 80 unmodified lines | ||
| 111 | 111 | the memory map for larger systems. |
| 112 | 112 | |
| 113 | 113 | The SPARSEMEM model presents the physical memory as a collection of |
| 114 | −sections. A section is represented with :c:type:`struct mem_section` | |
| 114 | +sections. A section is represented with struct mem_section | |
| 115 | 115 | that contains `section_mem_map` that is, logically, a pointer to an |
| 116 | 116 | array of struct pages. However, it is stored with some other magic |
| 117 | 117 | that aids the sections management. The section size and maximal number |
| @@ -172,7 +172,7 @@ management. · 54 unmodified lines | ||
| 172 | 172 | |
| 173 | 173 | The virtually mapped memory map allows storing `struct page` objects |
| 174 | 174 | for persistent memory devices in pre-allocated storage on those |
| 175 | −devices. This storage is represented with :c:type:`struct vmem_altmap` | |
| 175 | +devices. This storage is represented with struct vmem_altmap | |
| 176 | 176 | that is eventually passed to vmemmap_populate() through a long chain |
| 177 | 177 | of function calls. The vmemmap_populate() implementation may use the |
| 178 | 178 | `vmem_altmap` along with :c:func:`vmemmap_alloc_block_buf` helper to |
| @@ -1500,7 +1500,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) · 1499 unmodified lines | ||
| 1500 | 1500 | S: Maintained |
| 1501 | 1501 | F: Documentation/devicetree/bindings/arm/actions.yaml |
| 1502 | 1502 | F: Documentation/devicetree/bindings/clock/actions,owl-cmu.txt |
| 1503 | −F: Documentation/devicetree/bindings/dma/owl-dma.txt | |
| 1503 | +F: Documentation/devicetree/bindings/dma/owl-dma.yaml | |
| 1504 | 1504 | F: Documentation/devicetree/bindings/i2c/i2c-owl.txt |
| 1505 | 1505 | F: Documentation/devicetree/bindings/interrupt-controller/actions,owl-sirq.yaml |
| 1506 | 1506 | F: Documentation/devicetree/bindings/mmc/owl-mmc.yaml |
| @@ -5868,7 +5868,7 @@ L: linux-renesas-soc@vger.kernel.org · 4361 unmodified lines | ||
| 5868 | 5868 | S: Supported |
| 5869 | 5869 | T: git git://linuxtv.org/pinchartl/media drm/du/next |
| 5870 | 5870 | F: Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt |
| 5871 | −F: Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt | |
| 5871 | +F: Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml | |
| 5872 | 5872 | F: Documentation/devicetree/bindings/display/renesas,du.txt |
| 5873 | 5873 | F: drivers/gpu/drm/rcar-du/ |
| 5874 | 5874 | F: drivers/gpu/drm/shmobile/ |
| @@ -7000,7 +7000,7 @@ M: Frank Li <Frank.li@nxp.com> · 1125 unmodified lines | ||
| 7000 | 7000 | L: linux-arm-kernel@lists.infradead.org |
| 7001 | 7001 | S: Maintained |
| 7002 | 7002 | F: Documentation/admin-guide/perf/imx-ddr.rst |
| 7003 | −F: Documentation/devicetree/bindings/perf/fsl-imx-ddr.txt | |
| 7003 | +F: Documentation/devicetree/bindings/perf/fsl-imx-ddr.yaml | |
| 7004 | 7004 | F: drivers/perf/fsl_imx8_ddr_perf.c |
| 7005 | 7005 | |
| 7006 | 7006 | FREESCALE IMX I2C DRIVER |
| @@ -7008,7 +7008,7 @@ M: Oleksij Rempel <o.rempel@pengutronix.de> · 1 unmodified line | ||
| 7008 | 7008 | R: Pengutronix Kernel Team <kernel@pengutronix.de> |
| 7009 | 7009 | L: linux-i2c@vger.kernel.org |
| 7010 | 7010 | S: Maintained |
| 7011 | −F: Documentation/devicetree/bindings/i2c/i2c-imx.txt | |
| 7011 | +F: Documentation/devicetree/bindings/i2c/i2c-imx.yaml | |
| 7012 | 7012 | F: drivers/i2c/busses/i2c-imx.c |
| 7013 | 7013 | |
| 7014 | 7014 | FREESCALE IMX LPI2C DRIVER |
| @@ -7016,7 +7016,7 @@ M: Dong Aisheng <aisheng.dong@nxp.com> · 1 unmodified line | ||
| 7016 | 7016 | L: linux-i2c@vger.kernel.org |
| 7017 | 7017 | L: linux-imx@nxp.com |
| 7018 | 7018 | S: Maintained |
| 7019 | −F: Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.txt | |
| 7019 | +F: Documentation/devicetree/bindings/i2c/i2c-imx-lpi2c.yaml | |
| 7020 | 7020 | F: drivers/i2c/busses/i2c-imx-lpi2c.c |
| 7021 | 7021 | |
| 7022 | 7022 | FREESCALE QORIQ DPAA ETHERNET DRIVER |
| @@ -11677,7 +11677,7 @@ MIPS GENERIC PLATFORM · 4654 unmodified lines | ||
| 11677 | 11677 | M: Paul Burton <paulburton@kernel.org> |
| 11678 | 11678 | L: linux-mips@vger.kernel.org |
| 11679 | 11679 | S: Supported |
| 11680 | −F: Documentation/devicetree/bindings/power/mti,mips-cpc.txt | |
| 11680 | +F: Documentation/devicetree/bindings/power/mti,mips-cpc.yaml | |
| 11681 | 11681 | F: arch/mips/generic/ |
| 11682 | 11682 | F: arch/mips/tools/generic-board-config.sh |
| 11683 | 11683 | |
| @@ -12568,7 +12568,7 @@ NXP SGTL5000 DRIVER · 884 unmodified lines | ||
| 12568 | 12568 | M: Fabio Estevam <festevam@gmail.com> |
| 12569 | 12569 | L: alsa-devel@alsa-project.org (moderated for non-subscribers) |
| 12570 | 12570 | S: Maintained |
| 12571 | −F: Documentation/devicetree/bindings/sound/sgtl5000.txt | |
| 12571 | +F: Documentation/devicetree/bindings/sound/sgtl5000.yaml | |
| 12572 | 12572 | F: sound/soc/codecs/sgtl5000* |
| 12573 | 12573 | |
| 12574 | 12574 | NXP SJA1105 ETHERNET SWITCH DRIVER |
| @@ -16868,7 +16868,7 @@ SYNOPSYS DESIGNWARE DMAC DRIVER · 4293 unmodified lines | ||
| 16868 | 16868 | M: Viresh Kumar <vireshk@kernel.org> |
| 16869 | 16869 | R: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| 16870 | 16870 | S: Maintained |
| 16871 | −F: Documentation/devicetree/bindings/dma/snps-dma.txt | |
| 16871 | +F: Documentation/devicetree/bindings/dma/snps,dma-spear1340.yaml | |
| 16872 | 16872 | F: drivers/dma/dw/ |
| 16873 | 16873 | F: include/dt-bindings/dma/dw-dmac.h |
| 16874 | 16874 | F: include/linux/dma/dw.h |
| @@ -327,7 +327,7 @@ static void bio_chain_endio(struct bio *bio) · 326 unmodified lines | ||
| 327 | 327 | /** |
| 328 | 328 | * bio_chain - chain bio completions |
| 329 | 329 | * @bio: the target bio |
| 330 | − * @parent: the @bio's parent bio | |
| 330 | + * @parent: the parent bio of @bio | |
| 331 | 331 | * |
| 332 | 332 | * The caller won't have a bi_end_io called when @bio completes - instead, |
| 333 | 333 | * @parent's bi_end_io won't be called until both @parent and @bio have |
| @@ -1093,7 +1093,7 @@ static int __bio_iov_append_get_pages(struct bio *bio, struct iov_iter *iter) · 759 unmodified lines | ||
| 1093 | 1093 | * released. |
| 1094 | 1094 | * |
| 1095 | 1095 | * The function tries, but does not guarantee, to pin as many pages as |
| 1096 | − * fit into the bio, or are requested in *iter, whatever is smaller. If | |
| 1096 | + * fit into the bio, or are requested in @iter, whatever is smaller. If | |
| 1097 | 1097 | * MM encounters an error pinning the requested pages, it stops. Error |
| 1098 | 1098 | * is returned only if 0 pages could be pinned. |
| 1099 | 1099 | */ |
| @@ -4212,13 +4212,16 @@ define_dev_printk_level(_dev_info, KERN_INFO); · 4211 unmodified lines | ||
| 4212 | 4212 | * -EPROBE_DEFER and propagate error upwards. |
| 4213 | 4213 | * In case of -EPROBE_DEFER it sets also defer probe reason, which can be |
| 4214 | 4214 | * checked later by reading devices_deferred debugfs attribute. |
| 4215 | − * It replaces code sequence: | |
| 4215 | + * It replaces code sequence:: | |
| 4216 | + * | |
| 4216 | 4217 | * if (err != -EPROBE_DEFER) |
| 4217 | 4218 | * dev_err(dev, ...); |
| 4218 | 4219 | * else |
| 4219 | 4220 | * dev_dbg(dev, ...); |
| 4220 | 4221 | * return err; |
| 4221 | − * with | |
| 4222 | + * | |
| 4223 | + * with:: | |
| 4224 | + * | |
| 4222 | 4225 | * return dev_err_probe(dev, err, ...); |
| 4223 | 4226 | * |
| 4224 | 4227 | * Returns @err. |
| @@ -48,7 +48,7 @@ config LTPC · 47 unmodified lines | ||
| 48 | 48 | If you are in doubt, this card is the one with the 65C02 chip on it. |
| 49 | 49 | You also need version 1.3.3 or later of the netatalk package. |
| 50 | 50 | This driver is experimental, which means that it may not work. |
| 51 | − See the file <file:Documentation/networking/ltpc.rst>. | |
| 51 | + See the file <file:Documentation/networking/device_drivers/appletalk/ltpc.rst>. | |
| 52 | 52 | |
| 53 | 53 | config COPS |
| 54 | 54 | tristate "COPS LocalTalk PC support" |
| @@ -7,7 +7,7 @@ · 6 unmodified lines | ||
| 7 | 7 | * ------------------ |
| 8 | 8 | * |
| 9 | 9 | * You can find a subset of the documentation in |
| 10 | − * Documentation/networking/device_drivers/wan/z8530drv.rst. | |
| 10 | + * Documentation/networking/device_drivers/hamradio/z8530drv.rst. | |
| 11 | 11 | */ |
| 12 | 12 | |
| 13 | 13 | /* |
| @@ -25,6 +25,7 @@ typedef void (*kunit_resource_free_t)(struct kunit_resource *); · 24 unmodified lines | ||
| 25 | 25 | /** |
| 26 | 26 | * struct kunit_resource - represents a *test managed resource* |
| 27 | 27 | * @data: for the user to store arbitrary data. |
| 28 | + * @name: optional name | |
| 28 | 29 | * @free: a user supplied function to free the resource. Populated by |
| 29 | 30 | * kunit_resource_alloc(). |
| 30 | 31 | * |
| @@ -80,10 +81,10 @@ typedef void (*kunit_resource_free_t)(struct kunit_resource *); · 49 unmodified lines | ||
| 80 | 81 | */ |
| 81 | 82 | struct kunit_resource { |
| 82 | 83 | void *data; |
| 83 | − const char *name; /* optional name */ | |
| 84 | + const char *name; | |
| 85 | + kunit_resource_free_t free; | |
| 84 | 86 | |
| 85 | 87 | /* private: internal use only. */ |
| 86 | − kunit_resource_free_t free; | |
| 87 | 88 | struct kref refcount; |
| 88 | 89 | struct list_head node; |
| 89 | 90 | }; |
| @@ -348,6 +349,7 @@ static inline void kunit_put_resource(struct kunit_resource *res) · 258 unmodified lines | ||
| 348 | 349 | * none is supplied, the resource data value is simply set to @data. |
| 349 | 350 | * If an init function is supplied, @data is passed to it instead. |
| 350 | 351 | * @free: a user-supplied function to free the resource (if needed). |
| 352 | + * @res: The resource. | |
| 351 | 353 | * @data: value to pass to init function or set in resource data field. |
| 352 | 354 | */ |
| 353 | 355 | int kunit_add_resource(struct kunit *test, |
| @@ -361,7 +363,9 @@ int kunit_add_resource(struct kunit *test, · 7 unmodified lines | ||
| 361 | 363 | * @test: The test context object. |
| 362 | 364 | * @init: a user-supplied function to initialize the resource data, if needed. |
| 363 | 365 | * @free: a user-supplied function to free the resource data, if needed. |
| 364 | − * @name_data: name and data to be set for resource. | |
| 366 | + * @res: The resource. | |
| 367 | + * @name: name to be set for resource. | |
| 368 | + * @data: value to pass to init function or set in resource data field. | |
| 365 | 369 | */ |
| 366 | 370 | int kunit_add_named_resource(struct kunit *test, |
| 367 | 371 | kunit_resource_init_t init, |
| @@ -499,8 +503,8 @@ static inline int kunit_destroy_named_resource(struct kunit *test, · 131 unmodified lines | ||
| 499 | 503 | } |
| 500 | 504 | |
| 501 | 505 | /** |
| 502 | − * kunit_remove_resource: remove resource from resource list associated with | |
| 503 | − * test. | |
| 506 | + * kunit_remove_resource() - remove resource from resource list associated with | |
| 507 | + * test. | |
| 504 | 508 | * @test: The test context object. |
| 505 | 509 | * @res: The resource to be removed. |
| 506 | 510 | * |
| @@ -228,12 +228,7 @@ int devfreq_resume_device(struct devfreq *devfreq); · 227 unmodified lines | ||
| 228 | 228 | void devfreq_suspend(void); |
| 229 | 229 | void devfreq_resume(void); |
| 230 | 230 | |
| 231 | −/** | |
| 232 | − * update_devfreq() - Reevaluate the device and configure frequency | |
| 233 | − * @devfreq: the devfreq device | |
| 234 | − * | |
| 235 | − * Note: devfreq->lock must be held | |
| 236 | − */ | |
| 231 | +/* update_devfreq() - Reevaluate the device and configure frequency */ | |
| 237 | 232 | int update_devfreq(struct devfreq *devfreq); |
| 238 | 233 | |
| 239 | 234 | /* Helper functions for devfreq user device driver with OPP. */ |
| @@ -20,6 +20,7 @@ · 19 unmodified lines | ||
| 20 | 20 | * private definitions. |
| 21 | 21 | * @code: Device-specific data identifying the button/switch |
| 22 | 22 | * @keycode: KEY_* code assigned to a key/button |
| 23 | + * @sw: struct with code/value used by KE_SW and KE_VSW | |
| 23 | 24 | * @sw.code: SW_* code assigned to a switch |
| 24 | 25 | * @sw.value: Value that should be sent in an input even when KE_SW |
| 25 | 26 | * switch is toggled. KE_VSW switches ignore this field and |
| @@ -28,7 +28,7 @@ static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder) · 27 unmodified lines | ||
| 28 | 28 | return dividend / divisor; |
| 29 | 29 | } |
| 30 | 30 | |
| 31 | −/** | |
| 31 | +/* | |
| 32 | 32 | * div_s64_rem - signed 64bit divide with 32bit divisor with remainder |
| 33 | 33 | * @dividend: signed 64bit dividend |
| 34 | 34 | * @divisor: signed 32bit divisor |
| @@ -42,7 +42,7 @@ static inline s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder) · 7 unmodified lines | ||
| 42 | 42 | return dividend / divisor; |
| 43 | 43 | } |
| 44 | 44 | |
| 45 | −/** | |
| 45 | +/* | |
| 46 | 46 | * div64_u64_rem - unsigned 64bit divide with 64bit divisor and remainder |
| 47 | 47 | * @dividend: unsigned 64bit dividend |
| 48 | 48 | * @divisor: unsigned 64bit divisor |
| @@ -56,7 +56,7 @@ static inline u64 div64_u64_rem(u64 dividend, u64 divisor, u64 *remainder) · 7 unmodified lines | ||
| 56 | 56 | return dividend / divisor; |
| 57 | 57 | } |
| 58 | 58 | |
| 59 | −/** | |
| 59 | +/* | |
| 60 | 60 | * div64_u64 - unsigned 64bit divide with 64bit divisor |
| 61 | 61 | * @dividend: unsigned 64bit dividend |
| 62 | 62 | * @divisor: unsigned 64bit divisor |
| @@ -68,7 +68,7 @@ static inline u64 div64_u64(u64 dividend, u64 divisor) · 5 unmodified lines | ||
| 68 | 68 | return dividend / divisor; |
| 69 | 69 | } |
| 70 | 70 | |
| 71 | −/** | |
| 71 | +/* | |
| 72 | 72 | * div64_s64 - signed 64bit divide with 64bit divisor |
| 73 | 73 | * @dividend: signed 64bit dividend |
| 74 | 74 | * @divisor: signed 64bit divisor |
| @@ -152,10 +152,26 @@ struct typec_altmode_driver { · 151 unmodified lines | ||
| 152 | 152 | #define to_altmode_driver(d) container_of(d, struct typec_altmode_driver, \ |
| 153 | 153 | driver) |
| 154 | 154 | |
| 155 | +/** | |
| 156 | + * typec_altmode_register_driver - registers a USB Type-C alternate mode | |
| 157 | + * device driver | |
| 158 | + * @drv: pointer to struct typec_altmode_driver | |
| 159 | + * | |
| 160 | + * These drivers will be bind to the partner alternate mode devices. They will | |
| 161 | + * handle all SVID specific communication. | |
| 162 | + */ | |
| 155 | 163 | #define typec_altmode_register_driver(drv) \ |
| 156 | 164 | __typec_altmode_register_driver(drv, THIS_MODULE) |
| 157 | 165 | int __typec_altmode_register_driver(struct typec_altmode_driver *drv, |
| 158 | 166 | struct module *module); |
| 167 | +/** | |
| 168 | + * typec_altmode_unregister_driver - unregisters a USB Type-C alternate mode | |
| 169 | + * device driver | |
| 170 | + * @drv: pointer to struct typec_altmode_driver | |
| 171 | + * | |
| 172 | + * These drivers will be bind to the partner alternate mode devices. They will | |
| 173 | + * handle all SVID specific communication. | |
| 174 | + */ | |
| 159 | 175 | void typec_altmode_unregister_driver(struct typec_altmode_driver *drv); |
| 160 | 176 | |
| 161 | 177 | #define module_typec_altmode_driver(__typec_altmode_driver) \ |
| @@ -474,6 +474,7 @@ struct ieee80211_sta_s1g_cap { · 473 unmodified lines | ||
| 474 | 474 | * @n_bitrates: Number of bitrates in @bitrates |
| 475 | 475 | * @ht_cap: HT capabilities in this band |
| 476 | 476 | * @vht_cap: VHT capabilities in this band |
| 477 | + * @s1g_cap: S1G capabilities in this band | |
| 477 | 478 | * @edmg_cap: EDMG capabilities in this band |
| 478 | 479 | * @s1g_cap: S1G capabilities in this band (S1B band only, of course) |
| 479 | 480 | * @n_iftype_data: number of iftype data entries |
| @@ -3022,6 +3022,12 @@ struct kfree_rcu_cpu_work { · 3021 unmodified lines | ||
| 3022 | 3022 | * @monitor_todo: Tracks whether a @monitor_work delayed work is pending |
| 3023 | 3023 | * @initialized: The @rcu_work fields have been initialized |
| 3024 | 3024 | * @count: Number of objects for which GP not started |
| 3025 | + * @bkvcache: | |
| 3026 | + * A simple cache list that contains objects for reuse purpose. | |
| 3027 | + * In order to save some per-cpu space the list is singular. | |
| 3028 | + * Even though it is lockless an access has to be protected by the | |
| 3029 | + * per-cpu lock. | |
| 3030 | + * @nr_bkv_objs: number of allocated objects at @bkvcache. | |
| 3025 | 3031 | * |
| 3026 | 3032 | * This is a per-CPU structure. The reason that it is not included in |
| 3027 | 3033 | * the rcu_data structure is to permit this code to be extracted from |
| @@ -3037,14 +3043,6 @@ struct kfree_rcu_cpu { · 9 unmodified lines | ||
| 3037 | 3043 | bool monitor_todo; |
| 3038 | 3044 | bool initialized; |
| 3039 | 3045 | int count; |
| 3040 | − | |
| 3041 | − /* | |
| 3042 | − * A simple cache list that contains objects for | |
| 3043 | − * reuse purpose. In order to save some per-cpu | |
| 3044 | − * space the list is singular. Even though it is | |
| 3045 | − * lockless an access has to be protected by the | |
| 3046 | − * per-cpu lock. | |
| 3047 | − */ | |
| 3048 | 3046 | struct llist_head bkvcache; |
| 3049 | 3047 | int nr_bkv_objs; |
| 3050 | 3048 | }; |
| @@ -1212,11 +1212,14 @@ out_put: · 1211 unmodified lines | ||
| 1212 | 1212 | * stable state - idle, on timer or on worklist. |
| 1213 | 1213 | * |
| 1214 | 1214 | * Return: |
| 1215 | + * | |
| 1216 | + * ======== ================================================================ | |
| 1215 | 1217 | * 1 if @work was pending and we successfully stole PENDING |
| 1216 | 1218 | * 0 if @work was idle and we claimed PENDING |
| 1217 | 1219 | * -EAGAIN if PENDING couldn't be grabbed at the moment, safe to busy-retry |
| 1218 | 1220 | * -ENOENT if someone else is canceling @work, this state may persist |
| 1219 | 1221 | * for arbitrarily long |
| 1222 | + * ======== ================================================================ | |
| 1220 | 1223 | * |
| 1221 | 1224 | * Note: |
| 1222 | 1225 | * On >= 0 return, the caller owns @work's PENDING bit. To avoid getting |
| @@ -81,7 +81,7 @@ · 80 unmodified lines | ||
| 81 | 81 | * different KSM page copy of that content |
| 82 | 82 | * |
| 83 | 83 | * Internally, the regular nodes, "dups" and "chains" are represented |
| 84 | − * using the same :c:type:`struct stable_node` structure. | |
| 84 | + * using the same struct stable_node structure. | |
| 85 | 85 | * |
| 86 | 86 | * In addition to the stable tree, KSM uses a second data structure called the |
| 87 | 87 | * unstable tree: this tree holds pointers to pages which have been found to |
| @@ -48,12 +48,12 @@ · 47 unmodified lines | ||
| 48 | 48 | * boot regardless of the possible restrictions and memory hot(un)plug; |
| 49 | 49 | * the ``physmem`` type is only available on some architectures. |
| 50 | 50 | * |
| 51 | − * Each region is represented by :c:type:`struct memblock_region` that | |
| 51 | + * Each region is represented by struct memblock_region that | |
| 52 | 52 | * defines the region extents, its attributes and NUMA node id on NUMA |
| 53 | − * systems. Every memory type is described by the :c:type:`struct | |
| 54 | − * memblock_type` which contains an array of memory regions along with | |
| 53 | + * systems. Every memory type is described by the struct memblock_type | |
| 54 | + * which contains an array of memory regions along with | |
| 55 | 55 | * the allocator metadata. The "memory" and "reserved" types are nicely |
| 56 | − * wrapped with :c:type:`struct memblock`. This structure is statically | |
| 56 | + * wrapped with struct memblock. This structure is statically | |
| 57 | 57 | * initialized at build time. The region arrays are initially sized to |
| 58 | 58 | * %INIT_MEMBLOCK_REGIONS for "memory" and %INIT_MEMBLOCK_RESERVED_REGIONS |
| 59 | 59 | * for "reserved". The region array for "physmem" is initially sized to |
| @@ -56,6 +56,13 @@ Output format selection (mutually exclusive): · 55 unmodified lines | ||
| 56 | 56 | -rst Output reStructuredText format. |
| 57 | 57 | -none Do not output documentation, only warnings. |
| 58 | 58 | |
| 59 | +Output format selection modifier (affects only ReST output): | |
| 60 | + | |
| 61 | + -sphinx-version Use the ReST C domain dialect compatible with an | |
| 62 | + specific Sphinx Version. | |
| 63 | + If not specified, kernel-doc will auto-detect using | |
| 64 | + the sphinx-build version found on PATH. | |
| 65 | + | |
| 59 | 66 | Output selection (mutually exclusive): |
| 60 | 67 | -export Only output documentation for symbols that have been |
| 61 | 68 | exported using EXPORT_SYMBOL() or EXPORT_SYMBOL_GPL() |
| @@ -66,9 +73,8 @@ Output selection (mutually exclusive): · 4 unmodified lines | ||
| 66 | 73 | -function NAME Only output documentation for the given function(s) |
| 67 | 74 | or DOC: section title(s). All other functions and DOC: |
| 68 | 75 | sections are ignored. May be specified multiple times. |
| 69 | − -nofunction NAME Do NOT output documentation for the given function(s); | |
| 70 | − only output documentation for the other functions and | |
| 71 | − DOC: sections. May be specified multiple times. | |
| 76 | + -nosymbol NAME Exclude the specified symbols from the output | |
| 77 | + documentation. May be specified multiple times. | |
| 72 | 78 | |
| 73 | 79 | Output selection modifiers: |
| 74 | 80 | -no-doc-sections Do not output DOC: sections. |
| @@ -271,6 +277,8 @@ if ($#ARGV == -1) { · 196 unmodified lines | ||
| 271 | 277 | } |
| 272 | 278 | |
| 273 | 279 | my $kernelversion; |
| 280 | +my ($sphinx_major, $sphinx_minor, $sphinx_patch); | |
| 281 | + | |
| 274 | 282 | my $dohighlight = ""; |
| 275 | 283 | |
| 276 | 284 | my $verbose = 0; |
| @@ -286,9 +294,8 @@ my $modulename = "Kernel API"; · 9 unmodified lines | ||
| 286 | 294 | use constant { |
| 287 | 295 | OUTPUT_ALL => 0, # output all symbols and doc sections |
| 288 | 296 | OUTPUT_INCLUDE => 1, # output only specified symbols |
| 289 | − OUTPUT_EXCLUDE => 2, # output everything except specified symbols | |
| 290 | − OUTPUT_EXPORTED => 3, # output exported symbols | |
| 291 | − OUTPUT_INTERNAL => 4, # output non-exported symbols | |
| 297 | + OUTPUT_EXPORTED => 2, # output exported symbols | |
| 298 | + OUTPUT_INTERNAL => 3, # output non-exported symbols | |
| 292 | 299 | }; |
| 293 | 300 | my $output_selection = OUTPUT_ALL; |
| 294 | 301 | my $show_not_found = 0; # No longer used |
| @@ -313,6 +320,7 @@ my $man_date = ('January', 'February', 'March', 'April', 'May', 'June', · 18 unmodified lines | ||
| 313 | 320 | # CAVEAT EMPTOR! Some of the others I localised may not want to be, which |
| 314 | 321 | # could cause "use of undefined value" or other bugs. |
| 315 | 322 | my ($function, %function_table, %parametertypes, $declaration_purpose); |
| 323 | +my %nosymbol_table = (); | |
| 316 | 324 | my $declaration_start_line; |
| 317 | 325 | my ($type, $declaration_name, $return_type); |
| 318 | 326 | my ($newsection, $newcontents, $prototype, $brcount, %source_map); |
| @@ -432,10 +440,9 @@ while ($ARGV[0] =~ m/^--?(.*)/) { · 113 unmodified lines | ||
| 432 | 440 | $output_selection = OUTPUT_INCLUDE; |
| 433 | 441 | $function = shift @ARGV; |
| 434 | 442 | $function_table{$function} = 1; |
| 435 | − } elsif ($cmd eq "nofunction") { # output all except specific functions | |
| 436 | − $output_selection = OUTPUT_EXCLUDE; | |
| 437 | − $function = shift @ARGV; | |
| 438 | − $function_table{$function} = 1; | |
| 443 | + } elsif ($cmd eq "nosymbol") { # Exclude specific symbols | |
| 444 | + my $symbol = shift @ARGV; | |
| 445 | + $nosymbol_table{$symbol} = 1; | |
| 439 | 446 | } elsif ($cmd eq "export") { # only exported symbols |
| 440 | 447 | $output_selection = OUTPUT_EXPORTED; |
| 441 | 448 | %function_table = (); |
| @@ -457,6 +464,23 @@ while ($ARGV[0] =~ m/^--?(.*)/) { · 15 unmodified lines | ||
| 457 | 464 | $enable_lineno = 1; |
| 458 | 465 | } elsif ($cmd eq 'show-not-found') { |
| 459 | 466 | $show_not_found = 1; # A no-op but don't fail |
| 467 | + } elsif ($cmd eq "sphinx-version") { | |
| 468 | + my $ver_string = shift @ARGV; | |
| 469 | + if ($ver_string =~ m/^(\d+)(\.\d+)?(\.\d+)?/) { | |
| 470 | + $sphinx_major = $1; | |
| 471 | + if (defined($2)) { | |
| 472 | + $sphinx_minor = substr($2,1); | |
| 473 | + } else { | |
| 474 | + $sphinx_minor = 0; | |
| 475 | + } | |
| 476 | + if (defined($3)) { | |
| 477 | + $sphinx_patch = substr($3,1) | |
| 478 | + } else { | |
| 479 | + $sphinx_patch = 0; | |
| 480 | + } | |
| 481 | + } else { | |
| 482 | + die "Sphinx version should either major.minor or major.minor.patch format\n"; | |
| 483 | + } | |
| 460 | 484 | } else { |
| 461 | 485 | # Unknown argument |
| 462 | 486 | usage(); |
| @@ -465,6 +489,51 @@ while ($ARGV[0] =~ m/^--?(.*)/) { · 2 unmodified lines | ||
| 465 | 489 | |
| 466 | 490 | # continue execution near EOF; |
| 467 | 491 | |
| 492 | +# The C domain dialect changed on Sphinx 3. So, we need to check the | |
| 493 | +# version in order to produce the right tags. | |
| 494 | +sub findprog($) | |
| 495 | +{ | |
| 496 | + foreach(split(/:/, $ENV{PATH})) { | |
| 497 | + return "$_/$_[0]" if(-x "$_/$_[0]"); | |
| 498 | + } | |
| 499 | +} | |
| 500 | + | |
| 501 | +sub get_sphinx_version() | |
| 502 | +{ | |
| 503 | + my $ver; | |
| 504 | + | |
| 505 | + my $cmd = "sphinx-build"; | |
| 506 | + if (!findprog($cmd)) { | |
| 507 | + my $cmd = "sphinx-build3"; | |
| 508 | + if (!findprog($cmd)) { | |
| 509 | + $sphinx_major = 1; | |
| 510 | + $sphinx_minor = 2; | |
| 511 | + $sphinx_patch = 0; | |
| 512 | + printf STDERR "Warning: Sphinx version not found. Using default (Sphinx version %d.%d.%d)\n", | |
| 513 | + $sphinx_major, $sphinx_minor, $sphinx_patch; | |
| 514 | + return; | |
| 515 | + } | |
| 516 | + } | |
| 517 | + | |
| 518 | + open IN, "$cmd --version 2>&1 |"; | |
| 519 | + while (<IN>) { | |
| 520 | + if (m/^\s*sphinx-build\s+([\d]+)\.([\d\.]+)(\+\/[\da-f]+)?$/) { | |
| 521 | + $sphinx_major = $1; | |
| 522 | + $sphinx_minor = $2; | |
| 523 | + $sphinx_patch = $3; | |
| 524 | + last; | |
| 525 | + } | |
| 526 | + # Sphinx 1.2.x uses a different format | |
| 527 | + if (m/^\s*Sphinx.*\s+([\d]+)\.([\d\.]+)$/) { | |
| 528 | + $sphinx_major = $1; | |
| 529 | + $sphinx_minor = $2; | |
| 530 | + $sphinx_patch = $3; | |
| 531 | + last; | |
| 532 | + } | |
| 533 | + } | |
| 534 | + close IN; | |
| 535 | +} | |
| 536 | + | |
| 468 | 537 | # get kernel version from env |
| 469 | 538 | sub get_kernel_version() { |
| 470 | 539 | my $version = 'unknown kernel version'; |
| @@ -531,11 +600,11 @@ sub dump_doc_section { · 60 unmodified lines | ||
| 531 | 600 | return; |
| 532 | 601 | } |
| 533 | 602 | |
| 603 | + return if (defined($nosymbol_table{$name})); | |
| 604 | + | |
| 534 | 605 | if (($output_selection == OUTPUT_ALL) || |
| 535 | − ($output_selection == OUTPUT_INCLUDE && | |
| 536 | − defined($function_table{$name})) || | |
| 537 | − ($output_selection == OUTPUT_EXCLUDE && | |
| 538 | − !defined($function_table{$name}))) | |
| 606 | + (($output_selection == OUTPUT_INCLUDE) && | |
| 607 | + defined($function_table{$name}))) | |
| 539 | 608 | { |
| 540 | 609 | dump_section($file, $name, $contents); |
| 541 | 610 | output_blockhead({'sectionlist' => \@sectionlist, |
| @@ -618,10 +687,10 @@ sub output_function_man(%) { · 76 unmodified lines | ||
| 618 | 687 | $type = $args{'parametertypes'}{$parameter}; |
| 619 | 688 | if ($type =~ m/([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)/) { |
| 620 | 689 | # pointer-to-function |
| 621 | − print ".BI \"" . $parenth . $1 . "\" " . $parameter . " \") (" . $2 . ")" . $post . "\"\n"; | |
| 690 | + print ".BI \"" . $parenth . $1 . "\" " . " \") (" . $2 . ")" . $post . "\"\n"; | |
| 622 | 691 | } else { |
| 623 | 692 | $type =~ s/([^\*])$/$1 /; |
| 624 | − print ".BI \"" . $parenth . $type . "\" " . $parameter . " \"" . $post . "\"\n"; | |
| 693 | + print ".BI \"" . $parenth . $type . "\" " . " \"" . $post . "\"\n"; | |
| 625 | 694 | } |
| 626 | 695 | $count++; |
| 627 | 696 | $parenth = ""; |
| @@ -761,6 +830,8 @@ sub output_blockhead_rst(%) { · 133 unmodified lines | ||
| 761 | 830 | my ($parameter, $section); |
| 762 | 831 | |
| 763 | 832 | foreach $section (@{$args{'sectionlist'}}) { |
| 833 | + next if (defined($nosymbol_table{$section})); | |
| 834 | + | |
| 764 | 835 | if ($output_selection != OUTPUT_INCLUDE) { |
| 765 | 836 | print "**$section**\n\n"; |
| 766 | 837 | } |
| @@ -846,16 +917,37 @@ sub output_function_rst(%) { · 79 unmodified lines | ||
| 846 | 917 | my ($parameter, $section); |
| 847 | 918 | my $oldprefix = $lineprefix; |
| 848 | 919 | my $start = ""; |
| 849 | − | |
| 850 | − if ($args{'typedef'}) { | |
| 851 | − print ".. c:type:: ". $args{'function'} . "\n\n"; | |
| 852 | − print_lineno($declaration_start_line); | |
| 853 | − print " **Typedef**: "; | |
| 854 | − $lineprefix = ""; | |
| 855 | − output_highlight_rst($args{'purpose'}); | |
| 856 | − $start = "\n\n**Syntax**\n\n ``"; | |
| 920 | + my $is_macro = 0; | |
| 921 | + | |
| 922 | + if ($sphinx_major < 3) { | |
| 923 | + if ($args{'typedef'}) { | |
| 924 | + print ".. c:type:: ". $args{'function'} . "\n\n"; | |
| 925 | + print_lineno($declaration_start_line); | |
| 926 | + print " **Typedef**: "; | |
| 927 | + $lineprefix = ""; | |
| 928 | + output_highlight_rst($args{'purpose'}); | |
| 929 | + $start = "\n\n**Syntax**\n\n ``"; | |
| 930 | + $is_macro = 1; | |
| 931 | + } else { | |
| 932 | + print ".. c:function:: "; | |
| 933 | + } | |
| 857 | 934 | } else { |
| 858 | − print ".. c:function:: "; | |
| 935 | + if ($args{'typedef'} || $args{'functiontype'} eq "") { | |
| 936 | + $is_macro = 1; | |
| 937 | + print ".. c:macro:: ". $args{'function'} . "\n\n"; | |
| 938 | + } else { | |
| 939 | + print ".. c:function:: "; | |
| 940 | + } | |
| 941 | + | |
| 942 | + if ($args{'typedef'}) { | |
| 943 | + print_lineno($declaration_start_line); | |
| 944 | + print " **Typedef**: "; | |
| 945 | + $lineprefix = ""; | |
| 946 | + output_highlight_rst($args{'purpose'}); | |
| 947 | + $start = "\n\n**Syntax**\n\n ``"; | |
| 948 | + } else { | |
| 949 | + print "``" if ($is_macro); | |
| 950 | + } | |
| 859 | 951 | } |
| 860 | 952 | if ($args{'functiontype'} ne "") { |
| 861 | 953 | $start .= $args{'functiontype'} . " " . $args{'function'} . " ("; |
| @@ -876,13 +968,15 @@ sub output_function_rst(%) { · 14 unmodified lines | ||
| 876 | 968 | # pointer-to-function |
| 877 | 969 | print $1 . $parameter . ") (" . $2 . ")"; |
| 878 | 970 | } else { |
| 879 | − print $type . " " . $parameter; | |
| 971 | + print $type; | |
| 880 | 972 | } |
| 881 | 973 | } |
| 882 | − if ($args{'typedef'}) { | |
| 883 | − print ");``\n\n"; | |
| 974 | + if ($is_macro) { | |
| 975 | + print ")``\n\n"; | |
| 884 | 976 | } else { |
| 885 | 977 | print ")\n\n"; |
| 978 | + } | |
| 979 | + if (!$args{'typedef'}) { | |
| 886 | 980 | print_lineno($declaration_start_line); |
| 887 | 981 | $lineprefix = " "; |
| 888 | 982 | output_highlight_rst($args{'purpose'}); |
| @@ -897,7 +991,7 @@ sub output_function_rst(%) { · 8 unmodified lines | ||
| 897 | 991 | $type = $args{'parametertypes'}{$parameter}; |
| 898 | 992 | |
| 899 | 993 | if ($type ne "") { |
| 900 | − print "``$type $parameter``\n"; | |
| 994 | + print "``$type``\n"; | |
| 901 | 995 | } else { |
| 902 | 996 | print "``$parameter``\n"; |
| 903 | 997 | } |
| @@ -938,9 +1032,14 @@ sub output_enum_rst(%) { · 34 unmodified lines | ||
| 938 | 1032 | my ($parameter); |
| 939 | 1033 | my $oldprefix = $lineprefix; |
| 940 | 1034 | my $count; |
| 941 | − my $name = "enum " . $args{'enum'}; | |
| 942 | 1035 | |
| 943 | − print "\n\n.. c:type:: " . $name . "\n\n"; | |
| 1036 | + if ($sphinx_major < 3) { | |
| 1037 | + my $name = "enum " . $args{'enum'}; | |
| 1038 | + print "\n\n.. c:type:: " . $name . "\n\n"; | |
| 1039 | + } else { | |
| 1040 | + my $name = $args{'enum'}; | |
| 1041 | + print "\n\n.. c:enum:: " . $name . "\n\n"; | |
| 1042 | + } | |
| 944 | 1043 | print_lineno($declaration_start_line); |
| 945 | 1044 | $lineprefix = " "; |
| 946 | 1045 | output_highlight_rst($args{'purpose'}); |
| @@ -966,8 +1065,13 @@ sub output_typedef_rst(%) { · 19 unmodified lines | ||
| 966 | 1065 | my %args = %{$_[0]}; |
| 967 | 1066 | my ($parameter); |
| 968 | 1067 | my $oldprefix = $lineprefix; |
| 969 | − my $name = "typedef " . $args{'typedef'}; | |
| 1068 | + my $name; | |
| 970 | 1069 | |
| 1070 | + if ($sphinx_major < 3) { | |
| 1071 | + $name = "typedef " . $args{'typedef'}; | |
| 1072 | + } else { | |
| 1073 | + $name = $args{'typedef'}; | |
| 1074 | + } | |
| 971 | 1075 | print "\n\n.. c:type:: " . $name . "\n\n"; |
| 972 | 1076 | print_lineno($declaration_start_line); |
| 973 | 1077 | $lineprefix = " "; |
| @@ -982,9 +1086,14 @@ sub output_struct_rst(%) { · 8 unmodified lines | ||
| 982 | 1086 | my %args = %{$_[0]}; |
| 983 | 1087 | my ($parameter); |
| 984 | 1088 | my $oldprefix = $lineprefix; |
| 985 | − my $name = $args{'type'} . " " . $args{'struct'}; | |
| 986 | 1089 | |
| 987 | − print "\n\n.. c:type:: " . $name . "\n\n"; | |
| 1090 | + if ($sphinx_major < 3) { | |
| 1091 | + my $name = $args{'type'} . " " . $args{'struct'}; | |
| 1092 | + print "\n\n.. c:type:: " . $name . "\n\n"; | |
| 1093 | + } else { | |
| 1094 | + my $name = $args{'struct'}; | |
| 1095 | + print "\n\n.. c:struct:: " . $name . "\n\n"; | |
| 1096 | + } | |
| 988 | 1097 | print_lineno($declaration_start_line); |
| 989 | 1098 | $lineprefix = " "; |
| 990 | 1099 | output_highlight_rst($args{'purpose'}); |
| @@ -1043,12 +1152,14 @@ sub output_declaration { · 52 unmodified lines | ||
| 1043 | 1152 | my $name = shift; |
| 1044 | 1153 | my $functype = shift; |
| 1045 | 1154 | my $func = "output_${functype}_$output_mode"; |
| 1155 | + | |
| 1156 | + return if (defined($nosymbol_table{$name})); | |
| 1157 | + | |
| 1046 | 1158 | if (($output_selection == OUTPUT_ALL) || |
| 1047 | 1159 | (($output_selection == OUTPUT_INCLUDE || |
| 1048 | 1160 | $output_selection == OUTPUT_EXPORTED) && |
| 1049 | 1161 | defined($function_table{$name})) || |
| 1050 | − (($output_selection == OUTPUT_EXCLUDE || | |
| 1051 | − $output_selection == OUTPUT_INTERNAL) && | |
| 1162 | + ($output_selection == OUTPUT_INTERNAL && | |
| 1052 | 1163 | !($functype eq "function" && defined($function_table{$name})))) |
| 1053 | 1164 | { |
| 1054 | 1165 | &$func(@_); |
| @@ -1229,6 +1340,8 @@ sub show_warnings($$) { · 174 unmodified lines | ||
| 1229 | 1340 | my $functype = shift; |
| 1230 | 1341 | my $name = shift; |
| 1231 | 1342 | |
| 1343 | + return 0 if (defined($nosymbol_table{$name})); | |
| 1344 | + | |
| 1232 | 1345 | return 1 if ($output_selection == OUTPUT_ALL); |
| 1233 | 1346 | |
| 1234 | 1347 | if ($output_selection == OUTPUT_EXPORTED) { |
| @@ -1252,27 +1365,28 @@ sub show_warnings($$) { · 17 unmodified lines | ||
| 1252 | 1365 | return 0; |
| 1253 | 1366 | } |
| 1254 | 1367 | } |
| 1255 | − if ($output_selection == OUTPUT_EXCLUDE) { | |
| 1256 | − if (!defined($function_table{$name})) { | |
| 1257 | − return 1; | |
| 1258 | − } else { | |
| 1259 | − return 0; | |
| 1260 | − } | |
| 1261 | − } | |
| 1262 | 1368 | die("Please add the new output type at show_warnings()"); |
| 1263 | 1369 | } |
| 1264 | 1370 | |
| 1265 | 1371 | sub dump_enum($$) { |
| 1266 | 1372 | my $x = shift; |
| 1267 | 1373 | my $file = shift; |
| 1374 | + my $members; | |
| 1375 | + | |
| 1268 | 1376 | |
| 1269 | 1377 | $x =~ s@/\*.*?\*/@@gos; # strip comments. |
| 1270 | 1378 | # strip #define macros inside enums |
| 1271 | 1379 | $x =~ s@#\s*((define|ifdef)\s+|endif)[^;]*;@@gos; |
| 1272 | 1380 | |
| 1273 | − if ($x =~ /enum\s+(\w*)\s*\{(.*)\}/) { | |
| 1381 | + if ($x =~ /typedef\s+enum\s*\{(.*)\}\s*(\w*)\s*;/) { | |
| 1382 | + $declaration_name = $2; | |
| 1383 | + $members = $1; | |
| 1384 | + } elsif ($x =~ /enum\s+(\w*)\s*\{(.*)\}/) { | |
| 1274 | 1385 | $declaration_name = $1; |
| 1275 | − my $members = $2; | |
| 1386 | + $members = $2; | |
| 1387 | + } | |
| 1388 | + | |
| 1389 | + if ($declaration_name) { | |
| 1276 | 1390 | my %_members; |
| 1277 | 1391 | |
| 1278 | 1392 | $members =~ s/\s+$//; |
| @@ -1307,8 +1421,7 @@ sub dump_enum($$) { · 28 unmodified lines | ||
| 1307 | 1421 | 'sections' => \%sections, |
| 1308 | 1422 | 'purpose' => $declaration_purpose |
| 1309 | 1423 | }); |
| 1310 | − } | |
| 1311 | − else { | |
| 1424 | + } else { | |
| 1312 | 1425 | print STDERR "${file}:$.: error: Cannot parse enum!\n"; |
| 1313 | 1426 | ++$errors; |
| 1314 | 1427 | } |
| @@ -1403,7 +1516,7 @@ sub create_parameterlist($$$$) { · 88 unmodified lines | ||
| 1403 | 1516 | # Treat preprocessor directive as a typeless variable just to fill |
| 1404 | 1517 | # corresponding data structures "correctly". Catch it later in |
| 1405 | 1518 | # output_* subs. |
| 1406 | − push_parameter($arg, "", $file); | |
| 1519 | + push_parameter($arg, "", "", $file); | |
| 1407 | 1520 | } elsif ($arg =~ m/\(.+\)\s*\(/) { |
| 1408 | 1521 | # pointer-to-function |
| 1409 | 1522 | $arg =~ tr/#/,/; |
| @@ -1412,7 +1525,7 @@ sub create_parameterlist($$$$) { · 2 unmodified lines | ||
| 1412 | 1525 | $type = $arg; |
| 1413 | 1526 | $type =~ s/([^\(]+\(\*?)\s*$param/$1/; |
| 1414 | 1527 | save_struct_actual($param); |
| 1415 | − push_parameter($param, $type, $file, $declaration_name); | |
| 1528 | + push_parameter($param, $type, $arg, $file, $declaration_name); | |
| 1416 | 1529 | } elsif ($arg) { |
| 1417 | 1530 | $arg =~ s/\s*:\s*/:/g; |
| 1418 | 1531 | $arg =~ s/\s*\[/\[/g; |
| @@ -1437,26 +1550,28 @@ sub create_parameterlist($$$$) { · 18 unmodified lines | ||
| 1437 | 1550 | foreach $param (@args) { |
| 1438 | 1551 | if ($param =~ m/^(\*+)\s*(.*)/) { |
| 1439 | 1552 | save_struct_actual($2); |
| 1440 | − push_parameter($2, "$type $1", $file, $declaration_name); | |
| 1553 | + | |
| 1554 | + push_parameter($2, "$type $1", $arg, $file, $declaration_name); | |
| 1441 | 1555 | } |
| 1442 | 1556 | elsif ($param =~ m/(.*?):(\d+)/) { |
| 1443 | 1557 | if ($type ne "") { # skip unnamed bit-fields |
| 1444 | 1558 | save_struct_actual($1); |
| 1445 | − push_parameter($1, "$type:$2", $file, $declaration_name) | |
| 1559 | + push_parameter($1, "$type:$2", $arg, $file, $declaration_name) | |
| 1446 | 1560 | } |
| 1447 | 1561 | } |
| 1448 | 1562 | else { |
| 1449 | 1563 | save_struct_actual($param); |
| 1450 | − push_parameter($param, $type, $file, $declaration_name); | |
| 1564 | + push_parameter($param, $type, $arg, $file, $declaration_name); | |
| 1451 | 1565 | } |
| 1452 | 1566 | } |
| 1453 | 1567 | } |
| 1454 | 1568 | } |
| 1455 | 1569 | } |
| 1456 | 1570 | |
| 1457 | −sub push_parameter($$$$) { | |
| 1571 | +sub push_parameter($$$$$) { | |
| 1458 | 1572 | my $param = shift; |
| 1459 | 1573 | my $type = shift; |
| 1574 | + my $org_arg = shift; | |
| 1460 | 1575 | my $file = shift; |
| 1461 | 1576 | my $declaration_name = shift; |
| 1462 | 1577 | |
| @@ -1520,8 +1635,8 @@ sub push_parameter($$$$) { · 57 unmodified lines | ||
| 1520 | 1635 | # "[blah" in a parameter string; |
| 1521 | 1636 | ###$param =~ s/\s*//g; |
| 1522 | 1637 | push @parameterlist, $param; |
| 1523 | − $type =~ s/\s\s+/ /g; | |
| 1524 | − $parametertypes{$param} = $type; | |
| 1638 | + $org_arg =~ s/\s\s+/ /g; | |
| 1639 | + $parametertypes{$param} = $org_arg; | |
| 1525 | 1640 | } |
| 1526 | 1641 | |
| 1527 | 1642 | sub check_sections($$$$$) { |
| @@ -1595,7 +1710,7 @@ sub dump_function($$) { · 67 unmodified lines | ||
| 1595 | 1710 | my $file = shift; |
| 1596 | 1711 | my $noret = 0; |
| 1597 | 1712 | |
| 1598 | − print_lineno($.); | |
| 1713 | + print_lineno($new_start_line); | |
| 1599 | 1714 | |
| 1600 | 1715 | $prototype =~ s/^static +//; |
| 1601 | 1716 | $prototype =~ s/^extern +//; |
| @@ -1672,30 +1787,48 @@ sub dump_function($$) { · 70 unmodified lines | ||
| 1672 | 1787 | return; |
| 1673 | 1788 | } |
| 1674 | 1789 | |
| 1675 | − my $prms = join " ", @parameterlist; | |
| 1676 | − check_sections($file, $declaration_name, "function", $sectcheck, $prms); | |
| 1790 | + my $prms = join " ", @parameterlist; | |
| 1791 | + check_sections($file, $declaration_name, "function", $sectcheck, $prms); | |
| 1677 | 1792 | |
| 1678 | − # This check emits a lot of warnings at the moment, because many | |
| 1679 | − # functions don't have a 'Return' doc section. So until the number | |
| 1680 | − # of warnings goes sufficiently down, the check is only performed in | |
| 1681 | − # verbose mode. | |
| 1682 | − # TODO: always perform the check. | |
| 1683 | − if ($verbose && !$noret) { | |
| 1684 | − check_return_section($file, $declaration_name, $return_type); | |
| 1685 | − } | |
| 1793 | + # This check emits a lot of warnings at the moment, because many | |
| 1794 | + # functions don't have a 'Return' doc section. So until the number | |
| 1795 | + # of warnings goes sufficiently down, the check is only performed in | |
| 1796 | + # verbose mode. | |
| 1797 | + # TODO: always perform the check. | |
| 1798 | + if ($verbose && !$noret) { | |
| 1799 | + check_return_section($file, $declaration_name, $return_type); | |
| 1800 | + } | |
| 1686 | 1801 | |
| 1687 | − output_declaration($declaration_name, | |
| 1688 | − 'function', | |
| 1689 | − {'function' => $declaration_name, | |
| 1690 | − 'module' => $modulename, | |
| 1691 | − 'functiontype' => $return_type, | |
| 1692 | − 'parameterlist' => \@parameterlist, | |
| 1693 | − 'parameterdescs' => \%parameterdescs, | |
| 1694 | − 'parametertypes' => \%parametertypes, | |
| 1695 | − 'sectionlist' => \@sectionlist, | |
| 1696 | − 'sections' => \%sections, | |
| 1697 | − 'purpose' => $declaration_purpose | |
| 1698 | − }); | |
| 1802 | + # The function parser can be called with a typedef parameter. | |
| 1803 | + # Handle it. | |
| 1804 | + if ($return_type =~ /typedef/) { | |
| 1805 | + output_declaration($declaration_name, | |
| 1806 | + 'function', | |
| 1807 | + {'function' => $declaration_name, | |
| 1808 | + 'typedef' => 1, | |
| 1809 | + 'module' => $modulename, | |
| 1810 | + 'functiontype' => $return_type, | |
| 1811 | + 'parameterlist' => \@parameterlist, | |
| 1812 | + 'parameterdescs' => \%parameterdescs, | |
| 1813 | + 'parametertypes' => \%parametertypes, | |
| 1814 | + 'sectionlist' => \@sectionlist, | |
| 1815 | + 'sections' => \%sections, | |
| 1816 | + 'purpose' => $declaration_purpose | |
| 1817 | + }); | |
| 1818 | + } else { | |
| 1819 | + output_declaration($declaration_name, | |
| 1820 | + 'function', | |
| 1821 | + {'function' => $declaration_name, | |
| 1822 | + 'module' => $modulename, | |
| 1823 | + 'functiontype' => $return_type, | |
| 1824 | + 'parameterlist' => \@parameterlist, | |
| 1825 | + 'parameterdescs' => \%parameterdescs, | |
| 1826 | + 'parametertypes' => \%parametertypes, | |
| 1827 | + 'sectionlist' => \@sectionlist, | |
| 1828 | + 'sections' => \%sections, | |
| 1829 | + 'purpose' => $declaration_purpose | |
| 1830 | + }); | |
| 1831 | + } | |
| 1699 | 1832 | } |
| 1700 | 1833 | |
| 1701 | 1834 | sub reset_state { |
| @@ -1873,6 +2006,7 @@ sub process_export_file($) { · 171 unmodified lines | ||
| 1873 | 2006 | |
| 1874 | 2007 | while (<IN>) { |
| 1875 | 2008 | if (/$export_symbol/) { |
| 2009 | + next if (defined($nosymbol_table{$2})); | |
| 1876 | 2010 | $function_table{$2} = 1; |
| 1877 | 2011 | } |
| 1878 | 2012 | } |
| @@ -1904,7 +2038,7 @@ sub process_name($$) { · 25 unmodified lines | ||
| 1904 | 2038 | if (/$doc_block/o) { |
| 1905 | 2039 | $state = STATE_DOCBLOCK; |
| 1906 | 2040 | $contents = ""; |
| 1907 | − $new_start_line = $. + 1; | |
| 2041 | + $new_start_line = $.; | |
| 1908 | 2042 | |
| 1909 | 2043 | if ( $1 eq "" ) { |
| 1910 | 2044 | $section = $section_intro; |
| @@ -1987,6 +2121,7 @@ sub process_body($$) { · 76 unmodified lines | ||
| 1987 | 2121 | if ($state == STATE_BODY_WITH_BLANK_LINE && /^\s*\*\s?\S/) { |
| 1988 | 2122 | dump_section($file, $section, $contents); |
| 1989 | 2123 | $section = $section_default; |
| 2124 | + $new_start_line = $.; | |
| 1990 | 2125 | $contents = ""; |
| 1991 | 2126 | } |
| 1992 | 2127 | |
| @@ -2042,6 +2177,7 @@ sub process_body($$) { · 49 unmodified lines | ||
| 2042 | 2177 | $prototype = ""; |
| 2043 | 2178 | $state = STATE_PROTO; |
| 2044 | 2179 | $brcount = 0; |
| 2180 | + $new_start_line = $. + 1; | |
| 2045 | 2181 | } elsif (/$doc_content/) { |
| 2046 | 2182 | if ($1 eq "") { |
| 2047 | 2183 | if ($section eq $section_context) { |
| @@ -2189,7 +2325,7 @@ sub process_file($) { · 141 unmodified lines | ||
| 2189 | 2325 | |
| 2190 | 2326 | $file = map_filename($orig_file); |
| 2191 | 2327 | |
| 2192 | − if (!open(IN,"<$file")) { | |
| 2328 | + if (!open(IN_FILE,"<$file")) { | |
| 2193 | 2329 | print STDERR "Error: Cannot open file $file\n"; |
| 2194 | 2330 | ++$errors; |
| 2195 | 2331 | return; |
| @@ -2198,9 +2334,9 @@ sub process_file($) { · 2 unmodified lines | ||
| 2198 | 2334 | $. = 1; |
| 2199 | 2335 | |
| 2200 | 2336 | $section_counter = 0; |
| 2201 | − while (<IN>) { | |
| 2337 | + while (<IN_FILE>) { | |
| 2202 | 2338 | while (s/\\\s*$//) { |
| 2203 | − $_ .= <IN>; | |
| 2339 | + $_ .= <IN_FILE>; | |
| 2204 | 2340 | } |
| 2205 | 2341 | # Replace tabs by spaces |
| 2206 | 2342 | while ($_ =~ s/\t+/' ' x (length($&) * 8 - length($`) % 8)/e) {}; |
| @@ -2232,9 +2368,14 @@ sub process_file($) { · 25 unmodified lines | ||
| 2232 | 2368 | print STDERR "${file}:1: warning: no structured comments found\n"; |
| 2233 | 2369 | } |
| 2234 | 2370 | } |
| 2371 | + close IN_FILE; | |
| 2235 | 2372 | } |
| 2236 | 2373 | |
| 2237 | 2374 | |
| 2375 | +if ($output_mode eq "rst") { | |
| 2376 | + get_sphinx_version() if (!$sphinx_major); | |
| 2377 | +} | |
| 2378 | + | |
| 2238 | 2379 | $kernelversion = get_kernel_version(); |
| 2239 | 2380 | |
| 2240 | 2381 | # generate a sequence of code that will splice in highlighting information |