|
@@ -24,39 +24,81 @@
|
|
#ifndef _DVBCA_H_
|
|
#ifndef _DVBCA_H_
|
|
#define _DVBCA_H_
|
|
#define _DVBCA_H_
|
|
|
|
|
|
-/* slot interface types and info */
|
|
|
|
|
|
+/**
|
|
|
|
+ * struct ca_slot_info - CA slot interface types and info.
|
|
|
|
+ *
|
|
|
|
+ * @num: slot number.
|
|
|
|
+ * @type: slot type.
|
|
|
|
+ * @flags: flags applicable to the slot.
|
|
|
|
+ *
|
|
|
|
+ * This struct stores the CA slot information.
|
|
|
|
+ *
|
|
|
|
+ * @type can be:
|
|
|
|
+ *
|
|
|
|
+ * - %CA_CI - CI high level interface;
|
|
|
|
+ * - %CA_CI_LINK - CI link layer level interface;
|
|
|
|
+ * - %CA_CI_PHYS - CI physical layer level interface;
|
|
|
|
+ * - %CA_DESCR - built-in descrambler;
|
|
|
|
+ * - %CA_SC -simple smart card interface.
|
|
|
|
+ *
|
|
|
|
+ * @flags can be:
|
|
|
|
+ *
|
|
|
|
+ * - %CA_CI_MODULE_PRESENT - module (or card) inserted;
|
|
|
|
+ * - %CA_CI_MODULE_READY - module is ready for usage.
|
|
|
|
+ */
|
|
|
|
|
|
struct ca_slot_info {
|
|
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 */
|
|
|
|
|
|
+ int num;
|
|
|
|
+ int type;
|
|
|
|
+#define CA_CI 1
|
|
|
|
+#define CA_CI_LINK 2
|
|
|
|
+#define CA_CI_PHYS 4
|
|
|
|
+#define CA_DESCR 8
|
|
|
|
+#define CA_SC 128
|
|
|
|
|
|
unsigned int flags;
|
|
unsigned int flags;
|
|
-#define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */
|
|
|
|
|
|
+#define CA_CI_MODULE_PRESENT 1
|
|
#define CA_CI_MODULE_READY 2
|
|
#define CA_CI_MODULE_READY 2
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
-/* descrambler types and info */
|
|
|
|
-
|
|
|
|
|
|
+/**
|
|
|
|
+ * struct ca_descr_info - descrambler types and info.
|
|
|
|
+ *
|
|
|
|
+ * @num: number of available descramblers (keys).
|
|
|
|
+ * @type: type of supported scrambling system.
|
|
|
|
+ *
|
|
|
|
+ * Identifies the number of descramblers and their type.
|
|
|
|
+ *
|
|
|
|
+ * @type can be:
|
|
|
|
+ *
|
|
|
|
+ * - %CA_ECD - European Common Descrambler (ECD) hardware;
|
|
|
|
+ * - %CA_NDS - Videoguard (NDS) hardware;
|
|
|
|
+ * - %CA_DSS - Distributed Sample Scrambling (DSS) hardware.
|
|
|
|
+ */
|
|
struct ca_descr_info {
|
|
struct ca_descr_info {
|
|
- unsigned int num; /* number of available descramblers (keys) */
|
|
|
|
- unsigned int type; /* type of supported scrambling system */
|
|
|
|
|
|
+ unsigned int num;
|
|
|
|
+ unsigned int type;
|
|
#define CA_ECD 1
|
|
#define CA_ECD 1
|
|
#define CA_NDS 2
|
|
#define CA_NDS 2
|
|
#define CA_DSS 4
|
|
#define CA_DSS 4
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * struct ca_caps - CA slot interface capabilities.
|
|
|
|
+ *
|
|
|
|
+ * @slot_num: total number of CA card and module slots.
|
|
|
|
+ * @slot_type: bitmap with all supported types as defined at
|
|
|
|
+ * &struct ca_slot_info (e. g. %CA_CI, %CA_CI_LINK, etc).
|
|
|
|
+ * @descr_num: total number of descrambler slots (keys)
|
|
|
|
+ * @descr_type: bitmap with all supported types as defined at
|
|
|
|
+ * &struct ca_descr_info (e. g. %CA_ECD, %CA_NDS, etc).
|
|
|
|
+ */
|
|
struct ca_caps {
|
|
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 */
|
|
|
|
|
|
+ unsigned int slot_num;
|
|
|
|
+ unsigned int slot_type;
|
|
|
|
+ unsigned int descr_num;
|
|
|
|
+ unsigned int descr_type;
|
|
};
|
|
};
|
|
|
|
|
|
/* a message to/from a CI-CAM */
|
|
/* a message to/from a CI-CAM */
|