/⋆ 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;
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;
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;
/⋆ 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;
typedef struct ca_descr_s {
unsigned int index;
unsigned int parity;
unsigned char cw[8];
} ca_descr_t;