blob: d9e27c77426cf9e94ad0365b801032cd7ab6d5d6 [file] [log] [blame]
.. -*- coding: utf-8; mode: rst -*-
.. _ca_data_types:
*************
CA Data Types
*************
.. c:type:: ca_slot_info
ca_slot_info_t
==============
.. code-block:: c
typedef struct ca_slot_info {
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_DESCR 8 /* built-in descrambler */
#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;
.. c:type:: ca_descr_info
ca_descr_info_t
===============
.. code-block:: c
typedef struct ca_descr_info {
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;
.. c:type:: ca_caps
ca_caps_t
=========
.. code-block:: c
typedef struct ca_caps {
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;
.. c:type:: ca_msg
ca_msg_t
========
.. code-block:: c
/* a message to/from a CI-CAM */
typedef struct ca_msg {
unsigned int index;
unsigned int type;
unsigned int length;
unsigned char msg[256];
} ca_msg_t;
.. c:type:: ca_descr
ca_descr_t
==========
.. code-block:: c
typedef struct ca_descr {
unsigned int index;
unsigned int parity;
unsigned char cw[8];
} ca_descr_t;
.. c:type:: ca_pid
ca-pid
======
.. code-block:: c
typedef struct ca_pid {
unsigned int pid;
int index; /* -1 == disable*/
} ca_pid_t;