📄 ca.tex
字号:
\devsec{DVB CA Device}The DVB CA device controls the conditional access hardware.It can be accessed through \texttt{/dev/dvb/adapter0/ca0}.Data types and and ioctl definitions can be accessed by including\texttt{linux/dvb/ca.h} in your application.\devsubsec{CA Data Types}\devsubsubsec{ca\_slot\_info\_t}\label{caslotinfo}\begin{verbatim}/* slot interface types and info */typedef struct ca_slot_info_s { int num; /* slot number */ int type; /* CA interface this slot supports */#define CA_CI 1 /* CI high level interface */#define CA_CI_LINK 2 /* CI link layer level interface */#define CA_CI_PHYS 4 /* CI physical layer level interface */#define CA_SC 128 /* simple smart card interface */ unsigned int flags;#define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */#define CA_CI_MODULE_READY 2} ca_slot_info_t;\end{verbatim}\devsubsubsec{ca\_descr\_info\_t}\label{cadescrinfo}\begin{verbatim}typedef struct ca_descr_info_s { unsigned int num; /* number of available descramblers (keys) */ unsigned int type; /* type of supported scrambling system */#define CA_ECD 1#define CA_NDS 2#define CA_DSS 4} ca_descr_info_t;\end{verbatim}\devsubsubsec{ca\_cap\_t}\label{cacap}\begin{verbatim}typedef struct ca_cap_s { unsigned int slot_num; /* total number of CA card and module slots */ unsigned int slot_type; /* OR of all supported types */ unsigned int descr_num; /* total number of descrambler slots (keys) */ unsigned int descr_type;/* OR of all supported types */} ca_cap_t;\end{verbatim}\devsubsubsec{ca\_msg\_t}\label{camsg}\begin{verbatim}/* a message to/from a CI-CAM */typedef struct ca_msg_s { unsigned int index; unsigned int type; unsigned int length; unsigned char msg[256];} ca_msg_t;\end{verbatim}\devsubsubsec{ca\_descr\_t}\label{cadescr}\begin{verbatim}typedef struct ca_descr_s { unsigned int index; unsigned int parity; unsigned char cw[8];} ca_descr_t;\end{verbatim}\clearpage\devsubsec{CA Function Calls}\function{open()}{ int open(const char *deviceName, int flags);}{ This system call opens a named ca device (e.g. /dev/ost/ca) for subsequent use. When an open() call has succeeded, the device will be ready for use. The significance of blocking or non-blocking mode is described in the documentation for functions where there is a difference. It does not affect the semantics of the open() call itself. A 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. Only one user can open the CA Device in O\_RDWR mode. All other attempts to open the device in this mode will fail, and an error code will be returned. }{ const char *deviceName & Name of specific video device.\\ int flags & A bit-wise OR of the following flags:\\ & \hspace{1em} O\_RDONLY read-only access\\ & \hspace{1em} O\_RDWR read/write access\\ & \hspace{1em} O\_NONBLOCK open in non-blocking mode \\ & \hspace{1em} (blocking mode is the default)\\ }{ ENODEV & Device driver not loaded/available.\\ EINTERNAL & Internal error.\\ EBUSY & Device or resource busy.\\ EINVAL & Invalid argument.\\}\function{close()}{ int close(int fd);}{ This system call closes a previously opened audio device. }{ int fd & File descriptor returned by a previous call to open().\\ }{ EBADF & fd is not a valid open file descriptor.\\}%%% Local Variables: %%% mode: latex%%% TeX-master: "dvbapi"%%% End:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -