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