博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中断API之irq_set_chip_data
阅读量:4214 次
发布时间:2019-05-26

本文共 906 字,大约阅读时间需要 3 分钟。

int irq_set_chip_data(unsigned int irq, void *data)为形参的irq设置对应的data其使用的例程如下:void irq_remove_generic_chip(struct irq_chip_generic *gc, u32 msk,			     unsigned int clr, unsigned int set){	unsigned int i = gc->irq_base;	raw_spin_lock(&gc_lock);	list_del(&gc->list);	raw_spin_unlock(&gc_lock);	for (; msk; msk >>= 1, i++) {		if (!(msk & 0x01))			continue;		/* Remove handler first. That will mask the irq line */		irq_set_handler(i, NULL);		irq_set_chip(i, &no_irq_chip);		irq_set_chip_data(i, NULL);		irq_modify_status(i, clr, set);	}}其源码分析如下:int irq_set_chip_data(unsigned int irq, void *data){	unsigned long flags;	#通过irq number得到中断描述符。得到中断描述符并对中断描述符操作的过程中需要用irq_get_desc_lock/irq_put_desc_unlock 保护起来	struct irq_desc *desc = irq_get_desc_lock(irq, &flags, 0);	#中断描述符为null的话,退出	if (!desc)		return -EINVAL;	#给中断描述符的成员变量赋值为形参的data	desc->irq_data.chip_data = data;	irq_put_desc_unlock(desc, flags);	return 0;}

转载地址:http://ugjmi.baihongyu.com/

你可能感兴趣的文章
LINUX时间管理
查看>>
定时器的使用
查看>>
为Android加入busybox工具
查看>>
使用技巧busybox
查看>>
如何查看与/dev/input目录下的event对应的设备
查看>>
bootloader-bootable解析
查看>>
bootloader (LK)&&android lk bootloader中相关修改指南
查看>>
SD卡驱动分析--基于高通平台
查看>>
SD Card 驱动流程分析
查看>>
Linux之debugfs介绍
查看>>
关于sd卡中一些概念的理解
查看>>
sd卡驱动分析之相关硬件操作和总结
查看>>
好的播文
查看>>
linux dd命令解析
查看>>
linux find命令详解
查看>>
S3C2440上touchscreen触摸屏驱动
查看>>
USB History Viewing
查看>>
怎样做可靠的分布式锁,Redlock 真的可行么?
查看>>
[图文] Seata AT 模式分布式事务源码分析
查看>>
pm 源码分析
查看>>