3.4. 数字电视条件接收 kABI

struct dvb_ca_en50221

描述 CA 接口的结构体

定义:

struct dvb_ca_en50221 {
    struct module *owner;
    int (*read_attribute_mem)(struct dvb_ca_en50221 *ca, int slot, int address);
    int (*write_attribute_mem)(struct dvb_ca_en50221 *ca, int slot, int address, u8 value);
    int (*read_cam_control)(struct dvb_ca_en50221 *ca, int slot, u8 address);
    int (*write_cam_control)(struct dvb_ca_en50221 *ca, int slot, u8 address, u8 value);
    int (*read_data)(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount);
    int (*write_data)(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount);
    int (*slot_reset)(struct dvb_ca_en50221 *ca, int slot);
    int (*slot_shutdown)(struct dvb_ca_en50221 *ca, int slot);
    int (*slot_ts_enable)(struct dvb_ca_en50221 *ca, int slot);
    int (*poll_slot_status)(struct dvb_ca_en50221 *ca, int slot, int open);
    void *data;
    void *private;
};

成员

owner

拥有此结构的模块

read_attribute_mem

用于读取 CAM 上的属性存储器的函数

write_attribute_mem

用于写入 CAM 上的属性存储器的函数

read_cam_control

用于读取 CAM 上的控制接口的函数

write_cam_control

用于读取 CAM 上的控制接口的函数

read_data

用于读取数据(块模式)的函数

write_data

用于写入数据(块模式)的函数

slot_reset

用于重置 CAM 插槽的函数

slot_shutdown

用于关闭 CAM 插槽的函数

slot_ts_enable

用于启用 CAM 插槽上的传输流的函数

poll_slot_status

用于轮询插槽状态的函数。仅在未设置 DVB_CA_FLAG_EN50221_IRQ_CAMCHANGE 时才需要。

data

私有数据,供调用者使用。

private

dvb_ca 核心使用的不透明数据。请勿修改!

注意

read_*、write_* 和 poll_slot_status 函数将同时为不同的插槽调用,如果合适,需要使用锁。不会同时访问一个插槽。

void dvb_ca_en50221_camchange_irq(struct dvb_ca_en50221 *pubca, int slot, int change_type)

发生了 CAMCHANGE IRQ。

参数

struct dvb_ca_en50221 *pubca

CA 实例。

int slot

相关的插槽。

int change_type

DVB_CA_CAMCHANGE_* 值之一

void dvb_ca_en50221_camready_irq(struct dvb_ca_en50221 *pubca, int slot)

发生了 CAMREADY IRQ。

参数

struct dvb_ca_en50221 *pubca

CA 实例。

int slot

相关的插槽。

void dvb_ca_en50221_frda_irq(struct dvb_ca_en50221 *ca, int slot)

发生了 FR 或 DA IRQ。

参数

struct dvb_ca_en50221 *ca

CA 实例。

int slot

相关的插槽。

int dvb_ca_en50221_init(struct dvb_adapter *dvb_adapter, struct dvb_ca_en50221 *ca, int flags, int slot_count)

初始化一个新的 DVB CA 设备。

参数

struct dvb_adapter *dvb_adapter

DVB 适配器,用于附加新的 CA 设备。

struct dvb_ca_en50221 *ca

dvb_ca 实例。

int flags

描述 CA 设备的标志 (DVB_CA_EN50221_FLAG_*)。

int slot_count

支持的插槽数。

描述

return 成功返回 0,失败返回非零值

void dvb_ca_en50221_release(struct dvb_ca_en50221 *ca)

释放 DVB CA 设备。

参数

struct dvb_ca_en50221 *ca

关联的 dvb_ca 实例。