2 Stimmen

Zugriff auf das IRQ-Beschreibungsfeld innerhalb eines Moduls und Anzeige der Aktionsnamen

Ich programmiere ein Kernelmodul in C, das Schwierigkeiten hat, auf IRQ-Beschreibungs-Array-Elemente zuzugreifen und alle Aktionsnamen dieser Elemente anzuzeigen.

Am Anfang dachte ich, dass diese irq_desc Array ist sonething wie ein Makro, aber nach dem Kompilieren ich verstanden, es ist nicht. Dann habe ich die Funktion for_each_irq_desc(irq, desc) verwendet, aber dieses Mal wurde eine Warnung ausgegeben:

WARNING: "irq_to_desc" [/home/samet/Masaüstü/Assignment3/Ass-1.ko] undefiniert!

und nach dieser Warnung habe ich versucht, das Modul in den Kernel zu insmoden, aber diesmal kam eine Fehlermeldung:

insmod: Fehler beim Einfügen von './Ass-1.ko': -1 Unbekanntes Symbol im Modul

Danach habe ich alle Headerdateien eingebunden, die ich für diesen Prozess für relevant halte, aber es hat sich nichts geändert.

Da es sehr kurz ist, füge ich den Code bei:

#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);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X