summaryrefslogtreecommitdiff
path: root/dvb-spec/API/dvb_api/sec.xml
diff options
context:
space:
mode:
Diffstat (limited to 'dvb-spec/API/dvb_api/sec.xml')
-rw-r--r--dvb-spec/API/dvb_api/sec.xml430
1 files changed, 430 insertions, 0 deletions
diff --git a/dvb-spec/API/dvb_api/sec.xml b/dvb-spec/API/dvb_api/sec.xml
new file mode 100644
index 000000000..22062d4a9
--- /dev/null
+++ b/dvb-spec/API/dvb_api/sec.xml
@@ -0,0 +1,430 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><title>
+ linuxtv.org|DVB SEC API</title></head><body bgcolor="#000000"
+link="#ffcc00" text="#ffffff" vlink="#ffdd00"><table border="0"
+cellpadding="0" cellspacing="0" width="100%"><tr><td><table border="0"
+cellpadding="0" cellspacing="0" width="100%"><tr><td width="610"><table
+border="0" cellpadding="0" cellspacing="0"><tr valign="top"><td><table
+border="0" cellpadding="0" cellspacing="0" width="180"><tr align="right"
+valign="top"><td><img height="30" src="/images/top01.gif"
+width="180"></td></tr><tr><td align="center" height="38"
+valign="bottom"><img border="0" height="38" src="/images/cimlogo02.gif"
+width="45"></td></tr></table></td><td><table border="0" cellpadding="0"
+cellspacing="0" width="50"><tr><td><img height="30"
+src="/images/top02.gif" width="284"></td></tr><tr><td><img height="45"
+src="/images/top06.gif" width="20">&nbsp;
+
+ </td></tr></table></td><td><table border="0" cellpadding="0"
+cellspacing="0" width="170"><tr><td background="/images/squares05.gif"
+colspan="2"><img height="68" src="/images/squares04.gif"
+width="32"></td></tr></table></td></tr><tr><td></td></tr></table></td><td
+height="68" valign="top" width="100%"><table border="0" cellpadding="0"
+cellspacing="0" width="100%"><tr><td background="/images/squares05.gif"
+height="68"
+width="100%">&nbsp;</td></tr></table></td></tr></table></td></tr><tr><td height="30">
+ &nbsp;
+ </td></tr></table><table border="0" cellpadding="0"
+cellspacing="0"><tr><td width="181"><table border="0" cellpadding="0"
+cellspacing="0" width="181"><tr><td bgcolor="#000000" valign="top"
+width="20"><img height="22" src="/images/gruen.gif" width="20"></td><td
+bgcolor="#003d19" valign="top" width="19"><img height="22"
+src="/images/pfeilgruen.gif" width="19"></td><td bgcolor="#000000"
+valign="top" width="2"></td><td bgcolor="#003d19" width="120"><a
+href="http://www.convergence.de"><font color="#ffcc00"
+face="arial, helvetica" size="2"><b>
+ &nbsp;convergence.de
+ </b></font></a></td><td align="right" bgcolor="#003d19"
+valign="bottom" width="20"><img height="22"
+src="/images/eckeswgruen.gif" width="8"></td></tr><tr><td
+height="2"></td></tr><tr><td bgcolor="#000000" valign="top"
+width="20"><img height="22" src="/images/gruen.gif" width="20"></td><td
+bgcolor="#003d19" valign="top" width="19"><img height="22"
+src="/images/pfeilgruen.gif" width="19"></td><td bgcolor="#000000"
+valign="top" width="2"></td><td bgcolor="#003d19" width="120"><a
+href="http://www.cryptolabs.org"><font color="#ffcc00"
+face="arial, helvetica" size="2"><b>
+ &nbsp;cryptolabs.org</b></font></a></td><td align="right"
+bgcolor="#003d19" valign="bottom" width="20"><img height="22"
+src="/images/eckeswgruen.gif" width="8"></td></tr><tr><td
+height="2"></td></tr><tr><td bgcolor="#000000" valign="top"
+width="20"><img height="22" src="/images/gruen.gif" width="20"></td><td
+bgcolor="#003d19" valign="top" width="19"><img height="22"
+src="/images/pfeilgruen.gif" width="19"></td><td bgcolor="#000000"
+valign="top" width="2"></td><td bgcolor="#003d19" width="120"><a
+href="http://www.directfb.org"><font color="#ffcc00"
+face="arial, helvetica" size="2"><b>
+ &nbsp;directfb.org
+ </b></font></a></td><td align="right" bgcolor="#003d19"
+valign="bottom" width="20"><img height="22"
+src="/images/eckeswgruen.gif" width="8"></td></tr><tr><td
+height="2"></td></tr><tr><td bgcolor="#000000" valign="top"
+width="20"><img height="22" src="/images/gleb.gif" width="20"></td><td
+bgcolor="#ffcc00" valign="top" width="19"><img height="22"
+src="/images/pfeilgelb.gif" width="19"></td><td bgcolor="#000000"
+valign="top" width="2"></td><td bgcolor="#ffcc00" width="120"><a
+href="/"><font color="#003d19" face="arial, helvetica" size="2"><b>
+ &nbsp;linuxtv.org
+ </b></font></a></td><td align="right" bgcolor="#ffcc00"
+valign="bottom" width="20"><img height="22" src="/images/eckeswgelb.gif"
+width="8"></td></tr><tr><td height="2"></td></tr></table></td><td width="20">
+ &nbsp;
+ </td><td valign="top" width="500"><img height="60"
+src="/images/linuxtv.gif" width="245"></td></tr><tr><td align="left"
+valign="top" width="181"><table bgcolor="#ffcc00" border="0"
+cellpadding="0" cellspacing="0" width="185"><tr><td bgcolor="#000000"
+valign="top" width="20"><img height="22" src="/images/gleb.gif"
+width="20"></td><td bgcolor="#ffcc00" width="19"><img height="22"
+src="/images/arrow_main.gif" width="19"></td><td bgcolor="#000000"
+width="2"></td><td bgcolor="#ffcc00" width="131">
+ &nbsp;<a href="/"><font color="#003d19" face="helvetica"
+size="2"><b>linuxtv</b></font></a></td><td bgcolor="#000000"
+width="9"></td></tr><tr><td bgcolor="#000000" colspan="5"
+height="2"></td></tr><tr><td bgcolor="#000000" valign="top"
+width="20"><img height="22" src="/images/gleb.gif" width="20"></td><td
+bgcolor="#ffcc00" width="19"><img height="22"
+src="/images/arrow_main.gif" width="19"></td><td bgcolor="#000000"
+width="2"></td><td bgcolor="#ffcc00" width="131">
+ &nbsp;<a href="/projects.xml"><font color="#003d19" face="helvetica"
+size="2"><b>projects</b></font></a></td><td bgcolor="#000000"
+width="9"></td></tr><tr><td bgcolor="#000000" colspan="5"
+height="2"></td></tr><tr><td bgcolor="#000000" valign="top"
+width="20"><img height="22" src="/images/gleb.gif" width="20"></td><td
+bgcolor="#ffcc00" width="19"><img height="22"
+src="/images/arrow_main_open.gif" width="19"></td><td bgcolor="#000000"
+width="2"></td><td bgcolor="#ffcc00" width="131">
+ &nbsp;<a href="/developer/"><font color="#003d19" face="helvetica"
+size="2"><b>developer</b></font></a></td><td bgcolor="#000000"
+width="9"></td></tr><tr><td bgcolor="#000000" width="20"></td><td
+bgcolor="#ffcc00" width="19">&nbsp;</td><td bgcolor="#000000"
+width="2"></td><td width="131"><img height="13"
+src="/images/arrow_sub_open.gif" width="13">
+ &nbsp;<a href="/developer/dvb.xml"><font color="#000000"
+face="helvetica" size="2">DVB</font></a></td><td bgcolor="#000000"
+width="9"></td></tr><tr><td bgcolor="#000000" width="20"></td><td
+width="19">&nbsp;</td><td bgcolor="#000000" width="2"></td><td width="131">&nbsp;
+ <img height="13" src="/images/space_sub.gif" width="13"><img
+height="13" src="/images/kulleropen.gif" width="13"><a
+href="/developer/dvb_api.xml"><font color="#000000" face="helvetica" size="2">
+ &nbsp;API</font></a></td><td bgcolor="#000000"
+width="9"></td></tr><tr><td bgcolor="#000000" width="20"></td><td
+bgcolor="#ffcc00" width="19">&nbsp;</td><td bgcolor="#000000"
+width="2"></td><td width="131"><img height="13"
+src="/images/arrow_sub.gif" width="13">
+ &nbsp;<a href="/developer/dvd.xml"><font color="#000000"
+face="helvetica" size="2">DVD</font></a></td><td bgcolor="#000000"
+width="9"></td></tr><tr><td bgcolor="#000000" width="20"></td><td
+bgcolor="#ffcc00" width="19">&nbsp;</td><td bgcolor="#000000"
+width="2"></td><td width="131"><img height="13"
+src="/images/arrow_sub.gif" width="13">
+ &nbsp;<a href="/developer/mbone.xml"><font color="#000000"
+face="helvetica" size="2">Mbone</font></a></td><td bgcolor="#000000"
+width="9"></td></tr><tr><td bgcolor="#000000" width="20"></td><td
+bgcolor="#ffcc00" width="19">&nbsp;</td><td bgcolor="#000000"
+width="2"></td><td width="131"><img height="13"
+src="/images/arrow_sub.gif" width="13">
+ &nbsp;<a href="/cvs/"><font color="#000000" face="helvetica"
+size="2">CVS</font></a></td><td bgcolor="#000000"
+width="9"></td></tr><tr><td bgcolor="#000000" colspan="5"
+height="2"></td></tr><tr><td bgcolor="#000000" valign="top"
+width="20"><img height="22" src="/images/gleb.gif" width="20"></td><td
+bgcolor="#ffcc00" width="19"><img height="22"
+src="/images/arrow_main.gif" width="19"></td><td bgcolor="#000000"
+width="2"></td><td bgcolor="#ffcc00" width="131">
+ &nbsp;<a href="/download/"><font color="#003d19" face="helvetica"
+size="2"><b>download</b></font></a></td><td bgcolor="#000000"
+width="9"></td></tr><tr><td bgcolor="#000000" colspan="5"
+height="2"></td></tr><tr><td bgcolor="#000000" valign="top"
+width="20"><img height="22" src="/images/gleb.gif" width="20"></td><td
+bgcolor="#ffcc00" width="19"><img height="22"
+src="/images/arrow_main.gif" width="19"></td><td bgcolor="#000000"
+width="2"></td><td bgcolor="#ffcc00" width="131">
+ &nbsp;<a href="/contact.xml"><font color="#003d19" face="helvetica"
+size="2"><b>contact</b></font></a></td><td bgcolor="#000000"
+width="9"></td></tr><tr><td bgcolor="#000000" colspan="5"
+height="2"></td></tr></table></td><td width="20">
+ &nbsp;
+ </td><td valign="top" width="500"><font color="#ffcc00" face="arial, helvetica"><h2>DVB SEC API</h2></font>
+
+ <p>
+ The DVB SEC device controls the Satellite Equipment Control of
+ the DVB hardware, i.e. DiSEqC and V-SEC.
+ It is accessed through /dev/ost/sec.
+ </p>
+
+ <p>
+ The function calls defined in the include file
+ <a href="sec.h">sec.h</a> aredescribed in detail below:
+ </p>
+
+ <p>
+ <font face="arial, helvetica" size="+1">SEC API IO control calls</font>
+
+
+<p>
+<pre>
+
+int open(const char *deviceName, int flags);
+
+ DESCRIPTION
+
+ This system call opens a named SEC device for subsequent use.
+ If the device is opened in read-only mode, only status and statistics
+ monitoring is allowed. If the device is opened in read/write mode, all
+ types of operations can be performed.
+ Any number of applications can have simultaneous access to the device.
+
+ PARAMETERS
+
+ const char *deviceName I Name of the SEC device.
+
+ int flags I Valid values are:
+ O_RDONLY read-only access
+ O_RDWR read/write access
+
+ The optional flag O_NONBLOCK is not supported. If O_NONBLOCK is set,
+ open() and most other subsequent calls to the device will return &shy;1 and
+ set errno to EWOULDBLOCK.
+ The communication with the peripheral devices is sequential by nature,
+ so it is probably preferable to use the device in synchronous mode.
+ This is the motivation for not going through the extra effort of
+ implementing asynchronous operation of the device.
+
+ RETURNS
+
+ ENODEV Device not loaded/available
+ EFAULT deviceName does not refer to a valid memory area.
+ EINVAL Invalid argument
+
+
+
+</pre>
+</p>
+
+<p>
+<pre>
+
+int close(int fd);
+
+ DESCRIPTION
+
+ This system call closes a previously opened SEC device.
+
+ PARAMETERS
+
+ int fd I File descriptor returned by a previous call to open().
+
+ RETURNS
+
+ EBADF fd is not a valid file descriptor.
+
+
+
+</pre>
+</p>
+
+<p>
+<pre>
+
+int ioctl(int fd, int request = SEC_GET_STATUS, struct secStatus* status);
+
+ DESCRIPTION
+
+ This call gets the status of the device.
+
+ PARAMETERS
+
+ int fd I File descriptor returned by a previous call to open().
+
+ int request I Equals SEC_GET_STATUS for this command.
+
+ struct secStatus* status O The status of the device.
+
+ RETURNS
+
+ ENODEV Device driver not loaded/available
+
+ EFAULT status is an invalid pointer
+
+ EBUSY Device or resource busy
+
+ EINVAL Invalid argument
+
+ EPERM File not opened with read permissions
+
+ EINTERNAL Internal error in the device driver
+
+
+
+</pre>
+</p>
+
+<p>
+<pre>
+
+int ioctl(int fd, int request = SEC_RESET_OVERLOAD);
+
+ DESCRIPTION
+
+ 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.
+
+
+ PARAMETERS
+
+ int fd I File descriptor returned by a previous call to open().
+
+ int request I Equals SEC_RESET_OVERLOAD for this command.
+
+ RETURNS
+
+ EBADF fd is not a valid file descriptor.
+
+ EPERM Permission denied (needs read/write access)
+
+ EINTERNAL Internal error in the device driver
+
+
+
+</pre>
+</p>
+
+<p>
+<pre>
+
+int ioctl(int fd, int request = SEC_SEND_SEQUENCE, struct secCmdSequence *seq);
+
+ DESCRIPTION
+
+ This ioctl call is used to send a sequence of DiSEqCTM and/or V-SEC
+ commands. The first version of the SEC device does not support V-SEC
+ signalling and it aborts the operation with an error code if a V-SEC
+ command is detected in the input data.
+
+ ! The call will fail with errno set to EBUSOVERLOAD if the bus is
+ overloaded. If the bus is overloaded, SEC_RESET_OVERLOAD can be
+ called and the operation can be retried.
+
+ ! If seq.numCommands equals 0 and seq.miniCommand equals SEC_MINI_NONE,
+ the bus voltage will be switched and the continuous 22kHz tone
+ generation enabled/disabled immediately.
+
+ This operation is atomic. If several processes calls this ioctl
+ simultaneously, the operations will be serialised so a complete sequence
+ is sent at a time.
+
+ PARAMETERS
+
+ int fd I File descriptor returned by a previous call to open().
+
+ int request I Equals SEC_SEND_SEQUENCE for this command.
+
+ struct secCmdSequence *seq I Pointer to the command sequence to be transmitted.
+
+ RETURNS
+
+ EBADF Fd is not a valid file descriptor.
+
+ EFAULT Seq points to an invalid address.
+
+ EINVAL The data structure referred to by seq is invalid in
+ some way.
+
+ EPERM Permission denied (needs read/write access)
+
+ EINTERNAL Internal error in the device driver
+
+
+ EBUSMODE The device is not prepared for transmission
+ (e.g. it might be manually powered off).
+
+ EBUSOVERLOAD Bus overload has occurred.
+
+
+
+</pre>
+</p>
+
+<p>
+<pre>
+
+int ioctl(int fd, int request = SEC_SET_TONE, secToneMode tone);
+
+ DESCRIPTION
+
+ This call is used to set the generation of the continuous 22kHz tone.
+ The possibility to just change the tone mode is already provided by
+ ioctl SEC_SEND_SEQUENCE, but SEC_SET_TONE is an easier to use interface.
+ To keep the transmission of a command sequence (see section 4.4.5 ) as
+ an atomic operation, SEC_SET_TONE will block if a transmission is in
+ progress. This call requires read/write permissions.
+
+ PARAMETERS
+
+ int fd I File descriptor returned by a previous call to open().
+
+ int request I Equals SEC_SET_TONE for this command.
+
+ secToneMode tone I The requested tone generation mode (on/off).
+
+ RETURNS
+
+ ENODEV Device driver not loaded/available
+
+ EBUSY Device or resource busy
+
+ EINVAL Invalid argument
+
+ EPERM File not opened with read permissions
+
+ EINTERNAL Internal error in the device driver
+
+
+
+</pre>
+</p>
+
+<p>
+<pre>
+
+int ioctl(int fd, int request = SEC_SET_VOLTAGE, secVoltage voltage);
+
+ DESCRIPTION
+
+ This call is used to set the bus voltage. The possibility to just change
+ the bus voltage is already provided by ioctl SEC_SEND_SEQUENCE, but
+ SEC_SET_VOLTAGE is an easier to use interface.
+ To keep the transmission of a command sequence (see section 4.4.5 ) as
+ an atomic operation, SEC_SET_VOLTAGE will block if a transmission is in
+ progress.
+ This call requires read/write permissions.
+
+ PARAMETERS
+
+ int fd I File descriptor returned by a previous call to open().
+
+ int request I Equals SEC_SET_VOLTAGE for this command.
+
+ secVoltage voltage I The requested bus voltage.
+
+ RETURNS
+
+ ENODEV Device driver not loaded/available
+
+ EBUSY Device or resource busy
+
+ EINVAL Invalid argument
+
+ EPERM File not opened with read permissions
+
+ EINTERNAL Internal error in the device driver
+
+
+
+</pre>
+</p>
+ </p>
+ </td></tr></table></body></html>
+
+<!-- This page was served in 1482 milliseconds by Cocoon 1.7.4 -->