1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768 |
- <title>DVB Frontend API</title>
- <para>The DVB frontend device controls the tuner and DVB demodulator
- hardware. It can be accessed through <emphasis
- role="tt">/dev/dvb/adapter0/frontend0</emphasis>. Data types and and
- ioctl definitions can be accessed by including <emphasis
- role="tt">linux/dvb/frontend.h</emphasis> in your application.</para>
- <para>DVB frontends come in three varieties: DVB-S (satellite), DVB-C
- (cable) and DVB-T (terrestrial). Transmission via the internet (DVB-IP)
- is not yet handled by this API but a future extension is possible. For
- DVB-S the frontend device also supports satellite equipment control
- (SEC) via DiSEqC and V-SEC protocols. The DiSEqC (digital SEC)
- specification is available from
- <ulink url="http://www.eutelsat.com/satellites/4_5_5.html">Eutelsat</ulink>.</para>
- <para>Note that the DVB API may also be used for MPEG decoder-only PCI
- cards, in which case there exists no frontend device.</para>
- <section id="frontend_types">
- <title>Frontend Data Types</title>
- <section id="frontend_type">
- <title>frontend type</title>
- <para>For historical reasons frontend types are named after the type of modulation used in
- transmission.</para>
- <programlisting>
- typedef enum fe_type {
- FE_QPSK, /⋆ DVB-S ⋆/
- FE_QAM, /⋆ DVB-C ⋆/
- FE_OFDM /⋆ DVB-T ⋆/
- } fe_type_t;
- </programlisting>
- </section>
- <section id="frontend_caps">
- <title>frontend capabilities</title>
- <para>Capabilities describe what a frontend can do. Some capabilities can only be supported for
- a specific frontend type.</para>
- <programlisting>
- typedef enum fe_caps {
- FE_IS_STUPID = 0,
- FE_CAN_INVERSION_AUTO = 0x1,
- FE_CAN_FEC_1_2 = 0x2,
- FE_CAN_FEC_2_3 = 0x4,
- FE_CAN_FEC_3_4 = 0x8,
- FE_CAN_FEC_4_5 = 0x10,
- FE_CAN_FEC_5_6 = 0x20,
- FE_CAN_FEC_6_7 = 0x40,
- FE_CAN_FEC_7_8 = 0x80,
- FE_CAN_FEC_8_9 = 0x100,
- FE_CAN_FEC_AUTO = 0x200,
- FE_CAN_QPSK = 0x400,
- FE_CAN_QAM_16 = 0x800,
- FE_CAN_QAM_32 = 0x1000,
- FE_CAN_QAM_64 = 0x2000,
- FE_CAN_QAM_128 = 0x4000,
- FE_CAN_QAM_256 = 0x8000,
- FE_CAN_QAM_AUTO = 0x10000,
- FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000,
- FE_CAN_BANDWIDTH_AUTO = 0x40000,
- FE_CAN_GUARD_INTERVAL_AUTO = 0x80000,
- FE_CAN_HIERARCHY_AUTO = 0x100000,
- FE_CAN_MUTE_TS = 0x80000000,
- FE_CAN_CLEAN_SETUP = 0x40000000
- } fe_caps_t;
- </programlisting>
- </section>
- <section id="frontend_info">
- <title>frontend information</title>
- <para>Information about the frontend ca be queried with
- <link linkend="FE_GET_INFO">FE_GET_INFO</link>.</para>
- <programlisting>
- struct dvb_frontend_info {
- char name[128];
- fe_type_t type;
- uint32_t frequency_min;
- uint32_t frequency_max;
- uint32_t frequency_stepsize;
- uint32_t frequency_tolerance;
- uint32_t symbol_rate_min;
- uint32_t symbol_rate_max;
- uint32_t symbol_rate_tolerance; /⋆ ppm ⋆/
- uint32_t notifier_delay; /⋆ ms ⋆/
- fe_caps_t caps;
- };
- </programlisting>
- </section>
- <section id="frontend_diseqc">
- <title>diseqc master command</title>
- <para>A message sent from the frontend to DiSEqC capable equipment.</para>
- <programlisting>
- struct dvb_diseqc_master_cmd {
- uint8_t msg [6]; /⋆ { framing, address, command, data[3] } ⋆/
- uint8_t msg_len; /⋆ valid values are 3...6 ⋆/
- };
- </programlisting>
- </section>
- <section role="subsection">
- <title>diseqc slave reply</title>
- <para>A reply to the frontend from DiSEqC 2.0 capable equipment.</para>
- <programlisting>
- struct dvb_diseqc_slave_reply {
- uint8_t msg [4]; /⋆ { framing, data [3] } ⋆/
- uint8_t msg_len; /⋆ valid values are 0...4, 0 means no msg ⋆/
- int timeout; /⋆ return from ioctl after timeout ms with ⋆/
- }; /⋆ errorcode when no message was received ⋆/
- </programlisting>
- </section>
- <section id="frontend_diseqc_slave_reply">
- <title>diseqc slave reply</title>
- <para>The voltage is usually used with non-DiSEqC capable LNBs to switch the polarzation
- (horizontal/vertical). When using DiSEqC epuipment this voltage has to be switched
- consistently to the DiSEqC commands as described in the DiSEqC spec.</para>
- <programlisting>
- typedef enum fe_sec_voltage {
- SEC_VOLTAGE_13,
- SEC_VOLTAGE_18
- } fe_sec_voltage_t;
- </programlisting>
- </section>
- <section id="frontend_sec_tone">
- <title>SEC continuous tone</title>
- <para>The continous 22KHz tone is usually used with non-DiSEqC capable LNBs to switch the
- high/low band of a dual-band LNB. When using DiSEqC epuipment this voltage has to
- be switched consistently to the DiSEqC commands as described in the DiSEqC
- spec.</para>
- <programlisting>
- typedef enum fe_sec_tone_mode {
- SEC_TONE_ON,
- SEC_TONE_OFF
- } fe_sec_tone_mode_t;
- </programlisting>
- </section>
- <section id="frontend_sec_burst">
- <title>SEC tone burst</title>
- <para>The 22KHz tone burst is usually used with non-DiSEqC capable switches to select
- between two connected LNBs/satellites. When using DiSEqC epuipment this voltage has to
- be switched consistently to the DiSEqC commands as described in the DiSEqC
- spec.</para>
- <programlisting>
- typedef enum fe_sec_mini_cmd {
- SEC_MINI_A,
- SEC_MINI_B
- } fe_sec_mini_cmd_t;
- </programlisting>
- <para></para>
- </section>
- <section id="frontend_status">
- <title>frontend status</title>
- <para>Several functions of the frontend device use the fe_status data type defined
- by</para>
- <programlisting>
- typedef enum fe_status {
- FE_HAS_SIGNAL = 0x01, /⋆ found something above the noise level ⋆/
- FE_HAS_CARRIER = 0x02, /⋆ found a DVB signal ⋆/
- FE_HAS_VITERBI = 0x04, /⋆ FEC is stable ⋆/
- FE_HAS_SYNC = 0x08, /⋆ found sync bytes ⋆/
- FE_HAS_LOCK = 0x10, /⋆ everything's working... ⋆/
- FE_TIMEDOUT = 0x20, /⋆ no lock within the last ~2 seconds ⋆/
- FE_REINIT = 0x40 /⋆ frontend was reinitialized, ⋆/
- } fe_status_t; /⋆ application is recommned to reset ⋆/
- </programlisting>
- <para>to indicate the current state and/or state changes of the frontend hardware.
- </para>
- </section>
- <section id="frontend_params">
- <title>frontend parameters</title>
- <para>The kind of parameters passed to the frontend device for tuning depend on
- the kind of hardware you are using. All kinds of parameters are combined as an
- union in the FrontendParameters structure:</para>
- <programlisting>
- struct dvb_frontend_parameters {
- uint32_t frequency; /⋆ (absolute) frequency in Hz for QAM/OFDM ⋆/
- /⋆ intermediate frequency in kHz for QPSK ⋆/
- fe_spectral_inversion_t inversion;
- union {
- struct dvb_qpsk_parameters qpsk;
- struct dvb_qam_parameters qam;
- struct dvb_ofdm_parameters ofdm;
- } u;
- };
- </programlisting>
- <para>For satellite QPSK frontends you have to use the <constant>QPSKParameters</constant> member defined by</para>
- <programlisting>
- struct dvb_qpsk_parameters {
- uint32_t symbol_rate; /⋆ symbol rate in Symbols per second ⋆/
- fe_code_rate_t fec_inner; /⋆ forward error correction (see above) ⋆/
- };
- </programlisting>
- <para>for cable QAM frontend you use the <constant>QAMParameters</constant> structure</para>
- <programlisting>
- struct dvb_qam_parameters {
- uint32_t symbol_rate; /⋆ symbol rate in Symbols per second ⋆/
- fe_code_rate_t fec_inner; /⋆ forward error correction (see above) ⋆/
- fe_modulation_t modulation; /⋆ modulation type (see above) ⋆/
- };
- </programlisting>
- <para>DVB-T frontends are supported by the <constant>OFDMParamters</constant> structure
- </para>
- <programlisting>
- struct dvb_ofdm_parameters {
- fe_bandwidth_t bandwidth;
- fe_code_rate_t code_rate_HP; /⋆ high priority stream code rate ⋆/
- fe_code_rate_t code_rate_LP; /⋆ low priority stream code rate ⋆/
- fe_modulation_t constellation; /⋆ modulation type (see above) ⋆/
- fe_transmit_mode_t transmission_mode;
- fe_guard_interval_t guard_interval;
- fe_hierarchy_t hierarchy_information;
- };
- </programlisting>
- <para>In the case of QPSK frontends the <constant>Frequency</constant> field specifies the intermediate
- frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of
- the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and
- OFDM frontends the Frequency specifies the absolute frequency and is given in
- Hz.
- </para>
- <para>The Inversion field can take one of these values:
- </para>
- <programlisting>
- typedef enum fe_spectral_inversion {
- INVERSION_OFF,
- INVERSION_ON,
- INVERSION_AUTO
- } fe_spectral_inversion_t;
- </programlisting>
- <para>It indicates if spectral inversion should be presumed or not. In the automatic setting
- (<constant>INVERSION_AUTO</constant>) the hardware will try to figure out the correct setting by
- itself.
- </para>
- <para>The possible values for the <constant>FEC_inner</constant> field are
- </para>
- <programlisting>
- typedef enum fe_code_rate {
- FEC_NONE = 0,
- FEC_1_2,
- FEC_2_3,
- FEC_3_4,
- FEC_4_5,
- FEC_5_6,
- FEC_6_7,
- FEC_7_8,
- FEC_8_9,
- FEC_AUTO
- } fe_code_rate_t;
- </programlisting>
- <para>which correspond to error correction rates of 1/2, 2/3, etc., no error correction or auto
- detection.
- </para>
- <para>For cable and terrestrial frontends (QAM and OFDM) one also has to specify the quadrature
- modulation mode which can be one of the following:
- </para>
- <programlisting>
- typedef enum fe_modulation {
- QPSK,
- QAM_16,
- QAM_32,
- QAM_64,
- QAM_128,
- QAM_256,
- QAM_AUTO
- } fe_modulation_t;
- </programlisting>
- <para>Finally, there are several more parameters for OFDM:
- </para>
- <programlisting>
- typedef enum fe_transmit_mode {
- TRANSMISSION_MODE_2K,
- TRANSMISSION_MODE_8K,
- TRANSMISSION_MODE_AUTO
- } fe_transmit_mode_t;
- </programlisting>
- <programlisting>
- typedef enum fe_bandwidth {
- BANDWIDTH_8_MHZ,
- BANDWIDTH_7_MHZ,
- BANDWIDTH_6_MHZ,
- BANDWIDTH_AUTO
- } fe_bandwidth_t;
- </programlisting>
- <programlisting>
- typedef enum fe_guard_interval {
- GUARD_INTERVAL_1_32,
- GUARD_INTERVAL_1_16,
- GUARD_INTERVAL_1_8,
- GUARD_INTERVAL_1_4,
- GUARD_INTERVAL_AUTO
- } fe_guard_interval_t;
- </programlisting>
- <programlisting>
- typedef enum fe_hierarchy {
- HIERARCHY_NONE,
- HIERARCHY_1,
- HIERARCHY_2,
- HIERARCHY_4,
- HIERARCHY_AUTO
- } fe_hierarchy_t;
- </programlisting>
- </section>
- <section id="frontend_events">
- <title>frontend events</title>
- <programlisting>
- struct dvb_frontend_event {
- fe_status_t status;
- struct dvb_frontend_parameters parameters;
- };
- </programlisting>
- </section>
- </section>
- <section id="frontend_fcalls">
- <title>Frontend Function Calls</title>
- <section id="frontend_f_open">
- <title>open()</title>
- <para>DESCRIPTION</para>
- <informaltable><tgroup cols="1"><tbody><row>
- <entry align="char">
- <para>This system call opens a named frontend device (/dev/dvb/adapter0/frontend0)
- for subsequent use. Usually the first thing to do after a successful open is to
- find out the frontend type with <link linkend="FE_GET_INFO">FE_GET_INFO</link>.</para>
- <para>The device can be opened in read-only mode, which only allows monitoring of
- device status and statistics, or read/write mode, which allows any kind of use
- (e.g. performing tuning operations.)
- </para>
- <para>In a system with multiple front-ends, it is usually the case that multiple devices
- cannot be open in read/write mode simultaneously. As long as a front-end
- device is opened in read/write mode, other open() calls in read/write mode will
- either fail or block, depending on whether non-blocking or blocking mode was
- specified. A front-end device opened in blocking mode can later be put into
- non-blocking mode (and vice versa) using the F_SETFL command of the fcntl
- system call. This is a standard system call, documented in the Linux manual
- page for fcntl. When an open() call has succeeded, the device will be ready
- for use in the specified mode. This implies that the corresponding hardware is
- powered up, and that other front-ends may have been powered down to make
- that possible.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS</para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int open(const char ⋆deviceName, int flags);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>const char
- *deviceName</para>
- </entry><entry
- align="char">
- <para>Name of specific video device.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int flags</para>
- </entry><entry
- align="char">
- <para>A bit-wise OR of the following flags:</para>
- </entry>
- </row><row><entry
- align="char">
- </entry><entry
- align="char">
- <para>O_RDONLY read-only access</para>
- </entry>
- </row><row><entry
- align="char">
- </entry><entry
- align="char">
- <para>O_RDWR read/write access</para>
- </entry>
- </row><row><entry
- align="char">
- </entry><entry
- align="char">
- <para>O_NONBLOCK open in non-blocking mode</para>
- </entry>
- </row><row><entry
- align="char">
- </entry><entry
- align="char">
- <para>(blocking mode is the default)</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>ENODEV</para>
- </entry><entry
- align="char">
- <para>Device driver not loaded/available.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINTERNAL</para>
- </entry><entry
- align="char">
- <para>Internal error.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EBUSY</para>
- </entry><entry
- align="char">
- <para>Device or resource busy.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINVAL</para>
- </entry><entry
- align="char">
- <para>Invalid argument.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="frontend_f_close">
- <title>close()</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This system call closes a previously opened front-end device. After closing
- a front-end device, its corresponding hardware might be powered down
- automatically.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int close(int fd);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>EBADF</para>
- </entry><entry
- align="char">
- <para>fd is not a valid open file descriptor.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_READ_STATUS">
- <title>FE_READ_STATUS</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This ioctl call returns status information about the front-end. This call only
- requires read-only access to the device.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl(int fd, int request = <link linkend="FE_READ_STATUS">FE_READ_STATUS</link>,
- fe_status_t ⋆status);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_READ_STATUS">FE_READ_STATUS</link> for this command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>struct fe_status_t
- *status</para>
- </entry><entry
- align="char">
- <para>Points to the location where the front-end status word is
- to be stored.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>EBADF</para>
- </entry><entry
- align="char">
- <para>fd is not a valid open file descriptor.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EFAULT</para>
- </entry><entry
- align="char">
- <para>status points to invalid address.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_READ_BER">
- <title>FE_READ_BER</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This ioctl call returns the bit error rate for the signal currently
- received/demodulated by the front-end. For this command, read-only access to
- the device is sufficient.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl(int fd, int request = <link linkend="FE_READ_BER">FE_READ_BER</link>,
- uint32_t ⋆ber);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_READ_BER">FE_READ_BER</link> for this command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>uint32_t *ber</para>
- </entry><entry
- align="char">
- <para>The bit error rate is stored into *ber.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>EBADF</para>
- </entry><entry
- align="char">
- <para>fd is not a valid open file descriptor.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EFAULT</para>
- </entry><entry
- align="char">
- <para>ber points to invalid address.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>ENOSIGNAL</para>
- </entry><entry
- align="char">
- <para>There is no signal, thus no meaningful bit error rate. Also
- returned if the front-end is not turned on.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>ENOSYS</para>
- </entry><entry
- align="char">
- <para>Function not available for this device.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_READ_SNR">
- <title>FE_READ_SNR</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This ioctl call returns the signal-to-noise ratio for the signal currently received
- by the front-end. For this command, read-only access to the device is sufficient.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl(int fd, int request = <link linkend="FE_READ_SNR">FE_READ_SNR</link>, int16_t
- ⋆snr);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_READ_SNR">FE_READ_SNR</link> for this command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int16_t *snr</para>
- </entry><entry
- align="char">
- <para>The signal-to-noise ratio is stored into *snr.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>EBADF</para>
- </entry><entry
- align="char">
- <para>fd is not a valid open file descriptor.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EFAULT</para>
- </entry><entry
- align="char">
- <para>snr points to invalid address.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>ENOSIGNAL</para>
- </entry><entry
- align="char">
- <para>There is no signal, thus no meaningful signal strength
- value. Also returned if front-end is not turned on.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>ENOSYS</para>
- </entry><entry
- align="char">
- <para>Function not available for this device.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_READ_SIGNAL_STRENGTH">
- <title>FE_READ_SIGNAL_STRENGTH</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This ioctl call returns the signal strength value for the signal currently received
- by the front-end. For this command, read-only access to the device is sufficient.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl( int fd, int request =
- <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link>, int16_t ⋆strength);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link> for this
- command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int16_t *strength</para>
- </entry><entry
- align="char">
- <para>The signal strength value is stored into *strength.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>EBADF</para>
- </entry><entry
- align="char">
- <para>fd is not a valid open file descriptor.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EFAULT</para>
- </entry><entry
- align="char">
- <para>status points to invalid address.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>ENOSIGNAL</para>
- </entry><entry
- align="char">
- <para>There is no signal, thus no meaningful signal strength
- value. Also returned if front-end is not turned on.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>ENOSYS</para>
- </entry><entry
- align="char">
- <para>Function not available for this device.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_READ_UNCORRECTED_BLOCKS">
- <title>FE_READ_UNCORRECTED_BLOCKS</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This ioctl call returns the number of uncorrected blocks detected by the device
- driver during its lifetime. For meaningful measurements, the increment in block
- count during a specific time interval should be calculated. For this command,
- read-only access to the device is sufficient.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>Note that the counter will wrap to zero after its maximum count has been
- reached.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl( int fd, int request =
- <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link>, uint32_t ⋆ublocks);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link> for this
- command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>uint32_t *ublocks</para>
- </entry><entry
- align="char">
- <para>The total number of uncorrected blocks seen by the driver
- so far.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>EBADF</para>
- </entry><entry
- align="char">
- <para>fd is not a valid open file descriptor.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EFAULT</para>
- </entry><entry
- align="char">
- <para>ublocks points to invalid address.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>ENOSYS</para>
- </entry><entry
- align="char">
- <para>Function not available for this device.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_SET_FRONTEND">
- <title>FE_SET_FRONTEND</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This ioctl call starts a tuning operation using specified parameters. The result
- of this call will be successful if the parameters were valid and the tuning could
- be initiated. The result of the tuning operation in itself, however, will arrive
- asynchronously as an event (see documentation for <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> and
- FrontendEvent.) If a new <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> operation is initiated before
- the previous one was completed, the previous operation will be aborted in favor
- of the new one. This command requires read/write access to the device.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl(int fd, int request = <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link>,
- struct dvb_frontend_parameters ⋆p);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>struct
- dvb_frontend_parameters
- *p</para>
- </entry><entry
- align="char">
- <para>Points to parameters for tuning operation.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>EBADF</para>
- </entry><entry
- align="char">
- <para>fd is not a valid open file descriptor.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EFAULT</para>
- </entry><entry
- align="char">
- <para>p points to invalid address.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINVAL</para>
- </entry><entry
- align="char">
- <para>Maximum supported symbol rate reached.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_GET_FRONTEND">
- <title>FE_GET_FRONTEND</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This ioctl call queries the currently effective frontend parameters. For this
- command, read-only access to the device is sufficient.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl(int fd, int request = <link linkend="FE_GET_FRONTEND">FE_GET_FRONTEND</link>,
- struct dvb_frontend_parameters ⋆p);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>struct
- dvb_frontend_parameters
- *p</para>
- </entry><entry
- align="char">
- <para>Points to parameters for tuning operation.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>EBADF</para>
- </entry><entry
- align="char">
- <para>fd is not a valid open file descriptor.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EFAULT</para>
- </entry><entry
- align="char">
- <para>p points to invalid address.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINVAL</para>
- </entry><entry
- align="char">
- <para>Maximum supported symbol rate reached.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_GET_EVENT">
- <title>FE_GET_EVENT</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This ioctl call returns a frontend event if available. If an event is not
- available, the behavior depends on whether the device is in blocking or
- non-blocking mode. In the latter case, the call fails immediately with errno
- set to EWOULDBLOCK. In the former case, the call blocks until an event
- becomes available.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>The standard Linux poll() and/or select() system calls can be used with the
- device file descriptor to watch for new events. For select(), the file descriptor
- should be included in the exceptfds argument, and for poll(), POLLPRI should
- be specified as the wake-up condition. Since the event queue allocated is
- rather small (room for 8 events), the queue must be serviced regularly to avoid
- overflow. If an overflow happens, the oldest event is discarded from the queue,
- and an error (EOVERFLOW) occurs the next time the queue is read. After
- reporting the error condition in this fashion, subsequent
- <link linkend="FE_GET_EVENT">FE_GET_EVENT</link>
- calls will return events from the queue as usual.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>For the sake of implementation simplicity, this command requires read/write
- access to the device.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl(int fd, int request = QPSK_GET_EVENT,
- struct dvb_frontend_event ⋆ev);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> for this command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>struct
- dvb_frontend_event
- *ev</para>
- </entry><entry
- align="char">
- <para>Points to the location where the event,</para>
- </entry>
- </row><row><entry
- align="char">
- </entry><entry
- align="char">
- <para>if any, is to be stored.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>EBADF</para>
- </entry><entry
- align="char">
- <para>fd is not a valid open file descriptor.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EFAULT</para>
- </entry><entry
- align="char">
- <para>ev points to invalid address.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EWOULDBLOCK</para>
- </entry><entry
- align="char">
- <para>There is no event pending, and the device is in
- non-blocking mode.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EOVERFLOW</para>
- </entry><entry
- align="char">
- </entry>
- </row><row><entry
- align="char">
- </entry><entry
- align="char">
- <para>Overflow in event queue - one or more events were lost.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_GET_INFO">
- <title>FE_GET_INFO</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This ioctl call returns information about the front-end. This call only requires
- read-only access to the device.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para> int ioctl(int fd, int request = <link linkend="FE_GET_INFO">FE_GET_INFO</link>, struct
- dvb_frontend_info ⋆info);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_GET_INFO">FE_GET_INFO</link> for this command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>struct
- dvb_frontend_info
- *info</para>
- </entry><entry
- align="char">
- <para>Points to the location where the front-end information is
- to be stored.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>EBADF</para>
- </entry><entry
- align="char">
- <para>fd is not a valid open file descriptor.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EFAULT</para>
- </entry><entry
- align="char">
- <para>info points to invalid address.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_DISEQC_RESET_OVERLOAD">
- <title>FE_DISEQC_RESET_OVERLOAD</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>If the bus has been automatically powered off due to power overload, this ioctl
- call restores the power to the bus. The call requires read/write access to the
- device. This call has no effect if the device is manually powered off. Not all
- DVB adapters support this ioctl.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl(int fd, int request =
- <link linkend="FE_DISEQC_RESET_OVERLOAD">FE_DISEQC_RESET_OVERLOAD</link>);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_DISEQC_RESET_OVERLOAD">FE_DISEQC_RESET_OVERLOAD</link> for this
- command.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>EBADF</para>
- </entry><entry
- align="char">
- <para>fd is not a valid file descriptor.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EPERM</para>
- </entry><entry
- align="char">
- <para>Permission denied (needs read/write access).</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINTERNAL</para>
- </entry><entry
- align="char">
- <para>Internal error in the device driver.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_DISEQC_SEND_MASTER_CMD">
- <title>FE_DISEQC_SEND_MASTER_CMD</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This ioctl call is used to send a a DiSEqC command.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl(int fd, int request =
- <link linkend="FE_DISEQC_SEND_MASTER_CMD">FE_DISEQC_SEND_MASTER_CMD</link>, struct
- dvb_diseqc_master_cmd ⋆cmd);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_DISEQC_SEND_MASTER_CMD">FE_DISEQC_SEND_MASTER_CMD</link> for this
- command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>struct
- dvb_diseqc_master_cmd
- *cmd</para>
- </entry><entry
- align="char">
- <para>Pointer to the command to be transmitted.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>EBADF</para>
- </entry><entry
- align="char">
- <para>fd is not a valid file descriptor.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EFAULT</para>
- </entry><entry
- align="char">
- <para>Seq points to an invalid address.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINVAL</para>
- </entry><entry
- align="char">
- <para>The data structure referred to by seq is invalid in some
- way.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EPERM</para>
- </entry><entry
- align="char">
- <para>Permission denied (needs read/write access).</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINTERNAL</para>
- </entry><entry
- align="char">
- <para>Internal error in the device driver.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_DISEQC_RECV_SLAVE_REPLY">
- <title>FE_DISEQC_RECV_SLAVE_REPLY</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This ioctl call is used to receive reply to a DiSEqC 2.0 command.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl(int fd, int request =
- <link linkend="FE_DISEQC_RECV_SLAVE_REPLY">FE_DISEQC_RECV_SLAVE_REPLY</link>, struct
- dvb_diseqc_slave_reply ⋆reply);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_DISEQC_RECV_SLAVE_REPLY">FE_DISEQC_RECV_SLAVE_REPLY</link> for this
- command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>struct
- dvb_diseqc_slave_reply
- *reply</para>
- </entry><entry
- align="char">
- <para>Pointer to the command to be received.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>EBADF</para>
- </entry><entry
- align="char">
- <para>fd is not a valid file descriptor.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EFAULT</para>
- </entry><entry
- align="char">
- <para>Seq points to an invalid address.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINVAL</para>
- </entry><entry
- align="char">
- <para>The data structure referred to by seq is invalid in some
- way.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EPERM</para>
- </entry><entry
- align="char">
- <para>Permission denied (needs read/write access).</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINTERNAL</para>
- </entry><entry
- align="char">
- <para>Internal error in the device driver.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_DISEQC_SEND_BURST">
- <title>FE_DISEQC_SEND_BURST</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This ioctl call is used to send a 22KHz tone burst.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl(int fd, int request =
- <link linkend="FE_DISEQC_SEND_BURST">FE_DISEQC_SEND_BURST</link>, fe_sec_mini_cmd_t burst);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_DISEQC_SEND_BURST">FE_DISEQC_SEND_BURST</link> for this command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>fe_sec_mini_cmd_t
- burst</para>
- </entry><entry
- align="char">
- <para>burst A or B.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>EBADF</para>
- </entry><entry
- align="char">
- <para>fd is not a valid file descriptor.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EFAULT</para>
- </entry><entry
- align="char">
- <para>Seq points to an invalid address.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINVAL</para>
- </entry><entry
- align="char">
- <para>The data structure referred to by seq is invalid in some
- way.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EPERM</para>
- </entry><entry
- align="char">
- <para>Permission denied (needs read/write access).</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINTERNAL</para>
- </entry><entry
- align="char">
- <para>Internal error in the device driver.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_SET_TONE">
- <title>FE_SET_TONE</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This call is used to set the generation of the continuous 22kHz tone. This call
- requires read/write permissions.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl(int fd, int request = <link linkend="FE_SET_TONE">FE_SET_TONE</link>,
- fe_sec_tone_mode_t tone);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_SET_TONE">FE_SET_TONE</link> for this command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>fe_sec_tone_mode_t
- tone</para>
- </entry><entry
- align="char">
- <para>The requested tone generation mode (on/off).</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>ENODEV</para>
- </entry><entry
- align="char">
- <para>Device driver not loaded/available.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EBUSY</para>
- </entry><entry
- align="char">
- <para>Device or resource busy.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINVAL</para>
- </entry><entry
- align="char">
- <para>Invalid argument.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EPERM</para>
- </entry><entry
- align="char">
- <para>File not opened with read permissions.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINTERNAL</para>
- </entry><entry
- align="char">
- <para>Internal error in the device driver.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_SET_VOLTAGE">
- <title>FE_SET_VOLTAGE</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>This call is used to set the bus voltage. This call requires read/write
- permissions.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl(int fd, int request = <link linkend="FE_SET_VOLTAGE">FE_SET_VOLTAGE</link>,
- fe_sec_voltage_t voltage);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_SET_VOLTAGE">FE_SET_VOLTAGE</link> for this command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>fe_sec_voltage_t
- voltage</para>
- </entry><entry
- align="char">
- <para>The requested bus voltage.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>ENODEV</para>
- </entry><entry
- align="char">
- <para>Device driver not loaded/available.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EBUSY</para>
- </entry><entry
- align="char">
- <para>Device or resource busy.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINVAL</para>
- </entry><entry
- align="char">
- <para>Invalid argument.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EPERM</para>
- </entry><entry
- align="char">
- <para>File not opened with read permissions.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINTERNAL</para>
- </entry><entry
- align="char">
- <para>Internal error in the device driver.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- <section id="FE_ENABLE_HIGH_LNB_VOLTAGE">
- <title>FE_ENABLE_HIGH_LNB_VOLTAGE</title>
- <para>DESCRIPTION
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>If high != 0 enables slightly higher voltages instead of 13/18V (to compensate
- for long cables). This call requires read/write permissions. Not all DVB
- adapters support this ioctl.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>SYNOPSIS
- </para>
- <informaltable><tgroup cols="1"><tbody><row><entry
- align="char">
- <para>int ioctl(int fd, int request =
- <link linkend="FE_ENABLE_HIGH_LNB_VOLTAGE">FE_ENABLE_HIGH_LNB_VOLTAGE</link>, int high);</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>PARAMETERS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>int fd</para>
- </entry><entry
- align="char">
- <para>File descriptor returned by a previous call to open().</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int request</para>
- </entry><entry
- align="char">
- <para>Equals <link linkend="FE_SET_VOLTAGE">FE_SET_VOLTAGE</link> for this command.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>int high</para>
- </entry><entry
- align="char">
- <para>The requested bus voltage.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- <para>ERRORS
- </para>
- <informaltable><tgroup cols="2"><tbody><row><entry
- align="char">
- <para>ENODEV</para>
- </entry><entry
- align="char">
- <para>Device driver not loaded/available.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EBUSY</para>
- </entry><entry
- align="char">
- <para>Device or resource busy.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINVAL</para>
- </entry><entry
- align="char">
- <para>Invalid argument.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EPERM</para>
- </entry><entry
- align="char">
- <para>File not opened with read permissions.</para>
- </entry>
- </row><row><entry
- align="char">
- <para>EINTERNAL</para>
- </entry><entry
- align="char">
- <para>Internal error in the device driver.</para>
- </entry>
- </row></tbody></tgroup></informaltable>
- </section>
- </section>
- &sub-isdbt;
|