1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/****************************************************************************
2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   This header was automatically generated from a Linux kernel header
5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   of the same name, to make information necessary for userspace to
6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   structures, and macros generated from the original header, and thus,
8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   contains no copyrightable information.
9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   To edit the content of this header, modify the corresponding
11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   Any manual change here will be lost the next time this script will
15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   be run. You've been warned!
16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/
19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _DVBCA_H_
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _DVBCA_H_
211308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferrisstruct ca_slot_info {
22d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  int num;
23d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  int type;
24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CA_CI 1
25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CA_CI_LINK 2
26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CA_CI_PHYS 4
27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CA_DESCR 8
28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CA_SC 128
29d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned int flags;
30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CA_CI_MODULE_PRESENT 1
31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CA_CI_MODULE_READY 2
321308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris};
331308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferrisstruct ca_descr_info {
34d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned int num;
35d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned int type;
36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CA_ECD 1
37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CA_NDS 2
38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CA_DSS 4
391308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris};
401308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferrisstruct ca_caps {
41d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned int slot_num;
42d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned int slot_type;
43d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned int descr_num;
44d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned int descr_type;
451308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris};
461308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferrisstruct ca_msg {
47d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned int index;
48d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned int type;
49d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned int length;
50d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned char msg[256];
511308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris};
521308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferrisstruct ca_descr {
53d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned int index;
54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned int parity;
55d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned char cw[8];
561308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris};
57655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define CA_RESET _IO('o', 128)
581308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define CA_GET_CAP _IOR('o', 129, struct ca_caps)
591308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define CA_GET_SLOT_INFO _IOR('o', 130, struct ca_slot_info)
601308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define CA_GET_DESCR_INFO _IOR('o', 131, struct ca_descr_info)
611308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define CA_GET_MSG _IOR('o', 132, struct ca_msg)
621308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define CA_SEND_MSG _IOW('o', 133, struct ca_msg)
631308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferris#define CA_SET_DESCR _IOW('o', 134, struct ca_descr)
641308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferristypedef struct ca_slot_info ca_slot_info_t;
651308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferristypedef struct ca_descr_info ca_descr_info_t;
661308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferristypedef struct ca_caps ca_caps_t;
671308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferristypedef struct ca_msg ca_msg_t;
681308ad3ab33294c3abfd96da12b6df58b381ce52Christopher Ferristypedef struct ca_descr ca_descr_t;
69655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
70