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]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}(hjhhhNhNubah}(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 }(hj hhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhKubh desc_name)}(hdvb_device_typeh]h desc_sig_name)}(hjh]hdvb_device_type}(hj7hhhNhNubah}(h]h ]nah"]h$]h&]uh1j5hj1ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1j/hjhhhjhKubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1jsphinx_line_type declaratorhjhhhjhKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhKhhhhubh desc_content)}(hhh]h)}(htype of the Digital TV deviceh]htype of the Digital TV device}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhK)hjchhubah}(h]h ]h"]h$]h&]uh1jahhhhhjhKubeh}(h]h ](cenumeh"]h$]h&]domainj~objtypejdesctypejnoindex noindexentrynocontentsentryuh1hhhhhhNhNubh 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)}(hjh]hDVB_DEVICE_FRONTEND}(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.hhK3hjubj)}(hhh]h)}(hDigital TV frontend.h]hDigital TV frontend.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK3hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hK3hjubj)}(h'``DVB_DEVICE_DEMUX`` Digital TV demux. h](j)}(h``DVB_DEVICE_DEMUX``h]j)}(hj.h]hDVB_DEVICE_DEMUX}(hj0hhhNhNubah}(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.}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChK6hjDubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjChK6hjubj)}(h:``DVB_DEVICE_DVR`` Digital TV digital video record (DVR). h](j)}(h``DVB_DEVICE_DVR``h]j)}(hjgh]hDVB_DEVICE_DVR}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhK9hjaubj)}(hhh]h)}(h&Digital TV digital video record (DVR).h]h&Digital TV digital video record (DVR).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hK9hj}ubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj|hK9hjubj)}(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.hhKubh literal_block)}(hXstruct dvb_adapter { int num; struct list_head list_head; struct list_head device_list; const char *name; u8 proposed_mac [6]; void* priv; struct device *device; struct module *module; int mfe_shared; struct dvb_device *mfe_dvbdev; struct mutex mfe_lock; #if defined(CONFIG_MEDIA_CONTROLLER_DVB); struct mutex mdev_lock; struct media_device *mdev; struct media_entity *conn; struct media_pad *conn_pads; #endif; };h]hXstruct dvb_adapter { int num; struct list_head list_head; struct list_head device_list; const char *name; u8 proposed_mac [6]; void* priv; struct device *device; struct module *module; int mfe_shared; struct dvb_device *mfe_dvbdev; struct mutex mfe_lock; #if defined(CONFIG_MEDIA_CONTROLLER_DVB); struct mutex mdev_lock; struct media_device *mdev; struct media_entity *conn; struct media_pad *conn_pads; #endif; };}hjasbah}(h]h ]h"]h$]h&]hhuh1j_hb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKUhj>ubh)}(h **Members**h]j)}(hjrh]hMembers}(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.hhKihj>ubj)}(hhh](j)}(h``num`` Number of the adapter h](j)}(h``num``h]j)}(hjh]hnum}(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.hhKRhjubj)}(hhh]h)}(hNumber of the adapterh]hNumber of the adapter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKRhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKRhjubj)}(h)``list_head`` List with the DVB adapters 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.hhKShjubj)}(hhh]h)}(hList with the DVB adaptersh]hList with the DVB adapters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKShjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKShjubj)}(h*``device_list`` List with the DVB devices h](j)}(h``device_list``h]j)}(hjh]h device_list}(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.hhKThjubj)}(hhh]h)}(hList with the DVB devicesh]hList with the DVB devices}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKThjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKThjubj)}(h``name`` Name of the adapter h](j)}(h``name``h]j)}(hj<h]hname}(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.hhKUhj6ubj)}(hhh]h)}(hName of the adapterh]hName of the adapter}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQhKUhjRubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhjQhKUhjubj)}(h6``proposed_mac`` proposed MAC address for the adapter h](j)}(h``proposed_mac``h]j)}(hjuh]h proposed_mac}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKVhjoubj)}(hhh]h)}(h$proposed MAC address for the adapterh]h$proposed MAC address for the adapter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKVhjubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjhKVhjubj)}(h``priv`` private data h](j)}(h``priv``h]j)}(hjh]hpriv}(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.hhKWhjubj)}(hhh]h)}(h private datah]h private data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKWhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKWhjubj)}(h$``device`` pointer to struct device h](j)}(h ``device``h]j)}(hjh]hdevice}(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.hhKXhjubj)}(hhh]h)}(hpointer to struct deviceh]hpointer to struct device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKXhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKXhjubj)}(h$``module`` pointer to struct module h](j)}(h ``module``h]j)}(hj h]hmodule}(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.hhKYhjubj)}(hhh]h)}(hpointer to struct moduleh]hpointer to struct module}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hKYhj6ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj5hKYhjubj)}(hXM``mfe_shared`` indicates mutually exclusive frontends. 1 = legacy exclusion behavior: blocking any open() call 2 = enhanced exclusion behavior, emulating the standard behavior of busy frontends: allowing read-only sharing and otherwise returning immediately with -EBUSY when any of the frontends is already opened with write access. h](j)}(h``mfe_shared``h]j)}(hjYh]h mfe_shared}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhK_hjSubj)}(hhh]h)}(hX=indicates mutually exclusive frontends. 1 = legacy exclusion behavior: blocking any open() call 2 = enhanced exclusion behavior, emulating the standard behavior of busy frontends: allowing read-only sharing and otherwise returning immediately with -EBUSY when any of the frontends is already opened with write access.h]hX=indicates mutually exclusive frontends. 1 = legacy exclusion behavior: blocking any open() call 2 = enhanced exclusion behavior, emulating the standard behavior of busy frontends: allowing read-only sharing and otherwise returning immediately with -EBUSY when any of the frontends is already opened with write access.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKZhjoubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjnhK_hjubj)}(h:``mfe_dvbdev`` Frontend device in use, in the case of MFE h](j)}(h``mfe_dvbdev``h]j)}(hjh]h mfe_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.hhK`hjubj)}(hhh]h)}(h*Frontend device in use, in the case of MFEh]h*Frontend device in use, in the case of MFE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK`hjubj)}(hI``mfe_lock`` Lock to prevent using the other frontends when MFE is used. h](j)}(h ``mfe_lock``h]j)}(hjh]hmfe_lock}(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.hhKbhjubj)}(hhh]h)}(h;Lock to prevent using the other frontends when MFE is used.h]h;Lock to prevent using the other frontends when MFE is used.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKahjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKbhjubj)}(h2``mdev_lock`` Protect access to the mdev pointer. h](j)}(h ``mdev_lock``h]j)}(hjh]h mdev_lock}(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.hhKchjubj)}(hhh]h)}(h#Protect access to the mdev pointer.h]h#Protect access to the mdev pointer.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKchjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKchjubj)}(hQ``mdev`` pointer to struct media_device, used when the media controller is used. h](j)}(h``mdev``h]j)}(hj?h]hmdev}(hjAhhhNhNubah}(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.hhKehj9ubj)}(hhh]h)}(hGpointer to struct media_device, used when the media controller is used.h]hGpointer to struct media_device, used when the media controller is used.}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKdhjUubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjThKehjubj)}(hF``conn`` RF connector. Used only if the device has no separate tuner. h](j)}(h``conn``h]j)}(hjyh]hconn}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKghjsubj)}(hhh]h)}(hubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_device (C struct) c.dvb_devicehNtauh1hhhhhhNhNubh)}(hhh](j)}(h dvb_deviceh]j)}(hstruct dvb_deviceh](j )}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKnubj)}(h h]h }(hj-hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjhhhj,hKnubj0)}(h dvb_deviceh]j6)}(hjh]h dvb_device}(hj?hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj;ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjhhhj,hKnubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjhhhj,hKnubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj,hKnhjhhubjb)}(hhh]h)}(hrepresents a DVB device nodeh]hrepresents a DVB device node}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj^hhubah}(h]h ]h"]h$]h&]uh1jahjhhhj,hKnubeh}(h]h ](j~structeh"]h$]h&]jj~jjyjjyjjjuh1hhhhhhNhNubj)}(hX**Definition**:: struct 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; }; **Members** ``list_head`` List head with all DVB devices ``ref`` reference count for this device ``fops`` pointer to struct file_operations ``adapter`` pointer to the adapter that holds this device node ``type`` type of the device, as defined by :c:type:`enum dvb_device_type `. ``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.hhKhj}ubj`)}(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&]hhuh1j_hb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj}ubh)}(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.hhKhj}ubj)}(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}(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+``fops`` pointer to struct file_operations h](j)}(h``fops``h]j)}(hj@ h]hfops}(hjB 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!pointer to struct file_operationsh]h!pointer to struct file_operations}(hjY hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjU hKhjV ubah}(h]h ]h"]h$]h&]uh1jhj: ubeh}(h]h ]h"]h$]h&]uh1jhjU hKhjubj)}(h?``adapter`` pointer to the adapter that holds this device node h](j)}(h ``adapter``h]j)}(hjy h]hadapter}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjs 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&]uh1jhjs 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 ](xrefj~c-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocdriver-api/media/dtv-common refdomainj~reftypetype 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.}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj. hKhj/ ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj. hKhjubj)}(h,``id`` device ID number, inside the adapter h](j)}(h``id``h]j)}(hjR h]hid}(hjT hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjL ubj)}(hhh]h)}(h$device ID number, inside the adapterh]h$device ID number, inside the adapter}(hjk hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjg hKhjh ubah}(h]h ]h"]h$]h&]uh1jhjL ubeh}(h]h ]h"]h$]h&]uh1jhjg 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)}(hj9 h]h wait_queue}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7 ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj3 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}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjO ubah}(h]h ]h"]h$]h&]uh1jhj3 ubeh}(h]h ]h"]h$]h&]uh1jhjN hKhjubj)}(hN``kernel_ioctl`` callback function used to handle ioctl calls from userspace. h](j)}(h``kernel_ioctl``h]j)}(hjs h]h kernel_ioctl}(hju hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjq ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjm ubj)}(hhh]h)}(hpointer to struct media_entity associated with the device nodeh]h>pointer to struct media_entity associated with the device node}(hjq hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjm hKhjn ubah}(h]h ]h"]h$]h&]uh1jhjR ubeh}(h]h ]h"]h$]h&]uh1jhjm 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 }(hj. hhhNhNubj)}(h**tsout_entity**h]h tsout_entity}(hj6 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj. 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)}(hj\ h]hpriv}(hj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZ ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjV ubj)}(hhh]h)}(h private datah]h private data}(hju hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjr ubah}(h]h ]h"]h$]h&]uh1jhjV ubeh}(h]h ]h"]h$]h&]uh1jhjq hKhjubeh}(h]h ]h"]h$]h&]uh1jhj}ubeh}(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](hdvbdevfops_node (C struct)c.dvbdevfops_nodehNtauh1hhhhhhNhNubh)}(hhh](j)}(hdvbdevfops_nodeh]j)}(hstruct dvbdevfops_nodeh](j )}(hjh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKubj)}(h h]h }(hj hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj hhhj hKubj0)}(hdvbdevfops_nodeh]j6)}(hj h]hdvbdevfops_node}(hj hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj hhhj hKubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj hhhj hKubah}(h]j ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj hKhj hhubjb)}(hhh]h)}(h(fops nodes registered in dvbdevfops_listh]h(fops nodes registered in dvbdevfops_list}(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&]uh1jahj hhhj hKubeh}(h]h ](j~structeh"]h$]h&]jj~jj7jj7jjjuh1hhhhhhNhNubj)}(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}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubh:}(hj?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj;ubj`)}(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; };}hj\sbah}(h]h ]h"]h$]h&]hhuh1j_hb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj;ubh)}(h **Members**h]j)}(hjmh]hMembers}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(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=``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.hhKhjubj)}(hhh]h)}(h dvb_device used for registrationh]h dvb_device used for registration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h+``list_head`` list_head for dvbdevfops_listh](j)}(h ``list_head``h]j)}(hj7h]h list_head}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhj1ubj)}(hhh]h)}(hlist_head for dvbdevfops_listh]hlist_head for dvbdevfops_list}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjMubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhjLhKhjubeh}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_device_get (C function)c.dvb_device_gethNtauh1hhhhhhNhNubh)}(hhh](j)}(h>struct dvb_device * dvb_device_get (struct dvb_device *dvbdev)h]j)}(hpointer 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)}(hjh]hshort *adapter_nums}(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)}(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 }(hjhhhNhNubj)}(h**dvb_register_adapter**h]hdvb_register_adapter}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh`; to select among them. Typically, initialized with: DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nums)}(hjhhhNhNubeh}(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&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#dvb_unregister_adapter (C function)c.dvb_unregister_adapterhNtauh1hhhhhhNhNubh)}(hhh](j)}(h5int dvb_unregister_adapter (struct dvb_adapter *adap)h]j)}(h4int dvb_unregister_adapter(struct dvb_adapter *adap)h](j3)}(hinth]hint}(hjahhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj]hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKubj)}(h h]h }(hjphhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj]hhhjohKubj0)}(hdvb_unregister_adapterh]j6)}(hdvb_unregister_adapterh]hdvb_unregister_adapter}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj~ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj]hhhjohKubj )}(h(struct dvb_adapter *adap)h]j)}(hstruct dvb_adapter *adaph](j )}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubh)}(hhh]j6)}(h dvb_adapterh]h dvb_adapter}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjmodnameN classnameNj j )}j ]j)}jjsbc.dvb_unregister_adapterasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj6)}(hadaph]hadap}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1j hj]hhhjohKubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjYhhhjohKubah}(h]jTah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjohKhjVhhubjb)}(hhh]h)}(hUnregisters a DVB adapterh]hUnregisters a 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.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jahjVhhhjohKubeh}(h]h ](j~functioneh"]h$]h&]jj~jj9jj9jjjuh1hhhhhhNhNubj)}(hL**Parameters** ``struct dvb_adapter *adap`` pointer to struct dvb_adapterh](h)}(h**Parameters**h]j)}(hjCh]h Parameters}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(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_adapter *adap`` pointer to struct dvb_adapterh](j)}(h``struct dvb_adapter *adap``h]j)}(hjbh]hstruct dvb_adapter *adap}(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.hhKhj\ubj)}(hhh]h)}(hpointer to struct dvb_adapterh]hpointer to struct 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.hhKhjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhjwhKhjYubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h dvb_register_device (C function)c.dvb_register_devicehNtauh1hhhhhhNhNubh)}(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](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjhhhjhMubj0)}(hdvb_register_deviceh]j6)}(hdvb_register_deviceh]hdvb_register_device}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjhhhjhMubj )}(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}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubh)}(hhh]j6)}(h dvb_adapterh]h dvb_adapter}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjmodnameN classnameNj j )}j ]j)}jjsbc.dvb_register_deviceasbuh1hhjubj)}(h h]h }(hj7hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj6)}(hadaph]hadap}(hjRhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct dvb_device **pdvbdevh](j )}(hjh]hstruct}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjgubj)}(h h]h }(hjxhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjgubh)}(hhh]j6)}(h dvb_deviceh]h dvb_device}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjmodnameN classnameNj j )}j ]j3c.dvb_register_deviceasbuh1hhjgubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjgubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjgubj6)}(hpdvbdevh]hpdvbdev}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjgubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h!const struct dvb_device *templateh](j )}(hjAh]hconst}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubj )}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubh)}(hhh]j6)}(h dvb_deviceh]h dvb_device}(hj!hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj#modnameN classnameNj j )}j ]j3c.dvb_register_deviceasbuh1hhjubj)}(h h]h }(hj?hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj6)}(htemplateh]htemplate}(hjZhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h void *privh](j3)}(hvoidh]hvoid}(hjshhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjoubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjoubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj6)}(hprivh]hpriv}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjoubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(henum dvb_device_type typeh](j )}(hjh]henum}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubh)}(hhh]j6)}(hdvb_device_typeh]hdvb_device_type}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjmodnameN classnameNj j )}j ]j3c.dvb_register_deviceasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubj6)}(htypeh]htype}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hint demux_sink_padsh](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubj6)}(hdemux_sink_padsh]hdemux_sink_pads}(hj4hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjhMhjhhubjb)}(hhh]h)}(hRegisters a new DVB deviceh]hRegisters a new 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.hhKhj[hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhMubeh}(h]h ](j~functioneh"]h$]h&]jj~jjvjjvjjjuh1hhhhhhNhNubj)}(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&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjzubj)}(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)}(hjh]h!const struct dvb_device *template}(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*Template used to create :c:type:`pdvbdev`;h](hTemplate used to create }(hj+hhhNhNubh)}(h:c:type:`pdvbdev`h]j)}(hj5h]hpdvbdev}(hj7hhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype 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)}(hjnh]h void *priv}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhKhjhubj)}(hhh]h)}(h private datah]h private data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(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 j~c-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_remove_device (C function)c.dvb_remove_devicehNtauh1hhhhhhNhNubh)}(hhh](j)}(h2void dvb_remove_device (struct dvb_device *dvbdev)h]j)}(h1void dvb_remove_device(struct dvb_device *dvbdev)h](j3)}(hvoidh]hvoid}(hj\hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjXhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMubj)}(h h]h }(hjkhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjXhhhjjhMubj0)}(hdvb_remove_deviceh]j6)}(hdvb_remove_deviceh]hdvb_remove_device}(hj}hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjyubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjXhhhjjhMubj )}(h(struct dvb_device *dvbdev)h]j)}(hstruct dvb_device *dvbdevh](j )}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubh)}(hhh]j6)}(h dvb_deviceh]h dvb_device}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjmodnameN classnameNj j )}j ]j)}jjsbc.dvb_remove_deviceasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj6)}(hdvbdevh]hdvbdev}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1j hjXhhhjjhMubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjThhhjjhMubah}(h]jOah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjjhMhjQhhubjb)}(hhh]h)}(hRemove a registered DVB deviceh]hRemove a registered DVB device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM hjhhubah}(h]h ]h"]h$]h&]uh1jahjQhhhjjhMubeh}(h]h ](j~functioneh"]h$]h&]jj~jj4jj4jjjuh1hhhhhhNhNubj)}(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)}(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.hhMhj8ubj)}(hhh]j)}(h;``struct dvb_device *dvbdev`` pointer to struct dvb_device h](j)}(h``struct dvb_device *dvbdev``h]j)}(hj]h]hstruct dvb_device *dvbdev}(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 hjWubj)}(hhh]h)}(hpointer to struct dvb_deviceh]hpointer to struct dvb_device}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjrhM hjsubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhM hjTubah}(h]h ]h"]h$]h&]uh1jhj8ubh)}(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.hhMhj8ubh)}(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.hhMhj8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h"dvb_unregister_device (C function)c.dvb_unregister_devicehNtauh1hhhhhhNhNubh)}(hhh](j)}(h6void dvb_unregister_device (struct dvb_device *dvbdev)h]j)}(h5void dvb_unregister_device(struct dvb_device *dvbdev)h](j3)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjhhhjhMubj0)}(hdvb_unregister_deviceh]j6)}(hdvb_unregister_deviceh]hdvb_unregister_device}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjhhhjhMubj )}(h(struct dvb_device *dvbdev)h]j)}(hstruct dvb_device *dvbdevh](j )}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubh)}(hhh]j6)}(h dvb_deviceh]h dvb_device}(hj8hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj5ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj:modnameN classnameNj j )}j ]j)}jjsbc.dvb_unregister_deviceasbuh1hhjubj)}(h h]h }(hjXhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj6)}(hdvbdevh]hdvbdev}(hjshhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubah}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjhhhjhMubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjhMhjhhubjb)}(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&]uh1jahjhhhjhMubeh}(h]h ](j~functioneh"]h$]h&]jj~jjjjjjjuh1hhhhhhNhNubj)}(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}(hjhhhNhNubah}(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](h#dvb_create_media_graph (C function)c.dvb_create_media_graphhNtauh1hhhhhhNhNubh)}(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](j3)}(hinth]hint}(hj8hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj4hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM+ubj)}(h h]h }(hjGhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj4hhhjFhM+ubj0)}(hdvb_create_media_graphh]j6)}(hdvb_create_media_graphh]hdvb_create_media_graph}(hjYhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjUubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj4hhhjFhM+ubj )}(h4(struct dvb_adapter *adap, bool create_rf_connector)h](j)}(hstruct dvb_adapter *adaph](j )}(hjh]hstruct}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjqubh)}(hhh]j6)}(h dvb_adapterh]h dvb_adapter}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjmodnameN classnameNj j )}j ]j)}jj[sbc.dvb_create_media_graphasbuh1hhjqubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjqubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj6)}(hadaph]hadap}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjqubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjmubj)}(hbool create_rf_connectorh](j3)}(hboolh]hbool}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubj6)}(hcreate_rf_connectorh]hcreate_rf_connector}(hj hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjmubeh}(h]h ]h"]h$]h&]hhuh1j hj4hhhjFhM+ubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj0hhhjFhM+ubah}(h]j+ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjFhM+hj-hhubjb)}(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.}(hj- 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&]uh1jahj-hhhjFhM+ubeh}(h]h ](j~functioneh"]h$]h&]jj~jjE jjE jjjuh1hhhhhhNhNubj)}(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)}(hjO h]h Parameters}(hjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjM ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM"hjI ubj)}(hhh](j)}(hS``struct dvb_adapter *adap`` pointer to :c:type:`struct dvb_adapter ` h](j)}(h``struct dvb_adapter *adap``h]j)}(hjn h]hstruct dvb_adapter *adap}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM!hjh 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 j~c-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j dvb_adapteruh1hhj hM!hj ubeh}(h]h ]h"]h$]h&]uh1hhj hM!hj ubah}(h]h ]h"]h$]h&]uh1jhjh ubeh}(h]h ]h"]h$]h&]uh1jhj hM!hje 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"hje ubeh}(h]h ]h"]h$]h&]uh1jhjI 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$hjI 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$hjI ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h*dvb_register_media_controller (C function)c.dvb_register_media_controllerhNtauh1hhhhhhNhNubh)}(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](j3)}(hvoidh]hvoid}(hjF!hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjB!hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM4ubj)}(h h]h }(hjU!hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjB!hhhjT!hM4ubj0)}(hdvb_register_media_controllerh]j6)}(hdvb_register_media_controllerh]hdvb_register_media_controller}(hjg!hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjc!ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjB!hhhjT!hM4ubj )}(h5(struct dvb_adapter *adap, struct media_device *mdev)h](j)}(hstruct dvb_adapter *adaph](j )}(hjh]hstruct}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj!ubh)}(hhh]j6)}(h dvb_adapterh]h dvb_adapter}(hj!hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj!ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj!modnameN classnameNj j )}j ]j)}jji!sbc.dvb_register_media_controllerasbuh1hhj!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj!ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj6)}(hadaph]hadap}(hj!hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj!ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj{!ubj)}(hstruct media_device *mdevh](j )}(hjh]hstruct}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj!ubh)}(hhh]j6)}(h media_deviceh]h media_device}(hj"hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj"ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj"modnameN classnameNj j )}j ]j!c.dvb_register_media_controllerasbuh1hhj!ubj)}(h h]h }(hj1"hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj!ubj)}(hjh]h*}(hj?"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj6)}(hmdevh]hmdev}(hjL"hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj!ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj{!ubeh}(h]h ]h"]h$]h&]hhuh1j hjB!hhhjT!hM4ubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj>!hhhjT!hM4ubah}(h]j9!ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjT!hM4hj;!hhubjb)}(hhh]h)}(h+registers a media controller at DVB adapterh]h+registers a media controller at DVB adapter}(hjv"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM/hjs"hhubah}(h]h ]h"]h$]h&]uh1jahj;!hhhjT!hM4ubeh}(h]h ](j~functioneh"]h$]h&]jj~jj"jj"jjjuh1hhhhhhNhNubj)}(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 j~c-typeeh"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype 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)}(hj2#h]hstruct media_device}(hj4#hhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhj0#ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype 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&]uh1hhjO#hM2hj%#ubah}(h]h ]h"]h$]h&]uh1jhj #ubeh}(h]h ]h"]h$]h&]uh1jhj$#hM3hj"ubeh}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%dvb_get_media_controller (C function)c.dvb_get_media_controllerhNtauh1hhhhhhNhNubh)}(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 ]jah"]h$]h&]uh1j hj#hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM?ubj)}(h h]h }(hj#hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj#hhhj#hM?ubh)}(hhh]j6)}(h media_deviceh]h media_device}(hj#hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj#ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj#modnameN classnameNj j )}j ]j)}jdvb_get_media_controllersbc.dvb_get_media_controllerasbuh1hhj#hhhj#hM?ubj)}(h h]h }(hj#hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj#hhhj#hM?ubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#hhhj#hM?ubj0)}(hdvb_get_media_controllerh]j6)}(hj#h]hdvb_get_media_controller}(hj#hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj#ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj#hhhj#hM?ubj )}(h(struct dvb_adapter *adap)h]j)}(hstruct dvb_adapter *adaph](j )}(hjh]hstruct}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj#ubh)}(hhh]j6)}(h dvb_adapterh]h dvb_adapter}(hj $hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj$ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj"$modnameN classnameNj j )}j ]j#c.dvb_get_media_controllerasbuh1hhj#ubj)}(h h]h }(hj>$hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj#ubj)}(hjh]h*}(hjL$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj6)}(hadaph]hadap}(hjY$hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj#ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj#ubah}(h]h ]h"]h$]h&]hhuh1j hj#hhhj#hM?ubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj#hhhj#hM?ubah}(h]j{#ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj#hM?hj}#hhubjb)}(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&]uh1jahj}#hhhj#hM?ubeh}(h]h ](j~functioneh"]h$]h&]jj~jj$jj$jjjuh1hhhhhhNhNubj)}(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 j~c-typeeh"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype 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](hdvb_generic_open (C function)c.dvb_generic_openhNtauh1hhhhhhNhNubh)}(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 j~c-typeeh"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype 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 }(hj#'hhhNhNubh)}(h:c:type:`struct file `h]j)}(hj-'h]h struct file}(hj/'hhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhj+'ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j fileuh1hhj'hMShj#'ubh.}(hj#'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj'hMShj 'ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhj'hMShj&ubeh}(h]h ]h"]h$]h&]uh1jhj&ubh)}(h**Description**h]j)}(hjh'h]h Description}(hjj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf'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.hhMUhj&ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h dvb_generic_release (C function)c.dvb_generic_releasehNtauh1hhhhhhNhNubh)}(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](j3)}(hinth]hint}(hj'hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj'hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMcubj)}(h h]h }(hj'hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj'hhhj'hMcubj0)}(hdvb_generic_releaseh]j6)}(hdvb_generic_releaseh]hdvb_generic_release}(hj'hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj'ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj'hhhj'hMcubj )}(h((struct inode *inode, struct file *file)h](j)}(hstruct inode *inodeh](j )}(hjh]hstruct}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj'ubh)}(hhh]j6)}(hinodeh]hinode}(hj(hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj(ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj (modnameN classnameNj j )}j ]j)}jj'sbc.dvb_generic_releaseasbuh1hhj'ubj)}(h h]h }(hj((hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj'ubj)}(hjh]h*}(hj6(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj6)}(hinodeh]hinode}(hjC(hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj'ubj)}(hstruct file *fileh](j )}(hjh]hstruct}(hj\(hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjX(ubj)}(h h]h }(hji(hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjX(ubh)}(hhh]j6)}(hfileh]hfile}(hjz(hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjw(ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj|(modnameN classnameNj j )}j ]j$(c.dvb_generic_releaseasbuh1hhjX(ubj)}(h h]h }(hj(hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjX(ubj)}(hjh]h*}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjX(ubj6)}(hfileh]hfile}(hj(hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjX(ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj'ubeh}(h]h ]h"]h$]h&]hhuh1j hj'hhhj'hMcubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj'hhhj'hMcubah}(h]j'ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj'hMchj'hhubjb)}(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&]uh1jahj'hhhj'hMcubeh}(h]h ](j~functioneh"]h$]h&]jj~jj(jj(jjjuh1hhhhhhNhNubj)}(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)}(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.hhM]hj)ubj)}(hhh]h)}(h*pointer to :c:type:`struct inode `.h](h pointer to }(hj7)hhhNhNubh)}(h:c:type:`struct inode `h]j)}(hjA)h]h struct inode}(hjC)hhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhj?)ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j inodeuh1hhj3)hM]hj7)ubh.}(hj7)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj3)hM]hj4)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj3)hM]hj)ubj)}(h?``struct file *file`` pointer to :c:type:`struct file `. h](j)}(h``struct file *file``h]j)}(hjz)h]hstruct file *file}(hj|)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx)ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhM^hjt)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 j~c-typeeh"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j fileuh1hhj)hM^hj)ubh.}(hj)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj)hM^hj)ubah}(h]h ]h"]h$]h&]uh1jhjt)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](hdvb_generic_ioctl (C function)c.dvb_generic_ioctlhNtauh1hhhhhhNhNubh)}(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](j3)}(hlongh]hlong}(hj*hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj*hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMoubj)}(h h]h }(hj,*hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj*hhhj+*hMoubj0)}(hdvb_generic_ioctlh]j6)}(hdvb_generic_ioctlh]hdvb_generic_ioctl}(hj>*hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj:*ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj*hhhj+*hMoubj )}(h8(struct file *file, unsigned int cmd, unsigned long arg)h](j)}(hstruct file *fileh](j )}(hjh]hstruct}(hjZ*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjV*ubj)}(h h]h }(hjg*hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjV*ubh)}(hhh]j6)}(hfileh]hfile}(hjx*hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hju*ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjz*modnameN classnameNj j )}j ]j)}jj@*sbc.dvb_generic_ioctlasbuh1hhjV*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjV*ubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjV*ubj6)}(hfileh]hfile}(hj*hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjV*ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjR*ubj)}(hunsigned int cmdh](j3)}(hunsignedh]hunsigned}(hj*hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj*ubj3)}(hinth]hint}(hj*hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj*ubj6)}(hcmdh]hcmd}(hj+hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj*ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjR*ubj)}(hunsigned long argh](j3)}(hunsignedh]hunsigned}(hj+hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj+ubj)}(h h]h }(hj++hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj+ubj3)}(hlongh]hlong}(hj9+hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj+ubj)}(h h]h }(hjG+hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj+ubj6)}(hargh]harg}(hjU+hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj+ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjR*ubeh}(h]h ]h"]h$]h&]hhuh1j hj*hhhj+*hMoubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj*hhhj+*hMoubah}(h]j*ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj+*hMohj*hhubjb)}(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&]uh1jahj*hhhj+*hMoubeh}(h]h ](j~functioneh"]h$]h&]jj~jj+jj+jjjuh1hhhhhhNhNubj)}(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 j~c-typeeh"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype 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)}(hj,h]hunsigned int cmd}(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.hhMihj,ubj)}(hhh]h)}(h Ioctl name.h]h Ioctl name.}(hj5,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1,hMihj2,ubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhj1,hMihj+ubj)}(h&``unsigned long arg`` Ioctl argument. h](j)}(h``unsigned long arg``h]j)}(hjU,h]hunsigned long arg}(hjW,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjS,ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMjhjO,ubj)}(hhh]h)}(hIoctl argument.h]hIoctl argument.}(hjn,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj,hMjhjk,ubah}(h]h ]h"]h$]h&]uh1jhjO,ubeh}(h]h ]h"]h$]h&]uh1jhjj,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.hhMlhj+ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_usercopy (C function)c.dvb_usercopyhNtauh1hhhhhhNhNubh)}(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](j3)}(hinth]hint}(hj,hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj,hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMubj)}(h h]h }(hj,hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj,hhhj,hMubj0)}(h dvb_usercopyh]j6)}(h dvb_usercopyh]h dvb_usercopy}(hj,hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj,ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj,hhhj,hMubj )}(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 ]jah"]h$]h&]uh1j hj-ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj-ubh)}(hhh]j6)}(hfileh]hfile}(hj0-hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj--ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj2-modnameN classnameNj j )}j ]j)}jj,sbc.dvb_usercopyasbuh1hhj-ubj)}(h h]h }(hjP-hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj-ubj)}(hjh]h*}(hj^-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj6)}(hfileh]hfile}(hjk-hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj-ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj -ubj)}(hunsigned int cmdh](j3)}(hunsignedh]hunsigned}(hj-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj-ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj-ubj3)}(hinth]hint}(hj-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj-ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj-ubj6)}(hcmdh]hcmd}(hj-hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj-ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj -ubj)}(hunsigned long argh](j3)}(hunsignedh]hunsigned}(hj-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj-ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj-ubj3)}(hlongh]hlong}(hj-hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj-ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj-ubj6)}(hargh]harg}(hj .hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj-ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj -ubj)}(h;int (*func)(struct file *file, unsigned int cmd, void *arg)h](j3)}(hinth]hint}(hj&.hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj".ubj)}(h h]h }(hj4.hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj".ubj)}(h(h]h(}(hjB.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj".ubj)}(hjh]h*}(hjP.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj".ubj6)}(hfunch]hfunc}(hj].hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj".ubj)}(h)h]h)}(hjk.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj".ubj)}(hjD.h]h(}(hjy.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj".ubj )}(hjh]hstruct}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj".ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj".ubh)}(hhh]j6)}(hfileh]hfile}(hj.hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj.ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj.modnameN classnameNj j )}j ]jL-c.dvb_usercopyasbuh1hhj".ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj".ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj".ubj6)}(hfileh]hfile}(hj.hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj".ubj)}(h,h]h,}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj".ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj".ubj3)}(hunsignedh]hunsigned}(hj/hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj".ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj".ubj3)}(hinth]hint}(hj#/hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj".ubj)}(h h]h }(hj1/hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj".ubj6)}(hcmdh]hcmd}(hj?/hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj".ubj)}(hj.h]h,}(hjM/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj".ubj)}(h h]h }(hjZ/hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj".ubj3)}(hvoidh]hvoid}(hjh/hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj".ubj)}(h h]h }(hjv/hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj".ubj)}(hjh]h*}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj".ubj6)}(hargh]harg}(hj/hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj".ubj)}(hjm.h]h)}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj".ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj -ubeh}(h]h ]h"]h$]h&]hhuh1j hj,hhhj,hMubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj,hhhj,hMubah}(h]j,ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj,hMhj,hhubjb)}(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&]uh1jahj,hhhj,hMubeh}(h]h ](j~functioneh"]h$]h&]jj~jj/jj/jjjuh1hhhhhhNhNubj)}(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}(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.hhMwhj/ubj)}(hhh](j)}(h8``struct file *file`` Pointer to struct :c:type:`file`. h](j)}(h``struct file *file``h]j)}(hj 0h]hstruct file *file}(hj 0hhhNhNubah}(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 }(hj"0hhhNhNubh)}(h:c:type:`file`h]j)}(hj,0h]hfile}(hj.0hhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhj*0ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j fileuh1hhj0hMvhj"0ubh.}(hj"0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj0hMvhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0hMvhj0ubj)}(h!``unsigned int cmd`` Ioctl name. h](j)}(h``unsigned int cmd``h]j)}(hje0h]hunsigned int cmd}(hjg0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjc0ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMwhj_0ubj)}(hhh]h)}(h Ioctl name.h]h Ioctl name.}(hj~0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjz0hMwhj{0ubah}(h]h ]h"]h$]h&]uh1jhj_0ubeh}(h]h ]h"]h$]h&]uh1jhjz0hMwhj0ubj)}(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}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hMyhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0hMyhj0ubeh}(h]h ]h"]h$]h&]uh1jhj/ubh)}(h**Description**h]j)}(hj1h]h Description}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(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}(hj01hhhNhNubah}(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.hhM{hj/ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_module_probe (C function)c.dvb_module_probehNtauh1hhhhhhNhNubh)}(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}(hji1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hje1hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMubj)}(h h]h }(hjw1hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhje1hhhjv1hMubh)}(hhh]j6)}(h i2c_clienth]h i2c_client}(hj1hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj1ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj1modnameN classnameNj j )}j ]j)}jdvb_module_probesbc.dvb_module_probeasbuh1hhje1hhhjv1hMubj)}(h h]h }(hj1hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhje1hhhjv1hMubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhje1hhhjv1hMubj0)}(hdvb_module_probeh]j6)}(hj1h]hdvb_module_probe}(hj1hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj1ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hje1hhhjv1hMubj )}(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 )}(hjAh]hconst}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj1ubj3)}(hcharh]hchar}(hj1hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj1ubj)}(h h]h }(hj 2hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj1ubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj6)}(h module_nameh]h module_name}(hj'2hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj1ubj)}(hconst char *nameh](j )}(hjAh]hconst}(hj@2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<2ubj)}(h h]h }(hjM2hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj<2ubj3)}(hcharh]hchar}(hj[2hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj<2ubj)}(h h]h }(hji2hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj<2ubj)}(hjh]h*}(hjw2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<2ubj6)}(hnameh]hname}(hj2hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj<2ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj1ubj)}(hstruct i2c_adapter *adaph](j )}(hjh]hstruct}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj2ubh)}(hhh]j6)}(h i2c_adapterh]h i2c_adapter}(hj2hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj2ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj2modnameN classnameNj j )}j ]j1c.dvb_module_probeasbuh1hhj2ubj)}(h h]h }(hj2hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj2ubj)}(hjh]h*}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj6)}(hadaph]hadap}(hj2hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj2ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj1ubj)}(hunsigned char addrh](j3)}(hunsignedh]hunsigned}(hj 3hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj 3ubj)}(h h]h }(hj3hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj 3ubj3)}(hcharh]hchar}(hj)3hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj 3ubj)}(h h]h }(hj73hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj 3ubj6)}(haddrh]haddr}(hjE3hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj 3ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj1ubj)}(hvoid *platform_datah](j3)}(hvoidh]hvoid}(hj^3hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjZ3ubj)}(h h]h }(hjl3hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjZ3ubj)}(hjh]h*}(hjz3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ3ubj6)}(h platform_datah]h platform_data}(hj3hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjZ3ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj1ubeh}(h]h ]h"]h$]h&]hhuh1j hje1hhhjv1hMubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhja1hhhjv1hMubah}(h]j\1ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjv1hMhj^1hhubjb)}(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&]uh1jahj^1hhhjv1hMubeh}(h]h ](j~functioneh"]h$]h&]jj~jj3jj3jjjuh1hhhhhhNhNubj)}(hXX**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)}(hj3h]hconst char *module_name}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj3ubj)}(hhh]h)}(h#Name of the I2C module to be probedh]h#Name of the I2C module to be probed}(hj 4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(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}(hj-4hhhNhNubah}(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.hhMhj%4ubj)}(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 }(hjD4hhhNhNubj)}(h``NULL``h]hNULL}(hjL4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjD4ubh, defaults to }(hjD4hhhNhNubj)}(h**module_name**h]h module_name}(hj^4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjD4ubh.}(hjD4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhjA4ubah}(h]h ]h"]h$]h&]uh1jhj%4ubeh}(h]h ]h"]h$]h&]uh1jhj@4hMhj3ubj)}(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 j~c-typeeh"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype 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.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMhj3ubj)}(hM``void *platform_data`` Platform data to be passed to the I2C module probed. h](j)}(h``void *platform_data``h]j)}(hj5h]hvoid *platform_data}(hj!5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj5ubj)}(hhh]h)}(h4Platform data to be passed to the I2C module probed.h]h4Platform data to be passed to the I2C module probed.}(hj85hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj45hMhj55ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhj45hMhj3ubeh}(h]h ]h"]h$]h&]uh1jhj3ubh)}(h**Description**h]j)}(hjZ5h]h Description}(hj\5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjX5ubah}(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.}(hjp5hhhNhNubah}(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 block_quote)}(huOn success, return an :c:type:`struct i2c_client `, pointing to the bound I2C device. ``NULL`` otherwise.h]h)}(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 j~c-typeeh"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype 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&]uh1hhj5hMhj5ubah}(h]h ]h"]h$]h&]uh1j5hj5hMhj3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_module_release (C function)c.dvb_module_releasehNtauh1hhhhhhNhNubh)}(hhh](j)}(h3void dvb_module_release (struct i2c_client *client)h]j)}(h2void dvb_module_release(struct i2c_client *client)h](j3)}(hvoidh]hvoid}(hj"6hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj6hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMubj)}(h h]h }(hj16hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj6hhhj06hMubj0)}(hdvb_module_releaseh]j6)}(hdvb_module_releaseh]hdvb_module_release}(hjC6hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj?6ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj6hhhj06hMubj )}(h(struct i2c_client *client)h]j)}(hstruct i2c_client *clienth](j )}(hjh]hstruct}(hj_6hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj[6ubj)}(h h]h }(hjl6hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj[6ubh)}(hhh]j6)}(h i2c_clienth]h i2c_client}(hj}6hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjz6ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj6modnameN classnameNj j )}j ]j)}jjE6sbc.dvb_module_releaseasbuh1hhj[6ubj)}(h h]h }(hj6hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj[6ubj)}(hjh]h*}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[6ubj6)}(hclienth]hclient}(hj6hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj[6ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjW6ubah}(h]h ]h"]h$]h&]hhuh1j hj6hhhj06hMubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj6hhhj06hMubah}(h]j6ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj06hMhj6hhubjb)}(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&]uh1jahj6hhhj06hMubeh}(h]h ](j~functioneh"]h$]h&]jj~jj6jj6jjjuh1hhhhhhNhNubj)}(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)}(hj7h]h Parameters}(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.hhMhj6ubj)}(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.hhMhj7ubj)}(hhh]h)}(hhpointer to :c:type:`struct i2c_client ` with the I2C client to be released. can be ``NULL``.h](h pointer to }(hj<7hhhNhNubh)}(h(:c:type:`struct i2c_client `h]j)}(hjF7h]hstruct i2c_client}(hjH7hhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhjD7ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j i2c_clientuh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj<7ubh, with the I2C client to be released. can be }(hj<7hhhNhNubj)}(h``NULL``h]hNULL}(hjh7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<7ubh.}(hj<7hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjc7hMhj97ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj87hMhj7ubah}(h]h ]h"]h$]h&]uh1jhj6ubh)}(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.hhMhj6ubh)}(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.hhMhj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_attach (C macro) c.dvb_attachhNtauh1hhhhhhNhNubh)}(hhh](j)}(h dvb_attachh]j)}(h dvb_attachh]j0)}(h dvb_attachh]j6)}(hj7h]h dvb_attach}(hj7hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj7ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj7hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMubah}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj7hhhj7hMubah}(h]j7ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj7hMhj7hhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahj7hhhj7hMubeh}(h]h ](j~macroeh"]h$]h&]jj~jj 8jj 8jjjuh1hhhhhhNhNubh)}(h"``dvb_attach (FUNCTION, ARGS...)``h]j)}(hj8h]hdvb_attach (FUNCTION, ARGS...)}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 8ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhhhhubj5)}(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.}(hj)8hhhNhNubah}(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&]uh1j5hj78hMhhhhubj)}(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)}(hjD8h]h Parameters}(hjF8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB8ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj>8ubj)}(hhh](j)}(h9``FUNCTION`` function on a frontend module to be called. h](j)}(h ``FUNCTION``h]j)}(hjc8h]hFUNCTION}(hje8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja8ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj]8ubj)}(hhh]h)}(h+function on a frontend module to be called.h]h+function on a frontend module to be called.}(hj|8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjx8hMhjy8ubah}(h]h ]h"]h$]h&]uh1jhj]8ubeh}(h]h ]h"]h$]h&]uh1jhjx8hMhjZ8ubj)}(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&]uh1jhj8hMhjZ8ubeh}(h]h ]h"]h$]h&]uh1jhj>8ubh)}(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.hhMhj>8ubh)}(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 }(hj8hhhNhNubj)}(h **FUNCTION**h]hFUNCTION}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubh function there, with }(hj8hhhNhNubj)}(h**ARGS**h]hARGS}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubhS. As it increments symbol usage cont, at unregister, dvb_detach() should be called.}(hj8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj>8ubj5)}(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().}(hj29hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMhj.9ubah}(h]h ]h"]h$]h&]uh1j5hj>8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_detach (C macro) c.dvb_detachhNtauh1hhhhhhNhNubh)}(hhh](j)}(h dvb_detachh]j)}(h dvb_detachh]j0)}(h dvb_detachh]j6)}(hja9h]h dvb_detach}(hjk9hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjg9ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjc9hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:11: ./include/media/dvbdev.hhMubah}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj_9hhhj~9hMubah}(h]jZ9ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj~9hMhj\9hhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahj\9hhhj~9hMubeh}(h]h ](j~macroeh"]h$]h&]jj~jj9jj9jjjuh1hhhhhhNhNubh)}(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.hhMhhhhubj5)}(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&]uh1j5hj9hMhhhhubj)}(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)}(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.hhMhj9ubh)}(hIDecrements usage count for a function previously called via dvb_attach().h]hIDecrements usage count for a function previously called via dvb_attach().}(hjB: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}(hjc:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`: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.}(hjq:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj`: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&]enumtypearabicprefixhsuffixjm.uh1j:hj:ubj5)}(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]j`)}(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&]hhforcelanguagej~highlight_args}uh1j_hhhKhj:ubah}(h]h ]h"]h$]h&]uh1j5hhhKhj: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:jm.startKuh1j:hj:ubeh}(h]h ]h"]h$]h&]uh1j5hj`:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_ringbuffer (C struct)c.dvb_ringbufferhNtauh1hhj`:hhhNhNubh)}(hhh](j)}(hdvb_ringbufferh]j)}(hstruct dvb_ringbufferh](j )}(hjh]hstruct}(hj ;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;hhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKubj)}(h h]h }(hj;hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj;hhhj;hKubj0)}(hdvb_ringbufferh]j6)}(hj;h]hdvb_ringbuffer}(hj);hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj%;ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj;hhhj;hKubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj;hhhj;hKubah}(h]j:ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj;hKhj:hhubjb)}(hhh]h)}(h-Describes a ring buffer used at DVB frameworkh]h-Describes a ring buffer used at DVB framework}(hjK;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjH;hhubah}(h]h ]h"]h$]h&]uh1jahj:hhhj;hKubeh}(h]h ](j~structeh"]h$]h&]jj~jjc;jjc;jjjuh1hhhhj`: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}(hjo;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk;ubh:}(hjk;hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK"hjg;ubj`)}(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&]hhuh1j_hj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK$hjg;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.hjg;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)}(hj*<h]hpread}(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)}(hnext position to readh]hnext position to read}(hjC<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"``pwrite`` next position to write h](j)}(h ``pwrite``h]j)}(hjc<h]hpwrite}(hje<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja<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 writeh]hnext position to write}(hj|<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjx<hK$hjy<ubah}(h]h ]h"]h$]h&]uh1jhj]<ubeh}(h]h ]h"]h$]h&]uh1jhjx<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}(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;ubeh}(h]h ]h"]h$]h&]uh1jhjg;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj`:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h dvb_ringbuffer_init (C function)c.dvb_ringbuffer_inithNtauh1hhj`:hhhNhNubh)}(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](j3)}(hvoidh]hvoid}(hji=hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hje=hhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK=ubj)}(h h]h }(hjx=hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhje=hhhjw=hK=ubj0)}(hdvb_ringbuffer_inith]j6)}(hdvb_ringbuffer_inith]hdvb_ringbuffer_init}(hj=hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj=ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hje=hhhjw=hK=ubj )}(h5(struct dvb_ringbuffer *rbuf, void *data, size_t len)h](j)}(hstruct dvb_ringbuffer *rbufh](j )}(hjh]hstruct}(-hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj=ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj=ubh)}(hhh]j6)}(hdvb_ringbufferh]hdvb_ringbuffer}(hj=hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj=ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj=modnameN classnameNj j )}j ]j)}jj=sbc.dvb_ringbuffer_initasbuh1hhj=ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj=ubj)}(hjh]h*}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubj6)}(hrbufh]hrbuf}(hj=hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj=ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj=ubj)}(h void *datah](j3)}(hvoidh]hvoid}(hj>hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj>ubj)}(h h]h }(hj&>hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj>ubj)}(hjh]h*}(hj4>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj6)}(hdatah]hdata}(hjA>hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj>ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj=ubj)}(h size_t lenh](h)}(hhh]j6)}(hsize_th]hsize_t}(hj]>hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjZ>ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj_>modnameN classnameNj j )}j ]j=c.dvb_ringbuffer_initasbuh1hhjV>ubj)}(h h]h }(hj{>hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjV>ubj6)}(hlenh]hlen}(hj>hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjV>ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj=ubeh}(h]h ]h"]h$]h&]hhuh1j hje=hhhjw=hK=ubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhja=hhhjw=hK=ubah}(h]j\=ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjw=hK=hj^=hhubjb)}(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&]uh1jahj^=hhhjw=hK=ubeh}(h]h ](j~functioneh"]h$]h&]jj~jj>jj>jjjuh1hhhhj`: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)}(hj-?h]h void *data}(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)}(h3pointer to the buffer where the data will be storedh]h3pointer to the buffer where the data will be stored}(hjF?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB?hK:hjC?ubah}(h]h ]h"]h$]h&]uh1jhj'?ubeh}(h]h ]h"]h$]h&]uh1jhjB?hK:hj>ubj)}(h2``size_t len`` bytes from ring buffer into **buf**h](j)}(h``size_t len``h]j)}(hjf?h]h size_t len}(hjh?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd?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&]uh1jhj`:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!dvb_ringbuffer_empty (C function)c.dvb_ringbuffer_emptyhNtauh1hhj`:hhhNhNubh)}(hhh](j)}(h6int dvb_ringbuffer_empty (struct dvb_ringbuffer *rbuf)h]j)}(h5int dvb_ringbuffer_empty(struct dvb_ringbuffer *rbuf)h](j3)}(hinth]hint}(hj?hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj?hhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKEubj)}(h h]h }(hj?hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj?hhhj?hKEubj0)}(hdvb_ringbuffer_emptyh]j6)}(hdvb_ringbuffer_emptyh]hdvb_ringbuffer_empty}(hj?hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj?ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj?hhhj?hKEubj )}(h(struct dvb_ringbuffer *rbuf)h]j)}(hstruct dvb_ringbuffer *rbufh](j )}(hjh]hstruct}(hj @hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj@ubh)}(hhh]j6)}(hdvb_ringbufferh]hdvb_ringbuffer}(hj)@hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj&@ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj+@modnameN classnameNj j )}j ]j)}jj?sbc.dvb_ringbuffer_emptyasbuh1hhj@ubj)}(h h]h }(hjI@hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj@ubj)}(hjh]h*}(hjW@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj6)}(hrbufh]hrbuf}(hjd@hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj@ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj@ubah}(h]h ]h"]h$]h&]hhuh1j hj?hhhj?hKEubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj?hhhj?hKEubah}(h]j?ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj?hKEhj?hhubjb)}(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&]uh1jahj?hhhj?hKEubeh}(h]h ](j~functioneh"]h$]h&]jj~jj@jj@jjjuh1hhhhj`: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&]uh1jhj`:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h dvb_ringbuffer_free (C function)c.dvb_ringbuffer_freehNtauh1hhj`:hhhNhNubh)}(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]j6)}(hssize_th]hssize_t}(hj,AhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj)Aubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj.AmodnameN 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.hhKNubj)}(h h]h }(hjNAhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj%AhhhjMAhKNubj0)}(hdvb_ringbuffer_freeh]j6)}(hjJAh]hdvb_ringbuffer_free}(hj`AhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj\Aubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj%AhhhjMAhKNubj )}(h(struct dvb_ringbuffer *rbuf)h]j)}(hstruct dvb_ringbuffer *rbufh](j )}(hjh]hstruct}(hj{AhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjwAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjwAubh)}(hhh]j6)}(hdvb_ringbufferh]hdvb_ringbuffer}(hjAhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjAubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjAmodnameN classnameNj j )}j ]jHAc.dvb_ringbuffer_freeasbuh1hhjwAubj)}(h h]h }(hjAhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjwAubj)}(hjh]h*}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjwAubj6)}(hrbufh]hrbuf}(hjAhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjwAubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjsAubah}(h]h ]h"]h$]h&]hhuh1j hj%AhhhjMAhKNubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj!AhhhjMAhKNubah}(h]jAah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjMAhKNhjAhhubjb)}(hhh]h)}(h.returns the number of free bytes in the bufferh]h.returns the number of free bytes in the buffer}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKHhjAhhubah}(h]h ]h"]h$]h&]uh1jahjAhhhjMAhKNubeh}(h]h ](j~functioneh"]h$]h&]jj~jjBjjBjjjuh1hhhhj`: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)}(hjBh]h Parameters}(hj BhhhNhNubah}(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.hhKLhjBubj)}(hhh]j)}(hA``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer h](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hj=Bh]hstruct dvb_ringbuffer *rbuf}(hj?BhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;Bubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKJhj7Bubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hjVBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRBhKJhjSBubah}(h]h ]h"]h$]h&]uh1jhj7Bubeh}(h]h ]h"]h$]h&]uh1jhjRBhKJhj4Bubah}(h]h ]h"]h$]h&]uh1jhjBubh)}(h **Return**h]j)}(hjxBh]hReturn}(hjzBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvBubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKLhjBubh)}(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.hhKLhjBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj`:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!dvb_ringbuffer_avail (C function)c.dvb_ringbuffer_availhNtauh1hhj`:hhhNhNubh)}(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]j6)}(hssize_th]hssize_t}(hjBhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjBubah}(h]h ]h"]h$]h&] refdomainj~reftypej 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.hhKWubj)}(h h]h }(hjBhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjBhhhjBhKWubj0)}(hdvb_ringbuffer_availh]j6)}(hjBh]hdvb_ringbuffer_avail}(hjBhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjBubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjBhhhjBhKWubj )}(h(struct dvb_ringbuffer *rbuf)h]j)}(hstruct dvb_ringbuffer *rbufh](j )}(hjh]hstruct}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj Cubj)}(h h]h }(hjChhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj Cubh)}(hhh]j6)}(hdvb_ringbufferh]hdvb_ringbuffer}(hj-ChhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj*Cubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj/CmodnameN classnameNj j )}j ]jBc.dvb_ringbuffer_availasbuh1hhj Cubj)}(h h]h }(hjKChhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj Cubj)}(hjh]h*}(hjYChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Cubj6)}(hrbufh]hrbuf}(hjfChhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj Cubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjCubah}(h]h ]h"]h$]h&]hhuh1j hjBhhhjBhKWubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjBhhhjBhKWubah}(h]jBah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjBhKWhjBhhubjb)}(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&]uh1jahjBhhhjBhKWubeh}(h]h ](j~functioneh"]h$]h&]jj~jjCjjCjjjuh1hhhhj`: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)}(hj Dh]hReturn}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Dubah}(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&]uh1jhj`:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!dvb_ringbuffer_reset (C function)c.dvb_ringbuffer_resethNtauh1hhj`:hhhNhNubh)}(hhh](j)}(h7void dvb_ringbuffer_reset (struct dvb_ringbuffer *rbuf)h]j)}(h6void dvb_ringbuffer_reset(struct dvb_ringbuffer *rbuf)h](j3)}(hvoidh]hvoid}(hjQDhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjMDhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKbubj)}(h h]h }(hj`DhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjMDhhhj_DhKbubj0)}(hdvb_ringbuffer_reseth]j6)}(hdvb_ringbuffer_reseth]hdvb_ringbuffer_reset}(hjrDhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjnDubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjMDhhhj_DhKbubj )}(h(struct dvb_ringbuffer *rbuf)h]j)}(hstruct dvb_ringbuffer *rbufh](j )}(hjh]hstruct}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjDubj)}(h h]h }(hjDhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjDubh)}(hhh]j6)}(hdvb_ringbufferh]hdvb_ringbuffer}(hjDhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjDubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjDmodnameN classnameNj j )}j ]j)}jjtDsbc.dvb_ringbuffer_resetasbuh1hhjDubj)}(h h]h }(hjDhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjDubj)}(hjh]h*}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj6)}(hrbufh]hrbuf}(hjDhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjDubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjDubah}(h]h ]h"]h$]h&]hhuh1j hjMDhhhj_DhKbubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjIDhhhj_DhKbubah}(h]jDDah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj_DhKbhjFDhhubjb)}(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&]uh1jahjFDhhhj_DhKbubeh}(h]h ](j~functioneh"]h$]h&]jj~jj)Ejj)Ejjjuh1hhhhj`: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)}(hj3Eh]h Parameters}(hj5EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1Eubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK^hj-Eubj)}(hhh]j)}(hA``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbuffer h](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hjREh]hstruct dvb_ringbuffer *rbuf}(hjTEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPEubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK\hjLEubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hjkEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjgEhK\hjhEubah}(h]h ]h"]h$]h&]uh1jhjLEubeh}(h]h ]h"]h$]h&]uh1jhjgEhK\hjIEubah}(h]h ]h"]h$]h&]uh1jhj-Eubh)}(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^hj-Eubh)}(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^hj-Eubh)}(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`hj-Eubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj`:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h!dvb_ringbuffer_flush (C function)c.dvb_ringbuffer_flushhNtauh1hhj`:hhhNhNubh)}(hhh](j)}(h7void dvb_ringbuffer_flush (struct dvb_ringbuffer *rbuf)h]j)}(h6void dvb_ringbuffer_flush(struct dvb_ringbuffer *rbuf)h](j3)}(hvoidh]hvoid}(hjEhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjEhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKmubj)}(h h]h }(hjEhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjEhhhjEhKmubj0)}(hdvb_ringbuffer_flushh]j6)}(hdvb_ringbuffer_flushh]hdvb_ringbuffer_flush}(hjFhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjEubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjEhhhjEhKmubj )}(h(struct dvb_ringbuffer *rbuf)h]j)}(hstruct dvb_ringbuffer *rbufh](j )}(hjh]hstruct}(hjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj)}(h h]h }(hj+FhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjFubh)}(hhh]j6)}(hdvb_ringbufferh]hdvb_ringbuffer}(hjFmodnameN classnameNj j )}j ]j)}jjFsbc.dvb_ringbuffer_flushasbuh1hhjFubj)}(h h]h }(hj\FhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjFubj)}(hjh]h*}(hjjFhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjFubj6)}(hrbufh]hrbuf}(hjwFhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjFubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjFubah}(h]h ]h"]h$]h&]hhuh1j hjEhhhjEhKmubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjEhhhjEhKmubah}(h]jEah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjEhKmhjEhhubjb)}(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&]uh1jahjEhhhjEhKmubeh}(h]h ](j~functioneh"]h$]h&]jj~jjFjjFjjjuh1hhhhj`: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}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKkhjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhKohjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj`:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h1dvb_ringbuffer_flush_spinlock_wakeup (C function)&c.dvb_ringbuffer_flush_spinlock_wakeuphNtauh1hhj`:hhhNhNubh)}(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](j3)}(hvoidh]hvoid}(hjflush buffer protected by spinlock and wake-up waiting task(s)h]h>flush buffer protected by spinlock and wake-up waiting task(s)}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKphjGhhubah}(h]h ]h"]h$]h&]uh1jahj1GhhhjJGhKuubeh}(h]h ](j~functioneh"]h$]h&]jj~jjHjjHjjjuh1hhhhj`:hNhNubj)}(hR**Parameters** ``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbufferh](h)}(h**Parameters**h]j)}(hjHh]h Parameters}(hj HhhhNhNubah}(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.hhKthjHubj)}(hhh]j)}(h@``struct dvb_ringbuffer *rbuf`` pointer to struct dvb_ringbufferh](j)}(h``struct dvb_ringbuffer *rbuf``h]j)}(hj=Hh]hstruct dvb_ringbuffer *rbuf}(hj?HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;Hubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKvhj7Hubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hjVHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKshjSHubah}(h]h ]h"]h$]h&]uh1jhj7Hubeh}(h]h ]h"]h$]h&]uh1jhjRHhKvhj4Hubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj`:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hDVB_RINGBUFFER_PEEK (C macro)c.DVB_RINGBUFFER_PEEKhNtauh1hhj`:hhhNhNubh)}(hhh](j)}(hDVB_RINGBUFFER_PEEKh]j)}(hDVB_RINGBUFFER_PEEKh]j0)}(hDVB_RINGBUFFER_PEEKh]j6)}(hjHh]hDVB_RINGBUFFER_PEEK}(hjHhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjHubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjHhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK}ubah}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjHhhhjHhK}ubah}(h]jHah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjHhK}hjHhhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahjHhhhjHhK}ubeh}(h]h ](j~macroeh"]h$]h&]jj~jjHjjHjjjuh1hhhhj`: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.hhKhj`:hhubj5)}(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&]uh1j5hjIhKxhj`:hhubj)}(hd**Parameters** ``rbuf`` pointer to struct dvb_ringbuffer ``offs`` offset inside the ringbufferh](h)}(h**Parameters**h]j)}(hjIh]h Parameters}(hjIhhhNhNubah}(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)}(hj3Ih]hrbuf}(hj5IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1Iubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKzhj-Iubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hjLIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHIhKzhjIIubah}(h]h ]h"]h$]h&]uh1jhj-Iubeh}(h]h ]h"]h$]h&]uh1jhjHIhKzhj*Iubj)}(h%``offs`` offset inside the ringbufferh](j)}(h``offs``h]j)}(hjlIh]hoffs}(hjnIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjIubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhK|hjfIubj)}(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&]uh1jhjfIubeh}(h]h ]h"]h$]h&]uh1jhjIhK|hj*Iubeh}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj`:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hDVB_RINGBUFFER_SKIP (C macro)c.DVB_RINGBUFFER_SKIPhNtauh1hhj`:hhhNhNubh)}(hhh](j)}(hDVB_RINGBUFFER_SKIPh]j)}(hDVB_RINGBUFFER_SKIPh]j0)}(hDVB_RINGBUFFER_SKIPh]j6)}(hjIh]hDVB_RINGBUFFER_SKIP}(hjIhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjIubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjIhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKubah}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjIhhhjIhKubah}(h]jIah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjIhKhjIhhubjb)}(hhh]h}(h]h ]h"]h$]h&]uh1jahjIhhhjIhKubeh}(h]h ](j~macroeh"]h$]h&]jj~jjIjjIjjjuh1hhhhj`:hNhNubh)}(h#``DVB_RINGBUFFER_SKIP (rbuf, num)``h]j)}(hjIh]hDVB_RINGBUFFER_SKIP (rbuf, num)}(hjIhhhNhNubah}(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.hhKhj`:hhubj5)}(h"advance read ptr by **num** bytes h]h)}(h!advance read ptr by **num** bytesh](hadvance read ptr by }(hjJhhhNhNubj)}(h**num**h]hnum}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh bytes}(hjJhhhNhNubeh}(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&]uh1j5hj6JhKhj`:hhubj)}(ha**Parameters** ``rbuf`` pointer to struct dvb_ringbuffer ``num`` number of bytes to advanceh](h)}(h**Parameters**h]j)}(hjCJh]h Parameters}(hjEJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAJubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj=Jubj)}(hhh](j)}(h*``rbuf`` pointer to struct dvb_ringbuffer h](j)}(h``rbuf``h]j)}(hjbJh]hrbuf}(hjdJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`Jubah}(h]h ]h"]h$]h&]uh1jhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhj\Jubj)}(hhh]h)}(h pointer to struct dvb_ringbufferh]h pointer to struct dvb_ringbuffer}(hj{JhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwJhKhjxJubah}(h]h ]h"]h$]h&]uh1jhj\Jubeh}(h]h ]h"]h$]h&]uh1jhjwJhKhjYJubj)}(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&]uh1jhjJhKhjYJubeh}(h]h ]h"]h$]h&]uh1jhj=Jubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj`:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%dvb_ringbuffer_read_user (C function)c.dvb_ringbuffer_read_userhNtauh1hhj`:hhhNhNubh)}(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]j6)}(hssize_th]hssize_t}(hjJhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjJubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjJmodnameN 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.hhKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjJhhhjKhKubj0)}(hdvb_ringbuffer_read_userh]j6)}(hjKh]hdvb_ringbuffer_read_user}(hj,KhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj(Kubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjJhhhjKhKubj )}(h9(struct dvb_ringbuffer *rbuf, u8 __user *buf, size_t len)h](j)}(hstruct dvb_ringbuffer *rbufh](j )}(hjh]hstruct}(hjGKhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjCKubj)}(h h]h }(hjTKhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjCKubh)}(hhh]j6)}(hdvb_ringbufferh]hdvb_ringbuffer}(hjeKhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjbKubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjgKmodnameN classnameNj j )}j ]jKc.dvb_ringbuffer_read_userasbuh1hhjCKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjCKubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjCKubj6)}(hrbufh]hrbuf}(hjKhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjCKubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj?Kubj)}(hu8 __user *bufh](h)}(hhh]j6)}(hu8h]hu8}(hjKhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjKubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjKmodnameN classnameNj j )}j ]jKc.dvb_ringbuffer_read_userasbuh1hhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjKubh__user}(hjKhhhNhNubj)}(h h]h }(hjKhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjKubj)}(hjh]h*}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj6)}(hbufh]hbuf}(hjLhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjKubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj?Kubj)}(h size_t lenh](h)}(hhh]j6)}(hsize_th]hsize_t}(hj!LhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjLubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj#LmodnameN classnameNj j )}j ]jKc.dvb_ringbuffer_read_userasbuh1hhjLubj)}(h h]h }(hj?LhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjLubj6)}(hlenh]hlen}(hjMLhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjLubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj?Kubeh}(h]h ]h"]h$]h&]hhuh1j hjJhhhjKhKubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjJhhhjKhKubah}(h]jJah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjKhKhjJhhubjb)}(hhh]h)}(h"Reads a buffer into a user pointerh]h"Reads a buffer into a user pointer}(hjwLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKhjtLhhubah}(h]h ]h"]h$]h&]uh1jahjJhhhjKhKubeh}(h]h ](j~functioneh"]h$]h&]jj~jjLjjLjjjuh1hhhhj`: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}(hj MhhhNhNubah}(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)}(hj*Mh]h size_t len}(hj,MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(Mubah}(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 }(hjCMhhhNhNubj)}(h**buf**h]hbuf}(hjKMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCMubeh}(h]h ]h"]h$]h&]uh1hhj?MhKhj@Mubah}(h]h ]h"]h$]h&]uh1jhj$Mubeh}(h]h ]h"]h$]h&]uh1jhj?MhKhjLubeh}(h]h ]h"]h$]h&]uh1jhjLubh)}(h**Description**h]j)}(hjsMh]h Description}(hjuMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqMubah}(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&]uh1jhj`:hhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h dvb_ringbuffer_read (C function)c.dvb_ringbuffer_readhNtauh1hhj`:hhhNhNubh)}(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](j3)}(hvoidh]hvoid}(hjMhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjMhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhKubj)}(h h]h }(hjMhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjMhhhjMhKubj0)}(hdvb_ringbuffer_readh]j6)}(hdvb_ringbuffer_readh]hdvb_ringbuffer_read}(hjNhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjMubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjMhhhjMhKubj )}(h2(struct dvb_ringbuffer *rbuf, u8 *buf, size_t len)h](j)}(hstruct dvb_ringbuffer *rbufh](j )}(hjh]hstruct}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjNubj)}(h h]h }(hj)NhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjNubh)}(hhh]j6)}(hdvb_ringbufferh]hdvb_ringbuffer}(hj:NhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj7Nubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj=0), or -1 if no packets available.h](h)}(h**Parameters**h]j)}(hjjeh]h Parameters}(hjlehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjheubah}(h]h ]h"]h$]h&]uh1hhj/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:48: ./include/media/dvb_ringbuffer.hhMhjdeubj)}(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)}(hjeh]hsize_t *pktlen}(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)}(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&]uh1jhjdeubeh}(h]h ] kernelindentah"]h$]h&]uh1jhj`:hhhNhNubeh}(h]digital-tv-ring-bufferah ]h"]digital tv ring bufferah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hDigital TV VB2 handlerh]hDigital TV VB2 handler}(hjGfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDfhhhhhK3ubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_buf_type (C enum)c.dvb_buf_typehNtauh1hhjDfhhhNhNubh)}(hhh](j)}(h dvb_buf_typeh]j)}(henum dvb_buf_typeh](j )}(hjh]henum}(hjnfhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjjfhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj)}(h h]h }(hj|fhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjjfhhhj{fhKubj0)}(h dvb_buf_typeh]j6)}(hjhfh]h dvb_buf_type}(hjfhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjfubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjjfhhhj{fhKubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjffhhhj{fhKubah}(h]jafah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj{fhKhjcfhhubjb)}(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&]uh1jahjcfhhhj{fhKubeh}(h]h ](j~enumeh"]h$]h&]jj~jjfjjfjjjuh1hhhhjDfhNhNubj)}(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}(hj ghhhNhNubah}(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&]uh1jhjDfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_vb2_states (C enum)c.dvb_vb2_stateshNtauh1hhjDfhhhNhNubh)}(hhh](j)}(hdvb_vb2_statesh]j)}(henum dvb_vb2_statesh](j )}(hjh]henum}(hjJghhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFghhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK(ubj)}(h h]h }(hjXghhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjFghhhjWghK(ubj0)}(hdvb_vb2_statesh]j6)}(hjDgh]hdvb_vb2_states}(hjjghhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjfgubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjFghhhjWghK(ubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjBghhhjWghK(ubah}(h]j=gah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjWghK(hj?ghhubjb)}(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&]uh1jahj?ghhhjWghK(ubeh}(h]h ](j~enumeh"]h$]h&]jj~jjgjjgjjjuh1hhhhjDfhNhNubj)}(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.hjhubj)}(hhh]h)}(hVB2 engine initialized.h]hVB2 engine initialized.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhK.hjhubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhhK.hjgubj)}(h1``DVB_VB2_STATE_REQBUFS`` Buffers were requested h](j)}(h``DVB_VB2_STATE_REQBUFS``h]j)}(hj?hh]hDVB_VB2_STATE_REQBUFS}(hjAhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=hubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK1hj9hubj)}(hhh]h)}(hBuffers were requestedh]hBuffers were requested}(hjXhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThhK1hjUhubah}(h]h ]h"]h$]h&]uh1jhj9hubeh}(h]h ]h"]h$]h&]uh1jhjThhK1hjgubj)}(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)}(hjxhh]hDVB_VB2_STATE_STREAMON}(hjzhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvhubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK4hjrhubj)}(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&]uh1jhjrhubeh}(h]h ]h"]h$]h&]uh1jhjhhK4hjgubeh}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjDfhhhNhNubh)}(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.hhK8hjDfhhubh)}(h**Description**h]j)}(hjhh]h Description}(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.hhK0hjDfhhubh)}(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.hhK1hjDfhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_buffer (C struct) c.dvb_bufferhNtauh1hhjDfhhhNhNubh)}(hhh](j)}(h dvb_bufferh]j)}(hstruct dvb_bufferh](j )}(hjh]hstruct}(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ihhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK7ubj)}(h h]h }(hjihhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj ihhhjihK7ubj0)}(h dvb_bufferh]j6)}(hj ih]h dvb_buffer}(hj0ihhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj,iubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj ihhhjihK7ubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjihhhjihK7ubah}(h]jiah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjihK7hjihhubjb)}(hhh]h)}(h"video buffer information for v4l2.h]h"video buffer information for v4l2.}(hjRihhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK>hjOihhubah}(h]h ]h"]h$]h&]uh1jahjihhhjihK7ubeh}(h]h ](j~structeh"]h$]h&]jj~jjjijjjijjjuh1hhhhjDfhNhNubj)}(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}(hjvihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjriubh:}(hjrihhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKBhjniubj`)}(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&]hhuh1j_hc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKDhjniubh)}(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.hhKIhjniubj)}(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 j~c-typeeh"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype 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)}(hjjh]hlist}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(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 }(hj4jhhhNhNubh)}(h(:c:type:`struct dvb_buffer `h]j)}(hj>jh]hstruct dvb_buffer}(hj@jhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhj` with videobuf2 queue. ``mutex`` mutex to serialize vb2 operations. Used by vb2 core ``wait_prepare`` and ``wait_finish`` operations. ``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.hhKMhjjubj`)}(hXrstruct dvb_vb2_ctx { struct vb2_queue vb_q; struct mutex mutex; 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]hXrstruct dvb_vb2_ctx { struct vb2_queue vb_q; struct mutex mutex; 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]; };}hjksbah}(h]h ]h"]h$]h&]hhuh1j_hc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKOhjjubh)}(h **Members**h]j)}(hj(kh]hMembers}(hj*khhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&kubah}(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)}(hjGkh]hvb_q}(hjIkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEkubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKKhjAkubj)}(hhh]h)}(hGpointer to :c:type:`struct vb2_queue ` with videobuf2 queue.h](h pointer to }(hj`khhhNhNubh)}(h&:c:type:`struct vb2_queue `h]j)}(hjjkh]hstruct vb2_queue}(hjlkhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhjhkubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j vb2_queueuh1hhj\khKKhj`kubh with videobuf2 queue.}(hj`khhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj\khKKhj]kubah}(h]h ]h"]h$]h&]uh1jhjAkubeh}(h]h ]h"]h$]h&]uh1jhj\khKKhj>kubj)}(ho``mutex`` mutex to serialize vb2 operations. Used by vb2 core ``wait_prepare`` and ``wait_finish`` operations. h](j)}(h ``mutex``h]j)}(hjkh]hmutex}(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)}(hdmutex to serialize vb2 operations. Used by vb2 core ``wait_prepare`` and ``wait_finish`` operations.h](h4mutex to serialize vb2 operations. Used by vb2 core }(hjkhhhNhNubj)}(h``wait_prepare``h]h wait_prepare}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubh and }(hjkhhhNhNubj)}(h``wait_finish``h]h wait_finish}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubh operations.}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKLhjkubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjkhKMhj>kubj)}(hA``slock`` spin lock used to protect buffer filling at dvb_vb2.c. h](j)}(h ``slock``h]j)}(hjlh]hslock}(hjlhhhNhNubah}(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.hhKNhjkubj)}(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.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhKNhjlubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjlhKNhj>kubj)}(h3``dvb_q`` List of buffers that are not filled yet. h](j)}(h ``dvb_q``h]j)}(hj:lh]hdvb_q}(hjkubj)}(h?``buf`` Pointer to the buffer that are currently being filled. h](j)}(h``buf``h]j)}(hjslh]hbuf}(hjulhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqlubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKPhjmlubj)}(hhh]h)}(h6Pointer to the buffer that are currently being filled.h]h6Pointer to the buffer that are currently being filled.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhKPhjlubah}(h]h ]h"]h$]h&]uh1jhjmlubeh}(h]h ]h"]h$]h&]uh1jhjlhKPhj>kubj)}(hC``offset`` index to the next position at the **buf** to be filled. h](j)}(h ``offset``h]j)}(hjlh]hoffset}(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)}(h7index to the next position at the **buf** to be filled.h](h"index to the next position at the }(hjlhhhNhNubj)}(h**buf**h]hbuf}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubh to be filled.}(hjlhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjlhKQhjlubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhjlhKQhj>kubj)}(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.hhKRhjlubj)}(hhh]h)}(h0How many bytes are left to be filled at **buf**.h](h(How many bytes are left to be filled at }(hjmhhhNhNubj)}(h**buf**h]hbuf}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmubh.}(hjmhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj mhKRhj mubah}(h]h ]h"]h$]h&]uh1jhjlubeh}(h]h ]h"]h$]h&]uh1jhj mhKRhj>kubj)}(ha``state`` bitmask of buffer states as defined by :c:type:`enum dvb_vb2_states `. h](j)}(h ``state``h]j)}(hjBmh]hstate}(hjDmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@mubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKShj`.h](h'bitmask of buffer states as defined by }(hj[mhhhNhNubh)}(h.:c:type:`enum dvb_vb2_states `h]j)}(hjemh]henum dvb_vb2_states}(hjgmhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhjcmubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j dvb_vb2_statesuh1hhjWmhKShj[mubh.}(hj[mhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjWmhKShjXmubah}(h]h ]h"]h$]h&]uh1jhjkubj)}(h%``buf_siz`` size of each VB2 buffer. h](j)}(h ``buf_siz``h]j)}(hjmh]hbuf_siz}(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.hhKThjmubj)}(hhh]h)}(hsize of each VB2 buffer.h]hsize of each VB2 buffer.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhKThjmubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjmhKThj>kubj)}(h#``buf_cnt`` number of VB2 buffers. h](j)}(h ``buf_cnt``h]j)}(hjmh]hbuf_cnt}(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)}(hnumber of VB2 buffers.h]hnumber of VB2 buffers.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhKUhjmubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjmhKUhj>kubj)}(hR``nonblocking`` If different than zero, device is operating on non-blocking mode. h](j)}(h``nonblocking``h]j)}(hjnh]h nonblocking}(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.hhKWhj nubj)}(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.}(hj)nhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKVhj&nubah}(h]h ]h"]h$]h&]uh1jhj nubeh}(h]h ]h"]h$]h&]uh1jhj%nhKWhj>kubj)}(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)}(hjJnh]hflags}(hjLnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHnubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKZhjDnubj)}(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 }(hjcnhhhNhNubh)}(h2:c:type:`enum dmx_buffer_flags `h]j)}(hjmnh]henum dmx_buffer_flags}(hjonhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhjknubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j dmx_buffer_flagsuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKYhjcnubh. Filled only at }(hjcnhhhNhNubh)}(h:c:type:`DMX_DQBUF`h]j)}(hjnh]h DMX_DQBUF}(hjnhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j DMX_DQBUFuh1hhjnhKYhjcnubh. }(hjcnhhhNhNubh)}(h:c:type:`DMX_QBUF`h]j)}(hjnh]hDMX_QBUF}(hjnhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j DMX_QBUFuh1hhjnhKYhjcnubh should zero this field.}(hjcnhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjnhKYhj`nubah}(h]h ]h"]h$]h&]uh1jhjDnubeh}(h]h ]h"]h$]h&]uh1jhj_nhKZhj>kubj)}(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]hjnubj)}(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 }(hjohhhNhNubh)}(h:c:type:`DMX_DQBUF`h]j)}(hjoh]h DMX_DQBUF}(hjohhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j DMX_DQBUFuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK[hjoubh. }(hjohhhNhNubh)}(h:c:type:`DMX_QBUF`h]j)}(hj4oh]hDMX_QBUF}(hj6ohhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhj2oubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j DMX_QBUFuh1hhj-ohK[hjoubh should zero this field.}(hjohhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj-ohK[hjoubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjohK]hj>kubj)}(hV``name`` name of the device type. Currently, it can either be "dvr" or "demux_filter".h](j)}(h``name``h]j)}(hjmoh]hname}(hjoohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkoubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhK_hjgoubj)}(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&]uh1jhjgoubeh}(h]h ]h"]h$]h&]uh1jhjohK_hj>kubeh}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjDfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_vb2_init (C function)c.dvb_vb2_inithNtauh1hhjDfhhhNhNubh)}(hhh](j)}(hNint dvb_vb2_init (struct dvb_vb2_ctx *ctx, const char *name, int non_blocking)h]j)}(hMint dvb_vb2_init(struct dvb_vb2_ctx *ctx, const char *name, int non_blocking)h](j3)}(hinth]hint}(hjohhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjohhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj)}(h h]h }(hjohhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjohhhjohKubj0)}(h dvb_vb2_inith]j6)}(h dvb_vb2_inith]h dvb_vb2_init}(hjohhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjoubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjohhhjohKubj )}(h=(struct dvb_vb2_ctx *ctx, const char *name, int non_blocking)h](j)}(hstruct dvb_vb2_ctx *ctxh](j )}(hjh]hstruct}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubj)}(h h]h }(hjphhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjoubh)}(hhh]j6)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hj!phhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjpubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj#pmodnameN classnameNj j )}j ]j)}jjosbc.dvb_vb2_initasbuh1hhjoubj)}(h h]h }(hjAphhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjoubj)}(hjh]h*}(hjOphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjoubj6)}(hctxh]hctx}(hj\phhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjoubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjoubj)}(hconst char *nameh](j )}(hjAh]hconst}(hjuphhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqpubj)}(h h]h }(hjphhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjqpubj3)}(hcharh]hchar}(hjphhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjqpubj)}(h h]h }(hjphhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjqpubj)}(hjh]h*}(hjphhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqpubj6)}(hnameh]hname}(hjphhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjqpubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjoubj)}(hint non_blockingh](j3)}(hinth]hint}(hjphhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjpubj)}(h h]h }(hjphhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjpubj6)}(h non_blockingh]h non_blocking}(hjphhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjpubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjoubeh}(h]h ]h"]h$]h&]hhuh1j hjohhhjohKubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjohhhjohKubah}(h]joah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjohKhjohhubjb)}(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&]uh1jahjohhhjohKubeh}(h]h ](j~functioneh"]h$]h&]jj~jj0qjj0qjjjuh1hhhhjDfhNhNubj)}(h**Parameters** ``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler ``const char *name`` name for the VB2 handler ``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`. can be NULL.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)}(hj2wh]hstruct dvb_vb2_ctx *ctx}(hj4whhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0wubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj,wubj)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hjKwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjGwhKhjHwubah}(h]h ]h"]h$]h&]uh1jhj,wubeh}(h]h ]h"]h$]h&]uh1jhjGwhKhj)wubj)}(h<``const unsigned char *src`` place where the data is stored h](j)}(h``const unsigned char *src``h]j)}(hjkwh]hconst unsigned char *src}(hjmwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiwubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjewubj)}(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&]uh1jhjewubeh}(h]h ]h"]h$]h&]uh1jhjwhKhj)wubj)}(h6``int len`` number of bytes to be copied from **src** h](j)}(h ``int len``h]j)}(hjwh]hint len}(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)}(h)number of bytes to be copied from **src**h](h"number of bytes to be copied from }(hjwhhhNhNubj)}(h**src**h]hsrc}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1hhjwhKhjwubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjwhKhj)wubj)}(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)}(hjwh]h#enum dmx_buffer_flags *buffer_flags}(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)}(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 }(hjxhhhNhNubh)}(h2:c:type:`enum dmx_buffer_flags `h]j)}(hjxh]henum dmx_buffer_flags}(hjxhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhj xubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j dmx_buffer_flagsuh1hhjxhKhjxubh. can be NULL.}(hjxhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjxhKhjxubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhjxhKhj)wubeh}(h]h ]h"]h$]h&]uh1jhj wubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjDfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_vb2_poll (C function)c.dvb_vb2_pollhNtauh1hhjDfhhhNhNubh)}(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]j6)}(h__poll_th]h__poll_t}(hjjxhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjgxubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjlxmodnameN classnameNj j )}j ]j)}j dvb_vb2_pollsbc.dvb_vb2_pollasbuh1hhjcxhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj)}(h h]h }(hjxhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjcxhhhjxhKubj0)}(h dvb_vb2_pollh]j6)}(hjxh]h dvb_vb2_poll}(hjxhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjxubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjcxhhhjxhKubj )}(h>(struct dvb_vb2_ctx *ctx, struct file *file, poll_table *wait)h](j)}(hstruct dvb_vb2_ctx *ctxh](j )}(hjh]hstruct}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjxubj)}(h h]h }(hjxhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjxubh)}(hhh]j6)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hjxhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjxubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjxmodnameN classnameNj j )}j ]jxc.dvb_vb2_pollasbuh1hhjxubj)}(h h]h }(hjxhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjxubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjxubj6)}(hctxh]hctx}(hjyhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjxubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjxubj)}(hstruct file *fileh](j )}(hjh]hstruct}(hj)yhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj%yubj)}(h h]h }(hj6yhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj%yubh)}(hhh]j6)}(hfileh]hfile}(hjGyhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjDyubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjIymodnameN classnameNj j )}j ]jxc.dvb_vb2_pollasbuh1hhj%yubj)}(h h]h }(hjeyhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj%yubj)}(hjh]h*}(hjsyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%yubj6)}(hfileh]hfile}(hjyhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj%yubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjxubj)}(hpoll_table *waith](h)}(hhh]j6)}(h poll_tableh]h poll_table}(hjyhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjyubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjymodnameN classnameNj j )}j ]jxc.dvb_vb2_pollasbuh1hhjyubj)}(h h]h }(hjyhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjyubj)}(hjh]h*}(hjyhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjyubj6)}(hwaith]hwait}(hjyhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjyubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjxubeh}(h]h ]h"]h$]h&]hhuh1j hjcxhhhjxhKubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj_xhhhjxhKubah}(h]jZxah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjxhKhj\xhhubjb)}(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.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjyhhubah}(h]h ]h"]h$]h&]uh1jahj\xhhhjxhKubeh}(h]h ](j~functioneh"]h$]h&]jj~jjzjjzjjjuh1hhhhjDfhNhNubj)}(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)}(hj!zh]h Parameters}(hj#zhhhNhNubah}(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)}(hj@zh]hstruct dvb_vb2_ctx *ctx}(hjBzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>zubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj:zubj)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hjYzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjUzhKhjVzubah}(h]h ]h"]h$]h&]uh1jhj:zubeh}(h]h ]h"]h$]h&]uh1jhjUzhKhj7zubj)}(hg``struct file *file`` :c:type:`struct file ` argument passed to the poll file operation handler. h](j)}(h``struct file *file``h]j)}(hjyzh]hstruct file *file}(hj{zhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwzubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjszubj)}(hhh]h)}(hP:c:type:`struct file ` argument passed to the poll file operation handler.h](h)}(h:c:type:`struct file `h]j)}(hjzh]h struct file}(hjzhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j fileuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjzubh4 argument passed to the poll file operation handler.}(hjzhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjzhKhjzubah}(h]h ]h"]h$]h&]uh1jhjszubeh}(h]h ]h"]h$]h&]uh1jhjzhKhj7zubj)}(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)}(hjzh]hpoll_table *wait}(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)}(hM:c:type:`poll_table` wait argument passed to the poll file operation handler.h](h)}(h:c:type:`poll_table`h]j)}(hjzh]h poll_table}(hjzhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j poll_tableuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjzubh9 wait argument passed to the poll file operation handler.}(hjzhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj{hKhjzubah}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhjzhKhj7zubeh}(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.}(hjC{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&]uh1jhjDfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_vb2_stream_on (C function)c.dvb_vb2_stream_onhNtauh1hhjDfhhhNhNubh)}(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](j3)}(hinth]hint}(hjr{hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjn{hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj)}(h h]h }(hj{hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjn{hhhj{hKubj0)}(hdvb_vb2_stream_onh]j6)}(hdvb_vb2_stream_onh]hdvb_vb2_stream_on}(hj{hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj{ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjn{hhhj{hKubj )}(h(struct dvb_vb2_ctx *ctx)h]j)}(hstruct dvb_vb2_ctx *ctxh](j )}(hjh]hstruct}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj{ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj{ubh)}(hhh]j6)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hj{hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj{ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj{modnameN classnameNj j )}j ]j)}jj{sbc.dvb_vb2_stream_onasbuh1hhj{ubj)}(h h]h }(hj{hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj{ubj)}(hjh]h*}(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{ubj6)}(hctxh]hctx}(hj|hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj{ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj{ubah}(h]h ]h"]h$]h&]hhuh1j hjn{hhhj{hKubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjj{hhhj{hKubah}(h]je{ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj{hKhjg{hhubjb)}(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.}(hj2|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&]uh1jahjg{hhhj{hKubeh}(h]h ](j~functioneh"]h$]h&]jj~jjJ|jjJ|jjjuh1hhhhjDfhNhNubj)}(hs**Parameters** ``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler **Description** Starts dvb streamingh](h)}(h**Parameters**h]j)}(hjT|h]h Parameters}(hjV|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR|ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjN|ubj)}(hhh]j)}(h;``struct dvb_vb2_ctx *ctx`` control struct for VB2 handler h](j)}(h``struct dvb_vb2_ctx *ctx``h]j)}(hjs|h]hstruct dvb_vb2_ctx *ctx}(hju|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjq|ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjm|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&]uh1jhjm|ubeh}(h]h ]h"]h$]h&]uh1jhj|hKhjj|ubah}(h]h ]h"]h$]h&]uh1jhjN|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.hhKhjN|ubh)}(hStarts dvb streamingh]hStarts 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.hhKhjN|ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjDfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_vb2_stream_off (C function)c.dvb_vb2_stream_offhNtauh1hhjDfhhhNhNubh)}(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](j3)}(hinth]hint}(hj|hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj|hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj)}(h h]h }(hj}hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj|hhhj}hKubj0)}(hdvb_vb2_stream_offh]j6)}(hdvb_vb2_stream_offh]hdvb_vb2_stream_off}(hj}hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj}ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj|hhhj}hKubj )}(h(struct dvb_vb2_ctx *ctx)h]j)}(hstruct dvb_vb2_ctx *ctxh](j )}(hjh]hstruct}(hj0}hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,}ubj)}(h h]h }(hj=}hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj,}ubh)}(hhh]j6)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hjN}hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjK}ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjP}modnameN classnameNj j )}j ]j)}jj}sbc.dvb_vb2_stream_offasbuh1hhj,}ubj)}(h h]h }(hjn}hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj,}ubj)}(hjh]h*}(hj|}hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,}ubj6)}(hctxh]hctx}(hj}hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj,}ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj(}ubah}(h]h ]h"]h$]h&]hhuh1j hj|hhhj}hKubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj|hhhj}hKubah}(h]j|ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhj}hKhj|hhubjb)}(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&]uh1jahj|hhhj}hKubeh}(h]h ](j~functioneh"]h$]h&]jj~jj}jj}jjjuh1hhhhjDfhNhNubj)}(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}(hj1~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}(hjE~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&]uh1jhjDfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_vb2_reqbufs (C function)c.dvb_vb2_reqbufshNtauh1hhjDfhhhNhNubh)}(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](j3)}(hinth]hint}(hjt~hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjp~hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj)}(h h]h }(hj~hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjp~hhhj~hKubj0)}(hdvb_vb2_reqbufsh]j6)}(hdvb_vb2_reqbufsh]hdvb_vb2_reqbufs}(hj~hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj~ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjp~hhhj~hKubj )}(h9(struct dvb_vb2_ctx *ctx, struct dmx_requestbuffers *req)h](j)}(hstruct dvb_vb2_ctx *ctxh](j )}(hjh]hstruct}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj~ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj~ubh)}(hhh]j6)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hj~hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj~ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetj~modnameN classnameNj j )}j ]j)}jj~sbc.dvb_vb2_reqbufsasbuh1hhj~ubj)}(h h]h }(hj~hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj~ubj)}(hjh]h*}(hj~hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~ubj6)}(hctxh]hctx}(hj hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj~ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj~ubj)}(hstruct dmx_requestbuffers *reqh](j )}(hjh]hstruct}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hj0hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubh)}(hhh]j6)}(hdmx_requestbuffersh]hdmx_requestbuffers}(hjAhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj>ubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjCmodnameN classnameNj j )}j ]j~c.dvb_vb2_reqbufsasbuh1hhjubj)}(h h]h }(hj_hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj6)}(hreqh]hreq}(hjzhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj~ubeh}(h]h ]h"]h$]h&]hhuh1j hjp~hhhj~hKubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjl~hhhj~hKubah}(h]jg~ah ](jYjZeh"]h$]h&]j^j_)j`huh1j/hj~hKhji~hhubjb)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jahji~hhhj~hKubeh}(h]h ](j~functioneh"]h$]h&]jj~jjjjjjjuh1hhhhjDfhNhNubj)}(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)}(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.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)}(hjh]hstruct dmx_requestbuffers *req}(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)}(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)}(hj=h]hstruct dmx_requestbuffers}(hj?hhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j dmx_requestbuffersuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhj7ubh* passed from userspace in order to handle }(hj7hhhNhNubh)}(h:c:type:`DMX_REQBUFS`h]j)}(hjah]h DMX_REQBUFS}(hjchhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j DMX_REQBUFSuh1hhjZhKhj7ubh.}(hj7hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjZhKhj4ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj3hKhjubeh}(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.hhKhjubh)}(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 }(hjhhhNhNubj)}(h``req->count``h]h req->count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is zero.}(hjhhhNhNubeh}(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&]uh1jhjDfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_vb2_querybuf (C function)c.dvb_vb2_querybufhNtauh1hhjDfhhhNhNubh)}(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](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjhhhjhKubj0)}(hdvb_vb2_querybufh]j6)}(hdvb_vb2_querybufh]hdvb_vb2_querybuf}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjhhhjhKubj )}(h/(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)h](j)}(hstruct dvb_vb2_ctx *ctxh](j )}(hjh]hstruct}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj)}(h h]h }(hj=hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj,ubh)}(hhh]j6)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hjNhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjKubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjPmodnameN classnameNj j )}j ]j)}jjsbc.dvb_vb2_querybufasbuh1hhj,ubj)}(h h]h }(hjnhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj,ubj)}(hjh]h*}(hj|hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj6)}(hctxh]hctx}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj(ubj)}(hstruct dmx_buffer *bh](j )}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubh)}(hhh]j6)}(h dmx_bufferh]h dmx_buffer}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjmodnameN classnameNj j )}j ]jjc.dvb_vb2_querybufasbuh1hhjubj)}(h h]h }(hjށhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj6)}(hbh]hb}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj(ubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjhhhjhKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjhKhjhhubjb)}(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.hhKhj hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhKubeh}(h]h ](j~functioneh"]h$]h&]jj~jj;jj;jjjuh1hhhhjDfhNhNubj)}(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)}(hjEh]h Parameters}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(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)}(hjdh]hstruct dvb_vb2_ctx *ctx}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(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&]uh1hhjyhKhjzubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhjyhKhj[ubj)}(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)}(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)}(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)}(hjh]hstruct dmx_buffer}(hjhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j dmx_bufferuh1hhjhKhjubh* passed from userspace in order to handle }(hjhhhNhNubh)}(h:c:type:`DMX_QUERYBUF`h]j)}(hj߂h]h DMX_QUERYBUF}(hjhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhj݂ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j DMX_QUERYBUFuh1hhjhKhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhj[ubeh}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjDfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_vb2_expbuf (C function)c.dvb_vb2_expbufhNtauh1hhjDfhhhNhNubh)}(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](j3)}(hinth]hint}(hj8hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj4hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj)}(h h]h }(hjGhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj4hhhjFhKubj0)}(hdvb_vb2_expbufh]j6)}(hdvb_vb2_expbufh]hdvb_vb2_expbuf}(hjYhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjUubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj4hhhjFhKubj )}(h7(struct dvb_vb2_ctx *ctx, struct dmx_exportbuffer *exp)h](j)}(hstruct dvb_vb2_ctx *ctxh](j )}(hjh]hstruct}(hjuhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjqubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjqubh)}(hhh]j6)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjmodnameN classnameNj j )}j ]j)}jj[sbc.dvb_vb2_expbufasbuh1hhjqubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjqubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjqubj6)}(hctxh]hctx}(hj΃hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjqubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjmubj)}(hstruct dmx_exportbuffer *exph](j )}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubh)}(hhh]j6)}(hdmx_exportbufferh]hdmx_exportbuffer}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjmodnameN classnameNj j )}j ]jc.dvb_vb2_expbufasbuh1hhjubj)}(h h]h }(hj#hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj6)}(hexph]hexp}(hj>hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjmubeh}(h]h ]h"]h$]h&]hhuh1j hj4hhhjFhKubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj0hhhjFhKubah}(h]j+ah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjFhKhj-hhubjb)}(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)}(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.hhKhjubj)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hj„hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(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.hhKhj܄ubj)}(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 j~c-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype 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 j~c-typeeh"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j DMX_EXPBUFuh1hhjhKhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhj܄ubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hj`h]h Description}(hjbhhhNhNubah}(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.hhKhjubh)}(h%Export a buffer as a file descriptor.h]h%Export a buffer as a file descriptor.}(hjvhhhNhNubah}(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&]uh1jhjDfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_vb2_qbuf (C function)c.dvb_vb2_qbufhNtauh1hhjDfhhhNhNubh)}(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](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjhhhjhKubj0)}(h dvb_vb2_qbufh]j6)}(h dvb_vb2_qbufh]h dvb_vb2_qbuf}(hjƅhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj…ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjhhhjhKubj )}(h/(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)h](j)}(hstruct dvb_vb2_ctx *ctxh](j )}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjޅubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjޅubh)}(hhh]j6)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjmodnameN classnameNj j )}j ]j)}jjȅsbc.dvb_vb2_qbufasbuh1hhjޅubj)}(h h]h }(hj hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjޅubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjޅubj6)}(hctxh]hctx}(hj;hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjޅubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjڅubj)}(hstruct dmx_buffer *bh](j )}(hjh]hstruct}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjPubj)}(h h]h }(hjahhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjPubh)}(hhh]j6)}(h dmx_bufferh]h dmx_buffer}(hjrhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjoubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjtmodnameN classnameNj j )}j ]jc.dvb_vb2_qbufasbuh1hhjPubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjPubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubj6)}(hjh]hb}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjPubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjڅubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhKubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjhhhjhKubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjhKhjhhubjb)}(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.}(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&]uh1jahjhhhjhKubeh}(h]h ](j~functioneh"]h$]h&]jj~jjjjjjjuh1hhhhjDfhNhNubj)}(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}(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}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hKhj+ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj*hKhj ubj)}(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)}(hjNh]hstruct dmx_buffer *b}(hjPhhhNhNubah}(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.hhKhjHubj)}(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)}(hjmh]hstruct dmx_buffer}(hjohhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j dmx_bufferuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhKhjgubh* passed from userspace in order to handle }(hjghhhNhNubh)}(h:c:type:`DMX_QBUF`h]j)}(hjh]hDMX_QBUF}(hjhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j DMX_QBUFuh1hhjhKhjgubh.}(hjghhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjdubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjchKhj ubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(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.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&]uh1jhjDfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_vb2_dqbuf (C function)c.dvb_vb2_dqbufhNtauh1hhjDfhhhNhNubh)}(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](j3)}(hinth]hint}(hjhhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hj hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhM ubj)}(h h]h }(hj hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj hhhjhM ubj0)}(h dvb_vb2_dqbufh]j6)}(h dvb_vb2_dqbufh]h dvb_vb2_dqbuf}(hj2hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj.ubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hj hhhjhM ubj )}(h/(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b)h](j)}(hstruct dvb_vb2_ctx *ctxh](j )}(hjh]hstruct}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjJubj)}(h h]h }(hj[hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjJubh)}(hhh]j6)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hjlhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjiubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjnmodnameN classnameNj j )}j ]j)}jj4sbc.dvb_vb2_dqbufasbuh1hhjJubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjJubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJubj6)}(hctxh]hctx}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjJubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjFubj)}(hstruct dmx_buffer *bh](j )}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hj͈hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubh)}(hhh]j6)}(h dmx_bufferh]h dmx_buffer}(hjވhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjۈubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjmodnameN classnameNj j )}j ]jc.dvb_vb2_dqbufasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj6)}(hjh]hb}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjFubeh}(h]h ]h"]h$]h&]hhuh1j hj hhhjhM ubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhj hhhjhM ubah}(h]jah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjhM hjhhubjb)}(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.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhj=hhubah}(h]h ]h"]h$]h&]uh1jahjhhhjhM ubeh}(h]h ](j~functioneh"]h$]h&]jj~jjXjjXjjjuh1hhhhjDfhNhNubj)}(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)}(hjbh]h Parameters}(hjdhhhNhNubah}(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.hhMhj\ubj)}(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.hhMhj{ubj)}(hhh]h)}(hcontrol struct for VB2 handlerh]hcontrol struct for VB2 handler}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjhMhjxubj)}(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)}(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.hhMhjubj)}(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)}(hjىh]hstruct dmx_buffer}(hjۉhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhj׉ubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j dmx_bufferuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhjӉubh* passed from userspace in order to handle }(hjӉhhhNhNubh)}(h:c:type:`DMX_DQBUF`h]j)}(hjh]h DMX_DQBUF}(hjhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j DMX_DQBUFuh1hhjhMhjӉubh.}(hjӉhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjЉubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjωhMhjxubeh}(h]h ]h"]h$]h&]uh1jhj\ubh)}(h**Description**h]j)}(hj8h]h Description}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhM hj\ubh)}(h,Dequeue a Digital TV buffer to the userspaceh]h,Dequeue a Digital TV buffer to the userspace}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhM hj\ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhjDfhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hdvb_vb2_mmap (C function)c.dvb_vb2_mmaphNtauh1hhjDfhhhNhNubh)}(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](j3)}(hinth]hint}(hj}hhhNhNubah}(h]h ]j?ah"]h$]h&]uh1j2hjyhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjyhhhjhMubj0)}(h dvb_vb2_mmaph]j6)}(h dvb_vb2_mmaph]h dvb_vb2_mmap}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubah}(h]h ](jHjIeh"]h$]h&]hhuh1j/hjyhhhjhMubj )}(h5(struct dvb_vb2_ctx *ctx, struct vm_area_struct *vma)h](j)}(hstruct dvb_vb2_ctx *ctxh](j )}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hjNJhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubh)}(hhh]j6)}(h dvb_vb2_ctxh]h dvb_vb2_ctx}(hj؊hhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjՊubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjڊmodnameN classnameNj j )}j ]j)}jjsbc.dvb_vb2_mmapasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj6)}(hctxh]hctx}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct vm_area_struct *vmah](j )}(hjh]hstruct}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(ubj)}(h h]h }(hj9hhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj(ubh)}(hhh]j6)}(hvm_area_structh]hvm_area_struct}(hjJhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hjGubah}(h]h ]h"]h$]h&] refdomainj~reftypej reftargetjLmodnameN classnameNj j )}j ]jc.dvb_vb2_mmapasbuh1hhj(ubj)}(h h]h }(hjhhhhNhNubah}(h]h ]j+ah"]h$]h&]uh1jhj(ubj)}(hjh]h*}(hjvhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubj6)}(hvmah]hvma}(hjhhhNhNubah}(h]h ]jAah"]h$]h&]uh1j5hj(ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjyhhhjhMubeh}(h]h ]h"]h$]h&]hhjSuh1jjTjUhjuhhhjhMubah}(h]jpah ](jYjZeh"]h$]h&]j^j_)j`huh1jhjhMhjrhhubjb)}(hhh]h)}(h5Wrapper to vb2_mmap() for Digital TV buffer handling.h]h5Wrapper to vb2_mmap() 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&]uh1jahjrhhhjhMubeh}(h]h ](j~functioneh"]h$]h&]jj~jjŋjjŋjjjuh1hhhhjDfhNhNubj)}(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&]uh1jhj͋ubah}(h]h ]h"]h$]h&]uh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhjɋubj)}(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 }(hj@hhhNhNubh)}(h0:c:type:`struct vm_area_struct `h]j)}(hjJh]hstruct vm_area_struct}(hjLhhhNhNubah}(h]h ](j j~c-typeeh"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]refdocj refdomainj~reftypetype refexplicitrefwarnj j j vm_area_structuh1hhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-common:53: ./include/media/dvb_vb2.hhMhj@ubhF with the vma passed to the mmap file operation handler in the driver.}(hj@hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjghMhj=ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj<hMhjubeh}(h]h ]h"]h$]h&]uh1jhjɋubh)}(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.hhMhjɋubh)}(hfjju nametypes}(jj]:jAfjuh}(jhjZ:hhjjjjjj j jjj%j*jjjTjYjjjOjTjjj+j0j9!j>!j{#j#j0%j5%j'j'j*j*j,j,j\1ja1j6j6j7j7jZ9j_9j>fj`:j:j;j\=ja=j?j?jAj!AjBjBjDDjIDjEjEj/Gj4GjHjHjIjIjJjJjMjMjPjPjQjQjTjTjWjWjOZjTZj6^j;^jajajcjcjjDfjafjffj=gjBgjijijjjjjojojrjrjsjsjuj ujZxj_xje{jj{j|j|jg~jl~jjj+j0jjjj jpjuu 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)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineKuh1jGhj:ubatransform_messages] transformerN include_log] decorationNhhub.