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;