?? irq.c.txt
字號:
any problem,send mail to lysindybear@sina.com.cn
相關(guān)文件
****************************數(shù)據(jù)結(jié)構(gòu)********************************
irq_desc_t irq_desc[NR_IRQS] //這是硬件中斷的向量表
********************************************************************
*****************************基本函數(shù)*******************************
這個函數(shù)分配一個中斷引腳,
(1)int request_irq(unsigned int irq,
void (*handler)(int, void *, struct pt_regs *),
unsigned long irqflags,
const char * devname,
void *dev_id)
action = (struct irqaction *)kmalloc(sizeof(struct irqaction), GFP_KERNEL);//分配action
action->handler = handler;
…… //初始化action
retval = setup_irq(irq, action); //調(diào)用相應(yīng)的irq建立函數(shù)
(2)int setup_irq(unsigned int irq, struct irqaction * new)
irq_desc_t *desc = irq_desc + irq; //得到當(dāng)前的irq上的描述符
p = &desc->action; //得到當(dāng)前的action
…… //如果不能共享一個irq線,就返回busy。否則加到這個action后面。
//從這里可以看出來,IRQ是怎樣使得系統(tǒng)可以公用一根irq線,主要是利用這個一個action結(jié)構(gòu),
//不同的設(shè)備可以連接到后面,然后在座判斷
********************************************************************
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -