Lines Matching +full:memory +full:- +full:mapped
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
13 VIDIOC_REQBUFS - Initiate Memory Mapping, User Pointer I/O or DMA buffer I/O
34 This ioctl is used to initiate :ref:`memory mapped <mmap>`,
36 Memory mapped buffers are located in device memory and must be allocated
37 with this ioctl before they can be mapped into the application's address
48 the desired number of buffers, ``memory`` must be set to the requested
53 requested, even zero, when the driver runs out of free memory. A larger
62 buffers. Note that if any buffers are still mapped or exported via DMABUF,
78 .. flat-table:: struct v4l2_requestbuffers
79 :header-rows: 0
80 :stub-columns: 0
83 * - __u32
84 - ``count``
85 - The number of buffers requested or granted.
86 * - __u32
87 - ``type``
88 - Type of the stream or buffers, this is the same as the struct
91 * - __u32
92 - ``memory``
93 - Applications set this field to ``V4L2_MEMORY_MMAP``,
96 * - __u32
97 - ``capabilities``
98 - Set by the driver. If 0, then the driver doesn't support
104 If you want to query the capabilities with a minimum of side-effects,
105 then this can be called with ``count`` set to 0, ``memory`` set to
109 * - __u8
110 - ``flags``
111 - Specifies additional buffer management attributes.
112 See :ref:`memory-flags`.
113 * - __u8
114 - ``reserved``\ [3]
115 - Reserved for future extensions.
117 .. _v4l2-buf-capabilities:
118 .. _V4L2-BUF-CAP-SUPPORTS-MMAP:
119 .. _V4L2-BUF-CAP-SUPPORTS-USERPTR:
120 .. _V4L2-BUF-CAP-SUPPORTS-DMABUF:
121 .. _V4L2-BUF-CAP-SUPPORTS-REQUESTS:
122 .. _V4L2-BUF-CAP-SUPPORTS-ORPHANED-BUFS:
123 .. _V4L2-BUF-CAP-SUPPORTS-M2M-HOLD-CAPTURE-BUF:
124 .. _V4L2-BUF-CAP-SUPPORTS-MMAP-CACHE-HINTS:
125 .. _V4L2-BUF-CAP-SUPPORTS-MAX-NUM-BUFFERS:
126 .. _V4L2-BUF-CAP-SUPPORTS-REMOVE-BUFS:
128 .. flat-table:: V4L2 Buffer Capabilities Flags
129 :header-rows: 0
130 :stub-columns: 0
133 * - ``V4L2_BUF_CAP_SUPPORTS_MMAP``
134 - 0x00000001
135 - This buffer type supports the ``V4L2_MEMORY_MMAP`` streaming mode.
136 * - ``V4L2_BUF_CAP_SUPPORTS_USERPTR``
137 - 0x00000002
138 - This buffer type supports the ``V4L2_MEMORY_USERPTR`` streaming mode.
139 * - ``V4L2_BUF_CAP_SUPPORTS_DMABUF``
140 - 0x00000004
141 - This buffer type supports the ``V4L2_MEMORY_DMABUF`` streaming mode.
142 * - ``V4L2_BUF_CAP_SUPPORTS_REQUESTS``
143 - 0x00000008
144 - This buffer type supports :ref:`requests <media-request-api>`.
145 * - ``V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS``
146 - 0x00000010
147 - The kernel allows calling :ref:`VIDIOC_REQBUFS` while buffers are still
148 mapped or exported via DMABUF. These orphaned buffers will be freed
150 * - ``V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF``
151 - 0x00000020
152 - Only valid for stateless decoders. If set, then userspace can set the
155 * - ``V4L2_BUF_CAP_SUPPORTS_MMAP_CACHE_HINTS``
156 - 0x00000040
157 - This capability is set by the driver to indicate that the queue supports
158 cache and memory management hints. However, it's only valid when the
159 queue is used for :ref:`memory mapping <mmap>` streaming I/O. See
160 :ref:`V4L2_BUF_FLAG_NO_CACHE_INVALIDATE <V4L2-BUF-FLAG-NO-CACHE-INVALIDATE>`,
161 :ref:`V4L2_BUF_FLAG_NO_CACHE_CLEAN <V4L2-BUF-FLAG-NO-CACHE-CLEAN>` and
162 :ref:`V4L2_MEMORY_FLAG_NON_COHERENT <V4L2-MEMORY-FLAG-NON-COHERENT>`.
163 * - ``V4L2_BUF_CAP_SUPPORTS_MAX_NUM_BUFFERS``
164 - 0x00000080
165 - If set, then the ``max_num_buffers`` field in ``struct v4l2_create_buffers``
167 * - ``V4L2_BUF_CAP_SUPPORTS_REMOVE_BUFS``
168 - 0x00000100
169 - If set, then ``VIDIOC_REMOVE_BUFS`` is supported.
171 .. _memory-flags:
172 .. _V4L2-MEMORY-FLAG-NON-COHERENT:
174 .. flat-table:: Memory Consistency Flags
175 :header-rows: 0
176 :stub-columns: 0
179 * - ``V4L2_MEMORY_FLAG_NON_COHERENT``
180 - 0x00000001
181 - A buffer is allocated either in coherent (it will be automatically
182 coherent between the CPU and the bus) or non-coherent memory. The
186 buffer. However, this requires extra care from the driver -- it must
187 guarantee memory consistency by issuing a cache flush/sync when
189 allocate the buffer in non-coherent memory. The flag takes effect
190 only if the buffer is used for :ref:`memory mapping <mmap>` I/O and the
192 <V4L2-BUF-CAP-SUPPORTS-MMAP-CACHE-HINTS>` capability.
201 On success 0 is returned, on error -1 and the ``errno`` variable is set
203 :ref:`Generic Error Codes <gen-errors>` chapter.
207 (``memory``) is not supported.