DCA驱动框架

DCA驱动框架在Linux驱动目录dca下。

完整DCA驱动有三部分组成:

1)DCA驱动框架;

        这部分是Linux驱动服务层内容。提供者和请求者通过DCA驱动框架关联到一起,进行工作。

2)提供DCA服务的设备驱动框架;

申请和注册过程

struct dca_provider *alloc_dca_provider(const struct dca_ops *ops, int priv_size)

int register_dca_provider(struct dca_provider *dca, struct device *dev)

注销和释放过程

void unregister_dca_provider(struct dca_provider *dca, struct device *dev)

void free_dca_provider(struct dca_provider *dca)

核心数据结构是struct dca_provider, 该数据结构的 struct dca_ops描述了提供DCA服务。

struct dca_ops {
	int	(*add_requester)    (struct dca_provider *, struct device *);
	int	(*remove_requester) (struct dca_provider *, struct device *);
	u8	(*get_tag)	    (struct dca_provider *, struct device *,
				     int cpu);
	int	(*dev_managed)      (struct dca_provider *, struct device *);
};

3)请求DCA服务的设备驱动框架;

将设备添加为请求者过程

int dca_add_requester(struct device *dev)

将设备撤销请求者过程

int dca_remove_requester(struct device *dev)

在设备驱动正常使用过程中,需要获得tag标签值时,调用

u8 dca3_get_tag(struct device *dev, int cpu)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值