Commit fed7c4fe authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

media: ca.h: document most CA data types

For most of the stuff there, documenting is easy, as the
header file contains information.

Yet, I was unable to document two data structs:
	ca_msg and ca_descr

As those two structs are used by a few drivers, keep them.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 833ff5e7
...@@ -6,91 +6,36 @@ ...@@ -6,91 +6,36 @@
CA Data Types CA Data Types
************* *************
.. kernel-doc:: include/uapi/linux/dvb/ca.h
.. c:type:: ca_slot_info .. c:type:: ca_msg
ca_slot_info_t
==============
.. code-block:: c
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;
.. c:type:: ca_descr_info
ca_descr_info_t
===============
.. code-block:: c
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;
.. c:type:: ca_caps
ca_caps_t
=========
.. code-block:: c Undocumented data types
=======================
typedef struct ca_caps { .. note::
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;
Those data types are undocumented. Documentation is welcome.
.. c:type:: ca_msg .. c:type:: ca_msg
ca_msg_t
========
.. code-block:: c .. code-block:: c
/* a message to/from a CI-CAM */ /* a message to/from a CI-CAM */
typedef struct ca_msg { struct ca_msg {
unsigned int index; unsigned int index;
unsigned int type; unsigned int type;
unsigned int length; unsigned int length;
unsigned char msg[256]; unsigned char msg[256];
} ca_msg_t; };
.. c:type:: ca_descr .. c:type:: ca_descr
ca_descr_t
==========
.. code-block:: c .. code-block:: c
typedef struct ca_descr { struct ca_descr {
unsigned int index; unsigned int index;
unsigned int parity; unsigned int parity;
unsigned char cw[8]; unsigned char cw[8];
} ca_descr_t; };
...@@ -24,39 +24,81 @@ ...@@ -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 num;
int type;
int type; /* CA interface this slot supports */ #define CA_CI 1
#define CA_CI 1 /* CI high level interface */ #define CA_CI_LINK 2
#define CA_CI_LINK 2 /* CI link layer level interface */ #define CA_CI_PHYS 4
#define CA_CI_PHYS 4 /* CI physical layer level interface */ #define CA_DESCR 8
#define CA_DESCR 8 /* built-in descrambler */ #define CA_SC 128
#define CA_SC 128 /* simple smart card interface */
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 num;
unsigned int type; /* type of supported scrambling system */ 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_num;
unsigned int slot_type; /* OR of all supported types */ unsigned int slot_type;
unsigned int descr_num; /* total number of descrambler slots (keys) */ unsigned int descr_num;
unsigned int descr_type; /* OR of all supported types */ unsigned int descr_type;
}; };
/* a message to/from a CI-CAM */ /* a message to/from a CI-CAM */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment