aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/media/uapi/dvb/ca_data_types.rst
blob: d9e27c77426cf9e94ad0365b801032cd7ab6d5d6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
.. -*- coding: utf-8; mode: rst -*-

.. _ca_data_types:

*************
CA Data Types
*************


.. c:type:: ca_slot_info

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

    typedef 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 */
     } ca_cap_t;


.. c:type:: ca_msg

ca_msg_t
========


.. code-block:: c

    /* a message to/from a CI-CAM */
    typedef struct ca_msg {
	unsigned int index;
	unsigned int type;
	unsigned int length;
	unsigned char msg[256];
    } ca_msg_t;


.. c:type:: ca_descr

ca_descr_t
==========


.. code-block:: c

    typedef struct ca_descr {
	unsigned int index;
	unsigned int parity;
	unsigned char cw[8];
    } ca_descr_t;


.. c:type:: ca_pid

ca-pid
======


.. code-block:: c

    typedef struct ca_pid {
	unsigned int pid;
	int index;      /* -1 == disable*/
    } ca_pid_t;