国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Linux內(nèi)核之旅 ? Blog Archive ? 內(nèi)核模塊編程之進(jìn)階(四)-編寫帶參數(shù)...

在此,我們將編寫一個模塊,其中有一個中斷函數(shù),當(dāng)內(nèi)核接收到某個 IRQ 上的一個中斷時會調(diào)用它。先給出全部代碼,讀者自己調(diào)試,把對該程序的理解跟到本貼后面。

—————————————-

#include <linux/module.h>
#include <linux/init.h>
#include <linux/interrupt.h>

static int irq;
static char *interface;

//MODULE_PARM_DESC(interface,”A network interface”);  2.4內(nèi)核中該宏的用法
molule_parm(interface,charp,0644) //2.6內(nèi)核中的宏
//MODULE_PARM_DESC(irq,”The IRQ of the network interface”);
module_param(irq,int,0644);

static irqreturn_t myinterrupt(int irq, void *dev_id, struct pt_regs *regs)
{
static int mycount = 0;
if (mycount < 10) {
printk(”Interrupt!\n”);
mycount++;
}
return IRQ_NONE;
}

static int __init myirqtest_init(void)
{
printk (”My module worked!11111\n”);
if (request_irq(irq, &myinterrupt, SA_SHIRQ,interface, &irq)) {
printk(KERN_ERR “myirqtest: cannot register IRQ %d\n”, irq);
return -EIO;
}
printk(”%s Request on IRQ %d succeeded\n”,interface,irq);

return 0;
}

static void __exit myirqtest_exit(void)
{
printk (”Unloading my module.\n”);
free_irq(irq, &irq);
printk(”Freeing IRQ %d\n”, irq);

return;
}

module_init(myirqtest_init);
module_exit(myirqtest_exit);

MODULE_LICENSE(”GPL”);
—————————————-
這里要說明的是,在插入模塊時,可以帶兩個參數(shù),例如
insmod myirq.ko interface=eth0 irq=9

其中 具體網(wǎng)卡 irq的值可以查看 cat /proc/interrupts

動手吧!以此為例,可以設(shè)計出各種各樣有價值的內(nèi)核模塊,貼出來體驗分享的快樂吧。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ubuntu 內(nèi)核模塊編譯——中斷
中斷處理中tasklet與工作隊列的使用
linux設(shè)備驅(qū)動歸納總結(jié)(六):3.中斷的上半部和下半部——tasklet
內(nèi)核并發(fā)控制---中斷屏蔽
Linux字符設(shè)備驅(qū)動框架(設(shè)備號是一個32位的整數(shù)用來唯一標(biāo)識Linux系統(tǒng)中的所有設(shè)備)
小白學(xué)Linux之內(nèi)核模塊編程-tiger
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服