Merge tag 'xtensa-20161005' of git://github.com/jcmvbkbc/linux-xtensa
[sfrench/cifs-2.6.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 .. _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 .. _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 .. _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 .. _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 .. _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 .. _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;