zoukankan      html  css  js  c++  java
  • Linux驱动中相关函数查询

    request_irq()

    在linux内核中用于申请中断的函数是request_irq(),函数原型在Kernel/irq/manage.c中定义:
    int request_irq(unsigned int irq, irq_handler_t handler,
                             unsigned long irqflags, const char *devname, void *dev_id)
    irq
    是要申请的硬件中断号。
     
    handler
    是向系统注册的中断处理函数,是一个回调函数,中断发生时,系统调用这个函数,dev_id参数将被传递给它。
     
    irqflags
    是中断处理的属性,若设置了IRQF_DISABLED
    (老版本中的SA_INTERRUPT,本版zhon已经不支持了),则表示中断处理程序是快速处理程序,快速处理程序被调用时屏蔽所有中断,慢速处理程
    序不屏蔽;若设置了IRQF_SHARED
    (老版本中的SA_SHIRQ),则表示多个设备共享中断,若设置了IRQF_SAMPLE_RANDOM(老版本中的
    SA_SAMPLE_RANDOM),表示对系统熵有贡献,对系统获取随机数有好处。(这几个flag是可以通过或的方式同时使用的)
     
    dev_id
    在中断共享时会用到,一般设置为这个设备的设备结构体或者NULL。
     
    devname
    设置中断名称,在cat /proc/interrupts中可以看到此名称。
     
    request_irq()返回0表示成功,返回-INVAL表示中断号无效或处理函数指针为NULL,返回-EBUSY表示中断已经被占用且不能共享。 ......


    自旋锁相关操作函数

    函数spin_lock_irqsave() 保存中断的当然状态,并禁止本地中断,然后再去获取指定的锁。spin_lock_irqsave()对指定的锁解锁,然后让中断恢复到加锁前的状态。

  • 相关阅读:
    linux之awk命令
    HDU 2097 Sky数 进制转换
    HDU 2077 汉诺塔IV
    HDU 2094 产生冠军 dfs加map容器
    HDU 2073 叠框
    HDU 2083 简易版之最短距离
    HDU 2063 过山车 二分匹配
    天梯 1014 装箱问题
    天梯 1214 线段覆盖
    天梯 1098 均分纸牌
  • 原文地址:https://www.cnblogs.com/yanhc/p/2175236.html
Copyright © 2011-2022 走看看