Merge tag 'tegra-for-4.8-i2c' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra...
[cascardo/linux.git] / Documentation / media / uapi / dvb / ca_data_types.rst
1 .. -*- coding: utf-8; mode: rst -*-
2
3 .. _ca_data_types:
4
5 *************
6 CA Data Types
7 *************
8
9
10 .. c:type:: ca_slot_info
11
12 ca_slot_info_t
13 ==============
14
15
16 .. code-block:: c
17
18     typedef struct ca_slot_info {
19         int num;               /* slot number */
20
21         int type;              /* CA interface this slot supports */
22     #define CA_CI            1     /* CI high level interface */
23     #define CA_CI_LINK       2     /* CI link layer level interface */
24     #define CA_CI_PHYS       4     /* CI physical layer level interface */
25     #define CA_DESCR         8     /* built-in descrambler */
26     #define CA_SC          128     /* simple smart card interface */
27
28         unsigned int flags;
29     #define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */
30     #define CA_CI_MODULE_READY   2
31     } ca_slot_info_t;
32
33
34 .. c:type:: ca_descr_info
35
36 ca_descr_info_t
37 ===============
38
39
40 .. code-block:: c
41
42     typedef struct ca_descr_info {
43         unsigned int num;  /* number of available descramblers (keys) */
44         unsigned int type; /* type of supported scrambling system */
45     #define CA_ECD           1
46     #define CA_NDS           2
47     #define CA_DSS           4
48     } ca_descr_info_t;
49
50
51 .. c:type:: ca_caps
52
53 ca_caps_t
54 =========
55
56
57 .. code-block:: c
58
59     typedef struct ca_caps {
60         unsigned int slot_num;  /* total number of CA card and module slots */
61         unsigned int slot_type; /* OR of all supported types */
62         unsigned int descr_num; /* total number of descrambler slots (keys) */
63         unsigned int descr_type;/* OR of all supported types */
64      } ca_cap_t;
65
66
67 .. c:type:: ca_msg
68
69 ca_msg_t
70 ========
71
72
73 .. code-block:: c
74
75     /* a message to/from a CI-CAM */
76     typedef struct ca_msg {
77         unsigned int index;
78         unsigned int type;
79         unsigned int length;
80         unsigned char msg[256];
81     } ca_msg_t;
82
83
84 .. c:type:: ca_descr
85
86 ca_descr_t
87 ==========
88
89
90 .. code-block:: c
91
92     typedef struct ca_descr {
93         unsigned int index;
94         unsigned int parity;
95         unsigned char cw[8];
96     } ca_descr_t;
97
98
99 .. c:type:: ca_pid
100
101 ca-pid
102 ======
103
104
105 .. code-block:: c
106
107     typedef struct ca_pid {
108         unsigned int pid;
109         int index;      /* -1 == disable*/
110     } ca_pid_t;