W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
本章中介紹了這些關(guān)于中斷管理的符號(hào):
#include <linux/interrupt.h>
int request_irq(unsigned int irq, irqreturn_t (*handler)( ), unsigned long flags, const char *dev_name, void *dev_id);
void free_irq(unsigned int irq, void *dev_id);
調(diào)用這個(gè)注冊(cè)和注銷一個(gè)中斷處理.
#include <linux/irq.h.h>
int can_request_irq(unsigned int irq, unsigned long flags);
這個(gè)函數(shù), 在 i386 和 x86_64 體系上有, 返回一個(gè)非零值如果一個(gè)分配給定中斷線的企圖成功.
#include <asm/signal.h>
SA_INTERRUPT
SA_SHIRQ
SA_SAMPLE_RANDOM
給 request_irq 的標(biāo)志. SA_INTERRUPT 請(qǐng)求安裝一個(gè)快速處理者( 相反是一個(gè)慢速的). SA_SHIRQ 安裝一個(gè)共享的處理者, 并且第 3 個(gè) flag 聲稱中斷時(shí)戳可用來(lái)產(chǎn)生系統(tǒng)熵.
/proc/interrupts
/proc/stat
報(bào)告硬件中斷和安裝的處理者的文件系統(tǒng)節(jié)點(diǎn).
unsigned long probe_irq_on(void);
int probe_irq_off(unsigned long);
驅(qū)動(dòng)使用的函數(shù), 當(dāng)它不得不探測(cè)來(lái)決定哪個(gè)中斷線被設(shè)備在使用. probe_irq_on 的結(jié)果必須傳回給 probe_irq_off 在中斷產(chǎn)生之后. probe_irq_off 的返回值是被探測(cè)的中斷號(hào).
IRQ_NONE
IRQ_HANDLED
IRQ_RETVAL(int x)
從一個(gè)中斷處理返回的可能值, 指示是否一個(gè)來(lái)自設(shè)備的真正的中斷出現(xiàn)了.
void disable_irq(int irq);
void disable_irq_nosync(int irq);
void enable_irq(int irq);
驅(qū)動(dòng)可以使能和禁止中斷報(bào)告. 如果硬件試圖在中斷禁止時(shí)產(chǎn)生一個(gè)中斷, 這個(gè)中斷永遠(yuǎn)丟失了. 一個(gè)使用一個(gè)共享處理者的驅(qū)動(dòng)必須不使用這個(gè)函數(shù).
void local_irq_save(unsigned long flags);
void local_irq_restore(unsigned long flags);
使用 local_irq_save 來(lái)禁止本地處理器的中斷并且記住它們之前的狀態(tài). flags 可以被傳遞給 local_irq_restore 來(lái)恢復(fù)之前的中斷狀態(tài).
void local_irq_disable(void);
void local_irq_enable(void);
在當(dāng)前處理器熵?zé)o條件禁止和使能中斷的函數(shù).
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: