X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=mart%2Fex10%2Fex10dslave.c;h=04305886eb2d9c991aae50624355fea74bfb56ac;hb=b0bd8f724348ba4ec1adb341bc37ab556d7abb10;hp=d22e18dc68f614b85885f6e97ef01bc38c098b49;hpb=fccd4f6ea455bd765fa85818c6de4bff96c38fbb;p=des2015.git diff --git a/mart/ex10/ex10dslave.c b/mart/ex10/ex10dslave.c index d22e18d..0430588 100644 --- a/mart/ex10/ex10dslave.c +++ b/mart/ex10/ex10dslave.c @@ -14,15 +14,14 @@ RT_TASK task; -void lpt1_handler(void *arg) +void taskf(void *arg) { RT_INTR intr; - rt_intr_create(&intr, "lpt1 handler", LPT1IRQ, 0); + rt_intr_create(&intr, "lpt1 handler", LPT1IRQ, I_PROPAGATE); - rt_printf("Listening...\n"); while(1){ rt_intr_wait(&intr, TM_INFINITE); - outb(inb(0x378) & 0xEF, 0x378); + outb(inb(0x378) & 0xFE, 0x378); outb(inb(0x378) | 0x01, 0x378); } } @@ -33,12 +32,12 @@ int main(int argc, char* argv[]) mlockall(MCL_CURRENT | MCL_FUTURE); ioperm(0x37A, 1, 1); + outb(inb(0x37A) | 0x10, 0x37A); ioperm(0x378, 1, 1); - outb(inb(0x37A) | 0x01, 0x37A); outb(inb(0x378) | 0x01, 0x378); rt_task_create(&task, "task", 0, 50, 0); - rt_task_start(&task, &lpt1_handler, 0); + rt_task_start(&task, &taskf, 0); rt_printf("CRTL+C to quit\n"); pause();