Table of Contents
The DVB CA device controls the conditional access hardware. It can be accessed through /dev/dvb/adapter0/ca0. Data types and and ioctl definitions can be accessed by including linux/dvb/ca.h in your application.
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;
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;
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;
/⋆ 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;
typedef struct ca_descr {
unsigned int index;
unsigned int parity;
unsigned char cw[8];
} ca_descr_t;