Ol� pessoal,
estou tentando criar um modulo para aprender a usar pedidos de IRQ.
O programa � muito simples, ele ir� soar um bip no pcspeaker toda vez que um 
pedido de interrup��o ocorrer atrav�s do pino 10 da porta paralela, e ir� 
desligar se outro pedido ocorrer novamente.
Por�m quando compilo com 'gcc -c bip.c' ocorrem v�rios 'parse error', j� 
comentei todas as linhas de c�digo e o erro continuou a ocorrer, ent�o 
suponho que o erro est� nos arquivos de inclus�o do Linux, veja o c�digo 
fonte:

#include <linux/module.h>
#include <linux/sched.h>
#include <linux/ioport.h>
#include <linux/interrupt.h>
#include <asm/io.h>

#define MODULE

void monitora(int irq, void *dev_id, struct pt_regs *regs);
int desligado = 1;
int init_module(void){
        int result;
        printk(<1>"Iniciando driver!\n");

        //checa se a porta 0x378 esta livre
        result = check_region(0x378, 8);
        if (result) {
                printk("N�o pode usar a porta 0x378\n");
                return result;
        }
        request_region(0x378, 8, "LPT1"); //usa a porta

        //requisita a IRQ 7
        result = request_irq(7, monitora,SA_INTERRUPT,"Porta Paralela",NULL);
        if (result)
            printk("N�o pode usar a IRQ 7");
        else {
               outb(0x08,0x37A); //Habilita IRQ da porta paralela(IRQ 7)
        }
        return 0;

}
void cleanup_module(void){

        printk(<1>"Finalizando driver!\n");
        release_region(0x378, 8);//libera as porta usadas
        free_irq(7, NULL); //libera a IRQ usada

}

void monitora(int irq, void *dev_id, struct pt_regs *regs)
{

    //executa quando a interrup��o for requisitada
    if(desligado){
        outb(3,0x61); //liga o pcspeaker
        desligado = 0;
    }
    else{
        outb(3,0x61); //desliga o pcspeaker
        desligado = 1;
    }
    outb(0x20,0x20); //avisa ao 8259 que a interrup��o foi manipulada 
}

P.S.: Estou usando o CL7.0 e o kernel � o 2.2.19

Aguardo ajuda,
Saud
Alan
-- 
100% Linux      > > >   100% Livre
Porque a escolha � voc� quem faz ...

Assinantes em 19/01/2002: 2239
Mensagens recebidas desde 07/01/1999: 151312
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista: 
            mailto:[EMAIL PROTECTED]

Responder a