.. -*- 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;