Commit | Line | Data |
---|---|---|
5377d91f MH |
1 | .. -*- coding: utf-8; mode: rst -*- |
2 | ||
3 | .. _ca_data_types: | |
4 | ||
5 | ************* | |
6 | CA Data Types | |
7 | ************* | |
8 | ||
9 | ||
e8be7e97 | 10 | .. c:type:: ca_slot_info |
5377d91f MH |
11 | |
12 | ca_slot_info_t | |
13 | ============== | |
14 | ||
15 | ||
16 | .. code-block:: c | |
17 | ||
18 | typedef struct ca_slot_info { | |
0579e6e3 | 19 | int num; /* slot number */ |
5377d91f | 20 | |
0579e6e3 | 21 | int type; /* CA interface this slot supports */ |
5377d91f MH |
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 | ||
0579e6e3 | 28 | unsigned int flags; |
5377d91f MH |
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 | ||
e8be7e97 | 34 | .. c:type:: ca_descr_info |
5377d91f MH |
35 | |
36 | ca_descr_info_t | |
37 | =============== | |
38 | ||
39 | ||
40 | .. code-block:: c | |
41 | ||
42 | typedef struct ca_descr_info { | |
0579e6e3 MCC |
43 | unsigned int num; /* number of available descramblers (keys) */ |
44 | unsigned int type; /* type of supported scrambling system */ | |
5377d91f MH |
45 | #define CA_ECD 1 |
46 | #define CA_NDS 2 | |
47 | #define CA_DSS 4 | |
48 | } ca_descr_info_t; | |
49 | ||
50 | ||
e8be7e97 | 51 | .. c:type:: ca_caps |
5377d91f MH |
52 | |
53 | ca_caps_t | |
54 | ========= | |
55 | ||
56 | ||
57 | .. code-block:: c | |
58 | ||
59 | typedef struct ca_caps { | |
0579e6e3 MCC |
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 */ | |
5377d91f MH |
64 | } ca_cap_t; |
65 | ||
66 | ||
e8be7e97 | 67 | .. c:type:: ca_msg |
5377d91f MH |
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 { | |
0579e6e3 MCC |
77 | unsigned int index; |
78 | unsigned int type; | |
79 | unsigned int length; | |
8968da9b | 80 | unsigned char msg[256]; |
5377d91f MH |
81 | } ca_msg_t; |
82 | ||
83 | ||
e8be7e97 | 84 | .. c:type:: ca_descr |
5377d91f MH |
85 | |
86 | ca_descr_t | |
87 | ========== | |
88 | ||
89 | ||
90 | .. code-block:: c | |
91 | ||
92 | typedef struct ca_descr { | |
0579e6e3 MCC |
93 | unsigned int index; |
94 | unsigned int parity; | |
8968da9b | 95 | unsigned char cw[8]; |
5377d91f MH |
96 | } ca_descr_t; |
97 | ||
98 | ||
e8be7e97 | 99 | .. c:type:: ca_pid |
5377d91f MH |
100 | |
101 | ca-pid | |
102 | ====== | |
103 | ||
104 | ||
105 | .. code-block:: c | |
106 | ||
107 | typedef struct ca_pid { | |
0579e6e3 MCC |
108 | unsigned int pid; |
109 | int index; /* -1 == disable*/ | |
5377d91f | 110 | } ca_pid_t; |