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

要将新 CA 设备附加到的 DVB 适配器。

struct dvb_ca_en50221 *ca

dvb_ca 实例。

int flags

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

int slot_count

支持的插槽数。

描述

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

void dvb_ca_en50221_release(struct dvb_ca_en50221 *ca)

释放 DVB CA 设备。

参数

struct dvb_ca_en50221 *ca

关联的 dvb_ca 实例。