我编程在C内核模块,其努力访问IRQ描述数组元素和显示这些元件的所有操作名称。
一开始,我以为这irq_desc阵列sonething像宏但编译后,我的理解是不是。 然后我用for_each_irq_desc(IRQ,DESC)功能。 但这次返回的警告:
[/home/samet/Masaüstü/Assignment3/Ass-1.ko]未定义 “irq_to_desc”:警告!
这个警告后,我试图模块用insmod到内核这次的错误消息弹出:
insmod的:错误插入“./Ass-1.ko”:-1模块未知符号
在这之后我包括我认为有关这一过程的所有头文件,但没有任何改变。
因为它是非常短的我附上的代码:
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/irq.h>
#include <linux/irqdesc.h>
#include <linux/irqnr.h>
struct task_struct* p;
struct irq_desc* irqElement;
int irq, desc;
static int __init ass_1_init(void)
{
printk(KERN_INFO "Ass-1 module is starting...\n");
for_each_process(p){printk("%d\t%s\n", p->pid, p->comm);}
for_each_irq_desc(irq, irqElement){printk("%p\n", irqElement);}
return 0;
}
static void __exit ass_1_exit(void)
{
printk(KERN_INFO "Ass-1 module is finishing...\n");
}
module_init(ass_1_init);
module_exit(ass_1_exit);