6.1. CA Data Types

6.1.1. ca_slot_info_t

 /⋆ 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;

6.1.2. ca_descr_info_t

 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;

6.1.3. ca_cap_t

 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;

6.1.4. ca_msg_t

 /⋆ 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;

6.1.5. ca_descr_t

 typedef struct ca_descr_s {
	 unsigned int index;
	 unsigned int parity;
	 unsigned char cw[8];
 } ca_descr_t;