И все таки, почему не работает этот модуль так как надо на 2.4.28...
Он запускаетя пишет скан коды в лог, но клава не работает как положено.Сканкоды пишет, а в самой системе ниче не нажимается - ПОЧЕМУ?Пусть не выгружается, только заработает.Помогите плиз!!!
#include <linux/kernel.h> /* We're doing kernel work */
#include <linux/module.h> /* Specifically, a module */
#include <linux/sched.h>
#include <linux/tqueue.h>
#include <linux/interrupt.h>
#include <asm/io.h>
static void got_char(void *scancode)
{
printk("Scan Code %x %s.\n",
(int) *((char *) scancode) & 0x7F,
*((char *) scancode) & 0x80 ? "Released" : "Pressed");
}
irqreturn_t irq_handler(int irq, void *dev_id, struct pt_regs *regs)
{
static unsigned char scancode;
static struct tq_struct task ={
.routine=got_char,
.data=&scancode
};
unsigned char status;
status = inb(0x64);
scancode = inb(0x60);
queue_task(&task, &tq_immediate);
mark_bh(IMMEDIATE_BH);
return IRQ_HANDLED;
}
int init_module()
{
free_irq(1, NULL);
return request_irq(1, /* The number of the keyboard IRQ on PCs */
irq_handler, /* our handler */
SA_SHIRQ,
"test_keyboard_irq_handler", NULL);
}
void cleanup_module()
{
free_irq(1, NULL);
}
MODULE_LICENSE("GPL");
Последние комментарии
9 лет 49 недель назад
10 лет 15 недель назад
10 лет 25 недель назад
10 лет 26 недель назад
11 лет 15 недель назад
11 лет 15 недель назад
11 лет 15 недель назад
11 лет 16 недель назад
11 лет 16 недель назад
11 лет 17 недель назад