sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget//translations/zh_CN/driver-api/media/dtv-commonmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/zh_TW/driver-api/media/dtv-commonmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/it_IT/driver-api/media/dtv-commonmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ja_JP/driver-api/media/dtv-commonmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ko_KR/driver-api/media/dtv-commonmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/pt_BR/driver-api/media/dtv-commonmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/sp_SP/driver-api/media/dtv-commonmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhI/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common.rsthKubhsection)}(hhh](htitle)}(hDigital TV Common functionsh]hDigital TV Common functions}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h DVB devicesh]h DVB devices}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hBThose functions are responsible for handling the DVB device nodes.h]hBThose functions are responsible for handling the DVB device nodes.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singledvb_device_type (C enum)c.dvb_device_typehNtauh1hhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(hdvb_device_typeh]hdesc_signature_line)}(henum dvb_device_typeh](hdesc_sig_keyword)}(henumh]henum}(hj"hhhNhNubah}(h]h ]kah"]h$]h&]uh1j hjhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKubhdesc_sig_space)}(h h]h }(hj4hhhNhNubah}(h]h ]wah"]h$]h&]uh1j2hjhhhj1hKubh desc_name)}(hdvb_device_typeh]h desc_sig_name)}(hjh]hdvb_device_type}(hjKhhhNhNubah}(h]h ]nah"]h$]h&]uh1jIhjEubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jChjhhhj1hKubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1jsphinx_line_type declaratorhjhhhj1hKubah}(h]j ah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhj1hKhjhhubh desc_content)}(hhh]h)}(htype of the Digital TV deviceh]htype of the Digital TV device}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhK)hjwhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj1hKubeh}(h]h ](cenumeh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1jhhhhhNhNubh container)}(hXV**Constants** ``DVB_DEVICE_SEC`` Digital TV standalone Common Interface (CI) ``DVB_DEVICE_FRONTEND`` Digital TV frontend. ``DVB_DEVICE_DEMUX`` Digital TV demux. ``DVB_DEVICE_DVR`` Digital TV digital video record (DVR). ``DVB_DEVICE_CA`` Digital TV Conditional Access (CA). ``DVB_DEVICE_NET`` Digital TV network. ``DVB_DEVICE_VIDEO`` Digital TV video decoder. Deprecated. Used only on av7110-av. ``DVB_DEVICE_AUDIO`` Digital TV audio decoder. Deprecated. Used only on av7110-av. ``DVB_DEVICE_OSD`` Digital TV On Screen Display (OSD). Deprecated. Used only on av7110.h](h)}(h **Constants**h]hstrong)}(hjh]h Constants}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhK-hjubhdefinition_list)}(hhh](hdefinition_list_item)}(h?``DVB_DEVICE_SEC`` Digital TV standalone Common Interface (CI) h](hterm)}(h``DVB_DEVICE_SEC``h]hliteral)}(hjh]hDVB_DEVICE_SEC}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhK0hjubh definition)}(hhh]h)}(h+Digital TV standalone Common Interface (CI)h]h+Digital TV standalone Common Interface (CI)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK0hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK0hjubj)}(h-``DVB_DEVICE_FRONTEND`` Digital TV frontend. h](j)}(h``DVB_DEVICE_FRONTEND``h]j)}(hj h]hDVB_DEVICE_FRONTEND}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhK3hjubj)}(hhh]h)}(hDigital TV frontend.h]hDigital TV frontend.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK3hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK3hjubj)}(h'``DVB_DEVICE_DEMUX`` Digital TV demux. h](j)}(h``DVB_DEVICE_DEMUX``h]j)}(hjBh]hDVB_DEVICE_DEMUX}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhK6hj<ubj)}(hhh]h)}(hDigital TV demux.h]hDigital TV demux.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhK6hjXubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhjWhK6hjubj)}(h:``DVB_DEVICE_DVR`` Digital TV digital video record (DVR). h](j)}(h``DVB_DEVICE_DVR``h]j)}(hj{h]hDVB_DEVICE_DVR}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhK9hjuubj)}(hhh]h)}(h&Digital TV digital video record (DVR).h]h&Digital TV digital video record (DVR).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK9hjubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjhK9hjubj)}(h6``DVB_DEVICE_CA`` Digital TV Conditional Access (CA). h](j)}(h``DVB_DEVICE_CA``h]j)}(hjh]h DVB_DEVICE_CA}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhK`. ``minor`` devnode minor number. Major number is always DVB_MAJOR. ``id`` device ID number, inside the adapter ``readers`` Initialized by the caller. Each call to open() in Read Only mode decreases this counter by one. ``writers`` Initialized by the caller. Each call to open() in Read/Write mode decreases this counter by one. ``users`` Initialized by the caller. Each call to open() in any mode decreases this counter by one. ``wait_queue`` wait queue, used to wait for certain events inside one of the DVB API callers ``kernel_ioctl`` callback function used to handle ioctl calls from userspace. ``name`` Name to be used for the device at the Media Controller ``intf_devnode`` Pointer to media_intf_devnode. Used by the dvbdev core to store the MC device node interface ``tsout_num_entities`` Number of Transport Stream output entities ``entity`` pointer to struct media_entity associated with the device node ``tsout_entity`` array with MC entities associated to each TS output node ``pads`` pointer to struct media_pad associated with **entity**; ``tsout_pads`` array with the source pads for each **tsout_entity** ``priv`` private datah](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubjt)}(hXistruct dvb_device { struct list_head list_head; struct kref ref; const struct file_operations *fops; struct dvb_adapter *adapter; enum dvb_device_type type; int minor; u32 id; int readers; int writers; int users; wait_queue_head_t wait_queue; int (*kernel_ioctl)(struct file *file, unsigned int cmd, void *arg); #if defined(CONFIG_MEDIA_CONTROLLER_DVB); const char *name; struct media_intf_devnode *intf_devnode; unsigned tsout_num_entities; struct media_entity *entity, *tsout_entity; struct media_pad *pads, *tsout_pads; #endif; void *priv; };h]hXistruct dvb_device { struct list_head list_head; struct kref ref; const struct file_operations *fops; struct dvb_adapter *adapter; enum dvb_device_type type; int minor; u32 id; int readers; int writers; int users; wait_queue_head_t wait_queue; int (*kernel_ioctl)(struct file *file, unsigned int cmd, void *arg); #if defined(CONFIG_MEDIA_CONTROLLER_DVB); const char *name; struct media_intf_devnode *intf_devnode; unsigned tsout_num_entities; struct media_entity *entity, *tsout_entity; struct media_pad *pads, *tsout_pads; #endif; void *priv; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jshb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubj)}(hhh](j)}(h-``list_head`` List head with all DVB devices h](j)}(h ``list_head``h]j)}(hjh]h list_head}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubj)}(hhh]h)}(hList head with all DVB devicesh]hList head with all DVB devices}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h(``ref`` reference count for this device h](j)}(h``ref``h]j)}(hj h]href}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj ubj)}(hhh]h)}(hreference count for this deviceh]hreference count for this device}(hj4 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0 hKhj1 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj0 hKhjubj)}(h+``fops`` pointer to struct file_operations h](j)}(h``fops``h]j)}(hjT h]hfops}(hjV hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjN ubj)}(hhh]h)}(h!pointer to struct file_operationsh]h!pointer to struct file_operations}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1hhji hKhjj ubah}(h]h ]h"]h$]h&]uh1jhjN ubeh}(h]h ]h"]h$]h&]uh1jhji hKhjubj)}(h?``adapter`` pointer to the adapter that holds this device node h](j)}(h ``adapter``h]j)}(hj h]hadapter}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj ubj)}(hhh]h)}(h2pointer to the adapter that holds this device nodeh]h2pointer to the adapter that holds this device node}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubj)}(h]``type`` type of the device, as defined by :c:type:`enum dvb_device_type `. h](j)}(h``type``h]j)}(hj h]htype}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj ubj)}(hhh]h)}(hStype of the device, as defined by :c:type:`enum dvb_device_type `.h](h"type of the device, as defined by }(hj hhhNhNubh)}(h0:c:type:`enum dvb_device_type `h]j)}(hj h]henum dvb_device_type}(hj hhhNhNubah}(h]h ](xrefjc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocdriver-api/media/dtv-common refdomainjreftypetype refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]sb reftargetdvb_device_typeuh1hhj hKhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubj)}(hB``minor`` devnode minor number. Major number is always DVB_MAJOR. h](j)}(h ``minor``h]j)}(hj- h]hminor}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj' ubj)}(hhh]h)}(h7devnode minor number. Major number is always DVB_MAJOR.h]h7devnode minor number. Major number is always DVB_MAJOR.}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB hKhjC ubah}(h]h ]h"]h$]h&]uh1jhj' ubeh}(h]h ]h"]h$]h&]uh1jhjB hKhjubj)}(h,``id`` device ID number, inside the adapter h](j)}(h``id``h]j)}(hjf h]hid}(hjh hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj` ubj)}(hhh]h)}(h$device ID number, inside the adapterh]h$device ID number, inside the adapter}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{ hKhj| ubah}(h]h ]h"]h$]h&]uh1jhj` ubeh}(h]h ]h"]h$]h&]uh1jhj{ hKhjubj)}(hl``readers`` Initialized by the caller. Each call to open() in Read Only mode decreases this counter by one. h](j)}(h ``readers``h]j)}(hj h]hreaders}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj ubj)}(hhh]h)}(h_Initialized by the caller. Each call to open() in Read Only mode decreases this counter by one.h]h_Initialized by the caller. Each call to open() in Read Only mode decreases this counter by one.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubj)}(hm``writers`` Initialized by the caller. Each call to open() in Read/Write mode decreases this counter by one. h](j)}(h ``writers``h]j)}(hj h]hwriters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj ubj)}(hhh]h)}(h`Initialized by the caller. Each call to open() in Read/Write mode decreases this counter by one.h]h`Initialized by the caller. Each call to open() in Read/Write mode decreases this counter by one.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubj)}(hd``users`` Initialized by the caller. Each call to open() in any mode decreases this counter by one. h](j)}(h ``users``h]j)}(hj h]husers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj ubj)}(hhh]h)}(hYInitialized by the caller. Each call to open() in any mode decreases this counter by one.h]hYInitialized by the caller. Each call to open() in any mode decreases this counter by one.}(hj, hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj) ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj( hKhjubj)}(h]``wait_queue`` wait queue, used to wait for certain events inside one of the DVB API callers h](j)}(h``wait_queue``h]j)}(hjM h]h wait_queue}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjK ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjG ubj)}(hhh]h)}(hMwait queue, used to wait for certain events inside one of the DVB API callersh]hMwait queue, used to wait for certain events inside one of the DVB API callers}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjc ubah}(h]h ]h"]h$]h&]uh1jhjG ubeh}(h]h ]h"]h$]h&]uh1jhjb hKhjubj)}(hN``kernel_ioctl`` callback function used to handle ioctl calls from userspace. h](j)}(h``kernel_ioctl``h]j)}(hj h]h kernel_ioctl}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj ubj)}(hhh]h)}(hpointer to struct media_entity associated with the device nodeh]h>pointer to struct media_entity associated with the device node}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhjf ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubj)}(hJ``tsout_entity`` array with MC entities associated to each TS output node h](j)}(h``tsout_entity``h]j)}(hj h]h tsout_entity}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj ubj)}(hhh]h)}(h8array with MC entities associated to each TS output nodeh]h8array with MC entities associated to each TS output node}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubj)}(hA``pads`` pointer to struct media_pad associated with **entity**; h](j)}(h``pads``h]j)}(hj h]hpads}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj ubj)}(hhh]h)}(h7pointer to struct media_pad associated with **entity**;h](h,pointer to struct media_pad associated with }(hj hhhNhNubj)}(h **entity**h]hentity}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh;}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubj)}(hD``tsout_pads`` array with the source pads for each **tsout_entity** h](j)}(h``tsout_pads``h]j)}(hj) h]h tsout_pads}(hj+ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj' ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj# ubj)}(hhh]h)}(h4array with the source pads for each **tsout_entity**h](h$array with the source pads for each }(hjB hhhNhNubj)}(h**tsout_entity**h]h tsout_entity}(hjJ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB ubeh}(h]h ]h"]h$]h&]uh1hhj> hKhj? ubah}(h]h ]h"]h$]h&]uh1jhj# ubeh}(h]h ]h"]h$]h&]uh1jhj> hKhjubj)}(h``priv`` private datah](j)}(h``priv``h]j)}(hjp h]hpriv}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjn ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjj ubj)}(hhh]h)}(h private datah]h private data}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj ubah}(h]h ]h"]h$]h&]uh1jhjj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhhhhubh)}(hThis structure is used by the DVB core (frontend, CA, net, demux) in order to create the device nodes. Usually, driver should not initialize this struct diretly.h]hThis structure is used by the DVB core (frontend, CA, net, demux) in order to create the device nodes. Usually, driver should not initialize this struct diretly.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhhhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvbdevfops_node (C struct)c.dvbdevfops_nodehNtauh1hhhhhhNhNubj)}(hhh](j)}(hdvbdevfops_nodeh]j)}(hstruct dvbdevfops_nodeh](j!)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj hhhj hKubjD)}(hdvbdevfops_nodeh]jJ)}(hj h]hdvbdevfops_node}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj hhhj hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj hhhj hKubah}(h]j ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj hKhj hhubjv)}(hhh]h)}(h(fops nodes registered in dvbdevfops_listh]h(fops nodes registered in dvbdevfops_list}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj0hhubah}(h]h ]h"]h$]h&]uh1juhj hhhj hKubeh}(h]h ](jstructeh"]h$]h&]jjjjKjjKjjjuh1jhhhhhNhNubj)}(hX**Definition**:: struct dvbdevfops_node { struct file_operations *fops; enum dvb_device_type type; const struct dvb_device *template; struct list_head list_head; }; **Members** ``fops`` Dynamically allocated fops for ->owner registration ``type`` type of dvb_device ``template`` dvb_device used for registration ``list_head`` list_head for dvbdevfops_listh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubh:}(hjShhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjOubjt)}(hstruct dvbdevfops_node { struct file_operations *fops; enum dvb_device_type type; const struct dvb_device *template; struct list_head list_head; };h]hstruct dvbdevfops_node { struct file_operations *fops; enum dvb_device_type type; const struct dvb_device *template; struct list_head list_head; };}hjpsbah}(h]h ]h"]h$]h&]hhuh1jshb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjOubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjOubj)}(hhh](j)}(h=``fops`` Dynamically allocated fops for ->owner registration h](j)}(h``fops``h]j)}(hjh]hfops}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubj)}(hhh]h)}(h3Dynamically allocated fops for ->owner registrationh]h3Dynamically allocated fops for ->owner registration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h``type`` type of dvb_device h](j)}(h``type``h]j)}(hjh]htype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubj)}(hhh]h)}(htype of dvb_deviceh]htype of dvb_device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h.``template`` dvb_device used for registration h](j)}(h ``template``h]j)}(hjh]htemplate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj ubj)}(hhh]h)}(h dvb_device used for registrationh]h dvb_device used for registration}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hKhj(ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj'hKhjubj)}(h+``list_head`` list_head for dvbdevfops_listh](j)}(h ``list_head``h]j)}(hjKh]h list_head}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjEubj)}(hhh]h)}(hlist_head for dvbdevfops_listh]hlist_head for dvbdevfops_list}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjaubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhj`hKhjubeh}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_device_get (C function)c.dvb_device_gethNtauh1hhhhhhNhNubj)}(hhh](j)}(h>struct dvb_device * dvb_device_get (struct dvb_device *dvbdev)h]j)}(hhhhjWhKubah}(h]j9ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjWhKhj;hhubjv)}(hhh]h)}(hDecrease dvb_device referenceh]hDecrease dvb_device reference}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjhhubah}(h]h ]h"]h$]h&]uh1juhj;hhhjWhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj!jj!jjjuh1jhhhhhNhNubj)}(hL**Parameters** ``struct dvb_device *dvbdev`` pointer to struct dvb_deviceh](h)}(h**Parameters**h]j)}(hj+h]h Parameters}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj%ubj)}(hhh]j)}(h:``struct dvb_device *dvbdev`` pointer to struct dvb_deviceh](j)}(h``struct dvb_device *dvbdev``h]j)}(hjJh]hstruct dvb_device *dvbdev}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjDubj)}(hhh]h)}(hpointer to struct dvb_deviceh]hpointer to struct dvb_device}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj`ubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhj_hKhjAubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j !dvb_register_adapter (C function)c.dvb_register_adapterhNtauh1hhhhhhNhNubj)}(hhh](j)}(hint dvb_register_adapter (struct dvb_adapter *adap, const char *name, struct module *module, struct device *device, short *adapter_nums)h]j)}(hint dvb_register_adapter(struct dvb_adapter *adap, const char *name, struct module *module, struct device *device, short *adapter_nums)h](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKubjD)}(hdvb_register_adapterh]jJ)}(hdvb_register_adapterh]hdvb_register_adapter}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKubj)}(ho(struct dvb_adapter *adap, const char *name, struct module *module, struct device *device, short *adapter_nums)h](j%)}(hstruct dvb_adapter *adaph](j!)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h dvb_adapterh]h dvb_adapter}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]j)}jjsbc.dvb_register_adapterasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hadaph]hadap}(hj:hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hconst char *nameh](j!)}(hconsth]hconst}(hjShhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjOubj3)}(h h]h }(hjahhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjOubjG)}(hcharh]hchar}(hjohhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjOubj3)}(h h]h }(hj}hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjOubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubjJ)}(hnameh]hname}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjOubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct module *moduleh](j!)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hmoduleh]hmodule}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]jc.dvb_register_adapterasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hmoduleh]hmodule}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct device *deviceh](j!)}(hjh]hstruct}(hj!hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj.hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hdeviceh]hdevice}(hj?hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNj j )}j ]jc.dvb_register_adapterasbuh1hhjubj3)}(h h]h }(hj]hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hdeviceh]hdevice}(hjxhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hshort *adapter_numsh](jG)}(hshorth]hshort}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(h adapter_numsh]h adapter_nums}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]h)}(hRegisters a new DVB adapterh]hRegisters a new DVB adapter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhhhNhNubj)}(hX**Parameters** ``struct dvb_adapter *adap`` pointer to struct dvb_adapter ``const char *name`` Adapter's name ``struct module *module`` initialized with THIS_MODULE at the caller ``struct device *device`` pointer to struct device that corresponds to the device driver ``short *adapter_nums`` Array with a list of the numbers for **dvb_register_adapter**; to select among them. Typically, initialized with: DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nums)h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubj)}(hhh](j)}(h;``struct dvb_adapter *adap`` pointer to struct dvb_adapter h](j)}(h``struct dvb_adapter *adap``h]j)}(hj%h]hstruct dvb_adapter *adap}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubj)}(hhh]h)}(hpointer to struct dvb_adapterh]hpointer to struct dvb_adapter}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hKhj;ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj:hKhjubj)}(h$``const char *name`` Adapter's name h](j)}(h``const char *name``h]j)}(hj^h]hconst char *name}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjXubj)}(hhh]h)}(hAdapter's nameh]hAdapter’s name}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshKhjtubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjshKhjubj)}(hE``struct module *module`` initialized with THIS_MODULE at the caller h](j)}(h``struct module *module``h]j)}(hjh]hstruct module *module}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubj)}(hhh]h)}(h*initialized with THIS_MODULE at the callerh]h*initialized with THIS_MODULE at the caller}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hY``struct device *device`` pointer to struct device that corresponds to the device driver h](j)}(h``struct device *device``h]j)}(hjh]hstruct device *device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubj)}(hhh]h)}(h>pointer to struct device that corresponds to the device driverh]h>pointer to struct device that corresponds to the device driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h``short *adapter_nums`` Array with a list of the numbers for **dvb_register_adapter**; to select among them. Typically, initialized with: DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nums)h](j)}(h``short *adapter_nums``h]j)}(hj h]hshort *adapter_nums}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubj)}(hhh]h)}(hArray with a list of the numbers for **dvb_register_adapter**; to select among them. Typically, initialized with: DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nums)h](h%Array with a list of the numbers for }(hj"hhhNhNubj)}(h**dvb_register_adapter**h]hdvb_register_adapter}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubh`; to select among them. Typically, initialized with: DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nums)}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j #dvb_unregister_adapter (C function)c.dvb_unregister_adapterhNtauh1hhhhhhNhNubj)}(hhh](j)}(h5int dvb_unregister_adapter (struct dvb_adapter *adap)h]j)}(h4int dvb_unregister_adapter(struct dvb_adapter *adap)h](jG)}(hinth]hint}(hjuhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjqhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjqhhhjhKubjD)}(hdvb_unregister_adapterh]jJ)}(hdvb_unregister_adapterh]hdvb_unregister_adapter}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjqhhhjhKubj)}(h(struct dvb_adapter *adap)h]j%)}(hstruct dvb_adapter *adaph](j!)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h dvb_adapterh]h dvb_adapter}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]j)}jjsbc.dvb_unregister_adapterasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hadaph]hadap}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubah}(h]h ]h"]h$]h&]hhuh1jhjqhhhjhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjmhhhjhKubah}(h]jhah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjjhhubjv)}(hhh]h)}(hUnregisters a DVB adapterh]hUnregisters a DVB adapter}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj2hhubah}(h]h ]h"]h$]h&]uh1juhjjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjMjjMjjjuh1jhhhhhNhNubj)}(hL**Parameters** ``struct dvb_adapter *adap`` pointer to struct dvb_adapterh](h)}(h**Parameters**h]j)}(hjWh]h Parameters}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjQubj)}(hhh]j)}(h:``struct dvb_adapter *adap`` pointer to struct dvb_adapterh](j)}(h``struct dvb_adapter *adap``h]j)}(hjvh]hstruct dvb_adapter *adap}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjpubj)}(hhh]h)}(hpointer to struct dvb_adapterh]hpointer to struct dvb_adapter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjhKhjmubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j  dvb_register_device (C function)c.dvb_register_devicehNtauh1hhhhhhNhNubj)}(hhh](j)}(hint dvb_register_device (struct dvb_adapter *adap, struct dvb_device **pdvbdev, const struct dvb_device *template, void *priv, enum dvb_device_type type, int demux_sink_pads)h]j)}(hint dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev, const struct dvb_device *template, void *priv, enum dvb_device_type type, int demux_sink_pads)h](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKubjD)}(hdvb_register_deviceh]jJ)}(hdvb_register_deviceh]hdvb_register_device}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKubj)}(h(struct dvb_adapter *adap, struct dvb_device **pdvbdev, const struct dvb_device *template, void *priv, enum dvb_device_type type, int demux_sink_pads)h](j%)}(hstruct dvb_adapter *adaph](j!)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubh)}(hhh]jJ)}(h dvb_adapterh]h dvb_adapter}(hj+hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-modnameN classnameNj j )}j ]j)}jjsbc.dvb_register_deviceasbuh1hhj ubj3)}(h h]h }(hjKhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj ubj)}(hjh]h*}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubjJ)}(hadaph]hadap}(hjfhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct dvb_device **pdvbdevh](j!)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj{ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj{ubh)}(hhh]jJ)}(h dvb_deviceh]h dvb_device}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]jGc.dvb_register_deviceasbuh1hhj{ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj{ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubjJ)}(hpdvbdevh]hpdvbdev}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj{ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h!const struct dvb_device *templateh](j!)}(hjUh]hconst}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj!)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj$hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h dvb_deviceh]h dvb_device}(hj5hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj7modnameN classnameNj j )}j ]jGc.dvb_register_deviceasbuh1hhjubj3)}(h h]h }(hjShhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(htemplateh]htemplate}(hjnhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(h void *privh](jG)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hprivh]hpriv}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(henum dvb_device_type typeh](j!)}(hj$h]henum}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hdvb_device_typeh]hdvb_device_type}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]jGc.dvb_register_deviceasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(htypeh]htype}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hint demux_sink_padsh](jG)}(hinth]hint}(hj,hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj(ubj3)}(h h]h }(hj:hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj(ubjJ)}(hdemux_sink_padsh]hdemux_sink_pads}(hjHhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj(ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]h)}(hRegisters a new DVB deviceh]hRegisters a new DVB device}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjohhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhhhNhNubj)}(hX**Parameters** ``struct dvb_adapter *adap`` pointer to struct dvb_adapter ``struct dvb_device **pdvbdev`` pointer to the place where the new struct dvb_device will be stored ``const struct dvb_device *template`` Template used to create :c:type:`pdvbdev`; ``void *priv`` private data ``enum dvb_device_type type`` type of the device, as defined by :c:type:`enum dvb_device_type `. ``int demux_sink_pads`` Number of demux outputs, to be used to create the TS outputs via the Media Controller.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubj)}(hhh](j)}(h;``struct dvb_adapter *adap`` pointer to struct dvb_adapter h](j)}(h``struct dvb_adapter *adap``h]j)}(hjh]hstruct dvb_adapter *adap}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubj)}(hhh]h)}(hpointer to struct dvb_adapterh]hpointer to struct dvb_adapter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hd``struct dvb_device **pdvbdev`` pointer to the place where the new struct dvb_device will be stored h](j)}(h``struct dvb_device **pdvbdev``h]j)}(hjh]hstruct dvb_device **pdvbdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubj)}(hhh]h)}(hCpointer to the place where the new struct dvb_device will be storedh]hCpointer to the place where the new struct dvb_device will be stored}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hQ``const struct dvb_device *template`` Template used to create :c:type:`pdvbdev`; h](j)}(h%``const struct dvb_device *template``h]j)}(hj&h]h!const struct dvb_device *template}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj ubj)}(hhh]h)}(h*Template used to create :c:type:`pdvbdev`;h](hTemplate used to create }(hj?hhhNhNubh)}(h:c:type:`pdvbdev`h]j)}(hjIh]hpdvbdev}(hjKhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j pdvbdevuh1hhj;hKhj?ubh;}(hj?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj;hKhj<ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj;hKhjubj)}(h``void *priv`` private data h](j)}(h``void *priv``h]j)}(hjh]h void *priv}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj|ubj)}(hhh]h)}(h private datah]h private data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhj|ubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hr``enum dvb_device_type type`` type of the device, as defined by :c:type:`enum dvb_device_type `. h](j)}(h``enum dvb_device_type type``h]j)}(hjh]henum dvb_device_type type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjubj)}(hhh]h)}(hStype of the device, as defined by :c:type:`enum dvb_device_type `.h](h"type of the device, as defined by }(hjhhhNhNubh)}(h0:c:type:`enum dvb_device_type `h]j)}(hjh]henum dvb_device_type}(hjhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j dvb_device_typeuh1hhjhKhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hn``int demux_sink_pads`` Number of demux outputs, to be used to create the TS outputs via the Media Controller.h](j)}(h``int demux_sink_pads``h]j)}(hjh]hint demux_sink_pads}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjubj)}(hhh]h)}(hVNumber of demux outputs, to be used to create the TS outputs via the Media Controller.h]hVNumber of demux outputs, to be used to create the TS outputs via the Media Controller.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hMhj-ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj,hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_remove_device (C function)c.dvb_remove_devicehNtauh1hhhhhhNhNubj)}(hhh](j)}(h2void dvb_remove_device (struct dvb_device *dvbdev)h]j)}(h1void dvb_remove_device(struct dvb_device *dvbdev)h](jG)}(hvoidh]hvoid}(hjphhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjlhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjlhhhj~hM ubjD)}(hdvb_remove_deviceh]jJ)}(hdvb_remove_deviceh]hdvb_remove_device}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjlhhhj~hM ubj)}(h(struct dvb_device *dvbdev)h]j%)}(hstruct dvb_device *dvbdevh](j!)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h dvb_deviceh]h dvb_device}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]j)}jjsbc.dvb_remove_deviceasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hdvbdevh]hdvbdev}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubah}(h]h ]h"]h$]h&]hhuh1jhjlhhhj~hM ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhhj~hM ubah}(h]jcah ](jmjneh"]h$]h&]jrjs)jthuh1jhj~hM hjehhubjv)}(hhh]h)}(hRemove a registered DVB deviceh]hRemove a registered DVB device}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM hj-hhubah}(h]h ]h"]h$]h&]uh1juhjehhhj~hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjjHjjHjjjuh1jhhhhhNhNubj)}(h**Parameters** ``struct dvb_device *dvbdev`` pointer to struct dvb_device **Description** This does not free memory. dvb_free_device() will do that when reference counter is emptyh](h)}(h**Parameters**h]j)}(hjRh]h Parameters}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjLubj)}(hhh]j)}(h;``struct dvb_device *dvbdev`` pointer to struct dvb_device h](j)}(h``struct dvb_device *dvbdev``h]j)}(hjqh]hstruct dvb_device *dvbdev}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM hjkubj)}(hhh]h)}(hpointer to struct dvb_deviceh]hpointer to struct dvb_device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM hjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjhM hjhubah}(h]h ]h"]h$]h&]uh1jhjLubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjLubh)}(hYThis does not free memory. dvb_free_device() will do that when reference counter is emptyh]hYThis does not free memory. dvb_free_device() will do that when reference counter is empty}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjLubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j "dvb_unregister_device (C function)c.dvb_unregister_devicehNtauh1hhhhhhNhNubj)}(hhh](j)}(h6void dvb_unregister_device (struct dvb_device *dvbdev)h]j)}(h5void dvb_unregister_device(struct dvb_device *dvbdev)h](jG)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhMubjD)}(hdvb_unregister_deviceh]jJ)}(hdvb_unregister_deviceh]hdvb_unregister_device}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhMubj)}(h(struct dvb_device *dvbdev)h]j%)}(hstruct dvb_device *dvbdevh](j!)}(hjh]hstruct}(hj.hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj*ubj3)}(h h]h }(hj;hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj*ubh)}(hhh]jJ)}(h dvb_deviceh]h dvb_device}(hjLhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjIubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNj j )}j ]j)}jjsbc.dvb_unregister_deviceasbuh1hhj*ubj3)}(h h]h }(hjlhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj*ubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubjJ)}(hdvbdevh]hdvbdev}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj*ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj&ubah}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhMhjhhubjv)}(hhh]h)}(hUnregisters a DVB deviceh]hUnregisters a DVB device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhhhNhNubj)}(hL**Parameters** ``struct dvb_device *dvbdev`` pointer to struct dvb_deviceh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjubj)}(hhh]j)}(h:``struct dvb_device *dvbdev`` pointer to struct dvb_deviceh](j)}(h``struct dvb_device *dvbdev``h]j)}(hjh]hstruct dvb_device *dvbdev}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjubj)}(hhh]h)}(hpointer to struct dvb_deviceh]hpointer to struct dvb_device}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j #dvb_create_media_graph (C function)c.dvb_create_media_graphhNtauh1hhhhhhNhNubj)}(hhh](j)}(hOint dvb_create_media_graph (struct dvb_adapter *adap, bool create_rf_connector)h]j)}(hNint dvb_create_media_graph(struct dvb_adapter *adap, bool create_rf_connector)h](jG)}(hinth]hint}(hjLhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjHhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMubj3)}(h h]h }(hj[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjHhhhjZhMubjD)}(hdvb_create_media_graphh]jJ)}(hdvb_create_media_graphh]hdvb_create_media_graph}(hjmhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjiubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjHhhhjZhMubj)}(h4(struct dvb_adapter *adap, bool create_rf_connector)h](j%)}(hstruct dvb_adapter *adaph](j!)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h dvb_adapterh]h dvb_adapter}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]j)}jjosbc.dvb_create_media_graphasbuh1hhjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hadaph]hadap}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hbool create_rf_connectorh](jG)}(hboolh]hbool}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubjJ)}(hcreate_rf_connectorh]hcreate_rf_connector}(hj hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjHhhhjZhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjDhhhjZhMubah}(h]j?ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjZhMhjAhhubjv)}(hhh]h)}(h:Creates media graph for the Digital TV part of the device.h]h:Creates media graph for the Digital TV part of the device.}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj> hhubah}(h]h ]h"]h$]h&]uh1juhjAhhhjZhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjY jjY jjjuh1jhhhhhNhNubj)}(hXJ**Parameters** ``struct dvb_adapter *adap`` pointer to :c:type:`struct dvb_adapter ` ``bool create_rf_connector`` if true, it creates the RF connector too **Description** This function checks all DVB-related functions at the media controller entities and creates the needed links for the media graph. It is capable of working with multiple tuners or multiple frontends, but it won't create links if the device has multiple tuners and multiple frontends or if the device has multiple muxes. In such case, the caller driver should manually create the remaining links.h](h)}(h**Parameters**h]j)}(hjc h]h Parameters}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM"hj] ubj)}(hhh](j)}(hS``struct dvb_adapter *adap`` pointer to :c:type:`struct dvb_adapter ` h](j)}(h``struct dvb_adapter *adap``h]j)}(hj h]hstruct dvb_adapter *adap}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM!hj| ubj)}(hhh]h)}(h5pointer to :c:type:`struct dvb_adapter `h](h pointer to }(hj hhhNhNubh)}(h*:c:type:`struct dvb_adapter `h]j)}(hj h]hstruct dvb_adapter}(hj hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j dvb_adapteruh1hhj hM!hj ubeh}(h]h ]h"]h$]h&]uh1hhj hM!hj ubah}(h]h ]h"]h$]h&]uh1jhj| ubeh}(h]h ]h"]h$]h&]uh1jhj hM!hjy ubj)}(hF``bool create_rf_connector`` if true, it creates the RF connector too h](j)}(h``bool create_rf_connector``h]j)}(hj h]hbool create_rf_connector}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM"hj ubj)}(hhh]h)}(h(if true, it creates the RF connector tooh]h(if true, it creates the RF connector too}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hM"hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hM"hjy ubeh}(h]h ]h"]h$]h&]uh1jhj] ubh)}(h**Description**h]j)}(hj!h]h Description}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM$hj] ubh)}(hXThis function checks all DVB-related functions at the media controller entities and creates the needed links for the media graph. It is capable of working with multiple tuners or multiple frontends, but it won't create links if the device has multiple tuners and multiple frontends or if the device has multiple muxes. In such case, the caller driver should manually create the remaining links.h]hXThis function checks all DVB-related functions at the media controller entities and creates the needed links for the media graph. It is capable of working with multiple tuners or multiple frontends, but it won’t create links if the device has multiple tuners and multiple frontends or if the device has multiple muxes. In such case, the caller driver should manually create the remaining links.}(hj+!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM#hj] ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j *dvb_register_media_controller (C function)c.dvb_register_media_controllerhNtauh1hhhhhhNhNubj)}(hhh](j)}(hXvoid dvb_register_media_controller (struct dvb_adapter *adap, struct media_device *mdev)h]j)}(hWvoid dvb_register_media_controller(struct dvb_adapter *adap, struct media_device *mdev)h](jG)}(hvoidh]hvoid}(hjZ!hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjV!hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM/ubj3)}(h h]h }(hji!hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjV!hhhjh!hM/ubjD)}(hdvb_register_media_controllerh]jJ)}(hdvb_register_media_controllerh]hdvb_register_media_controller}(hj{!hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjw!ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjV!hhhjh!hM/ubj)}(h5(struct dvb_adapter *adap, struct media_device *mdev)h](j%)}(hstruct dvb_adapter *adaph](j!)}(hjh]hstruct}(hj!hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj!ubj3)}(h h]h }(hj!hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj!ubh)}(hhh]jJ)}(h dvb_adapterh]h dvb_adapter}(hj!hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!modnameN classnameNj j )}j ]j)}jj}!sbc.dvb_register_media_controllerasbuh1hhj!ubj3)}(h h]h }(hj!hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj!ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubjJ)}(hadaph]hadap}(hj!hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj!ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj!ubj%)}(hstruct media_device *mdevh](j!)}(hjh]hstruct}(hj "hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj"ubj3)}(h h]h }(hj"hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj"ubh)}(hhh]jJ)}(h media_deviceh]h media_device}(hj'"hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj$"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)"modnameN classnameNj j )}j ]j!c.dvb_register_media_controllerasbuh1hhj"ubj3)}(h h]h }(hjE"hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj"ubj)}(hjh]h*}(hjS"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubjJ)}(hmdevh]hmdev}(hj`"hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj"ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj!ubeh}(h]h ]h"]h$]h&]hhuh1jhjV!hhhjh!hM/ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjR!hhhjh!hM/ubah}(h]jM!ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjh!hM/hjO!hhubjv)}(hhh]h)}(h+registers a media controller at DVB adapterh]h+registers a media controller at DVB adapter}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM/hj"hhubah}(h]h ]h"]h$]h&]uh1juhjO!hhhjh!hM/ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj"jj"jjjuh1jhhhhhNhNubj)}(h**Parameters** ``struct dvb_adapter *adap`` pointer to :c:type:`struct dvb_adapter ` ``struct media_device *mdev`` pointer to :c:type:`struct media_device `h](h)}(h**Parameters**h]j)}(hj"h]h Parameters}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM3hj"ubj)}(hhh](j)}(hS``struct dvb_adapter *adap`` pointer to :c:type:`struct dvb_adapter ` h](j)}(h``struct dvb_adapter *adap``h]j)}(hj"h]hstruct dvb_adapter *adap}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM1hj"ubj)}(hhh]h)}(h5pointer to :c:type:`struct dvb_adapter `h](h pointer to }(hj"hhhNhNubh)}(h*:c:type:`struct dvb_adapter `h]j)}(hj"h]hstruct dvb_adapter}(hj"hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j dvb_adapteruh1hhj"hM1hj"ubeh}(h]h ]h"]h$]h&]uh1hhj"hM1hj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj"hM1hj"ubj)}(hU``struct media_device *mdev`` pointer to :c:type:`struct media_device `h](j)}(h``struct media_device *mdev``h]j)}(hj##h]hstruct media_device *mdev}(hj%#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!#ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM3hj#ubj)}(hhh]h)}(h7pointer to :c:type:`struct media_device `h](h pointer to }(hj<#hhhNhNubh)}(h,:c:type:`struct media_device `h]j)}(hjF#h]hstruct media_device}(hjH#hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjD#ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j media_deviceuh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM2hj<#ubeh}(h]h ]h"]h$]h&]uh1hhjc#hM2hj9#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj8#hM3hj"ubeh}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j %dvb_get_media_controller (C function)c.dvb_get_media_controllerhNtauh1hhhhhhNhNubj)}(hhh](j)}(hIstruct media_device * dvb_get_media_controller (struct dvb_adapter *adap)h]j)}(hGstruct media_device *dvb_get_media_controller(struct dvb_adapter *adap)h](j!)}(hjh]hstruct}(hj#hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj#hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM;ubj3)}(h h]h }(hj#hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj#hhhj#hM;ubh)}(hhh]jJ)}(h media_deviceh]h media_device}(hj#hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj#ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj#modnameN classnameNj j )}j ]j)}jdvb_get_media_controllersbc.dvb_get_media_controllerasbuh1hhj#hhhj#hM;ubj3)}(h h]h }(hj#hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj#hhhj#hM;ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#hhhj#hM;ubjD)}(hdvb_get_media_controllerh]jJ)}(hj#h]hdvb_get_media_controller}(hj#hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj#ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj#hhhj#hM;ubj)}(h(struct dvb_adapter *adap)h]j%)}(hstruct dvb_adapter *adaph](j!)}(hjh]hstruct}(hj$hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj$ubj3)}(h h]h }(hj#$hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$ubh)}(hhh]jJ)}(h dvb_adapterh]h dvb_adapter}(hj4$hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj1$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6$modnameN classnameNj j )}j ]j#c.dvb_get_media_controllerasbuh1hhj$ubj3)}(h h]h }(hjR$hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$ubj)}(hjh]h*}(hj`$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubjJ)}(hadaph]hadap}(hjm$hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj$ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj$ubah}(h]h ]h"]h$]h&]hhuh1jhj#hhhj#hM;ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj#hhhj#hM;ubah}(h]j#ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj#hM;hj#hhubjv)}(hhh]h)}(h$gets the associated media controllerh]h$gets the associated media controller}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM;hj$hhubah}(h]h ]h"]h$]h&]uh1juhj#hhhj#hM;ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj$jj$jjjuh1jhhhhhNhNubj)}(hd**Parameters** ``struct dvb_adapter *adap`` pointer to :c:type:`struct dvb_adapter `h](h)}(h**Parameters**h]j)}(hj$h]h Parameters}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM?hj$ubj)}(hhh]j)}(hR``struct dvb_adapter *adap`` pointer to :c:type:`struct dvb_adapter `h](j)}(h``struct dvb_adapter *adap``h]j)}(hj$h]hstruct dvb_adapter *adap}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMAhj$ubj)}(hhh]h)}(h5pointer to :c:type:`struct dvb_adapter `h](h pointer to }(hj$hhhNhNubh)}(h*:c:type:`struct dvb_adapter `h]j)}(hj$h]hstruct dvb_adapter}(hj$hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j dvb_adapteruh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM=hj$ubeh}(h]h ]h"]h$]h&]uh1hhj%hM=hj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj$hMAhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_generic_open (C function)c.dvb_generic_openhNtauh1hhhhhhNhNubj)}(hhh](j)}(h=int dvb_generic_open (struct inode *inode, struct file *file)h]j)}(h`. ``struct file *file`` pointer to :c:type:`struct file `. **Description** Checks if a DVB devnode is still valid, and if the permissions are OK and increment negative use count.h](h)}(h**Parameters**h]j)}(hj&h]h Parameters}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMThj&ubj)}(hhh](j)}(hC``struct inode *inode`` pointer to :c:type:`struct inode `. h](j)}(h``struct inode *inode``h]j)}(hj&h]hstruct inode *inode}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMRhj&ubj)}(hhh]h)}(h*pointer to :c:type:`struct inode `.h](h pointer to }(hj&hhhNhNubh)}(h:c:type:`struct inode `h]j)}(hj&h]h struct inode}(hj&hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j inodeuh1hhj&hMRhj&ubh.}(hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj&hMRhj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhj&hMRhj&ubj)}(h?``struct file *file`` pointer to :c:type:`struct file `. h](j)}(h``struct file *file``h]j)}(hj'h]hstruct file *file}(hj 'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMShj'ubj)}(hhh]h)}(h(pointer to :c:type:`struct file `.h](h pointer to }(hj7'hhhNhNubh)}(h:c:type:`struct file `h]j)}(hjA'h]h struct file}(hjC'hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj?'ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j fileuh1hhj3'hMShj7'ubh.}(hj7'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj3'hMShj4'ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhj3'hMShj&ubeh}(h]h ]h"]h$]h&]uh1jhj&ubh)}(h**Description**h]j)}(hj|'h]h Description}(hj~'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz'ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMUhj&ubh)}(hgChecks if a DVB devnode is still valid, and if the permissions are OK and increment negative use count.h]hgChecks if a DVB devnode is still valid, and if the permissions are OK and increment negative use count.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMThj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j  dvb_generic_release (C function)c.dvb_generic_releasehNtauh1hhhhhhNhNubj)}(hhh](j)}(h@int dvb_generic_release (struct inode *inode, struct file *file)h]j)}(h?int dvb_generic_release(struct inode *inode, struct file *file)h](jG)}(hinth]hint}(hj'hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj'hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM[ubj3)}(h h]h }(hj'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj'hhhj'hM[ubjD)}(hdvb_generic_releaseh]jJ)}(hdvb_generic_releaseh]hdvb_generic_release}(hj'hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj'ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj'hhhj'hM[ubj)}(h((struct inode *inode, struct file *file)h](j%)}(hstruct inode *inodeh](j!)}(hjh]hstruct}(hj'hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj'ubj3)}(h h]h }(hj (hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj'ubh)}(hhh]jJ)}(hinodeh]hinode}(hj(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(modnameN classnameNj j )}j ]j)}jj'sbc.dvb_generic_releaseasbuh1hhj'ubj3)}(h h]h }(hj<(hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj'ubj)}(hjh]h*}(hjJ(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubjJ)}(hinodeh]hinode}(hjW(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj'ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj'ubj%)}(hstruct file *fileh](j!)}(hjh]hstruct}(hjp(hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjl(ubj3)}(h h]h }(hj}(hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjl(ubh)}(hhh]jJ)}(hfileh]hfile}(hj(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj(ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj(modnameN classnameNj j )}j ]j8(c.dvb_generic_releaseasbuh1hhjl(ubj3)}(h h]h }(hj(hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjl(ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjl(ubjJ)}(hfileh]hfile}(hj(hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjl(ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj'ubeh}(h]h ]h"]h$]h&]hhuh1jhj'hhhj'hM[ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj'hhhj'hM[ubah}(h]j'ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj'hM[hj'hhubjv)}(hhh]h)}(h.Digital TV close function, used by DVB devicesh]h.Digital TV close function, used by DVB devices}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM[hj(hhubah}(h]h ]h"]h$]h&]uh1juhj'hhhj'hM[ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj )jj )jjjuh1jhhhhhNhNubj)}(hX**Parameters** ``struct inode *inode`` pointer to :c:type:`struct inode `. ``struct file *file`` pointer to :c:type:`struct file `. **Description** Checks if a DVB devnode is still valid, and if the permissions are OK and decrement negative use count.h](h)}(h**Parameters**h]j)}(hj)h]h Parameters}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM_hj )ubj)}(hhh](j)}(hC``struct inode *inode`` pointer to :c:type:`struct inode `. h](j)}(h``struct inode *inode``h]j)}(hj2)h]hstruct inode *inode}(hj4)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0)ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM]hj,)ubj)}(hhh]h)}(h*pointer to :c:type:`struct inode `.h](h pointer to }(hjK)hhhNhNubh)}(h:c:type:`struct inode `h]j)}(hjU)h]h struct inode}(hjW)hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjS)ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j inodeuh1hhjG)hM]hjK)ubh.}(hjK)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjG)hM]hjH)ubah}(h]h ]h"]h$]h&]uh1jhj,)ubeh}(h]h ]h"]h$]h&]uh1jhjG)hM]hj))ubj)}(h?``struct file *file`` pointer to :c:type:`struct file `. h](j)}(h``struct file *file``h]j)}(hj)h]hstruct file *file}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM^hj)ubj)}(hhh]h)}(h(pointer to :c:type:`struct file `.h](h pointer to }(hj)hhhNhNubh)}(h:c:type:`struct file `h]j)}(hj)h]h struct file}(hj)hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j fileuh1hhj)hM^hj)ubh.}(hj)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj)hM^hj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)hM^hj))ubeh}(h]h ]h"]h$]h&]uh1jhj )ubh)}(h**Description**h]j)}(hj)h]h Description}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM`hj )ubh)}(hgChecks if a DVB devnode is still valid, and if the permissions are OK and decrement negative use count.h]hgChecks if a DVB devnode is still valid, and if the permissions are OK and decrement negative use count.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM_hj )ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_generic_ioctl (C function)c.dvb_generic_ioctlhNtauh1hhhhhhNhNubj)}(hhh](j)}(hOlong dvb_generic_ioctl (struct file *file, unsigned int cmd, unsigned long arg)h]j)}(hNlong dvb_generic_ioctl(struct file *file, unsigned int cmd, unsigned long arg)h](jG)}(hlongh]hlong}(hj1*hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj-*hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMfubj3)}(h h]h }(hj@*hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj-*hhhj?*hMfubjD)}(hdvb_generic_ioctlh]jJ)}(hdvb_generic_ioctlh]hdvb_generic_ioctl}(hjR*hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjN*ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj-*hhhj?*hMfubj)}(h8(struct file *file, unsigned int cmd, unsigned long arg)h](j%)}(hstruct file *fileh](j!)}(hjh]hstruct}(hjn*hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjj*ubj3)}(h h]h }(hj{*hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjj*ubh)}(hhh]jJ)}(hfileh]hfile}(hj*hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj*modnameN classnameNj j )}j ]j)}jjT*sbc.dvb_generic_ioctlasbuh1hhjj*ubj3)}(h h]h }(hj*hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjj*ubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjj*ubjJ)}(hfileh]hfile}(hj*hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjj*ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjf*ubj%)}(hunsigned int cmdh](jG)}(hunsignedh]hunsigned}(hj*hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj*ubj3)}(h h]h }(hj*hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj*ubjG)}(hinth]hint}(hj*hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj*ubj3)}(h h]h }(hj +hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj*ubjJ)}(hcmdh]hcmd}(hj+hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj*ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjf*ubj%)}(hunsigned long argh](jG)}(hunsignedh]hunsigned}(hj1+hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj-+ubj3)}(h h]h }(hj?+hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj-+ubjG)}(hlongh]hlong}(hjM+hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj-+ubj3)}(h h]h }(hj[+hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj-+ubjJ)}(hargh]harg}(hji+hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj-+ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjf*ubeh}(h]h ]h"]h$]h&]hhuh1jhj-*hhhj?*hMfubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj)*hhhj?*hMfubah}(h]j$*ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj?*hMfhj&*hhubjv)}(hhh]h)}(h.Digital TV close function, used by DVB devicesh]h.Digital TV close function, used by DVB devices}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMfhj+hhubah}(h]h ]h"]h$]h&]uh1juhj&*hhhj?*hMfubeh}(h]h ](jfunctioneh"]h$]h&]jjjj+jj+jjjuh1jhhhhhNhNubj)}(hX**Parameters** ``struct file *file`` pointer to :c:type:`struct file `. ``unsigned int cmd`` Ioctl name. ``unsigned long arg`` Ioctl argument. **Description** Checks if a DVB devnode and struct dvbdev.kernel_ioctl is still valid. If so, calls dvb_usercopy().h](h)}(h**Parameters**h]j)}(hj+h]h Parameters}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMjhj+ubj)}(hhh](j)}(h?``struct file *file`` pointer to :c:type:`struct file `. h](j)}(h``struct file *file``h]j)}(hj+h]hstruct file *file}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhhj+ubj)}(hhh]h)}(h(pointer to :c:type:`struct file `.h](h pointer to }(hj+hhhNhNubh)}(h:c:type:`struct file `h]j)}(hj+h]h struct file}(hj+hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j fileuh1hhj+hMhhj+ubh.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj+hMhhj+ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhj+hMhhj+ubj)}(h!``unsigned int cmd`` Ioctl name. h](j)}(h``unsigned int cmd``h]j)}(hj0,h]hunsigned int cmd}(hj2,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.,ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMihj*,ubj)}(hhh]h)}(h Ioctl name.h]h Ioctl name.}(hjI,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjE,hMihjF,ubah}(h]h ]h"]h$]h&]uh1jhj*,ubeh}(h]h ]h"]h$]h&]uh1jhjE,hMihj+ubj)}(h&``unsigned long arg`` Ioctl argument. h](j)}(h``unsigned long arg``h]j)}(hji,h]hunsigned long arg}(hjk,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg,ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMjhjc,ubj)}(hhh]h)}(hIoctl argument.h]hIoctl argument.}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~,hMjhj,ubah}(h]h ]h"]h$]h&]uh1jhjc,ubeh}(h]h ]h"]h$]h&]uh1jhj~,hMjhj+ubeh}(h]h ]h"]h$]h&]uh1jhj+ubh)}(h**Description**h]j)}(hj,h]h Description}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMlhj+ubh)}(hcChecks if a DVB devnode and struct dvbdev.kernel_ioctl is still valid. If so, calls dvb_usercopy().h]hcChecks if a DVB devnode and struct dvbdev.kernel_ioctl is still valid. If so, calls dvb_usercopy().}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMkhj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_usercopy (C function)c.dvb_usercopyhNtauh1hhhhhhNhNubj)}(hhh](j)}(hint dvb_usercopy (struct file *file, unsigned int cmd, unsigned long arg, int (*func)(struct file *file, unsigned int cmd, void *arg))h]j)}(hint dvb_usercopy(struct file *file, unsigned int cmd, unsigned long arg, int (*func)(struct file *file, unsigned int cmd, void *arg))h](jG)}(hinth]hint}(hj,hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj,hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMsubj3)}(h h]h }(hj,hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj,hhhj,hMsubjD)}(h dvb_usercopyh]jJ)}(h dvb_usercopyh]h dvb_usercopy}(hj -hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj-ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj,hhhj,hMsubj)}(hu(struct file *file, unsigned int cmd, unsigned long arg, int (*func)(struct file *file, unsigned int cmd, void *arg))h](j%)}(hstruct file *fileh](j!)}(hjh]hstruct}(hj&-hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj"-ubj3)}(h h]h }(hj3-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj"-ubh)}(hhh]jJ)}(hfileh]hfile}(hjD-hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjA-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjF-modnameN classnameNj j )}j ]j)}jj -sbc.dvb_usercopyasbuh1hhj"-ubj3)}(h h]h }(hjd-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj"-ubj)}(hjh]h*}(hjr-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"-ubjJ)}(hfileh]hfile}(hj-hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj"-ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj-ubj%)}(hunsigned int cmdh](jG)}(hunsignedh]hunsigned}(hj-hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj-ubj3)}(h h]h }(hj-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj-ubjG)}(hinth]hint}(hj-hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj-ubj3)}(h h]h }(hj-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj-ubjJ)}(hcmdh]hcmd}(hj-hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj-ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj-ubj%)}(hunsigned long argh](jG)}(hunsignedh]hunsigned}(hj-hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj-ubj3)}(h h]h }(hj-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj-ubjG)}(hlongh]hlong}(hj.hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj-ubj3)}(h h]h }(hj.hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj-ubjJ)}(hargh]harg}(hj!.hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj-ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj-ubj%)}(h;int (*func)(struct file *file, unsigned int cmd, void *arg)h](jG)}(hinth]hint}(hj:.hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj6.ubj3)}(h h]h }(hjH.hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj6.ubj)}(h(h]h(}(hjV.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6.ubj)}(hjh]h*}(hjd.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6.ubjJ)}(hfunch]hfunc}(hjq.hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj6.ubj)}(h)h]h)}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6.ubj)}(hjX.h]h(}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6.ubj!)}(hjh]hstruct}(hj.hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj6.ubj3)}(h h]h }(hj.hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj6.ubh)}(hhh]jJ)}(hfileh]hfile}(hj.hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj.modnameN classnameNj j )}j ]j`-c.dvb_usercopyasbuh1hhj6.ubj3)}(h h]h }(hj.hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj6.ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6.ubjJ)}(hfileh]hfile}(hj.hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj6.ubj)}(h,h]h,}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6.ubj3)}(h h]h }(hj /hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj6.ubjG)}(hunsignedh]hunsigned}(hj/hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj6.ubj3)}(h h]h }(hj)/hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj6.ubjG)}(hinth]hint}(hj7/hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj6.ubj3)}(h h]h }(hjE/hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj6.ubjJ)}(hcmdh]hcmd}(hjS/hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj6.ubj)}(hj/h]h,}(hja/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6.ubj3)}(h h]h }(hjn/hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj6.ubjG)}(hvoidh]hvoid}(hj|/hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj6.ubj3)}(h h]h }(hj/hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj6.ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6.ubjJ)}(hargh]harg}(hj/hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj6.ubj)}(hj.h]h)}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6.ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj-ubeh}(h]h ]h"]h$]h&]hhuh1jhj,hhhj,hMsubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj,hhhj,hMsubah}(h]j,ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj,hMshj,hhubjv)}(hhh]h)}(h=copies data from/to userspace memory when an ioctl is issued.h]h=copies data from/to userspace memory when an ioctl is issued.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMshj/hhubah}(h]h ]h"]h$]h&]uh1juhj,hhhj,hMsubeh}(h]h ](jfunctioneh"]h$]h&]jjjj/jj/jjjuh1jhhhhhNhNubj)}(hX**Parameters** ``struct file *file`` Pointer to struct :c:type:`file`. ``unsigned int cmd`` Ioctl name. ``unsigned long arg`` Ioctl argument. ``int (*func)(struct file *file, unsigned int cmd, void *arg)`` function that will actually handle the ioctl **Description** Ancillary function that uses ioctl direction and size to copy from userspace. Then, it calls **func**, and, if needed, data is copied back to userspace.h](h)}(h**Parameters**h]j)}(hj/h]h Parameters}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMwhj/ubj)}(hhh](j)}(h8``struct file *file`` Pointer to struct :c:type:`file`. h](j)}(h``struct file *file``h]j)}(hj0h]hstruct file *file}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMvhj0ubj)}(hhh]h)}(h!Pointer to struct :c:type:`file`.h](hPointer to struct }(hj60hhhNhNubh)}(h:c:type:`file`h]j)}(hj@0h]hfile}(hjB0hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj>0ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j fileuh1hhj20hMvhj60ubh.}(hj60hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj20hMvhj30ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj20hMvhj0ubj)}(h!``unsigned int cmd`` Ioctl name. h](j)}(h``unsigned int cmd``h]j)}(hjy0h]hunsigned int cmd}(hj{0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw0ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMwhjs0ubj)}(hhh]h)}(h Ioctl name.h]h Ioctl name.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hMwhj0ubah}(h]h ]h"]h$]h&]uh1jhjs0ubeh}(h]h ]h"]h$]h&]uh1jhj0hMwhj0ubj)}(h&``unsigned long arg`` Ioctl argument. h](j)}(h``unsigned long arg``h]j)}(hj0h]hunsigned long arg}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMxhj0ubj)}(hhh]h)}(hIoctl argument.h]hIoctl argument.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hMxhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0hMxhj0ubj)}(hm``int (*func)(struct file *file, unsigned int cmd, void *arg)`` function that will actually handle the ioctl h](j)}(h?``int (*func)(struct file *file, unsigned int cmd, void *arg)``h]j)}(hj0h]h;int (*func)(struct file *file, unsigned int cmd, void *arg)}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMyhj0ubj)}(hhh]h)}(h,function that will actually handle the ioctlh]h,function that will actually handle the ioctl}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hMyhj1ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj1hMyhj0ubeh}(h]h ]h"]h$]h&]uh1jhj/ubh)}(h**Description**h]j)}(hj&1h]h Description}(hj(1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$1ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM{hj/ubh)}(hAncillary function that uses ioctl direction and size to copy from userspace. Then, it calls **func**, and, if needed, data is copied back to userspace.h](h]Ancillary function that uses ioctl direction and size to copy from userspace. Then, it calls }(hj<1hhhNhNubj)}(h**func**h]hfunc}(hjD1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<1ubh3, and, if needed, data is copied back to userspace.}(hj<1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMzhj/ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_module_probe (C function)c.dvb_module_probehNtauh1hhhhhhNhNubj)}(hhh](j)}(hstruct i2c_client * dvb_module_probe (const char *module_name, const char *name, struct i2c_adapter *adap, unsigned char addr, void *platform_data)h]j)}(hstruct i2c_client *dvb_module_probe(const char *module_name, const char *name, struct i2c_adapter *adap, unsigned char addr, void *platform_data)h](j!)}(hjh]hstruct}(hj}1hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjy1hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMubj3)}(h h]h }(hj1hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjy1hhhj1hMubh)}(hhh]jJ)}(h i2c_clienth]h i2c_client}(hj1hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj1ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj1modnameN classnameNj j )}j ]j)}jdvb_module_probesbc.dvb_module_probeasbuh1hhjy1hhhj1hMubj3)}(h h]h }(hj1hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjy1hhhj1hMubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjy1hhhj1hMubjD)}(hdvb_module_probeh]jJ)}(hj1h]hdvb_module_probe}(hj1hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj1ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjy1hhhj1hMubj)}(hn(const char *module_name, const char *name, struct i2c_adapter *adap, unsigned char addr, void *platform_data)h](j%)}(hconst char *module_nameh](j!)}(hjUh]hconst}(hj1hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj1ubj3)}(h h]h }(hj2hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj1ubjG)}(hcharh]hchar}(hj2hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj1ubj3)}(h h]h }(hj 2hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj1ubj)}(hjh]h*}(hj.2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubjJ)}(h module_nameh]h module_name}(hj;2hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj1ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj1ubj%)}(hconst char *nameh](j!)}(hjUh]hconst}(hjT2hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjP2ubj3)}(h h]h }(hja2hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjP2ubjG)}(hcharh]hchar}(hjo2hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjP2ubj3)}(h h]h }(hj}2hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjP2ubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjP2ubjJ)}(hnameh]hname}(hj2hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjP2ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj1ubj%)}(hstruct i2c_adapter *adaph](j!)}(hjh]hstruct}(hj2hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj2ubj3)}(h h]h }(hj2hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj2ubh)}(hhh]jJ)}(h i2c_adapterh]h i2c_adapter}(hj2hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj2ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj2modnameN classnameNj j )}j ]j1c.dvb_module_probeasbuh1hhj2ubj3)}(h h]h }(hj2hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj2ubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubjJ)}(hadaph]hadap}(hj3hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj2ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj1ubj%)}(hunsigned char addrh](jG)}(hunsignedh]hunsigned}(hj!3hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj3ubj3)}(h h]h }(hj/3hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj3ubjG)}(hcharh]hchar}(hj=3hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj3ubj3)}(h h]h }(hjK3hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj3ubjJ)}(haddrh]haddr}(hjY3hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj3ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj1ubj%)}(hvoid *platform_datah](jG)}(hvoidh]hvoid}(hjr3hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjn3ubj3)}(h h]h }(hj3hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjn3ubj)}(hjh]h*}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjn3ubjJ)}(h platform_datah]h platform_data}(hj3hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjn3ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj1ubeh}(h]h ]h"]h$]h&]hhuh1jhjy1hhhj1hMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihju1hhhj1hMubah}(h]jp1ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj1hMhjr1hhubjv)}(hhh]h)}(h%helper routine to probe an I2C moduleh]h%helper routine to probe an I2C module}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj3hhubah}(h]h ]h"]h$]h&]uh1juhjr1hhhj1hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj3jj3jjjuh1jhhhhhNhNubj)}(hXO**Parameters** ``const char *module_name`` Name of the I2C module to be probed ``const char *name`` Optional name for the I2C module. Used for debug purposes. If ``NULL``, defaults to **module_name**. ``struct i2c_adapter *adap`` pointer to :c:type:`struct i2c_adapter ` that describes the I2C adapter where the module will be bound. ``unsigned char addr`` I2C address of the adapter, in 7-bit notation. ``void *platform_data`` Platform data to be passed to the I2C module probed. **Description** This function binds an I2C device into the DVB core. Should be used by all drivers that use I2C bus to control the hardware. A module bound with dvb_module_probe() should use dvb_module_release() to unbind. .. note:: In the past, DVB modules (mainly, frontends) were bound via dvb_attach() macro, with does an ugly hack, using I2C low level functions. Such usage is deprecated and will be removed soon. Instead, use this routine. **Return** On success, return an :c:type:`struct i2c_client `, pointing to the bound I2C device. ``NULL`` otherwise.h](h)}(h**Parameters**h]j)}(hj3h]h Parameters}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj3ubj)}(hhh](j)}(h@``const char *module_name`` Name of the I2C module to be probed h](j)}(h``const char *module_name``h]j)}(hj4h]hconst char *module_name}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj4ubj)}(hhh]h)}(h#Name of the I2C module to be probedh]h#Name of the I2C module to be probed}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMhj3ubj)}(hz``const char *name`` Optional name for the I2C module. Used for debug purposes. If ``NULL``, defaults to **module_name**. h](j)}(h``const char *name``h]j)}(hj?4h]hconst char *name}(hjA4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=4ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj94ubj)}(hhh]h)}(hdOptional name for the I2C module. Used for debug purposes. If ``NULL``, defaults to **module_name**.h](h>Optional name for the I2C module. Used for debug purposes. If }(hjX4hhhNhNubj)}(h``NULL``h]hNULL}(hj`4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjX4ubh, defaults to }(hjX4hhhNhNubj)}(h**module_name**h]h module_name}(hjr4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjX4ubh.}(hjX4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjU4ubah}(h]h ]h"]h$]h&]uh1jhj94ubeh}(h]h ]h"]h$]h&]uh1jhjT4hMhj3ubj)}(h``struct i2c_adapter *adap`` pointer to :c:type:`struct i2c_adapter ` that describes the I2C adapter where the module will be bound. h](j)}(h``struct i2c_adapter *adap``h]j)}(hj4h]hstruct i2c_adapter *adap}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj4ubj)}(hhh]h)}(htpointer to :c:type:`struct i2c_adapter ` that describes the I2C adapter where the module will be bound.h](h pointer to }(hj4hhhNhNubh)}(h*:c:type:`struct i2c_adapter `h]j)}(hj4h]hstruct i2c_adapter}(hj4hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j i2c_adapteruh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj4ubh? that describes the I2C adapter where the module will be bound.}(hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMhj3ubj)}(hF``unsigned char addr`` I2C address of the adapter, in 7-bit notation. h](j)}(h``unsigned char addr``h]j)}(hj4h]hunsigned char addr}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj4ubj)}(hhh]h)}(h.I2C address of the adapter, in 7-bit notation.h]h.I2C address of the adapter, in 7-bit notation.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hMhj5ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj5hMhj3ubj)}(hM``void *platform_data`` Platform data to be passed to the I2C module probed. h](j)}(h``void *platform_data``h]j)}(hj35h]hvoid *platform_data}(hj55hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj15ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj-5ubj)}(hhh]h)}(h4Platform data to be passed to the I2C module probed.h]h4Platform data to be passed to the I2C module probed.}(hjL5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjH5hMhjI5ubah}(h]h ]h"]h$]h&]uh1jhj-5ubeh}(h]h ]h"]h$]h&]uh1jhjH5hMhj3ubeh}(h]h ]h"]h$]h&]uh1jhj3ubh)}(h**Description**h]j)}(hjn5h]h Description}(hjp5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl5ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj3ubh)}(hThis function binds an I2C device into the DVB core. Should be used by all drivers that use I2C bus to control the hardware. A module bound with dvb_module_probe() should use dvb_module_release() to unbind.h]hThis function binds an I2C device into the DVB core. Should be used by all drivers that use I2C bus to control the hardware. A module bound with dvb_module_probe() should use dvb_module_release() to unbind.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj3ubhnote)}(hIn the past, DVB modules (mainly, frontends) were bound via dvb_attach() macro, with does an ugly hack, using I2C low level functions. Such usage is deprecated and will be removed soon. Instead, use this routine.h]h)}(hIn the past, DVB modules (mainly, frontends) were bound via dvb_attach() macro, with does an ugly hack, using I2C low level functions. Such usage is deprecated and will be removed soon. Instead, use this routine.h]hIn the past, DVB modules (mainly, frontends) were bound via dvb_attach() macro, with does an ugly hack, using I2C low level functions. Such usage is deprecated and will be removed soon. Instead, use this routine.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj5ubah}(h]h ]h"]h$]h&]uh1j5hj3ubh)}(h **Return**h]j)}(hj5h]hReturn}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj3ubh)}(huOn success, return an :c:type:`struct i2c_client `, pointing to the bound I2C device. ``NULL`` otherwise.h](hOn success, return an }(hj5hhhNhNubh)}(h(:c:type:`struct i2c_client `h]j)}(hj5h]hstruct i2c_client}(hj5hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j i2c_clientuh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj5ubh$, pointing to the bound I2C device. }(hj5hhhNhNubj)}(h``NULL``h]hNULL}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubh otherwise.}(hj5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj5hMhj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_module_release (C function)c.dvb_module_releasehNtauh1hhhhhhNhNubj)}(hhh](j)}(h3void dvb_module_release (struct i2c_client *client)h]j)}(h2void dvb_module_release(struct i2c_client *client)h](jG)}(hvoidh]hvoid}(hj*6hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj&6hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMubj3)}(h h]h }(hj96hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj&6hhhj86hMubjD)}(hdvb_module_releaseh]jJ)}(hdvb_module_releaseh]hdvb_module_release}(hjK6hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjG6ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj&6hhhj86hMubj)}(h(struct i2c_client *client)h]j%)}(hstruct i2c_client *clienth](j!)}(hjh]hstruct}(hjg6hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjc6ubj3)}(h h]h }(hjt6hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjc6ubh)}(hhh]jJ)}(h i2c_clienth]h i2c_client}(hj6hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj6ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj6modnameN classnameNj j )}j ]j)}jjM6sbc.dvb_module_releaseasbuh1hhjc6ubj3)}(h h]h }(hj6hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjc6ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc6ubjJ)}(hclienth]hclient}(hj6hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjc6ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj_6ubah}(h]h ]h"]h$]h&]hhuh1jhj&6hhhj86hMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj"6hhhj86hMubah}(h]j6ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj86hMhj6hhubjv)}(hhh]h)}(h9releases an I2C device allocated with dvb_module_probe().h]h9releases an I2C device allocated with dvb_module_probe().}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj6hhubah}(h]h ]h"]h$]h&]uh1juhj6hhhj86hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj7jj7jjjuh1jhhhhhNhNubj)}(hX**Parameters** ``struct i2c_client *client`` pointer to :c:type:`struct i2c_client ` with the I2C client to be released. can be ``NULL``. **Description** This function should be used to free all resources reserved by dvb_module_probe() and unbinding the I2C hardware.h](h)}(h**Parameters**h]j)}(hj 7h]h Parameters}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 7ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj7ubj)}(hhh]j)}(h``struct i2c_client *client`` pointer to :c:type:`struct i2c_client ` with the I2C client to be released. can be ``NULL``. h](j)}(h``struct i2c_client *client``h]j)}(hj+7h]hstruct i2c_client *client}(hj-7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)7ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj%7ubj)}(hhh]h)}(hhpointer to :c:type:`struct i2c_client ` with the I2C client to be released. can be ``NULL``.h](h pointer to }(hjD7hhhNhNubh)}(h(:c:type:`struct i2c_client `h]j)}(hjN7h]hstruct i2c_client}(hjP7hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjL7ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j i2c_clientuh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjD7ubh, with the I2C client to be released. can be }(hjD7hhhNhNubj)}(h``NULL``h]hNULL}(hjp7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjD7ubh.}(hjD7hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjk7hMhjA7ubah}(h]h ]h"]h$]h&]uh1jhj%7ubeh}(h]h ]h"]h$]h&]uh1jhj@7hMhj"7ubah}(h]h ]h"]h$]h&]uh1jhj7ubh)}(h**Description**h]j)}(hj7h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj7ubh)}(hqThis function should be used to free all resources reserved by dvb_module_probe() and unbinding the I2C hardware.h]hqThis function should be used to free all resources reserved by dvb_module_probe() and unbinding the I2C hardware.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_attach (C macro) c.dvb_attachhNtauh1hhhhhhNhNubj)}(hhh](j)}(h dvb_attachh]j)}(h dvb_attachh]jD)}(h dvb_attachh]jJ)}(hj7h]h dvb_attach}(hj7hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj7ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj7hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMubah}(h]h ]h"]h$]h&]hhjguh1jjhjihj7hhhj7hMubah}(h]j7ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj7hMhj7hhubjv)}(hhh]h}(h]h ]h"]h$]h&]uh1juhj7hhhj7hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj8jj8jjjuh1jhhhhhNhNubh)}(h"``dvb_attach (FUNCTION, ARGS...)``h]j)}(hj8h]hdvb_attach (FUNCTION, ARGS...)}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhhhhubh block_quote)}(h+attaches a DVB frontend into the DVB core. h]h)}(h*attaches a DVB frontend into the DVB core.h]h*attaches a DVB frontend into the DVB core.}(hj38hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj/8ubah}(h]h ]h"]h$]h&]uh1j-8hjA8hMhhhhubj)}(hXG**Parameters** ``FUNCTION`` function on a frontend module to be called. ``ARGS...`` **FUNCTION** arguments. **Description** This ancillary function loads a frontend module in runtime and runs the **FUNCTION** function there, with **ARGS**. As it increments symbol usage cont, at unregister, dvb_detach() should be called. .. note:: In the past, DVB modules (mainly, frontends) were bound via dvb_attach() macro, with does an ugly hack, using I2C low level functions. Such usage is deprecated and will be removed soon. Instead, you should use dvb_module_probe().h](h)}(h**Parameters**h]j)}(hjN8h]h Parameters}(hjP8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjL8ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjH8ubj)}(hhh](j)}(h9``FUNCTION`` function on a frontend module to be called. h](j)}(h ``FUNCTION``h]j)}(hjm8h]hFUNCTION}(hjo8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk8ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjg8ubj)}(hhh]h)}(h+function on a frontend module to be called.h]h+function on a frontend module to be called.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhjg8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMhjd8ubj)}(h$``ARGS...`` **FUNCTION** arguments. h](j)}(h ``ARGS...``h]j)}(hj8h]hARGS...}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj8ubj)}(hhh]h)}(h**FUNCTION** arguments.h](j)}(h **FUNCTION**h]hFUNCTION}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubh arguments.}(hj8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMhjd8ubeh}(h]h ]h"]h$]h&]uh1jhjH8ubh)}(h**Description**h]j)}(hj8h]h Description}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjH8ubh)}(hThis ancillary function loads a frontend module in runtime and runs the **FUNCTION** function there, with **ARGS**. As it increments symbol usage cont, at unregister, dvb_detach() should be called.h](hHThis ancillary function loads a frontend module in runtime and runs the }(hj9hhhNhNubj)}(h **FUNCTION**h]hFUNCTION}(hj 9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubh function there, with }(hj9hhhNhNubj)}(h**ARGS**h]hARGS}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubhS. As it increments symbol usage cont, at unregister, dvb_detach() should be called.}(hj9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjH8ubj5)}(hIn the past, DVB modules (mainly, frontends) were bound via dvb_attach() macro, with does an ugly hack, using I2C low level functions. Such usage is deprecated and will be removed soon. Instead, you should use dvb_module_probe().h]h)}(hIn the past, DVB modules (mainly, frontends) were bound via dvb_attach() macro, with does an ugly hack, using I2C low level functions. Such usage is deprecated and will be removed soon. Instead, you should use dvb_module_probe().h]hIn the past, DVB modules (mainly, frontends) were bound via dvb_attach() macro, with does an ugly hack, using I2C low level functions. Such usage is deprecated and will be removed soon. Instead, you should use dvb_module_probe().}(hj<9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj89ubah}(h]h ]h"]h$]h&]uh1j5hjH8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_detach (C macro) c.dvb_detachhNtauh1hhhhhhNhNubj)}(hhh](j)}(h dvb_detachh]j)}(h dvb_detachh]jD)}(h dvb_detachh]jJ)}(hjk9h]h dvb_detach}(hju9hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjq9ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjm9hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMubah}(h]h ]h"]h$]h&]hhjguh1jjhjihji9hhhj9hMubah}(h]jd9ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj9hMhjf9hhubjv)}(hhh]h}(h]h ]h"]h$]h&]uh1juhjf9hhhj9hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj9jj9jjjuh1jhhhhhNhNubh)}(h``dvb_detach (FUNC)``h]j)}(hj9h]hdvb_detach (FUNC)}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhhhhubj.8)}(h0detaches a DVB frontend loaded via dvb_attach() h]h)}(h/detaches a DVB frontend loaded via dvb_attach()h]h/detaches a DVB frontend loaded via dvb_attach()}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj9ubah}(h]h ]h"]h$]h&]uh1j-8hj9hMhhhhubj)}(h**Parameters** ``FUNC`` attach function **Description** Decrements usage count for a function previously called via dvb_attach().h](h)}(h**Parameters**h]j)}(hj9h]h Parameters}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj9ubj)}(hhh]j)}(h``FUNC`` attach function h](j)}(h``FUNC``h]j)}(hj9h]hFUNC}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj9ubj)}(hhh]h)}(hattach functionh]hattach function}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hMhj:ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj:hMhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubh)}(h**Description**h]j)}(hj6:h]h Description}(hj8:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4:ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj9ubh)}(hIDecrements usage count for a function previously called via dvb_attach().h]hIDecrements usage count for a function previously called via dvb_attach().}(hjL:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubeh}(h] dvb-devicesah ]h"] dvb devicesah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hDigital TV Ring bufferh]hDigital TV Ring buffer}(hjm:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj:hhhhhKubh)}(hcThose routines implement ring buffers used to handle digital TV data and copy it from/to userspace.h]hcThose routines implement ring buffers used to handle digital TV data and copy it from/to userspace.}(hj{:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjj:hhubj5)}(hX1) For performance reasons read and write routines don't check buffer sizes and/or number of bytes free/available. This has to be done before these routines are called. For example: .. code-block:: c /* write @buflen: bytes */ free = dvb_ringbuffer_free(rbuf); if (free >= buflen) count = dvb_ringbuffer_write(rbuf, buffer, buflen); else /* do something */ /* read min. 1000, max. @bufsize: bytes */ avail = dvb_ringbuffer_avail(rbuf); if (avail >= 1000) count = dvb_ringbuffer_read(rbuf, buffer, min(avail, bufsize)); else /* do something */ 2) If there is exactly one reader and one writer, there is no need to lock read or write operations. Two or more readers must be locked against each other. Flushing the buffer counts as a read operation. Resetting the buffer counts as a read and write operation. Two or more writers must be locked against each other.h](henumerated_list)}(hhh]h list_item)}(hFor performance reasons read and write routines don't check buffer sizes and/or number of bytes free/available. This has to be done before these routines are called. For example: h]h)}(hFor performance reasons read and write routines don't check buffer sizes and/or number of bytes free/available. This has to be done before these routines are called. For example:h]hFor performance reasons read and write routines don’t check buffer sizes and/or number of bytes free/available. This has to be done before these routines are called. For example:}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj:ubah}(h]h ]h"]h$]h&]uh1j:hj:ubah}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffixj.uh1j:hj:ubj.8)}(hX.. code-block:: c /* write @buflen: bytes */ free = dvb_ringbuffer_free(rbuf); if (free >= buflen) count = dvb_ringbuffer_write(rbuf, buffer, buflen); else /* do something */ /* read min. 1000, max. @bufsize: bytes */ avail = dvb_ringbuffer_avail(rbuf); if (avail >= 1000) count = dvb_ringbuffer_read(rbuf, buffer, min(avail, bufsize)); else /* do something */ h]jt)}(hXw/* write @buflen: bytes */ free = dvb_ringbuffer_free(rbuf); if (free >= buflen) count = dvb_ringbuffer_write(rbuf, buffer, buflen); else /* do something */ /* read min. 1000, max. @bufsize: bytes */ avail = dvb_ringbuffer_avail(rbuf); if (avail >= 1000) count = dvb_ringbuffer_read(rbuf, buffer, min(avail, bufsize)); else /* do something */h]hXw/* write @buflen: bytes */ free = dvb_ringbuffer_free(rbuf); if (free >= buflen) count = dvb_ringbuffer_write(rbuf, buffer, buflen); else /* do something */ /* read min. 1000, max. @bufsize: bytes */ avail = dvb_ringbuffer_avail(rbuf); if (avail >= 1000) count = dvb_ringbuffer_read(rbuf, buffer, min(avail, bufsize)); else /* do something */}hj:sbah}(h]h ]h"]h$]h&]hhƌforcelanguagejhighlight_args}uh1jshhhKhj:ubah}(h]h ]h"]h$]h&]uh1j-8hhhKhj:ubj:)}(hhh]j:)}(hX:If there is exactly one reader and one writer, there is no need to lock read or write operations. Two or more readers must be locked against each other. Flushing the buffer counts as a read operation. Resetting the buffer counts as a read and write operation. Two or more writers must be locked against each other.h]h)}(hX:If there is exactly one reader and one writer, there is no need to lock read or write operations. Two or more readers must be locked against each other. Flushing the buffer counts as a read operation. Resetting the buffer counts as a read and write operation. Two or more writers must be locked against each other.h]hX:If there is exactly one reader and one writer, there is no need to lock read or write operations. Two or more readers must be locked against each other. Flushing the buffer counts as a read operation. Resetting the buffer counts as a read and write operation. Two or more writers must be locked against each other.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hj:ubah}(h]h ]h"]h$]h&]uh1j:hj:ubah}(h]h ]h"]h$]h&]j:j:j:hj:j.startKuh1j:hj:ubeh}(h]h ]h"]h$]h&]uh1j5hjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_ringbuffer (C struct)c.dvb_ringbufferhNtauh1hhjj:hhhNhNubj)}(hhh](j)}(hdvb_ringbufferh]j)}(hstruct dvb_ringbufferh](j!)}(hjh]hstruct}(hj;hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj;hhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKubj3)}(h h]h }(hj!;hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj;hhhj ;hKubjD)}(hdvb_ringbufferh]jJ)}(hj ;h]hdvb_ringbuffer}(hj3;hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj/;ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj;hhhj ;hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj ;hhhj ;hKubah}(h]j;ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj ;hKhj;hhubjv)}(hhh]h)}(h-Describes a ring buffer used at DVB frameworkh]h-Describes a ring buffer used at DVB framework}(hjU;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjR;hhubah}(h]h ]h"]h$]h&]uh1juhj;hhhj ;hKubeh}(h]h ](jstructeh"]h$]h&]jjjjm;jjm;jjjuh1jhhhjj:hNhNubj)}(hXK**Definition**:: struct dvb_ringbuffer { u8 *data; ssize_t size; ssize_t pread; ssize_t pwrite; int error; wait_queue_head_t queue; spinlock_t lock; }; **Members** ``data`` Area were the ringbuffer data is written ``size`` size of the ringbuffer ``pread`` next position to read ``pwrite`` next position to write ``error`` used by ringbuffer clients to indicate that an error happened. ``queue`` Wait queue used by ringbuffer clients to indicate when buffer was filled ``lock`` Spinlock used to protect the ringbufferh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjy;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju;ubh:}(hju;hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK"hjq;ubjt)}(hstruct dvb_ringbuffer { u8 *data; ssize_t size; ssize_t pread; ssize_t pwrite; int error; wait_queue_head_t queue; spinlock_t lock; };h]hstruct dvb_ringbuffer { u8 *data; ssize_t size; ssize_t pread; ssize_t pwrite; int error; wait_queue_head_t queue; spinlock_t lock; };}hj;sbah}(h]h ]h"]h$]h&]hhuh1jshj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK$hjq;ubh)}(h **Members**h]j)}(hj;h]hMembers}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK.hjq;ubj)}(hhh](j)}(h2``data`` Area were the ringbuffer data is written h](j)}(h``data``h]j)}(hj;h]hdata}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK!hj;ubj)}(hhh]h)}(h(Area were the ringbuffer data is writtenh]h(Area were the ringbuffer data is written}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hK!hj;ubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj;hK!hj;ubj)}(h ``size`` size of the ringbuffer h](j)}(h``size``h]j)}(hj;h]hsize}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK"hj;ubj)}(hhh]h)}(hsize of the ringbufferh]hsize of the ringbuffer}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hK"hj<ubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj<hK"hj;ubj)}(h ``pread`` next position to read h](j)}(h ``pread``h]j)}(hj4<h]hpread}(hj6<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2<ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK#hj.<ubj)}(hhh]h)}(hnext position to readh]hnext position to read}(hjM<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjI<hK#hjJ<ubah}(h]h ]h"]h$]h&]uh1jhj.<ubeh}(h]h ]h"]h$]h&]uh1jhjI<hK#hj;ubj)}(h"``pwrite`` next position to write h](j)}(h ``pwrite``h]j)}(hjm<h]hpwrite}(hjo<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk<ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK$hjg<ubj)}(hhh]h)}(hnext position to writeh]hnext position to write}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hK$hj<ubah}(h]h ]h"]h$]h&]uh1jhjg<ubeh}(h]h ]h"]h$]h&]uh1jhj<hK$hj;ubj)}(hI``error`` used by ringbuffer clients to indicate that an error happened. h](j)}(h ``error``h]j)}(hj<h]herror}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK%hj<ubj)}(hhh]h)}(h>used by ringbuffer clients to indicate that an error happened.h]h>used by ringbuffer clients to indicate that an error happened.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hK%hj<ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhj<hK%hj;ubj)}(hS``queue`` Wait queue used by ringbuffer clients to indicate when buffer was filled h](j)}(h ``queue``h]j)}(hj<h]hqueue}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK'hj<ubj)}(hhh]h)}(hHWait queue used by ringbuffer clients to indicate when buffer was filledh]hHWait queue used by ringbuffer clients to indicate when buffer was filled}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK&hj<ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhj<hK'hj;ubj)}(h0``lock`` Spinlock used to protect the ringbufferh](j)}(h``lock``h]j)}(hj=h]hlock}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK'hj=ubj)}(hhh]h)}(h'Spinlock used to protect the ringbufferh]h'Spinlock used to protect the ringbuffer}(hj2=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK(hj/=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj.=hK'hj;ubeh}(h]h ]h"]h$]h&]uh1jhjq;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j  dvb_ringbuffer_init (C function)c.dvb_ringbuffer_inithNtauh1hhjj:hhhNhNubj)}(hhh](j)}(hNvoid dvb_ringbuffer_init (struct dvb_ringbuffer *rbuf, void *data, size_t len)h]j)}(hMvoid dvb_ringbuffer_init(struct dvb_ringbuffer *rbuf, void *data, size_t len)h](jG)}(hvoidh]hvoid}(hjs=hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjo=hhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK7ubj3)}(h h]h }(hj=hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjo=hhhj=hK7ubjD)}(hdvb_ringbuffer_inith]jJ)}(hdvb_ringbuffer_inith]hdvb_ringbuffer_init}(hj=hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj=ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjo=hhhj=hK7ubj)}(h5(struct dvb_ringbuffer *rbuf, void *data, size_t len)h](j%)}(hstruct dvb_ringbuffer *rbufh](j!)}(hjh]hstruct}(hj=hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj=ubj3)}(h h]h }(hj=hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj=ubh)}(hhh]jJ)}(hdvb_ringbufferh]hdvb_ringbuffer}(hj=hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj=ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=modnameN classnameNj j )}j ]j)}jj=sbc.dvb_ringbuffer_initasbuh1hhj=ubj3)}(h h]h }(hj=hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj=ubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubjJ)}(hrbufh]hrbuf}(hj >hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj=ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj=ubj%)}(h void *datah](jG)}(hvoidh]hvoid}(hj">hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj>ubj3)}(h h]h }(hj0>hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj>ubj)}(hjh]h*}(hj>>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubjJ)}(hdatah]hdata}(hjK>hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj>ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj=ubj%)}(h size_t lenh](h)}(hhh]jJ)}(hsize_th]hsize_t}(hjg>hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjd>ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetji>modnameN classnameNj j )}j ]j=c.dvb_ringbuffer_initasbuh1hhj`>ubj3)}(h h]h }(hj>hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj`>ubjJ)}(hlenh]hlen}(hj>hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj`>ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj=ubeh}(h]h ]h"]h$]h&]hhuh1jhjo=hhhj=hK7ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjk=hhhj=hK7ubah}(h]jf=ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj=hK7hjh=hhubjv)}(hhh]h)}(h&initialize ring buffer, lock and queueh]h&initialize ring buffer, lock and queue}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK7hj>hhubah}(h]h ]h"]h$]h&]uh1juhjh=hhhj=hK7ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj>jj>jjjuh1jhhhjj:hNhNubj)}(h**Parameters** ``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer ``void *data`` pointer to the buffer where the data will be stored ``size_t len`` bytes from ring buffer into **buf**h](h)}(h**Parameters**h]j)}(hj>h]h Parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK;hj>ubj)}(hhh](j)}(hA``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer h](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hj>h]hstruct dvb_ringbuffer *rbuf}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK9hj>ubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hK9hj?ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj?hK9hj>ubj)}(hC``void *data`` pointer to the buffer where the data will be stored h](j)}(h``void *data``h]j)}(hj7?h]h void *data}(hj9?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5?ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK:hj1?ubj)}(hhh]h)}(h3pointer to the buffer where the data will be storedh]h3pointer to the buffer where the data will be stored}(hjP?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjL?hK:hjM?ubah}(h]h ]h"]h$]h&]uh1jhj1?ubeh}(h]h ]h"]h$]h&]uh1jhjL?hK:hj>ubj)}(h2``size_t len`` bytes from ring buffer into **buf**h](j)}(h``size_t len``h]j)}(hjp?h]h size_t len}(hjr?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjn?ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKubeh}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j !dvb_ringbuffer_empty (C function)c.dvb_ringbuffer_emptyhNtauh1hhjj:hhhNhNubj)}(hhh](j)}(h6int dvb_ringbuffer_empty (struct dvb_ringbuffer *rbuf)h]j)}(h5int dvb_ringbuffer_empty(struct dvb_ringbuffer *rbuf)h](jG)}(hinth]hint}(hj?hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj?hhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKAubj3)}(h h]h }(hj?hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj?hhhj?hKAubjD)}(hdvb_ringbuffer_emptyh]jJ)}(hdvb_ringbuffer_emptyh]hdvb_ringbuffer_empty}(hj?hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj?ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj?hhhj?hKAubj)}(h(struct dvb_ringbuffer *rbuf)h]j%)}(hstruct dvb_ringbuffer *rbufh](j!)}(hjh]hstruct}(hj@hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj@ubj3)}(h h]h }(hj"@hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj@ubh)}(hhh]jJ)}(hdvb_ringbufferh]hdvb_ringbuffer}(hj3@hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj0@ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5@modnameN classnameNj j )}j ]j)}jj?sbc.dvb_ringbuffer_emptyasbuh1hhj@ubj3)}(h h]h }(hjS@hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj@ubj)}(hjh]h*}(hja@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubjJ)}(hrbufh]hrbuf}(hjn@hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj@ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj @ubah}(h]h ]h"]h$]h&]hhuh1jhj?hhhj?hKAubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj?hhhj?hKAubah}(h]j?ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj?hKAhj?hhubjv)}(hhh]h)}(htest whether buffer is emptyh]htest whether buffer is empty}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKAhj@hhubah}(h]h ]h"]h$]h&]uh1juhj?hhhj?hKAubeh}(h]h ](jfunctioneh"]h$]h&]jjjj@jj@jjjuh1jhhhjj:hNhNubj)}(hR**Parameters** ``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbufferh](h)}(h**Parameters**h]j)}(hj@h]h Parameters}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKEhj@ubj)}(hhh]j)}(h@``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbufferh](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hj@h]hstruct dvb_ringbuffer *rbuf}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKGhj@ubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKChj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hKGhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j  dvb_ringbuffer_free (C function)c.dvb_ringbuffer_freehNtauh1hhjj:hhhNhNubj)}(hhh](j)}(h9ssize_t dvb_ringbuffer_free (struct dvb_ringbuffer *rbuf)h]j)}(h8ssize_t dvb_ringbuffer_free(struct dvb_ringbuffer *rbuf)h](h)}(hhh]jJ)}(hssize_th]hssize_t}(hj6AhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj3Aubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj8AmodnameN classnameNj j )}j ]j)}jdvb_ringbuffer_freesbc.dvb_ringbuffer_freeasbuh1hhj/Ahhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKHubj3)}(h h]h }(hjXAhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj/AhhhjWAhKHubjD)}(hdvb_ringbuffer_freeh]jJ)}(hjTAh]hdvb_ringbuffer_free}(hjjAhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjfAubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj/AhhhjWAhKHubj)}(h(struct dvb_ringbuffer *rbuf)h]j%)}(hstruct dvb_ringbuffer *rbufh](j!)}(hjh]hstruct}(hjAhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjAubj3)}(h h]h }(hjAhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjAubh)}(hhh]jJ)}(hdvb_ringbufferh]hdvb_ringbuffer}(hjAhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjAubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNj j )}j ]jRAc.dvb_ringbuffer_freeasbuh1hhjAubj3)}(h h]h }(hjAhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjAubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubjJ)}(hrbufh]hrbuf}(hjAhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjAubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj}Aubah}(h]h ]h"]h$]h&]hhuh1jhj/AhhhjWAhKHubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj+AhhhjWAhKHubah}(h]j&Aah ](jmjneh"]h$]h&]jrjs)jthuh1jhjWAhKHhj(Ahhubjv)}(hhh]h)}(h.returns the number of free bytes in the bufferh]h.returns the number of free bytes in the buffer}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKHhjBhhubah}(h]h ]h"]h$]h&]uh1juhj(AhhhjWAhKHubeh}(h]h ](jfunctioneh"]h$]h&]jjjjBjjBjjjuh1jhhhjj:hNhNubj)}(h**Parameters** ``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer **Return** number of free bytes in the bufferh](h)}(h**Parameters**h]j)}(hj(Bh]h Parameters}(hj*BhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&Bubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKLhj"Bubj)}(hhh]j)}(hA``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer h](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hjGBh]hstruct dvb_ringbuffer *rbuf}(hjIBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEBubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKJhjABubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hj`BhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\BhKJhj]Bubah}(h]h ]h"]h$]h&]uh1jhjABubeh}(h]h ]h"]h$]h&]uh1jhj\BhKJhj>Bubah}(h]h ]h"]h$]h&]uh1jhj"Bubh)}(h **Return**h]j)}(hjBh]hReturn}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKLhj"Bubh)}(h"number of free bytes in the bufferh]h"number of free bytes in the buffer}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKLhj"Bubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j !dvb_ringbuffer_avail (C function)c.dvb_ringbuffer_availhNtauh1hhjj:hhhNhNubj)}(hhh](j)}(h:ssize_t dvb_ringbuffer_avail (struct dvb_ringbuffer *rbuf)h]j)}(h9ssize_t dvb_ringbuffer_avail(struct dvb_ringbuffer *rbuf)h](h)}(hhh]jJ)}(hssize_th]hssize_t}(hjBhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjBubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjBmodnameN classnameNj j )}j ]j)}jdvb_ringbuffer_availsbc.dvb_ringbuffer_availasbuh1hhjBhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKQubj3)}(h h]h }(hjBhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjBhhhjBhKQubjD)}(hdvb_ringbuffer_availh]jJ)}(hjBh]hdvb_ringbuffer_avail}(hjBhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjBubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjBhhhjBhKQubj)}(h(struct dvb_ringbuffer *rbuf)h]j%)}(hstruct dvb_ringbuffer *rbufh](j!)}(hjh]hstruct}(hjChhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjCubj3)}(h h]h }(hj&ChhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjCubh)}(hhh]jJ)}(hdvb_ringbufferh]hdvb_ringbuffer}(hj7ChhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj4Cubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj9CmodnameN classnameNj j )}j ]jBc.dvb_ringbuffer_availasbuh1hhjCubj3)}(h h]h }(hjUChhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjCubj)}(hjh]h*}(hjcChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCubjJ)}(hrbufh]hrbuf}(hjpChhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjCubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjCubah}(h]h ]h"]h$]h&]hhuh1jhjBhhhjBhKQubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjBhhhjBhKQubah}(h]jBah ](jmjneh"]h$]h&]jrjs)jthuh1jhjBhKQhjBhhubjv)}(hhh]h)}(h1returns the number of bytes waiting in the bufferh]h1returns the number of bytes waiting in the buffer}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKQhjChhubah}(h]h ]h"]h$]h&]uh1juhjBhhhjBhKQubeh}(h]h ](jfunctioneh"]h$]h&]jjjjCjjCjjjuh1jhhhjj:hNhNubj)}(h**Parameters** ``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer **Return** number of bytes waiting in the bufferh](h)}(h**Parameters**h]j)}(hjCh]h Parameters}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKUhjCubj)}(hhh]j)}(hA``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer h](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hjCh]hstruct dvb_ringbuffer *rbuf}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKShjCubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChKShjCubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjChKShjCubah}(h]h ]h"]h$]h&]uh1jhjCubh)}(h **Return**h]j)}(hjDh]hReturn}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKUhjCubh)}(h%number of bytes waiting in the bufferh]h%number of bytes waiting in the buffer}(hj,DhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKUhjCubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j !dvb_ringbuffer_reset (C function)c.dvb_ringbuffer_resethNtauh1hhjj:hhhNhNubj)}(hhh](j)}(h7void dvb_ringbuffer_reset (struct dvb_ringbuffer *rbuf)h]j)}(h6void dvb_ringbuffer_reset(struct dvb_ringbuffer *rbuf)h](jG)}(hvoidh]hvoid}(hj[DhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjWDhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKZubj3)}(h h]h }(hjjDhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjWDhhhjiDhKZubjD)}(hdvb_ringbuffer_reseth]jJ)}(hdvb_ringbuffer_reseth]hdvb_ringbuffer_reset}(hj|DhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjxDubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjWDhhhjiDhKZubj)}(h(struct dvb_ringbuffer *rbuf)h]j%)}(hstruct dvb_ringbuffer *rbufh](j!)}(hjh]hstruct}(hjDhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjDubj3)}(h h]h }(hjDhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjDubh)}(hhh]jJ)}(hdvb_ringbufferh]hdvb_ringbuffer}(hjDhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjDubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjDmodnameN classnameNj j )}j ]j)}jj~Dsbc.dvb_ringbuffer_resetasbuh1hhjDubj3)}(h h]h }(hjDhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjDubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubjJ)}(hrbufh]hrbuf}(hjDhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjDubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjDubah}(h]h ]h"]h$]h&]hhuh1jhjWDhhhjiDhKZubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjSDhhhjiDhKZubah}(h]jNDah ](jmjneh"]h$]h&]jrjs)jthuh1jhjiDhKZhjPDhhubjv)}(hhh]h)}(h&resets the ringbuffer to initial stateh]h&resets the ringbuffer to initial state}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKZhjEhhubah}(h]h ]h"]h$]h&]uh1juhjPDhhhjiDhKZubeh}(h]h ](jfunctioneh"]h$]h&]jjjj3Ejj3Ejjjuh1jhhhjj:hNhNubj)}(h**Parameters** ``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer **Description** Resets the read and write pointers to zero and flush the buffer. This counts as a read and write operationh](h)}(h**Parameters**h]j)}(hj=Eh]h Parameters}(hj?EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;Eubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK^hj7Eubj)}(hhh]j)}(hA``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer h](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hj\Eh]hstruct dvb_ringbuffer *rbuf}(hj^EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZEubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK\hjVEubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hjuEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqEhK\hjrEubah}(h]h ]h"]h$]h&]uh1jhjVEubeh}(h]h ]h"]h$]h&]uh1jhjqEhK\hjSEubah}(h]h ]h"]h$]h&]uh1jhj7Eubh)}(h**Description**h]j)}(hjEh]h Description}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK^hj7Eubh)}(h@Resets the read and write pointers to zero and flush the buffer.h]h@Resets the read and write pointers to zero and flush the buffer.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK]hj7Eubh)}(h)This counts as a read and write operationh]h)This counts as a read and write operation}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK_hj7Eubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j !dvb_ringbuffer_flush (C function)c.dvb_ringbuffer_flushhNtauh1hhjj:hhhNhNubj)}(hhh](j)}(h7void dvb_ringbuffer_flush (struct dvb_ringbuffer *rbuf)h]j)}(h6void dvb_ringbuffer_flush(struct dvb_ringbuffer *rbuf)h](jG)}(hvoidh]hvoid}(hjEhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjEhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKiubj3)}(h h]h }(hjEhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjEhhhjEhKiubjD)}(hdvb_ringbuffer_flushh]jJ)}(hdvb_ringbuffer_flushh]hdvb_ringbuffer_flush}(hj FhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjFubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjEhhhjEhKiubj)}(h(struct dvb_ringbuffer *rbuf)h]j%)}(hstruct dvb_ringbuffer *rbufh](j!)}(hjh]hstruct}(hj(FhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj$Fubj3)}(h h]h }(hj5FhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$Fubh)}(hhh]jJ)}(hdvb_ringbufferh]hdvb_ringbuffer}(hjFFhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjCFubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjHFmodnameN classnameNj j )}j ]j)}jjFsbc.dvb_ringbuffer_flushasbuh1hhj$Fubj3)}(h h]h }(hjfFhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$Fubj)}(hjh]h*}(hjtFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$FubjJ)}(hrbufh]hrbuf}(hjFhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj$Fubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj Fubah}(h]h ]h"]h$]h&]hhuh1jhjEhhhjEhKiubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjEhhhjEhKiubah}(h]jEah ](jmjneh"]h$]h&]jrjs)jthuh1jhjEhKihjEhhubjv)}(hhh]h)}(h flush bufferh]h flush buffer}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKihjFhhubah}(h]h ]h"]h$]h&]uh1juhjEhhhjEhKiubeh}(h]h ](jfunctioneh"]h$]h&]jjjjFjjFjjjuh1jhhhjj:hNhNubj)}(hR**Parameters** ``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbufferh](h)}(h**Parameters**h]j)}(hjFh]h Parameters}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKmhjFubj)}(hhh]j)}(h@``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbufferh](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hjFh]hstruct dvb_ringbuffer *rbuf}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKohjFubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKkhjGubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjGhKohjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j 1dvb_ringbuffer_flush_spinlock_wakeup (C function)&c.dvb_ringbuffer_flush_spinlock_wakeuphNtauh1hhjj:hhhNhNubj)}(hhh](j)}(hGvoid dvb_ringbuffer_flush_spinlock_wakeup (struct dvb_ringbuffer *rbuf)h]j)}(hFvoid dvb_ringbuffer_flush_spinlock_wakeup(struct dvb_ringbuffer *rbuf)h](jG)}(hvoidh]hvoid}(hjFGhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjBGhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKpubj3)}(h h]h }(hjUGhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjBGhhhjTGhKpubjD)}(h$dvb_ringbuffer_flush_spinlock_wakeuph]jJ)}(h$dvb_ringbuffer_flush_spinlock_wakeuph]h$dvb_ringbuffer_flush_spinlock_wakeup}(hjgGhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjcGubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjBGhhhjTGhKpubj)}(h(struct dvb_ringbuffer *rbuf)h]j%)}(hstruct dvb_ringbuffer *rbufh](j!)}(hjh]hstruct}(hjGhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjGubj3)}(h h]h }(hjGhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjGubh)}(hhh]jJ)}(hdvb_ringbufferh]hdvb_ringbuffer}(hjGhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjGubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjGmodnameN classnameNj j )}j ]j)}jjiGsb&c.dvb_ringbuffer_flush_spinlock_wakeupasbuh1hhjGubj3)}(h h]h }(hjGhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjGubj)}(hjh]h*}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjGubjJ)}(hrbufh]hrbuf}(hjGhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjGubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj{Gubah}(h]h ]h"]h$]h&]hhuh1jhjBGhhhjTGhKpubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj>GhhhjTGhKpubah}(h]j9Gah ](jmjneh"]h$]h&]jrjs)jthuh1jhjTGhKphj;Ghhubjv)}(hhh]h)}(h>flush buffer protected by spinlock and wake-up waiting task(s)h]h>flush buffer protected by spinlock and wake-up waiting task(s)}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKphjHhhubah}(h]h ]h"]h$]h&]uh1juhj;GhhhjTGhKpubeh}(h]h ](jfunctioneh"]h$]h&]jjjjHjjHjjjuh1jhhhjj:hNhNubj)}(hR**Parameters** ``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbufferh](h)}(h**Parameters**h]j)}(hj(Hh]h Parameters}(hj*HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&Hubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKthj"Hubj)}(hhh]j)}(h@``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbufferh](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hjGHh]hstruct dvb_ringbuffer *rbuf}(hjIHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEHubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKvhjAHubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hj`HhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKshj]Hubah}(h]h ]h"]h$]h&]uh1jhjAHubeh}(h]h ]h"]h$]h&]uh1jhj\HhKvhj>Hubah}(h]h ]h"]h$]h&]uh1jhj"Hubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j DVB_RINGBUFFER_PEEK (C macro)c.DVB_RINGBUFFER_PEEKhNtauh1hhjj:hhhNhNubj)}(hhh](j)}(hDVB_RINGBUFFER_PEEKh]j)}(hDVB_RINGBUFFER_PEEKh]jD)}(hDVB_RINGBUFFER_PEEKh]jJ)}(hjHh]hDVB_RINGBUFFER_PEEK}(hjHhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjHubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjHhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKxubah}(h]h ]h"]h$]h&]hhjguh1jjhjihjHhhhjHhKxubah}(h]jHah ](jmjneh"]h$]h&]jrjs)jthuh1jhjHhKxhjHhhubjv)}(hhh]h}(h]h ]h"]h$]h&]uh1juhjHhhhjHhKxubeh}(h]h ](jmacroeh"]h$]h&]jjjjHjjHjjjuh1jhhhjj:hNhNubh)}(h$``DVB_RINGBUFFER_PEEK (rbuf, offs)``h]j)}(hjHh]h DVB_RINGBUFFER_PEEK (rbuf, offs)}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKzhjj:hhubj.8)}(h$peek at byte **offs** in the buffer h]h)}(h#peek at byte **offs** in the bufferh](h peek at byte }(hjHhhhNhNubj)}(h**offs**h]hoffs}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubh in the buffer}(hjHhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKxhjHubah}(h]h ]h"]h$]h&]uh1j-8hjIhKxhjj:hhubj)}(hd**Parameters** ``rbuf`` pointer to struct dvb_ringbuffer ``offs`` offset inside the ringbufferh](h)}(h**Parameters**h]j)}(hjIh]h Parameters}(hj IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK|hjIubj)}(hhh](j)}(h*``rbuf`` pointer to struct dvb_ringbuffer h](j)}(h``rbuf``h]j)}(hj=Ih]hrbuf}(hj?IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;Iubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKzhj7Iubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hjVIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRIhKzhjSIubah}(h]h ]h"]h$]h&]uh1jhj7Iubeh}(h]h ]h"]h$]h&]uh1jhjRIhKzhj4Iubj)}(h%``offs`` offset inside the ringbufferh](j)}(h``offs``h]j)}(hjvIh]hoffs}(hjxIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtIubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK|hjpIubj)}(hhh]h)}(hoffset inside the ringbufferh]hoffset inside the ringbuffer}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK{hjIubah}(h]h ]h"]h$]h&]uh1jhjpIubeh}(h]h ]h"]h$]h&]uh1jhjIhK|hj4Iubeh}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j DVB_RINGBUFFER_SKIP (C macro)c.DVB_RINGBUFFER_SKIPhNtauh1hhjj:hhhNhNubj)}(hhh](j)}(hDVB_RINGBUFFER_SKIPh]j)}(hDVB_RINGBUFFER_SKIPh]jD)}(hDVB_RINGBUFFER_SKIPh]jJ)}(hjIh]hDVB_RINGBUFFER_SKIP}(hjIhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjIubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjIhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKubah}(h]h ]h"]h$]h&]hhjguh1jjhjihjIhhhjIhKubah}(h]jIah ](jmjneh"]h$]h&]jrjs)jthuh1jhjIhKhjIhhubjv)}(hhh]h}(h]h ]h"]h$]h&]uh1juhjIhhhjIhKubeh}(h]h ](jmacroeh"]h$]h&]jjjjJjjJjjjuh1jhhhjj:hNhNubh)}(h#``DVB_RINGBUFFER_SKIP (rbuf, num)``h]j)}(hjJh]hDVB_RINGBUFFER_SKIP (rbuf, num)}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjj:hhubj.8)}(h"advance read ptr by **num** bytes h]h)}(h!advance read ptr by **num** bytesh](hadvance read ptr by }(hj JhhhNhNubj)}(h**num**h]hnum}(hj(JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Jubh bytes}(hj JhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjJubah}(h]h ]h"]h$]h&]uh1j-8hj@JhKhjj:hhubj)}(ha**Parameters** ``rbuf`` pointer to struct dvb_ringbuffer ``num`` number of bytes to advanceh](h)}(h**Parameters**h]j)}(hjMJh]h Parameters}(hjOJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKJubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjGJubj)}(hhh](j)}(h*``rbuf`` pointer to struct dvb_ringbuffer h](j)}(h``rbuf``h]j)}(hjlJh]hrbuf}(hjnJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjJubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjfJubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhKhjJubah}(h]h ]h"]h$]h&]uh1jhjfJubeh}(h]h ]h"]h$]h&]uh1jhjJhKhjcJubj)}(h"``num`` number of bytes to advanceh](j)}(h``num``h]j)}(hjJh]hnum}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjJubj)}(hhh]h)}(hnumber of bytes to advanceh]hnumber of bytes to advance}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjJubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjJhKhjcJubeh}(h]h ]h"]h$]h&]uh1jhjGJubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j %dvb_ringbuffer_read_user (C function)c.dvb_ringbuffer_read_userhNtauh1hhjj:hhhNhNubj)}(hhh](j)}(hZssize_t dvb_ringbuffer_read_user (struct dvb_ringbuffer *rbuf, u8 __user *buf, size_t len)h]j)}(hYssize_t dvb_ringbuffer_read_user(struct dvb_ringbuffer *rbuf, u8 __user *buf, size_t len)h](h)}(hhh]jJ)}(hssize_th]hssize_t}(hjKhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjJubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNj j )}j ]j)}jdvb_ringbuffer_read_usersbc.dvb_ringbuffer_read_userasbuh1hhjJhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKubj3)}(h h]h }(hj$KhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjJhhhj#KhKubjD)}(hdvb_ringbuffer_read_userh]jJ)}(hj Kh]hdvb_ringbuffer_read_user}(hj6KhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj2Kubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjJhhhj#KhKubj)}(h9(struct dvb_ringbuffer *rbuf, u8 __user *buf, size_t len)h](j%)}(hstruct dvb_ringbuffer *rbufh](j!)}(hjh]hstruct}(hjQKhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjMKubj3)}(h h]h }(hj^KhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjMKubh)}(hhh]jJ)}(hdvb_ringbufferh]hdvb_ringbuffer}(hjoKhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjlKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjqKmodnameN classnameNj j )}j ]jKc.dvb_ringbuffer_read_userasbuh1hhjMKubj3)}(h h]h }(hjKhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjMKubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMKubjJ)}(hrbufh]hrbuf}(hjKhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjMKubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjIKubj%)}(hu8 __user *bufh](h)}(hhh]jJ)}(hu8h]hu8}(hjKhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjKubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjKmodnameN classnameNj j )}j ]jKc.dvb_ringbuffer_read_userasbuh1hhjKubj3)}(h h]h }(hjKhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjKubh__user}(hjKhhhNhNubj3)}(h h]h }(hjKhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjKubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubjJ)}(hbufh]hbuf}(hjLhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjKubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjIKubj%)}(h size_t lenh](h)}(hhh]jJ)}(hsize_th]hsize_t}(hj+LhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj(Lubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-LmodnameN classnameNj j )}j ]jKc.dvb_ringbuffer_read_userasbuh1hhj$Lubj3)}(h h]h }(hjILhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$LubjJ)}(hlenh]hlen}(hjWLhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj$Lubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjIKubeh}(h]h ]h"]h$]h&]hhuh1jhjJhhhj#KhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjJhhhj#KhKubah}(h]jJah ](jmjneh"]h$]h&]jrjs)jthuh1jhj#KhKhjJhhubjv)}(hhh]h)}(h"Reads a buffer into a user pointerh]h"Reads a buffer into a user pointer}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj~Lhhubah}(h]h ]h"]h$]h&]uh1juhjJhhhj#KhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjLjjLjjjuh1jhhhjj:hNhNubj)}(hX**Parameters** ``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer ``u8 __user *buf`` pointer to the buffer where the data will be stored ``size_t len`` bytes from ring buffer into **buf** **Description** This variant assumes that the buffer is a memory at the userspace. So, it will internally call copy_to_user(). **Return** number of bytes transferred or -EFAULTh](h)}(h**Parameters**h]j)}(hjLh]h Parameters}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjLubj)}(hhh](j)}(hA``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer h](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hjLh]hstruct dvb_ringbuffer *rbuf}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjLubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhKhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjLubj)}(hG``u8 __user *buf`` pointer to the buffer where the data will be stored h](j)}(h``u8 __user *buf``h]j)}(hjLh]hu8 __user *buf}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjLubj)}(hhh]h)}(h3pointer to the buffer where the data will be storedh]h3pointer to the buffer where the data will be stored}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhKhjMubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjMhKhjLubj)}(h3``size_t len`` bytes from ring buffer into **buf** h](j)}(h``size_t len``h]j)}(hj4Mh]h size_t len}(hj6MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2Mubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj.Mubj)}(hhh]h)}(h#bytes from ring buffer into **buf**h](hbytes from ring buffer into }(hjMMhhhNhNubj)}(h**buf**h]hbuf}(hjUMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMMubeh}(h]h ]h"]h$]h&]uh1hhjIMhKhjJMubah}(h]h ]h"]h$]h&]uh1jhj.Mubeh}(h]h ]h"]h$]h&]uh1jhjIMhKhjLubeh}(h]h ]h"]h$]h&]uh1jhjLubh)}(h**Description**h]j)}(hj}Mh]h Description}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{Mubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjLubh)}(hnThis variant assumes that the buffer is a memory at the userspace. So, it will internally call copy_to_user().h]hnThis variant assumes that the buffer is a memory at the userspace. So, it will internally call copy_to_user().}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjLubh)}(h **Return**h]j)}(hjMh]hReturn}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjLubh)}(h&number of bytes transferred or -EFAULTh]h&number of bytes transferred or -EFAULT}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjLubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j  dvb_ringbuffer_read (C function)c.dvb_ringbuffer_readhNtauh1hhjj:hhhNhNubj)}(hhh](j)}(hKvoid dvb_ringbuffer_read (struct dvb_ringbuffer *rbuf, u8 *buf, size_t len)h]j)}(hJvoid dvb_ringbuffer_read(struct dvb_ringbuffer *rbuf, u8 *buf, size_t len)h](jG)}(hvoidh]hvoid}(hjMhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjMhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKubj3)}(h h]h }(hjMhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjMhhhjMhKubjD)}(hdvb_ringbuffer_readh]jJ)}(hdvb_ringbuffer_readh]hdvb_ringbuffer_read}(hj NhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjNubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjMhhhjMhKubj)}(h2(struct dvb_ringbuffer *rbuf, u8 *buf, size_t len)h](j%)}(hstruct dvb_ringbuffer *rbufh](j!)}(hjh]hstruct}(hj&NhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj"Nubj3)}(h h]h }(hj3NhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj"Nubh)}(hhh]jJ)}(hdvb_ringbufferh]hdvb_ringbuffer}(hjDNhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjANubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjFNmodnameN classnameNj j )}j ]j)}jj Nsbc.dvb_ringbuffer_readasbuh1hhj"Nubj3)}(h h]h }(hjdNhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj"Nubj)}(hjh]h*}(hjrNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"NubjJ)}(hrbufh]hrbuf}(hjNhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj"Nubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjNubj%)}(hu8 *bufh](h)}(hhh]jJ)}(hu8h]hu8}(hjNhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNj j )}j ]j`Nc.dvb_ringbuffer_readasbuh1hhjNubj3)}(h h]h }(hjNhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjNubj)}(hjh]h*}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubjJ)}(hbufh]hbuf}(hjNhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjNubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjNubj%)}(h size_t lenh](h)}(hhh]jJ)}(hsize_th]hsize_t}(hjNhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjNubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjNmodnameN classnameNj j )}j ]j`Nc.dvb_ringbuffer_readasbuh1hhjNubj3)}(h h]h }(hjOhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjNubjJ)}(hlenh]hlen}(hjOhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjNubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjNubeh}(h]h ]h"]h$]h&]hhuh1jhjMhhhjMhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjMhhhjMhKubah}(h]jMah ](jmjneh"]h$]h&]jrjs)jthuh1jhjMhKhjMhhubjv)}(hhh]h)}(hReads a buffer into a pointerh]hReads a buffer into a pointer}(hjFOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjCOhhubah}(h]h ]h"]h$]h&]uh1juhjMhhhjMhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj^Ojj^Ojjjuh1jhhhjj:hNhNubj)}(hXV**Parameters** ``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer ``u8 *buf`` pointer to the buffer where the data will be stored ``size_t len`` bytes from ring buffer into **buf** **Description** This variant assumes that the buffer is a memory at the Kernel space **Return** number of bytes transferred or -EFAULTh](h)}(h**Parameters**h]j)}(hjhOh]h Parameters}(hjjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfOubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjbOubj)}(hhh](j)}(hA``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer h](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hjOh]hstruct dvb_ringbuffer *rbuf}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjOubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhKhjOubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjOhKhj~Oubj)}(h@``u8 *buf`` pointer to the buffer where the data will be stored h](j)}(h ``u8 *buf``h]j)}(hjOh]hu8 *buf}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjOubj)}(hhh]h)}(h3pointer to the buffer where the data will be storedh]h3pointer to the buffer where the data will be stored}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhKhjOubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjOhKhj~Oubj)}(h3``size_t len`` bytes from ring buffer into **buf** h](j)}(h``size_t len``h]j)}(hjOh]h size_t len}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjOubj)}(hhh]h)}(h#bytes from ring buffer into **buf**h](hbytes from ring buffer into }(hjPhhhNhNubj)}(h**buf**h]hbuf}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1hhjPhKhjPubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjPhKhj~Oubeh}(h]h ]h"]h$]h&]uh1jhjbOubh)}(h**Description**h]j)}(hjBPh]h Description}(hjDPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@Pubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjbOubh)}(hDThis variant assumes that the buffer is a memory at the Kernel spaceh]hDThis variant assumes that the buffer is a memory at the Kernel space}(hjXPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjbOubh)}(h **Return**h]j)}(hjiPh]hReturn}(hjkPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgPubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjbOubh)}(h&number of bytes transferred or -EFAULTh]h&number of bytes transferred or -EFAULT}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjbOubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j #DVB_RINGBUFFER_WRITE_BYTE (C macro)c.DVB_RINGBUFFER_WRITE_BYTEhNtauh1hhjj:hhhNhNubj)}(hhh](j)}(hDVB_RINGBUFFER_WRITE_BYTEh]j)}(hDVB_RINGBUFFER_WRITE_BYTEh]jD)}(hDVB_RINGBUFFER_WRITE_BYTEh]jJ)}(hjPh]hDVB_RINGBUFFER_WRITE_BYTE}(hjPhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjPubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjPhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKubah}(h]h ]h"]h$]h&]hhjguh1jjhjihjPhhhjPhKubah}(h]jPah ](jmjneh"]h$]h&]jrjs)jthuh1jhjPhKhjPhhubjv)}(hhh]h}(h]h ]h"]h$]h&]uh1juhjPhhhjPhKubeh}(h]h ](jmacroeh"]h$]h&]jjjjPjjPjjjuh1jhhhjj:hNhNubh)}(h*``DVB_RINGBUFFER_WRITE_BYTE (rbuf, byte)``h]j)}(hjPh]h&DVB_RINGBUFFER_WRITE_BYTE (rbuf, byte)}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjj:hhubj.8)}(h!write single byte to ring buffer h]h)}(h write single byte to ring bufferh]h write single byte to ring buffer}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjPubah}(h]h ]h"]h$]h&]uh1j-8hj QhKhjj:hhubj)}(hU**Parameters** ``rbuf`` pointer to struct dvb_ringbuffer ``byte`` byte to writeh](h)}(h**Parameters**h]j)}(hjQh]h Parameters}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjQubj)}(hhh](j)}(h*``rbuf`` pointer to struct dvb_ringbuffer h](j)}(h``rbuf``h]j)}(hj8Qh]hrbuf}(hj:QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6Qubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj2Qubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hjQQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMQhKhjNQubah}(h]h ]h"]h$]h&]uh1jhj2Qubeh}(h]h ]h"]h$]h&]uh1jhjMQhKhj/Qubj)}(h``byte`` byte to writeh](j)}(h``byte``h]j)}(hjqQh]hbyte}(hjsQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoQubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjkQubj)}(hhh]h)}(h byte to writeh]h byte to write}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjQubah}(h]h ]h"]h$]h&]uh1jhjkQubeh}(h]h ]h"]h$]h&]uh1jhjQhKhj/Qubeh}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j !dvb_ringbuffer_write (C function)c.dvb_ringbuffer_writehNtauh1hhjj:hhhNhNubj)}(hhh](j)}(hUssize_t dvb_ringbuffer_write (struct dvb_ringbuffer *rbuf, const u8 *buf, size_t len)h]j)}(hTssize_t dvb_ringbuffer_write(struct dvb_ringbuffer *rbuf, const u8 *buf, size_t len)h](h)}(hhh]jJ)}(hssize_th]hssize_t}(hjQhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjQubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjQmodnameN classnameNj j )}j ]j)}jdvb_ringbuffer_writesbc.dvb_ringbuffer_writeasbuh1hhjQhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKubj3)}(h h]h }(hjQhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjQhhhjQhKubjD)}(hdvb_ringbuffer_writeh]jJ)}(hjQh]hdvb_ringbuffer_write}(hjRhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjQubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjQhhhjQhKubj)}(h8(struct dvb_ringbuffer *rbuf, const u8 *buf, size_t len)h](j%)}(hstruct dvb_ringbuffer *rbufh](j!)}(hjh]hstruct}(hjRhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjRubj3)}(h h]h }(hj*RhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjRubh)}(hhh]jJ)}(hdvb_ringbufferh]hdvb_ringbuffer}(hj;RhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj8Rubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj=RmodnameN classnameNj j )}j ]jQc.dvb_ringbuffer_writeasbuh1hhjRubj3)}(h h]h }(hjYRhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjRubj)}(hjh]h*}(hjgRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubjJ)}(hrbufh]hrbuf}(hjtRhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjRubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjRubj%)}(h const u8 *bufh](j!)}(hjUh]hconst}(hjRhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjRubj3)}(h h]h }(hjRhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjRubh)}(hhh]jJ)}(hu8h]hu8}(hjRhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjRmodnameN classnameNj j )}j ]jQc.dvb_ringbuffer_writeasbuh1hhjRubj3)}(h h]h }(hjRhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjRubj)}(hjh]h*}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubjJ)}(hbufh]hbuf}(hjRhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjRubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjRubj%)}(h size_t lenh](h)}(hhh]jJ)}(hsize_th]hsize_t}(hjShhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjRubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjSmodnameN classnameNj j )}j ]jQc.dvb_ringbuffer_writeasbuh1hhjRubj3)}(h h]h }(hjShhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjRubjJ)}(hlenh]hlen}(hj,ShhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjRubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjRubeh}(h]h ]h"]h$]h&]hhuh1jhjQhhhjQhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjQhhhjQhKubah}(h]jQah ](jmjneh"]h$]h&]jrjs)jthuh1jhjQhKhjQhhubjv)}(hhh]h)}(h#Writes a buffer into the ringbufferh]h#Writes a buffer into the ringbuffer}(hjVShhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjSShhubah}(h]h ]h"]h$]h&]uh1juhjQhhhjQhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjnSjjnSjjjuh1jhhhjj:hNhNubj)}(hXZ**Parameters** ``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer ``const u8 *buf`` pointer to the buffer where the data will be read ``size_t len`` bytes from ring buffer into **buf** **Description** This variant assumes that the buffer is a memory at the Kernel space **Return** number of bytes transferred or -EFAULTh](h)}(h**Parameters**h]j)}(hjxSh]h Parameters}(hjzShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvSubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjrSubj)}(hhh](j)}(hA``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer h](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hjSh]hstruct dvb_ringbuffer *rbuf}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjSubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShKhjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjShKhjSubj)}(hD``const u8 *buf`` pointer to the buffer where the data will be read h](j)}(h``const u8 *buf``h]j)}(hjSh]h const u8 *buf}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjSubj)}(hhh]h)}(h1pointer to the buffer where the data will be readh]h1pointer to the buffer where the data will be read}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShKhjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjShKhjSubj)}(h3``size_t len`` bytes from ring buffer into **buf** h](j)}(h``size_t len``h]j)}(hj Th]h size_t len}(hj ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjTubj)}(hhh]h)}(h#bytes from ring buffer into **buf**h](hbytes from ring buffer into }(hj"ThhhNhNubj)}(h**buf**h]hbuf}(hj*ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"Tubeh}(h]h ]h"]h$]h&]uh1hhjThKhjTubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjThKhjSubeh}(h]h ]h"]h$]h&]uh1jhjrSubh)}(h**Description**h]j)}(hjRTh]h Description}(hjTThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPTubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjrSubh)}(hDThis variant assumes that the buffer is a memory at the Kernel spaceh]hDThis variant assumes that the buffer is a memory at the Kernel space}(hjhThhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjrSubh)}(h **Return**h]j)}(hjyTh]hReturn}(hj{ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwTubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjrSubh)}(h&number of bytes transferred or -EFAULTh]h&number of bytes transferred or -EFAULT}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjrSubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j &dvb_ringbuffer_write_user (C function)c.dvb_ringbuffer_write_userhNtauh1hhjj:hhhNhNubj)}(hhh](j)}(hassize_t dvb_ringbuffer_write_user (struct dvb_ringbuffer *rbuf, const u8 __user *buf, size_t len)h]j)}(h`ssize_t dvb_ringbuffer_write_user(struct dvb_ringbuffer *rbuf, const u8 __user *buf, size_t len)h](h)}(hhh]jJ)}(hssize_th]hssize_t}(hjThhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjTubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjTmodnameN classnameNj j )}j ]j)}jdvb_ringbuffer_write_usersbc.dvb_ringbuffer_write_userasbuh1hhjThhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKubj3)}(h h]h }(hjThhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjThhhjThKubjD)}(hdvb_ringbuffer_write_userh]jJ)}(hjTh]hdvb_ringbuffer_write_user}(hjThhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjTubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjThhhjThKubj)}(h?(struct dvb_ringbuffer *rbuf, const u8 __user *buf, size_t len)h](j%)}(hstruct dvb_ringbuffer *rbufh](j!)}(hjh]hstruct}(hjUhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj Uubj3)}(h h]h }(hjUhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj Uubh)}(hhh]jJ)}(hdvb_ringbufferh]hdvb_ringbuffer}(hj.UhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj+Uubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj0UmodnameN classnameNj j )}j ]jTc.dvb_ringbuffer_write_userasbuh1hhj Uubj3)}(h h]h }(hjLUhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj Uubj)}(hjh]h*}(hjZUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj UubjJ)}(hrbufh]hrbuf}(hjgUhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj Uubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjUubj%)}(hconst u8 __user *bufh](j!)}(hjUh]hconst}(hjUhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj|Uubj3)}(h h]h }(hjUhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj|Uubh)}(hhh]jJ)}(hu8h]hu8}(hjUhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjUubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjUmodnameN classnameNj j )}j ]jTc.dvb_ringbuffer_write_userasbuh1hhj|Uubj3)}(h h]h }(hjUhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj|Uubh__user}(hj|UhhhNhNubj3)}(h h]h }(hjUhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj|Uubj)}(hjh]h*}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|UubjJ)}(hbufh]hbuf}(hjUhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj|Uubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjUubj%)}(h size_t lenh](h)}(hhh]jJ)}(hsize_th]hsize_t}(hjVhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjVubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjVmodnameN classnameNj j )}j ]jTc.dvb_ringbuffer_write_userasbuh1hhjUubj3)}(h h]h }(hj#VhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjUubjJ)}(hlenh]hlen}(hj1VhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjUubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjUubeh}(h]h ]h"]h$]h&]hhuh1jhjThhhjThKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjThhhjThKubah}(h]jTah ](jmjneh"]h$]h&]jrjs)jthuh1jhjThKhjThhubjv)}(hhh]h)}(h+Writes a buffer received via a user pointerh]h+Writes a buffer received via a user pointer}(hj[VhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjXVhhubah}(h]h ]h"]h$]h&]uh1juhjThhhjThKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjsVjjsVjjjuh1jhhhjj:hNhNubj)}(hX**Parameters** ``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer ``const u8 __user *buf`` pointer to the buffer where the data will be read ``size_t len`` bytes from ring buffer into **buf** **Description** This variant assumes that the buffer is a memory at the userspace. So, it will internally call copy_from_user(). **Return** number of bytes transferred or -EFAULTh](h)}(h**Parameters**h]j)}(hj}Vh]h Parameters}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{Vubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjwVubj)}(hhh](j)}(hA``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer h](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hjVh]hstruct dvb_ringbuffer *rbuf}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjVubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhKhjVubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjVhKhjVubj)}(hK``const u8 __user *buf`` pointer to the buffer where the data will be read h](j)}(h``const u8 __user *buf``h]j)}(hjVh]hconst u8 __user *buf}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjVubj)}(hhh]h)}(h1pointer to the buffer where the data will be readh]h1pointer to the buffer where the data will be read}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhKhjVubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjVhKhjVubj)}(h3``size_t len`` bytes from ring buffer into **buf** h](j)}(h``size_t len``h]j)}(hjWh]h size_t len}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Wubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjWubj)}(hhh]h)}(h#bytes from ring buffer into **buf**h](hbytes from ring buffer into }(hj'WhhhNhNubj)}(h**buf**h]hbuf}(hj/WhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'Wubeh}(h]h ]h"]h$]h&]uh1hhj#WhKhj$Wubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhj#WhKhjVubeh}(h]h ]h"]h$]h&]uh1jhjwVubh)}(h**Description**h]j)}(hjWWh]h Description}(hjYWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUWubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjwVubh)}(hpThis variant assumes that the buffer is a memory at the userspace. So, it will internally call copy_from_user().h]hpThis variant assumes that the buffer is a memory at the userspace. So, it will internally call copy_from_user().}(hjmWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjwVubh)}(h **Return**h]j)}(hj~Wh]hReturn}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|Wubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjwVubh)}(h&number of bytes transferred or -EFAULTh]h&number of bytes transferred or -EFAULT}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjwVubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j %dvb_ringbuffer_pkt_write (C function)c.dvb_ringbuffer_pkt_writehNtauh1hhjj:hhhNhNubj)}(hhh](j)}(hSssize_t dvb_ringbuffer_pkt_write (struct dvb_ringbuffer *rbuf, u8 *buf, size_t len)h]j)}(hRssize_t dvb_ringbuffer_pkt_write(struct dvb_ringbuffer *rbuf, u8 *buf, size_t len)h](h)}(hhh]jJ)}(hssize_th]hssize_t}(hjWhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjWubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjWmodnameN classnameNj j )}j ]j)}jdvb_ringbuffer_pkt_writesbc.dvb_ringbuffer_pkt_writeasbuh1hhjWhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKubj3)}(h h]h }(hjWhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjWhhhjWhKubjD)}(hdvb_ringbuffer_pkt_writeh]jJ)}(hjWh]hdvb_ringbuffer_pkt_write}(hjWhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjWubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjWhhhjWhKubj)}(h2(struct dvb_ringbuffer *rbuf, u8 *buf, size_t len)h](j%)}(hstruct dvb_ringbuffer *rbufh](j!)}(hjh]hstruct}(hjXhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjXubj3)}(h h]h }(hj"XhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjXubh)}(hhh]jJ)}(hdvb_ringbufferh]hdvb_ringbuffer}(hj3XhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj0Xubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj5XmodnameN classnameNj j )}j ]jWc.dvb_ringbuffer_pkt_writeasbuh1hhjXubj3)}(h h]h }(hjQXhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjXubj)}(hjh]h*}(hj_XhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubjJ)}(hrbufh]hrbuf}(hjlXhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjXubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj Xubj%)}(hu8 *bufh](h)}(hhh]jJ)}(hu8h]hu8}(hjXhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNj j )}j ]jWc.dvb_ringbuffer_pkt_writeasbuh1hhjXubj3)}(h h]h }(hjXhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjXubj)}(hjh]h*}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjXubjJ)}(hbufh]hbuf}(hjXhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjXubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj Xubj%)}(h size_t lenh](h)}(hhh]jJ)}(hsize_th]hsize_t}(hjXhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjXubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjXmodnameN classnameNj j )}j ]jWc.dvb_ringbuffer_pkt_writeasbuh1hhjXubj3)}(h h]h }(hjXhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjXubjJ)}(hlenh]hlen}(hj YhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjXubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj Xubeh}(h]h ]h"]h$]h&]hhuh1jhjWhhhjWhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjWhhhjWhKubah}(h]jWah ](jmjneh"]h$]h&]jrjs)jthuh1jhjWhKhjWhhubjv)}(hhh]h)}(h#Write a packet into the ringbuffer.h]h#Write a packet into the ringbuffer.}(hj3YhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj0Yhhubah}(h]h ]h"]h$]h&]uh1juhjWhhhjWhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjKYjjKYjjjuh1jhhhjj:hNhNubj)}(h**Parameters** ``struct dvb_ringbuffer *rbuf`` Ringbuffer to write to. ``u8 *buf`` Buffer to write. ``size_t len`` Length of buffer (currently limited to 65535 bytes max). **Return** Number of bytes written, or -EFAULT, -ENOMEM, -EINVAL.h](h)}(h**Parameters**h]j)}(hjUYh]h Parameters}(hjWYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSYubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjOYubj)}(hhh](j)}(h8``struct dvb_ringbuffer *rbuf`` Ringbuffer to write to. h](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hjtYh]hstruct dvb_ringbuffer *rbuf}(hjvYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrYubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjnYubj)}(hhh]h)}(hRingbuffer to write to.h]hRingbuffer to write to.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhKhjYubah}(h]h ]h"]h$]h&]uh1jhjnYubeh}(h]h ]h"]h$]h&]uh1jhjYhKhjkYubj)}(h``u8 *buf`` Buffer to write. h](j)}(h ``u8 *buf``h]j)}(hjYh]hu8 *buf}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjYubj)}(hhh]h)}(hBuffer to write.h]hBuffer to write.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhKhjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjYhKhjkYubj)}(hH``size_t len`` Length of buffer (currently limited to 65535 bytes max). h](j)}(h``size_t len``h]j)}(hjYh]h size_t len}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjYubj)}(hhh]h)}(h8Length of buffer (currently limited to 65535 bytes max).h]h8Length of buffer (currently limited to 65535 bytes max).}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYhKhjYubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjYhKhjkYubeh}(h]h ]h"]h$]h&]uh1jhjOYubh)}(h **Return**h]j)}(hj!Zh]hReturn}(hj#ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjOYubh)}(h6Number of bytes written, or -EFAULT, -ENOMEM, -EINVAL.h]h6Number of bytes written, or -EFAULT, -ENOMEM, -EINVAL.}(hj7ZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjOYubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j )dvb_ringbuffer_pkt_read_user (C function)c.dvb_ringbuffer_pkt_read_userhNtauh1hhjj:hhhNhNubj)}(hhh](j)}(hvssize_t dvb_ringbuffer_pkt_read_user (struct dvb_ringbuffer *rbuf, size_t idx, int offset, u8 __user *buf, size_t len)h]j)}(hussize_t dvb_ringbuffer_pkt_read_user(struct dvb_ringbuffer *rbuf, size_t idx, int offset, u8 __user *buf, size_t len)h](h)}(hhh]jJ)}(hssize_th]hssize_t}(hjiZhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjfZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjkZmodnameN classnameNj j )}j ]j)}jdvb_ringbuffer_pkt_read_usersbc.dvb_ringbuffer_pkt_read_userasbuh1hhjbZhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKubj3)}(h h]h }(hjZhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjbZhhhjZhKubjD)}(hdvb_ringbuffer_pkt_read_userh]jJ)}(hjZh]hdvb_ringbuffer_pkt_read_user}(hjZhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjZubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjbZhhhjZhKubj)}(hQ(struct dvb_ringbuffer *rbuf, size_t idx, int offset, u8 __user *buf, size_t len)h](j%)}(hstruct dvb_ringbuffer *rbufh](j!)}(hjh]hstruct}(hjZhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjZubj3)}(h h]h }(hjZhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjZubh)}(hhh]jJ)}(hdvb_ringbufferh]hdvb_ringbuffer}(hjZhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjZubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjZmodnameN classnameNj j )}j ]jZc.dvb_ringbuffer_pkt_read_userasbuh1hhjZubj3)}(h h]h }(hjZhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjZubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubjJ)}(hrbufh]hrbuf}(hj[hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjZubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjZubj%)}(h size_t idxh](h)}(hhh]jJ)}(hsize_th]hsize_t}(hj+[hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj([ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-[modnameN classnameNj j )}j ]jZc.dvb_ringbuffer_pkt_read_userasbuh1hhj$[ubj3)}(h h]h }(hjI[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj$[ubjJ)}(hidxh]hidx}(hjW[hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj$[ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjZubj%)}(h int offseth](jG)}(hinth]hint}(hjp[hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjl[ubj3)}(h h]h }(hj~[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjl[ubjJ)}(hoffseth]hoffset}(hj[hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjl[ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjZubj%)}(hu8 __user *bufh](h)}(hhh]jJ)}(hu8h]hu8}(hj[hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj[ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj[modnameN classnameNj j )}j ]jZc.dvb_ringbuffer_pkt_read_userasbuh1hhj[ubj3)}(h h]h }(hj[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj[ubh__user}(hj[hhhNhNubj3)}(h h]h }(hj[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj[ubj)}(hjh]h*}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubjJ)}(hbufh]hbuf}(hj[hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj[ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjZubj%)}(h size_t lenh](h)}(hhh]jJ)}(hsize_th]hsize_t}(hj\hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj \ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj\modnameN classnameNj j )}j ]jZc.dvb_ringbuffer_pkt_read_userasbuh1hhj\ubj3)}(h h]h }(hj-\hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj\ubjJ)}(hlenh]hlen}(hj;\hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj\ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjZubeh}(h]h ]h"]h$]h&]hhuh1jhjbZhhhjZhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj^ZhhhjZhKubah}(h]jYZah ](jmjneh"]h$]h&]jrjs)jthuh1jhjZhKhj[Zhhubjv)}(hhh]h)}(h%Read from a packet in the ringbuffer.h]h%Read from a packet in the ringbuffer.}(hje\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjb\hhubah}(h]h ]h"]h$]h&]uh1juhj[ZhhhjZhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj}\jj}\jjjuh1jhhhjj:hNhNubj)}(hX&**Parameters** ``struct dvb_ringbuffer *rbuf`` Ringbuffer concerned. ``size_t idx`` Packet index as returned by dvb_ringbuffer_pkt_next(). ``int offset`` Offset into packet to read from. ``u8 __user *buf`` Destination buffer for data. ``size_t len`` Size of destination buffer. **Return** Number of bytes read, or -EFAULT. **Description** .. note:: unlike dvb_ringbuffer_read(), this does **NOT** update the read pointer in the ringbuffer. You must use dvb_ringbuffer_pkt_dispose() to mark a packet as no longer required.h](h)}(h**Parameters**h]j)}(hj\h]h Parameters}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj\ubj)}(hhh](j)}(h6``struct dvb_ringbuffer *rbuf`` Ringbuffer concerned. h](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hj\h]hstruct dvb_ringbuffer *rbuf}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj\ubj)}(hhh]h)}(hRingbuffer concerned.h]hRingbuffer concerned.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hKhj\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\hKhj\ubj)}(hF``size_t idx`` Packet index as returned by dvb_ringbuffer_pkt_next(). h](j)}(h``size_t idx``h]j)}(hj\h]h size_t idx}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj\ubj)}(hhh]h)}(h6Packet index as returned by dvb_ringbuffer_pkt_next().h]h6Packet index as returned by dvb_ringbuffer_pkt_next().}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hKhj\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\hKhj\ubj)}(h0``int offset`` Offset into packet to read from. h](j)}(h``int offset``h]j)}(hj]h]h int offset}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj]ubj)}(hhh]h)}(h Offset into packet to read from.h]h Offset into packet to read from.}(hj1]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-]hKhj.]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj-]hKhj\ubj)}(h0``u8 __user *buf`` Destination buffer for data. h](j)}(h``u8 __user *buf``h]j)}(hjQ]h]hu8 __user *buf}(hjS]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO]ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjK]ubj)}(hhh]h)}(hDestination buffer for data.h]hDestination buffer for data.}(hjj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjf]hKhjg]ubah}(h]h ]h"]h$]h&]uh1jhjK]ubeh}(h]h ]h"]h$]h&]uh1jhjf]hKhj\ubj)}(h+``size_t len`` Size of destination buffer. h](j)}(h``size_t len``h]j)}(hj]h]h size_t len}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj]ubj)}(hhh]h)}(hSize of destination buffer.h]hSize of destination buffer.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hKhj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hKhj\ubeh}(h]h ]h"]h$]h&]uh1jhj\ubh)}(h **Return**h]j)}(hj]h]hReturn}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj\ubh)}(h!Number of bytes read, or -EFAULT.h]h!Number of bytes read, or -EFAULT.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj\ubh)}(h**Description**h]j)}(hj]h]h Description}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj\ubj5)}(hunlike dvb_ringbuffer_read(), this does **NOT** update the read pointer in the ringbuffer. You must use dvb_ringbuffer_pkt_dispose() to mark a packet as no longer required.h]h)}(hunlike dvb_ringbuffer_read(), this does **NOT** update the read pointer in the ringbuffer. You must use dvb_ringbuffer_pkt_dispose() to mark a packet as no longer required.h](h(unlike dvb_ringbuffer_read(), this does }(hj^hhhNhNubj)}(h**NOT**h]hNOT}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh} update the read pointer in the ringbuffer. You must use dvb_ringbuffer_pkt_dispose() to mark a packet as no longer required.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj^ubah}(h]h ]h"]h$]h&]uh1j5hj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j $dvb_ringbuffer_pkt_read (C function)c.dvb_ringbuffer_pkt_readhNtauh1hhjj:hhhNhNubj)}(hhh](j)}(hjssize_t dvb_ringbuffer_pkt_read (struct dvb_ringbuffer *rbuf, size_t idx, int offset, u8 *buf, size_t len)h]j)}(hissize_t dvb_ringbuffer_pkt_read(struct dvb_ringbuffer *rbuf, size_t idx, int offset, u8 *buf, size_t len)h](h)}(hhh]jJ)}(hssize_th]hssize_t}(hjP^hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjM^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjR^modnameN classnameNj j )}j ]j)}jdvb_ringbuffer_pkt_readsbc.dvb_ringbuffer_pkt_readasbuh1hhjI^hhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKubj3)}(h h]h }(hjr^hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjI^hhhjq^hKubjD)}(hdvb_ringbuffer_pkt_readh]jJ)}(hjn^h]hdvb_ringbuffer_pkt_read}(hj^hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj^ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjI^hhhjq^hKubj)}(hJ(struct dvb_ringbuffer *rbuf, size_t idx, int offset, u8 *buf, size_t len)h](j%)}(hstruct dvb_ringbuffer *rbufh](j!)}(hjh]hstruct}(hj^hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj^ubj3)}(h h]h }(hj^hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^ubh)}(hhh]jJ)}(hdvb_ringbufferh]hdvb_ringbuffer}(hj^hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj^ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj^modnameN classnameNj j )}j ]jl^c.dvb_ringbuffer_pkt_readasbuh1hhj^ubj3)}(h h]h }(hj^hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj^ubj)}(hjh]h*}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubjJ)}(hrbufh]hrbuf}(hj^hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj^ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj^ubj%)}(h size_t idxh](h)}(hhh]jJ)}(hsize_th]hsize_t}(hj_hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNj j )}j ]jl^c.dvb_ringbuffer_pkt_readasbuh1hhj _ubj3)}(h h]h }(hj0_hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj _ubjJ)}(hidxh]hidx}(hj>_hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj _ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj^ubj%)}(h int offseth](jG)}(hinth]hint}(hjW_hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjS_ubj3)}(h h]h }(hje_hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjS_ubjJ)}(hoffseth]hoffset}(hjs_hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjS_ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj^ubj%)}(hu8 *bufh](h)}(hhh]jJ)}(hu8h]hu8}(hj_hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNj j )}j ]jl^c.dvb_ringbuffer_pkt_readasbuh1hhj_ubj3)}(h h]h }(hj_hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj_ubj)}(hjh]h*}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_ubjJ)}(hbufh]hbuf}(hj_hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj_ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj^ubj%)}(h size_t lenh](h)}(hhh]jJ)}(hsize_th]hsize_t}(hj_hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj_ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj_modnameN classnameNj j )}j ]jl^c.dvb_ringbuffer_pkt_readasbuh1hhj_ubj3)}(h h]h }(hj`hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj_ubjJ)}(hlenh]hlen}(hj`hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj_ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj^ubeh}(h]h ]h"]h$]h&]hhuh1jhjI^hhhjq^hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjE^hhhjq^hKubah}(h]j@^ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjq^hKhjB^hhubjv)}(hhh]h)}(h%Read from a packet in the ringbuffer.h]h%Read from a packet in the ringbuffer.}(hj:`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj7`hhubah}(h]h ]h"]h$]h&]uh1juhjB^hhhjq^hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjR`jjR`jjjuh1jhhhjj:hNhNubj)}(hX**Parameters** ``struct dvb_ringbuffer *rbuf`` Ringbuffer concerned. ``size_t idx`` Packet index as returned by dvb_ringbuffer_pkt_next(). ``int offset`` Offset into packet to read from. ``u8 *buf`` Destination buffer for data. ``size_t len`` Size of destination buffer. **Note** unlike dvb_ringbuffer_read_user(), this DOES update the read pointer in the ringbuffer. **Return** Number of bytes read, or -EFAULT.h](h)}(h**Parameters**h]j)}(hj\`h]h Parameters}(hj^`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZ`ubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjV`ubj)}(hhh](j)}(h6``struct dvb_ringbuffer *rbuf`` Ringbuffer concerned. h](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hj{`h]hstruct dvb_ringbuffer *rbuf}(hj}`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjy`ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhju`ubj)}(hhh]h)}(hRingbuffer concerned.h]hRingbuffer concerned.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hKhj`ubah}(h]h ]h"]h$]h&]uh1jhju`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKhjr`ubj)}(hF``size_t idx`` Packet index as returned by dvb_ringbuffer_pkt_next(). h](j)}(h``size_t idx``h]j)}(hj`h]h size_t idx}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj`ubj)}(hhh]h)}(h6Packet index as returned by dvb_ringbuffer_pkt_next().h]h6Packet index as returned by dvb_ringbuffer_pkt_next().}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hKhj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hKhjr`ubj)}(h0``int offset`` Offset into packet to read from. h](j)}(h``int offset``h]j)}(hj`h]h int offset}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj`ubj)}(hhh]h)}(h Offset into packet to read from.h]h Offset into packet to read from.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahKhjaubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhjahKhjr`ubj)}(h)``u8 *buf`` Destination buffer for data. h](j)}(h ``u8 *buf``h]j)}(hj&ah]hu8 *buf}(hj(ahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$aubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj aubj)}(hhh]h)}(hDestination buffer for data.h]hDestination buffer for data.}(hj?ahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;ahKhj=0), or -1 if no packets available.h](h)}(h**Parameters**h]j)}(hjteh]h Parameters}(hjvehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjreubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhMhjneubj)}(hhh](j)}(h6``struct dvb_ringbuffer *rbuf`` Ringbuffer concerned. h](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hjeh]hstruct dvb_ringbuffer *rbuf}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhMhjeubj)}(hhh]h)}(hRingbuffer concerned.h]hRingbuffer concerned.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehMhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehMhjeubj)}(hN``size_t idx`` Previous packet index, or -1 to return the first packet index. h](j)}(h``size_t idx``h]j)}(hjeh]h size_t idx}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhMhjeubj)}(hhh]h)}(h>Previous packet index, or -1 to return the first packet index.h]h>Previous packet index, or -1 to return the first packet index.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehMhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehMhjeubj)}(h``size_t *pktlen`` On success, will be updated to contain the length of the packet in bytes. returns Packet index (if >=0), or -1 if no packets available.h](j)}(h``size_t *pktlen``h]j)}(hjfh]hsize_t *pktlen}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhMhjeubj)}(hhh]h)}(hOn success, will be updated to contain the length of the packet in bytes. returns Packet index (if >=0), or -1 if no packets available.h]hOn success, will be updated to contain the length of the packet in bytes. returns Packet index (if >=0), or -1 if no packets available.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhMhjfubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjfhMhjeubeh}(h]h ]h"]h$]h&]uh1jhjneubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjj:hhhNhNubeh}(h]digital-tv-ring-bufferah ]h"]digital tv ring bufferah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hDigital TV VB2 handlerh]hDigital TV VB2 handler}(hjQfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNfhhhhhK3ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_buf_type (C enum)c.dvb_buf_typehNtauh1hhjNfhhhNhNubj)}(hhh](j)}(h dvb_buf_typeh]j)}(henum dvb_buf_typeh](j!)}(hj$h]henum}(hjxfhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjtfhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj3)}(h h]h }(hjfhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjtfhhhjfhKubjD)}(h dvb_buf_typeh]jJ)}(hjrfh]h dvb_buf_type}(hjfhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjfubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjtfhhhjfhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjpfhhhjfhKubah}(h]jkfah ](jmjneh"]h$]h&]jrjs)jthuh1jhjfhKhjmfhhubjv)}(hhh]h)}(h)types of Digital TV memory-mapped buffersh]h)types of Digital TV memory-mapped buffers}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjfhhubah}(h]h ]h"]h$]h&]uh1juhjmfhhhjfhKubeh}(h]h ](jenumeh"]h$]h&]jjjjfjjfjjjuh1jhhhjNfhNhNubj)}(hm**Constants** ``DVB_BUF_TYPE_CAPTURE`` buffer is filled by the Kernel, with a received Digital TV streamh](h)}(h **Constants**h]j)}(hjfh]h Constants}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjfubj)}(hhh]j)}(hZ``DVB_BUF_TYPE_CAPTURE`` buffer is filled by the Kernel, with a received Digital TV streamh](j)}(h``DVB_BUF_TYPE_CAPTURE``h]j)}(hjfh]hDVB_BUF_TYPE_CAPTURE}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK!hjfubj)}(hhh]h)}(hAbuffer is filled by the Kernel, with a received Digital TV streamh]hAbuffer is filled by the Kernel, with a received Digital TV stream}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghK!hjgubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjghK!hjfubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_vb2_states (C enum)c.dvb_vb2_stateshNtauh1hhjNfhhhNhNubj)}(hhh](j)}(hdvb_vb2_statesh]j)}(henum dvb_vb2_statesh](j!)}(hj$h]henum}(hjTghhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjPghhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK'ubj3)}(h h]h }(hjbghhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjPghhhjaghK'ubjD)}(hdvb_vb2_statesh]jJ)}(hjNgh]hdvb_vb2_states}(hjtghhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjpgubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjPghhhjaghK'ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjLghhhjaghK'ubah}(h]jGgah ](jmjneh"]h$]h&]jrjs)jthuh1jhjaghK'hjIghhubjv)}(hhh]h)}(h#states to control VB2 state machineh]h#states to control VB2 state machine}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK$hjghhubah}(h]h ]h"]h$]h&]uh1juhjIghhhjaghK'ubeh}(h]h ](jenumeh"]h$]h&]jjjjgjjgjjjuh1jhhhjNfhNhNubj)}(hXW**Constants** ``DVB_VB2_STATE_NONE`` VB2 engine not initialized yet, init failed or VB2 was released. ``DVB_VB2_STATE_INIT`` VB2 engine initialized. ``DVB_VB2_STATE_REQBUFS`` Buffers were requested ``DVB_VB2_STATE_STREAMON`` VB2 is streaming. Callers should not check it directly. Instead, they should use dvb_vb2_is_streaming().h](h)}(h **Constants**h]j)}(hjgh]h Constants}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK(hjgubj)}(hhh](j)}(hX``DVB_VB2_STATE_NONE`` VB2 engine not initialized yet, init failed or VB2 was released. h](j)}(h``DVB_VB2_STATE_NONE``h]j)}(hjgh]hDVB_VB2_STATE_NONE}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK+hjgubj)}(hhh]h)}(h@VB2 engine not initialized yet, init failed or VB2 was released.h]h@VB2 engine not initialized yet, init failed or VB2 was released.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghK+hjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghK+hjgubj)}(h/``DVB_VB2_STATE_INIT`` VB2 engine initialized. h](j)}(h``DVB_VB2_STATE_INIT``h]j)}(hjhh]hDVB_VB2_STATE_INIT}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK.hj hubj)}(hhh]h)}(hVB2 engine initialized.h]hVB2 engine initialized.}(hj)hhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hhK.hj&hubah}(h]h ]h"]h$]h&]uh1jhj hubeh}(h]h ]h"]h$]h&]uh1jhj%hhK.hjgubj)}(h1``DVB_VB2_STATE_REQBUFS`` Buffers were requested h](j)}(h``DVB_VB2_STATE_REQBUFS``h]j)}(hjIhh]hDVB_VB2_STATE_REQBUFS}(hjKhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGhubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK1hjChubj)}(hhh]h)}(hBuffers were requestedh]hBuffers were requested}(hjbhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hhK1hj_hubah}(h]h ]h"]h$]h&]uh1jhjChubeh}(h]h ]h"]h$]h&]uh1jhj^hhK1hjgubj)}(h``DVB_VB2_STATE_STREAMON`` VB2 is streaming. Callers should not check it directly. Instead, they should use dvb_vb2_is_streaming().h](j)}(h``DVB_VB2_STATE_STREAMON``h]j)}(hjhh]hDVB_VB2_STATE_STREAMON}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK4hj|hubj)}(hhh]h)}(hhVB2 is streaming. Callers should not check it directly. Instead, they should use dvb_vb2_is_streaming().h]hhVB2 is streaming. Callers should not check it directly. Instead, they should use dvb_vb2_is_streaming().}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhK4hjhubah}(h]h ]h"]h$]h&]uh1jhj|hubeh}(h]h ]h"]h$]h&]uh1jhjhhK4hjgubeh}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNfhhhNhNubh)}(h**Note**h]j)}(hjhh]hNote}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK7hjNfhhubh)}(hYCallers should not touch at the state machine directly. This is handled inside dvb_vb2.c.h]hYCallers should not touch at the state machine directly. This is handled inside dvb_vb2.c.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK/hjNfhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_buffer (C struct) c.dvb_bufferhNtauh1hhjNfhhhNhNubj)}(hhh](j)}(h dvb_bufferh]j)}(hstruct dvb_bufferh](j!)}(hjh]hstruct}(hjihhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjhhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK5ubj3)}(h h]h }(hjihhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhhjihK5ubjD)}(h dvb_bufferh]jJ)}(hjhh]h dvb_buffer}(hj"ihhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjiubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhhjihK5ubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhhjihK5ubah}(h]jhah ](jmjneh"]h$]h&]jrjs)jthuh1jhjihK5hjhhhubjv)}(hhh]h)}(h"video buffer information for v4l2.h]h"video buffer information for v4l2.}(hjDihhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK>hjAihhubah}(h]h ]h"]h$]h&]uh1juhjhhhhjihK5ubeh}(h]h ](jstructeh"]h$]h&]jjjj\ijj\ijjjuh1jhhhjNfhNhNubj)}(h**Definition**:: struct dvb_buffer { struct vb2_buffer vb; struct list_head list; }; **Members** ``vb`` embedded struct :c:type:`vb2_buffer`. ``list`` list of :c:type:`struct dvb_buffer `.h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdiubh:}(hjdihhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKBhj`iubjt)}(hXstruct dvb_buffer { struct vb2_buffer vb; struct list_head list; };h]hXstruct dvb_buffer { struct vb2_buffer vb; struct list_head list; };}hjisbah}(h]h ]h"]h$]h&]hhuh1jshc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKDhj`iubh)}(h **Members**h]j)}(hjih]hMembers}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKIhj`iubj)}(hhh](j)}(h-``vb`` embedded struct :c:type:`vb2_buffer`. h](j)}(h``vb``h]j)}(hjih]hvb}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKAhjiubj)}(hhh]h)}(h%embedded struct :c:type:`vb2_buffer`.h](hembedded struct }(hjihhhNhNubh)}(h:c:type:`vb2_buffer`h]j)}(hjih]h vb2_buffer}(hjihhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j vb2_bufferuh1hhjihKAhjiubh.}(hjihhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjihKAhjiubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjihKAhjiubj)}(h:``list`` list of :c:type:`struct dvb_buffer `.h](j)}(h``list``h]j)}(hj jh]hlist}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj jubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKAhjjubj)}(hhh]h)}(h1list of :c:type:`struct dvb_buffer `.h](hlist of }(hj&jhhhNhNubh)}(h(:c:type:`struct dvb_buffer `h]j)}(hj0jh]hstruct dvb_buffer}(hj2jhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj.jubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j dvb_bufferuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKBhj&jubh.}(hj&jhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjMjhKBhj#jubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhj"jhKAhjiubeh}(h]h ]h"]h$]h&]uh1jhj`iubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_vb2_ctx (C struct) c.dvb_vb2_ctxhNtauh1hhjNfhhhNhNubj)}(hhh](j)}(h dvb_vb2_ctxh]j)}(hstruct dvb_vb2_ctxh](j!)}(hjh]hstruct}(hjjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKHubj3)}(h h]h }(hjjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjjhhhjjhKHubjD)}(h dvb_vb2_ctxh]jJ)}(hjjh]h dvb_vb2_ctx}(hjjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjjhhhjjhKHubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjjhhhjjhKHubah}(h]j}jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjjhKHhjjhhubjv)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKIhjjhhubah}(h]h ]h"]h$]h&]uh1juhjjhhhjjhKHubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjjjuh1jhhhjNfhNhNubj)}(hX**Definition**:: struct dvb_vb2_ctx { struct vb2_queue vb_q; spinlock_t slock; struct list_head dvb_q; struct dvb_buffer *buf; int offset; int remain; int state; int buf_siz; int buf_cnt; int nonblocking; enum dmx_buffer_flags flags; u32 count; char name[DVB_VB2_NAME_MAX + 1]; }; **Members** ``vb_q`` pointer to :c:type:`struct vb2_queue ` with videobuf2 queue. ``slock`` spin lock used to protect buffer filling at dvb_vb2.c. ``dvb_q`` List of buffers that are not filled yet. ``buf`` Pointer to the buffer that are currently being filled. ``offset`` index to the next position at the **buf** to be filled. ``remain`` How many bytes are left to be filled at **buf**. ``state`` bitmask of buffer states as defined by :c:type:`enum dvb_vb2_states `. ``buf_siz`` size of each VB2 buffer. ``buf_cnt`` number of VB2 buffers. ``nonblocking`` If different than zero, device is operating on non-blocking mode. ``flags`` buffer flags as defined by :c:type:`enum dmx_buffer_flags `. Filled only at :c:type:`DMX_DQBUF`. :c:type:`DMX_QBUF` should zero this field. ``count`` monotonic counter for filled buffers. Helps to identify data stream loses. Filled only at :c:type:`DMX_DQBUF`. :c:type:`DMX_QBUF` should zero this field. ``name`` name of the device type. Currently, it can either be "dvr" or "demux_filter".h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubh:}(hjjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKMhjjubjt)}(hXOstruct dvb_vb2_ctx { struct vb2_queue vb_q; spinlock_t slock; struct list_head dvb_q; struct dvb_buffer *buf; int offset; int remain; int state; int buf_siz; int buf_cnt; int nonblocking; enum dmx_buffer_flags flags; u32 count; char name[DVB_VB2_NAME_MAX + 1]; };h]hXOstruct dvb_vb2_ctx { struct vb2_queue vb_q; spinlock_t slock; struct list_head dvb_q; struct dvb_buffer *buf; int offset; int remain; int state; int buf_siz; int buf_cnt; int nonblocking; enum dmx_buffer_flags flags; u32 count; char name[DVB_VB2_NAME_MAX + 1]; };}hj ksbah}(h]h ]h"]h$]h&]hhuh1jshc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKOhjjubh)}(h **Members**h]j)}(hjkh]hMembers}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK_hjjubj)}(hhh](j)}(hQ``vb_q`` pointer to :c:type:`struct vb2_queue ` with videobuf2 queue. h](j)}(h``vb_q``h]j)}(hj9kh]hvb_q}(hj;khhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7kubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKKhj3kubj)}(hhh]h)}(hGpointer to :c:type:`struct vb2_queue ` with videobuf2 queue.h](h pointer to }(hjRkhhhNhNubh)}(h&:c:type:`struct vb2_queue `h]j)}(hj\kh]hstruct vb2_queue}(hj^khhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjZkubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j vb2_queueuh1hhjNkhKKhjRkubh with videobuf2 queue.}(hjRkhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjNkhKKhjOkubah}(h]h ]h"]h$]h&]uh1jhj3kubeh}(h]h ]h"]h$]h&]uh1jhjNkhKKhj0kubj)}(hA``slock`` spin lock used to protect buffer filling at dvb_vb2.c. h](j)}(h ``slock``h]j)}(hjkh]hslock}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKLhjkubj)}(hhh]h)}(h6spin lock used to protect buffer filling at dvb_vb2.c.h]h6spin lock used to protect buffer filling at dvb_vb2.c.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhKLhjkubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjkhKLhj0kubj)}(h3``dvb_q`` List of buffers that are not filled yet. h](j)}(h ``dvb_q``h]j)}(hjkh]hdvb_q}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKMhjkubj)}(hhh]h)}(h(List of buffers that are not filled yet.h]h(List of buffers that are not filled yet.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhKMhjkubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjkhKMhj0kubj)}(h?``buf`` Pointer to the buffer that are currently being filled. h](j)}(h``buf``h]j)}(hjlh]hbuf}(hj lhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKNhjlubj)}(hhh]h)}(h6Pointer to the buffer that are currently being filled.h]h6Pointer to the buffer that are currently being filled.}(hj lhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhKNhjlubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjlhKNhj0kubj)}(hC``offset`` index to the next position at the **buf** to be filled. h](j)}(h ``offset``h]j)}(hj@lh]hoffset}(hjBlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>lubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKOhj:lubj)}(hhh]h)}(h7index to the next position at the **buf** to be filled.h](h"index to the next position at the }(hjYlhhhNhNubj)}(h**buf**h]hbuf}(hjalhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYlubh to be filled.}(hjYlhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjUlhKOhjVlubah}(h]h ]h"]h$]h&]uh1jhj:lubeh}(h]h ]h"]h$]h&]uh1jhjUlhKOhj0kubj)}(h<``remain`` How many bytes are left to be filled at **buf**. h](j)}(h ``remain``h]j)}(hjlh]hremain}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKPhjlubj)}(hhh]h)}(h0How many bytes are left to be filled at **buf**.h](h(How many bytes are left to be filled at }(hjlhhhNhNubj)}(h**buf**h]hbuf}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubh.}(hjlhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjlhKPhjlubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjlhKPhj0kubj)}(ha``state`` bitmask of buffer states as defined by :c:type:`enum dvb_vb2_states `. h](j)}(h ``state``h]j)}(hjlh]hstate}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKQhjlubj)}(hhh]h)}(hVbitmask of buffer states as defined by :c:type:`enum dvb_vb2_states `.h](h'bitmask of buffer states as defined by }(hjlhhhNhNubh)}(h.:c:type:`enum dvb_vb2_states `h]j)}(hjlh]henum dvb_vb2_states}(hjlhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j dvb_vb2_statesuh1hhjlhKQhjlubh.}(hjlhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjlhKQhjlubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjlhKQhj0kubj)}(h%``buf_siz`` size of each VB2 buffer. h](j)}(h ``buf_siz``h]j)}(hj2mh]hbuf_siz}(hj4mhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0mubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKRhj,mubj)}(hhh]h)}(hsize of each VB2 buffer.h]hsize of each VB2 buffer.}(hjKmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGmhKRhjHmubah}(h]h ]h"]h$]h&]uh1jhj,mubeh}(h]h ]h"]h$]h&]uh1jhjGmhKRhj0kubj)}(h#``buf_cnt`` number of VB2 buffers. h](j)}(h ``buf_cnt``h]j)}(hjkmh]hbuf_cnt}(hjmmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjimubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKShjemubj)}(hhh]h)}(hnumber of VB2 buffers.h]hnumber of VB2 buffers.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhKShjmubah}(h]h ]h"]h$]h&]uh1jhjemubeh}(h]h ]h"]h$]h&]uh1jhjmhKShj0kubj)}(hR``nonblocking`` If different than zero, device is operating on non-blocking mode. h](j)}(h``nonblocking``h]j)}(hjmh]h nonblocking}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKUhjmubj)}(hhh]h)}(hAIf different than zero, device is operating on non-blocking mode.h]hAIf different than zero, device is operating on non-blocking mode.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKThjmubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjmhKUhj0kubj)}(h``flags`` buffer flags as defined by :c:type:`enum dmx_buffer_flags `. Filled only at :c:type:`DMX_DQBUF`. :c:type:`DMX_QBUF` should zero this field. h](j)}(h ``flags``h]j)}(hjmh]hflags}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKXhjmubj)}(hhh]h)}(hbuffer flags as defined by :c:type:`enum dmx_buffer_flags `. Filled only at :c:type:`DMX_DQBUF`. :c:type:`DMX_QBUF` should zero this field.h](hbuffer flags as defined by }(hjmhhhNhNubh)}(h2:c:type:`enum dmx_buffer_flags `h]j)}(hjnh]henum dmx_buffer_flags}(hjnhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j dmx_buffer_flagsuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKWhjmubh. Filled only at }(hjmhhhNhNubh)}(h:c:type:`DMX_DQBUF`h]j)}(hj%nh]h DMX_DQBUF}(hj'nhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj#nubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j DMX_DQBUFuh1hhjnhKWhjmubh. }(hjmhhhNhNubh)}(h:c:type:`DMX_QBUF`h]j)}(hjHnh]hDMX_QBUF}(hjJnhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjFnubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j DMX_QBUFuh1hhjnhKWhjmubh should zero this field.}(hjmhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjnhKWhjmubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjmhKXhj0kubj)}(h``count`` monotonic counter for filled buffers. Helps to identify data stream loses. Filled only at :c:type:`DMX_DQBUF`. :c:type:`DMX_QBUF` should zero this field. h](j)}(h ``count``h]j)}(hjnh]hcount}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK[hj{nubj)}(hhh]h)}(hmonotonic counter for filled buffers. Helps to identify data stream loses. Filled only at :c:type:`DMX_DQBUF`. :c:type:`DMX_QBUF` should zero this field.h](hZmonotonic counter for filled buffers. Helps to identify data stream loses. Filled only at }(hjnhhhNhNubh)}(h:c:type:`DMX_DQBUF`h]j)}(hjnh]h DMX_DQBUF}(hjnhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j DMX_DQBUFuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKYhjnubh. }(hjnhhhNhNubh)}(h:c:type:`DMX_QBUF`h]j)}(hjnh]hDMX_QBUF}(hjnhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j DMX_QBUFuh1hhjnhKYhjnubh should zero this field.}(hjnhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjnhKYhjnubah}(h]h ]h"]h$]h&]uh1jhj{nubeh}(h]h ]h"]h$]h&]uh1jhjnhK[hj0kubj)}(hV``name`` name of the device type. Currently, it can either be "dvr" or "demux_filter".h](j)}(h``name``h]j)}(hjoh]hname}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK]hjnubj)}(hhh]h)}(hMname of the device type. Currently, it can either be "dvr" or "demux_filter".h]hUname of the device type. Currently, it can either be “dvr” or “demux_filter”.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohK]hjoubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjohK]hj0kubeh}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_vb2_init (C function)c.dvb_vb2_inithNtauh1hhjNfhhhNhNubj)}(hhh](j)}(hcint dvb_vb2_init (struct dvb_vb2_ctx *ctx, const char *name, struct mutex *mutex, int non_blocking)h]j)}(hbint dvb_vb2_init(struct dvb_vb2_ctx *ctx, const char *name, struct mutex *mutex, int non_blocking)h](jG)}(hinth]hint}(hjZohhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjVohhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj3)}(h h]h }(hjiohhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjVohhhjhohKubjD)}(h dvb_vb2_inith]jJ)}(h dvb_vb2_inith]h dvb_vb2_init}(hj{ohhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjwoubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjVohhhjhohKubj)}(hR(struct dvb_vb2_ctx *ctx, const char *name, struct mutex *mutex, int non_blocking)h](j%)}(hstruct dvb_vb2_ctx *ctxh](j!)}(hjh]hstruct}(hjohhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjoubj3)}(h h]h }(hjohhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjoubh)}(hhh]jJ)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hjohhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjoubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjomodnameN classnameNj j )}j ]j)}jj}osbc.dvb_vb2_initasbuh1hhjoubj3)}(h h]h }(hjohhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjoubj)}(hjh]h*}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubjJ)}(hctxh]hctx}(hjohhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjoubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjoubj%)}(hconst char *nameh](j!)}(hjUh]hconst}(hj phhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjpubj3)}(h h]h }(hjphhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjpubjG)}(hcharh]hchar}(hj$phhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjpubj3)}(h h]h }(hj2phhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjpubj)}(hjh]h*}(hj@phhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubjJ)}(hnameh]hname}(hjMphhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjpubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjoubj%)}(hstruct mutex *mutexh](j!)}(hjh]hstruct}(hjfphhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjbpubj3)}(h h]h }(hjsphhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjbpubh)}(hhh]jJ)}(hmutexh]hmutex}(hjphhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjpubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjpmodnameN classnameNj j )}j ]joc.dvb_vb2_initasbuh1hhjbpubj3)}(h h]h }(hjphhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjbpubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbpubjJ)}(hmutexh]hmutex}(hjphhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjbpubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjoubj%)}(hint non_blockingh](jG)}(hinth]hint}(hjphhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjpubj3)}(h h]h }(hjphhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjpubjJ)}(h non_blockingh]h non_blocking}(hjphhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjpubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjoubeh}(h]h ]h"]h$]h&]hhuh1jhjVohhhjhohKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjRohhhjhohKubah}(h]jMoah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhohKhjOohhubjv)}(hhh]h)}(hinitializes VB2 handlerh]hinitializes VB2 handler}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjqhhubah}(h]h ]h"]h$]h&]uh1juhjOohhhjhohKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj4qjj4qjjjuh1jhhhjNfhNhNubj)}(hX**Parameters** ``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler ``const char *name`` name for the VB2 handler ``struct mutex *mutex`` pointer to the mutex that serializes vb2 ioctls ``int non_blocking`` if not zero, it means that the device is at non-blocking modeh](h)}(h**Parameters**h]j)}(hj>qh]h Parameters}(hj@qhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`. can be NULL. ``bool flush`` flush the buffer, even if it isn't full.h](h)}(h**Parameters**h]j)}(hjwh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj~wubj)}(hhh](j)}(h;``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler h](j)}(h``struct dvb_vb2_ctx *ctx``h]j)}(hjwh]hstruct dvb_vb2_ctx *ctx}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjwubj)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhKhjwubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjwhKhjwubj)}(h<``const unsigned char *src`` place where the data is stored h](j)}(h``const unsigned char *src``h]j)}(hjwh]hconst unsigned char *src}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjwubj)}(hhh]h)}(hplace where the data is storedh]hplace where the data is stored}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhKhjwubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjwhKhjwubj)}(h6``int len`` number of bytes to be copied from **src** h](j)}(h ``int len``h]j)}(hjxh]hint len}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjxubj)}(hhh]h)}(h)number of bytes to be copied from **src**h](h"number of bytes to be copied from }(hj.xhhhNhNubj)}(h**src**h]hsrc}(hj6xhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.xubeh}(h]h ]h"]h$]h&]uh1hhj*xhKhj+xubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhj*xhKhjwubj)}(h``enum dmx_buffer_flags *buffer_flags`` pointer to buffer flags as defined by :c:type:`enum dmx_buffer_flags `. can be NULL. h](j)}(h'``enum dmx_buffer_flags *buffer_flags``h]j)}(hj\xh]h#enum dmx_buffer_flags *buffer_flags}(hj^xhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZxubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjVxubj)}(hhh]h)}(hfpointer to buffer flags as defined by :c:type:`enum dmx_buffer_flags `. can be NULL.h](h&pointer to buffer flags as defined by }(hjuxhhhNhNubh)}(h2:c:type:`enum dmx_buffer_flags `h]j)}(hjxh]henum dmx_buffer_flags}(hjxhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj}xubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j dmx_buffer_flagsuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjuxubh. can be NULL.}(hjuxhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjxhKhjrxubah}(h]h ]h"]h$]h&]uh1jhjVxubeh}(h]h ]h"]h$]h&]uh1jhjqxhKhjwubj)}(h7``bool flush`` flush the buffer, even if it isn't full.h](j)}(h``bool flush``h]j)}(hjxh]h bool flush}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjxubj)}(hhh]h)}(h(flush the buffer, even if it isn't full.h]h*flush the buffer, even if it isn’t full.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjxubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjxhKhjwubeh}(h]h ]h"]h$]h&]uh1jhj~wubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_vb2_poll (C function)c.dvb_vb2_pollhNtauh1hhjNfhhhNhNubj)}(hhh](j)}(hT__poll_t dvb_vb2_poll (struct dvb_vb2_ctx *ctx, struct file *file, poll_table *wait)h]j)}(hS__poll_t dvb_vb2_poll(struct dvb_vb2_ctx *ctx, struct file *file, poll_table *wait)h](h)}(hhh]jJ)}(h__poll_th]h__poll_t}(hjyhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNj j )}j ]j)}j dvb_vb2_pollsbc.dvb_vb2_pollasbuh1hhjyhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj3)}(h h]h }(hj8yhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjyhhhj7yhKubjD)}(h dvb_vb2_pollh]jJ)}(hj4yh]h dvb_vb2_poll}(hjJyhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjFyubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjyhhhj7yhKubj)}(h>(struct dvb_vb2_ctx *ctx, struct file *file, poll_table *wait)h](j%)}(hstruct dvb_vb2_ctx *ctxh](j!)}(hjh]hstruct}(hjeyhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjayubj3)}(h h]h }(hjryhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjayubh)}(hhh]jJ)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hjyhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNj j )}j ]j2yc.dvb_vb2_pollasbuh1hhjayubj3)}(h h]h }(hjyhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjayubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjayubjJ)}(hctxh]hctx}(hjyhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjayubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj]yubj%)}(hstruct file *fileh](j!)}(hjh]hstruct}(hjyhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjyubj3)}(h h]h }(hjyhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjyubh)}(hhh]jJ)}(hfileh]hfile}(hjyhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjyubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNj j )}j ]j2yc.dvb_vb2_pollasbuh1hhjyubj3)}(h h]h }(hjzhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjyubj)}(hjh]h*}(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubjJ)}(hfileh]hfile}(hj,zhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjyubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj]yubj%)}(hpoll_table *waith](h)}(hhh]jJ)}(h poll_tableh]h poll_table}(hjHzhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjEzubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJzmodnameN classnameNj j )}j ]j2yc.dvb_vb2_pollasbuh1hhjAzubj3)}(h h]h }(hjfzhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjAzubj)}(hjh]h*}(hjtzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAzubjJ)}(hwaith]hwait}(hjzhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjAzubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj]yubeh}(h]h ]h"]h$]h&]hhuh1jhjyhhhj7yhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj yhhhj7yhKubah}(h]jyah ](jmjneh"]h$]h&]jrjs)jthuh1jhj7yhKhjyhhubjv)}(hhh]h)}(h>Wrapper to vb2_core_streamon() for Digital TV buffer handling.h]h>Wrapper to vb2_core_streamon() for Digital TV buffer handling.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjzhhubah}(h]h ]h"]h$]h&]uh1juhjyhhhj7yhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjzjjzjjjuh1jhhhjNfhNhNubj)}(hXS**Parameters** ``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler ``struct file *file`` :c:type:`struct file ` argument passed to the poll file operation handler. ``poll_table *wait`` :c:type:`poll_table` wait argument passed to the poll file operation handler. **Description** Implements poll syscall() logic.h](h)}(h**Parameters**h]j)}(hjzh]h Parameters}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjzubj)}(hhh](j)}(h;``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler h](j)}(h``struct dvb_vb2_ctx *ctx``h]j)}(hjzh]hstruct dvb_vb2_ctx *ctx}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjzubj)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{hKhj{ubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhj{hKhjzubj)}(hg``struct file *file`` :c:type:`struct file ` argument passed to the poll file operation handler. h](j)}(h``struct file *file``h]j)}(hj%{h]hstruct file *file}(hj'{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#{ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj{ubj)}(hhh]h)}(hP:c:type:`struct file ` argument passed to the poll file operation handler.h](h)}(h:c:type:`struct file `h]j)}(hjD{h]h struct file}(hjF{hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjB{ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j fileuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj>{ubh4 argument passed to the poll file operation handler.}(hj>{hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhja{hKhj;{ubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhj:{hKhjzubj)}(hc``poll_table *wait`` :c:type:`poll_table` wait argument passed to the poll file operation handler. h](j)}(h``poll_table *wait``h]j)}(hj~{h]hpoll_table *wait}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|{ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjx{ubj)}(hhh]h)}(hM:c:type:`poll_table` wait argument passed to the poll file operation handler.h](h)}(h:c:type:`poll_table`h]j)}(hj{h]h poll_table}(hj{hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j poll_tableuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj{ubh9 wait argument passed to the poll file operation handler.}(hj{hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj{hKhj{ubah}(h]h ]h"]h$]h&]uh1jhjx{ubeh}(h]h ]h"]h$]h&]uh1jhj{hKhjzubeh}(h]h ]h"]h$]h&]uh1jhjzubh)}(h**Description**h]j)}(hj{h]h Description}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjzubh)}(h Implements poll syscall() logic.h]h Implements poll syscall() logic.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_vb2_stream_on (C function)c.dvb_vb2_stream_onhNtauh1hhjNfhhhNhNubj)}(hhh](j)}(h/int dvb_vb2_stream_on (struct dvb_vb2_ctx *ctx)h]j)}(h.int dvb_vb2_stream_on(struct dvb_vb2_ctx *ctx)h](jG)}(hinth]hint}(hj|hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj|hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj3)}(h h]h }(hj-|hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj|hhhj,|hKubjD)}(hdvb_vb2_stream_onh]jJ)}(hdvb_vb2_stream_onh]hdvb_vb2_stream_on}(hj?|hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj;|ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj|hhhj,|hKubj)}(h(struct dvb_vb2_ctx *ctx)h]j%)}(hstruct dvb_vb2_ctx *ctxh](j!)}(hjh]hstruct}(hj[|hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjW|ubj3)}(h h]h }(hjh|hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjW|ubh)}(hhh]jJ)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hjy|hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjv|ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj{|modnameN classnameNj j )}j ]j)}jjA|sbc.dvb_vb2_stream_onasbuh1hhjW|ubj3)}(h h]h }(hj|hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjW|ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjW|ubjJ)}(hctxh]hctx}(hj|hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjW|ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjS|ubah}(h]h ]h"]h$]h&]hhuh1jhj|hhhj,|hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj|hhhj,|hKubah}(h]j|ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj,|hKhj|hhubjv)}(hhh]h)}(h>Wrapper to vb2_core_streamon() for Digital TV buffer handling.h]h>Wrapper to vb2_core_streamon() for Digital TV buffer handling.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj|hhubah}(h]h ]h"]h$]h&]uh1juhj|hhhj,|hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjj|jj|jjjuh1jhhhjNfhNhNubj)}(hs**Parameters** ``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler **Description** Starts dvb streamingh](h)}(h**Parameters**h]j)}(hj}h]h Parameters}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj|ubj)}(hhh]j)}(h;``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler h](j)}(h``struct dvb_vb2_ctx *ctx``h]j)}(hj}h]hstruct dvb_vb2_ctx *ctx}(hj!}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj}ubj)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hj8}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4}hKhj5}ubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhj4}hKhj}ubah}(h]h ]h"]h$]h&]uh1jhj|ubh)}(h**Description**h]j)}(hjZ}h]h Description}(hj\}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjX}ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj|ubh)}(hStarts dvb streamingh]hStarts dvb streaming}(hjp}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj|ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_vb2_stream_off (C function)c.dvb_vb2_stream_offhNtauh1hhjNfhhhNhNubj)}(hhh](j)}(h0int dvb_vb2_stream_off (struct dvb_vb2_ctx *ctx)h]j)}(h/int dvb_vb2_stream_off(struct dvb_vb2_ctx *ctx)h](jG)}(hinth]hint}(hj}hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj}hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj3)}(h h]h }(hj}hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj}hhhj}hKubjD)}(hdvb_vb2_stream_offh]jJ)}(hdvb_vb2_stream_offh]hdvb_vb2_stream_off}(hj}hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj}ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj}hhhj}hKubj)}(h(struct dvb_vb2_ctx *ctx)h]j%)}(hstruct dvb_vb2_ctx *ctxh](j!)}(hjh]hstruct}(hj}hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj}ubj3)}(h h]h }(hj}hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj}ubh)}(hhh]jJ)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hj}hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj}ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNj j )}j ]j)}jj}sbc.dvb_vb2_stream_offasbuh1hhj}ubj3)}(h h]h }(hj~hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj}ubj)}(hjh]h*}(hj(~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj}ubjJ)}(hctxh]hctx}(hj5~hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj}ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj}ubah}(h]h ]h"]h$]h&]hhuh1jhj}hhhj}hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj}hhhj}hKubah}(h]j}ah ](jmjneh"]h$]h&]jrjs)jthuh1jhj}hKhj}hhubjv)}(hhh]h)}(h?Wrapper to vb2_core_streamoff() for Digital TV buffer handling.h]h?Wrapper to vb2_core_streamoff() for Digital TV buffer handling.}(hj_~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj\~hhubah}(h]h ]h"]h$]h&]uh1juhj}hhhj}hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjw~jjw~jjjuh1jhhhjNfhNhNubj)}(hr**Parameters** ``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler **Description** Stops dvb streamingh](h)}(h**Parameters**h]j)}(hj~h]h Parameters}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj{~ubj)}(hhh]j)}(h;``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler h](j)}(h``struct dvb_vb2_ctx *ctx``h]j)}(hj~h]hstruct dvb_vb2_ctx *ctx}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj~ubj)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hKhj~ubah}(h]h ]h"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]uh1jhj~hKhj~ubah}(h]h ]h"]h$]h&]uh1jhj{~ubh)}(h**Description**h]j)}(hj~h]h Description}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj{~ubh)}(hStops dvb streamingh]hStops dvb streaming}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj{~ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_vb2_reqbufs (C function)c.dvb_vb2_reqbufshNtauh1hhjNfhhhNhNubj)}(hhh](j)}(hMint dvb_vb2_reqbufs (struct dvb_vb2_ctx *ctx, struct dmx_requestbuffers *req)h]j)}(hLint dvb_vb2_reqbufs(struct dvb_vb2_ctx *ctx, struct dmx_requestbuffers *req)h](jG)}(hinth]hint}(hj hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj3)}(h h]h }(hj/hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhj.hKubjD)}(hdvb_vb2_reqbufsh]jJ)}(hdvb_vb2_reqbufsh]hdvb_vb2_reqbufs}(hjAhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj=ubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhj.hKubj)}(h9(struct dvb_vb2_ctx *ctx, struct dmx_requestbuffers *req)h](j%)}(hstruct dvb_vb2_ctx *ctxh](j!)}(hjh]hstructD}(hj]hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjYubj3)}(h h]h }(hjjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjYubh)}(hhh]jJ)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hj{hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjxubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj}modnameN classnameNj j )}j ]j)}jjCsbc.dvb_vb2_reqbufsasbuh1hhjYubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjYubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjYubjJ)}(hctxh]hctx}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjYubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjUubj%)}(hstruct dmx_requestbuffers *reqh](j!)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hdmx_requestbuffersh]hdmx_requestbuffers}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]jc.dvb_vb2_reqbufsasbuh1hhjubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hreqh]hreq}(hj&hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjUubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhj.hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhj.hKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj.hKhjhhubjv)}(hhh]h)}(h=Wrapper to vb2_core_reqbufs() for Digital TV buffer handling.h]h=Wrapper to vb2_core_reqbufs() for Digital TV buffer handling.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjMhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj.hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjhjjhjjjuh1jhhhjNfhNhNubj)}(hX**Parameters** ``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler ``struct dmx_requestbuffers *req`` :c:type:`struct dmx_requestbuffers ` passed from userspace in order to handle :c:type:`DMX_REQBUFS`. **Description** Initiate streaming by requesting a number of buffers. Also used to free previously requested buffers, is ``req->count`` is zero.h](h)}(h**Parameters**h]j)}(hjrh]h Parameters}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjlubj)}(hhh](j)}(h;``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler h](j)}(h``struct dvb_vb2_ctx *ctx``h]j)}(hjh]hstruct dvb_vb2_ctx *ctx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjubj)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h``struct dmx_requestbuffers *req`` :c:type:`struct dmx_requestbuffers ` passed from userspace in order to handle :c:type:`DMX_REQBUFS`. h](j)}(h"``struct dmx_requestbuffers *req``h]j)}(hjʀh]hstruct dmx_requestbuffers *req}(hj̀hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjȀubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjĀubj)}(hhh]h)}(hx:c:type:`struct dmx_requestbuffers ` passed from userspace in order to handle :c:type:`DMX_REQBUFS`.h](h)}(h8:c:type:`struct dmx_requestbuffers `h]j)}(hjh]hstruct dmx_requestbuffers}(hjhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j dmx_requestbuffersuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjubh* passed from userspace in order to handle }(hjhhhNhNubh)}(h:c:type:`DMX_REQBUFS`h]j)}(hj h]h DMX_REQBUFS}(hjhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j DMX_REQBUFSuh1hhjhKhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjĀubeh}(h]h ]h"]h$]h&]uh1jhj߀hKhjubeh}(h]h ]h"]h$]h&]uh1jhjlubh)}(h**Description**h]j)}(hjHh]h Description}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjlubh)}(hInitiate streaming by requesting a number of buffers. Also used to free previously requested buffers, is ``req->count`` is zero.h](hiInitiate streaming by requesting a number of buffers. Also used to free previously requested buffers, is }(hj^hhhNhNubj)}(h``req->count``h]h req->count}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh is zero.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_vb2_querybuf (C function)c.dvb_vb2_querybufhNtauh1hhjNfhhhNhNubj)}(hhh](j)}(hDint dvb_vb2_querybuf (struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)h]j)}(hCint dvb_vb2_querybuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)h](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKubjD)}(hdvb_vb2_querybufh]jJ)}(hdvb_vb2_querybufh]hdvb_vb2_querybuf}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKubj)}(h/(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)h](j%)}(hstruct dvb_vb2_ctx *ctxh](j!)}(hjh]hstruct}(hj܁hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hj؁ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj؁ubh)}(hhh]jJ)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]j)}jjsbc.dvb_vb2_querybufasbuh1hhj؁ubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj؁ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj؁ubjJ)}(hctxh]hctx}(hj5hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj؁ubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjԁubj%)}(hstruct dmx_buffer *bh](j!)}(hjh]hstruct}(hjNhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjJubj3)}(h h]h }(hj[hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjJubh)}(hhh]jJ)}(h dmx_bufferh]h dmx_buffer}(hjlhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjiubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjnmodnameN classnameNj j )}j ]jc.dvb_vb2_querybufasbuh1hhjJubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjJubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubjJ)}(hbh]hb}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjJubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjԁubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjhKubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjhhubjv)}(hhh]h)}(h>Wrapper to vb2_core_querybuf() for Digital TV buffer handling.h]h>Wrapper to vb2_core_querybuf() for Digital TV buffer handling.}(hjςhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhĵhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjhKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjNfhNhNubj)}(h**Parameters** ``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler ``struct dmx_buffer *b`` :c:type:`struct dmx_buffer ` passed from userspace in order to handle :c:type:`DMX_QUERYBUF`.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjubj)}(hhh](j)}(h;``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler h](j)}(h``struct dvb_vb2_ctx *ctx``h]j)}(hjh]hstruct dvb_vb2_ctx *ctx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj ubj)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hKhj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj%hKhjubj)}(h``struct dmx_buffer *b`` :c:type:`struct dmx_buffer ` passed from userspace in order to handle :c:type:`DMX_QUERYBUF`.h](j)}(h``struct dmx_buffer *b``h]j)}(hjIh]hstruct dmx_buffer *b}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjCubj)}(hhh]h)}(hi:c:type:`struct dmx_buffer ` passed from userspace in order to handle :c:type:`DMX_QUERYBUF`.h](h)}(h(:c:type:`struct dmx_buffer `h]j)}(hjhh]hstruct dmx_buffer}(hjjhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j dmx_bufferuh1hhj^hKhjbubh* passed from userspace in order to handle }(hjbhhhNhNubh)}(h:c:type:`DMX_QUERYBUF`h]j)}(hjh]h DMX_QUERYBUF}(hjhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j DMX_QUERYBUFuh1hhj^hKhjbubh.}(hjbhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj^hKhj_ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj^hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_vb2_expbuf (C function)c.dvb_vb2_expbufhNtauh1hhjNfhhhNhNubj)}(hhh](j)}(hJint dvb_vb2_expbuf (struct dvb_vb2_ctx *ctx, struct dmx_exportbuffer *exp)h]j)}(hIint dvb_vb2_expbuf(struct dvb_vb2_ctx *ctx, struct dmx_exportbuffer *exp)h](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjhKubjD)}(hdvb_vb2_expbufh]jJ)}(hdvb_vb2_expbufh]hdvb_vb2_expbuf}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjhKubj)}(h7(struct dvb_vb2_ctx *ctx, struct dmx_exportbuffer *exp)h](j%)}(hstruct dvb_vb2_ctx *ctxh](j!)}(hjh]hstruct}(hj!hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj.hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hj?hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhj<ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjAmodnameN classnameNj j )}j ]j)}jjsbc.dvb_vb2_expbufasbuh1hhjubj3)}(h h]h }(hj_hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hctxh]hctx}(hjzhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct dmx_exportbuffer *exph](j!)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(hdmx_exportbufferh]hdmx_exportbuffer}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]j[c.dvb_vb2_expbufasbuh1hhjubj3)}(h h]h }(hjτhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hj݄hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hexph]hexp}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj܃hhhjhKubah}(h]j׃ah ](jmjneh"]h$]h&]jrjs)jthuh1jhjhKhjكhhubjv)}(hhh]h)}(h` passed from userspace in order to handle :c:type:`DMX_EXPBUF`. **Description** Export a buffer as a file descriptor.h](h)}(h**Parameters**h]j)}(hj6h]h Parameters}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj0ubj)}(hhh](j)}(h;``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler h](j)}(h``struct dvb_vb2_ctx *ctx``h]j)}(hjUh]hstruct dvb_vb2_ctx *ctx}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjOubj)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhKhjkubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjjhKhjLubj)}(h``struct dmx_exportbuffer *exp`` :c:type:`struct dmx_exportbuffer ` passed from userspace in order to handle :c:type:`DMX_EXPBUF`. h](j)}(h ``struct dmx_exportbuffer *exp``h]j)}(hjh]hstruct dmx_exportbuffer *exp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjubj)}(hhh]h)}(hs:c:type:`struct dmx_exportbuffer ` passed from userspace in order to handle :c:type:`DMX_EXPBUF`.h](h)}(h4:c:type:`struct dmx_exportbuffer `h]j)}(hjh]hstruct dmx_exportbuffer}(hjhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j dmx_exportbufferuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjubh* passed from userspace in order to handle }(hjhhhNhNubh)}(h:c:type:`DMX_EXPBUF`h]j)}(hjхh]h DMX_EXPBUF}(hjӅhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjυubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j DMX_EXPBUFuh1hhjʅhKhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjʅhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjLubeh}(h]h ]h"]h$]h&]uh1jhj0ubh)}(h**Description**h]j)}(hj h]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj0ubh)}(h%Export a buffer as a file descriptor.h]h%Export a buffer as a file descriptor.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj0ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_vb2_qbuf (C function)c.dvb_vb2_qbufhNtauh1hhjNfhhhNhNubj)}(hhh](j)}(h@int dvb_vb2_qbuf (struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)h]j)}(h?int dvb_vb2_qbuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)h](jG)}(hinth]hint}(hjQhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjMhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj3)}(h h]h }(hj`hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjMhhhj_hKubjD)}(h dvb_vb2_qbufh]jJ)}(h dvb_vb2_qbufh]h dvb_vb2_qbuf}(hjrhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjnubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjMhhhj_hKubj)}(h/(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)h](j%)}(hstruct dvb_vb2_ctx *ctxh](j!)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]j)}jjtsbc.dvb_vb2_qbufasbuh1hhjubj3)}(h h]h }(hj̆hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjچhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hctxh]hctx}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct dmx_buffer *bh](j!)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hj hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h dmx_bufferh]h dmx_buffer}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj modnameN classnameNj j )}j ]jȆc.dvb_vb2_qbufasbuh1hhjubj3)}(h h]h }(hj<hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjJhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hjh]hb}(hjWhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjMhhhj_hKubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjIhhhj_hKubah}(h]jDah ](jmjneh"]h$]h&]jrjs)jthuh1jhj_hKhjFhhubjv)}(hhh]h)}(h:Wrapper to vb2_core_qbuf() for Digital TV buffer handling.h]h:Wrapper to vb2_core_qbuf() for Digital TV buffer handling.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj}hhubah}(h]h ]h"]h$]h&]uh1juhjFhhhj_hKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjNfhNhNubj)}(hX**Parameters** ``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler ``struct dmx_buffer *b`` :c:type:`struct dmx_buffer ` passed from userspace in order to handle :c:type:`DMX_QBUF`. **Description** Queue a Digital TV buffer as requested by userspaceh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjubj)}(hhh](j)}(h;``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler h](j)}(h``struct dvb_vb2_ctx *ctx``h]j)}(hjh]hstruct dvb_vb2_ctx *ctx}(hjÇhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjubj)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hjڇhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjևhKhjׇubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjևhKhjubj)}(h``struct dmx_buffer *b`` :c:type:`struct dmx_buffer ` passed from userspace in order to handle :c:type:`DMX_QBUF`. h](j)}(h``struct dmx_buffer *b``h]j)}(hjh]hstruct dmx_buffer *b}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjubj)}(hhh]h)}(he:c:type:`struct dmx_buffer ` passed from userspace in order to handle :c:type:`DMX_QBUF`.h](h)}(h(:c:type:`struct dmx_buffer `h]j)}(hjh]hstruct dmx_buffer}(hjhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j dmx_bufferuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjubh* passed from userspace in order to handle }(hjhhhNhNubh)}(h:c:type:`DMX_QBUF`h]j)}(hj=h]hDMX_QBUF}(hj?hhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j DMX_QBUFuh1hhj6hKhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj6hKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjxh]h Description}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjubh)}(h3Queue a Digital TV buffer as requested by userspaceh]h3Queue a Digital TV buffer as requested by userspace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_vb2_dqbuf (C function)c.dvb_vb2_dqbufhNtauh1hhjNfhhhNhNubj)}(hhh](j)}(hAint dvb_vb2_dqbuf (struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)h]j)}(h@int dvb_vb2_dqbuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)h](jG)}(hinth]hint}(hjhhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMubj3)}(h h]h }(hj̈hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhjˈhMubjD)}(h dvb_vb2_dqbufh]jJ)}(h dvb_vb2_dqbufh]h dvb_vb2_dqbuf}(hjވhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjڈubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChjhhhjˈhMubj)}(h/(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)h](j%)}(hstruct dvb_vb2_ctx *ctxh](j!)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubh)}(hhh]jJ)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]j)}jjsbc.dvb_vb2_dqbufasbuh1hhjubj3)}(h h]h }(hj8hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(hjh]h*}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubjJ)}(hctxh]hctx}(hjShhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubj%)}(hstruct dmx_buffer *bh](j!)}(hjh]hstruct}(hjlhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjhubj3)}(h h]h }(hjyhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhubh)}(hhh]jJ)}(h dmx_bufferh]h dmx_buffer}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]j4c.dvb_vb2_dqbufasbuh1hhjhubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhubjJ)}(hjh]hb}(hjÉhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjhubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjˈhMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihjhhhjˈhMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhjˈhMhjhhubjv)}(hhh]h)}(h;Wrapper to vb2_core_dqbuf() for Digital TV buffer handling.h]h;Wrapper to vb2_core_dqbuf() for Digital TV buffer handling.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhjhhubah}(h]h ]h"]h$]h&]uh1juhjhhhjˈhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1jhhhjNfhNhNubj)}(hX**Parameters** ``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler ``struct dmx_buffer *b`` :c:type:`struct dmx_buffer ` passed from userspace in order to handle :c:type:`DMX_DQBUF`. **Description** Dequeue a Digital TV buffer to the userspaceh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhjubj)}(hhh](j)}(h;``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler h](j)}(h``struct dvb_vb2_ctx *ctx``h]j)}(hj-h]hstruct dvb_vb2_ctx *ctx}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhj'ubj)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhMhjCubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjBhMhj$ubj)}(h``struct dmx_buffer *b`` :c:type:`struct dmx_buffer ` passed from userspace in order to handle :c:type:`DMX_DQBUF`. h](j)}(h``struct dmx_buffer *b``h]j)}(hjfh]hstruct dmx_buffer *b}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhj`ubj)}(hhh]h)}(hf:c:type:`struct dmx_buffer ` passed from userspace in order to handle :c:type:`DMX_DQBUF`.h](h)}(h(:c:type:`struct dmx_buffer `h]j)}(hjh]hstruct dmx_buffer}(hjhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j dmx_bufferuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhjubh* passed from userspace in order to handle }(hjhhhNhNubh)}(h:c:type:`DMX_DQBUF`h]j)}(hjh]h DMX_DQBUF}(hjhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j DMX_DQBUFuh1hhjhMhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhj|ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhj$ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhM hjubh)}(h,Dequeue a Digital TV buffer to the userspaceh]h,Dequeue a Digital TV buffer to the userspace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhM hjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjNfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](j dvb_vb2_mmap (C function)c.dvb_vb2_mmaphNtauh1hhjNfhhhNhNubj)}(hhh](j)}(hFint dvb_vb2_mmap (struct dvb_vb2_ctx *ctx, struct vm_area_struct *vma)h]j)}(hEint dvb_vb2_mmap(struct dvb_vb2_ctx *ctx, struct vm_area_struct *vma)h](jG)}(hinth]hint}(hj)hhhNhNubah}(h]h ]jSah"]h$]h&]uh1jFhj%hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMubj3)}(h h]h }(hj8hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj%hhhj7hMubjD)}(h dvb_vb2_mmaph]jJ)}(h dvb_vb2_mmaph]h dvb_vb2_mmap}(hjJhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjFubah}(h]h ](j\j]eh"]h$]h&]hhuh1jChj%hhhj7hMubj)}(h5(struct dvb_vb2_ctx *ctx, struct vm_area_struct *vma)h](j%)}(hstruct dvb_vb2_ctx *ctxh](j!)}(hjh]hstruct}(hjfhhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjbubj3)}(h h]h }(hjshhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjbubh)}(hhh]jJ)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]j)}jjLsbc.dvb_vb2_mmapasbuh1hhjbubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjbubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjbubjJ)}(hctxh]hctx}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjbubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj^ubj%)}(hstruct vm_area_struct *vmah](j!)}(hjh]hstruct}(hj؋hhhNhNubah}(h]h ]j-ah"]h$]h&]uh1j hjԋubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjԋubh)}(hhh]jJ)}(hvm_area_structh]hvm_area_struct}(hjhhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNj j )}j ]jc.dvb_vb2_mmapasbuh1hhjԋubj3)}(h h]h }(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjԋubj)}(hjh]h*}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjԋubjJ)}(hvmah]hvma}(hj/hhhNhNubah}(h]h ]jUah"]h$]h&]uh1jIhjԋubeh}(h]h ]h"]h$]h&]noemphhhuh1j$hj^ubeh}(h]h ]h"]h$]h&]hhuh1jhj%hhhj7hMubeh}(h]h ]h"]h$]h&]hhjguh1jjhjihj!hhhj7hMubah}(h]jah ](jmjneh"]h$]h&]jrjs)jthuh1jhj7hMhjhhubjv)}(hhh]h)}(h5Wrapper to vb2_mmap() for Digital TV buffer handling.h]h5Wrapper to vb2_mmap() for Digital TV buffer handling.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhjVhhubah}(h]h ]h"]h$]h&]uh1juhjhhhj7hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjqjjqjjjuh1jhhhjNfhNhNubj)}(hXA**Parameters** ``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler ``struct vm_area_struct *vma`` pointer to :c:type:`struct vm_area_struct ` with the vma passed to the mmap file operation handler in the driver. **Description** map Digital TV video buffers into application address space.h](h)}(h**Parameters**h]j)}(hj{h]h Parameters}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhjuubj)}(hhh](j)}(h;``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler h](j)}(h``struct dvb_vb2_ctx *ctx``h]j)}(hjh]hstruct dvb_vb2_ctx *ctx}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhjubj)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h``struct vm_area_struct *vma`` pointer to :c:type:`struct vm_area_struct ` with the vma passed to the mmap file operation handler in the driver. h](j)}(h``struct vm_area_struct *vma``h]j)}(hjӌh]hstruct vm_area_struct *vma}(hjՌhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjьubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhj͌ubj)}(hhh]h)}(hpointer to :c:type:`struct vm_area_struct ` with the vma passed to the mmap file operation handler in the driver.h](h pointer to }(hjhhhNhNubh)}(h0:c:type:`struct vm_area_struct `h]j)}(hjh]hstruct vm_area_struct}(hjhhhNhNubah}(h]h ](j jc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnj j j vm_area_structuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhjubhF with the vma passed to the mmap file operation handler in the driver.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj͌ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjuubh)}(h**Description**h]j)}(hj2h]h Description}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhjuubh)}(hjjjhjmjjjcjhjjj?jDjM!jR!j#j#jD%jI%j'j'j$*j)*j,j,jp1ju1j6j"6j7j7jd9ji9jHfjj:j;j ;jf=jk=j?j?j&Aj+AjBjBjNDjSDjEjEj9Gj>GjHjHjIjIjJjJjMjMjPjPjQjQjTjTjWjWjYZj^Zj@^jE^jajajcjcj`jNfjkfjpfjGgjLgjhjhj}jjjjMojRojUrjZrjsjsjCujHujyj yj|j|j}j}jjjjj׃j܃jDjIjjjj!u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]hsystem_message)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "2" (ordinal 2)h]h>Enumerated list start value not ordinal-1: “2” (ordinal 2)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehnjlineKuh1jhj:ubatransform_messages] transformerN include_log] decorationNhhub.