repositories
/
des2015.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
plots
[des2015.git]
/
mart
/
ex10
/
ex10dslave.c
diff --git
a/mart/ex10/ex10dslave.c
b/mart/ex10/ex10dslave.c
index
ed079c2
..
0430588
100644
(file)
--- a/
mart/ex10/ex10dslave.c
+++ b/
mart/ex10/ex10dslave.c
@@
-14,20
+14,15
@@
RT_TASK task;
RT_TASK task;
-void
lpt1_handler
(void *arg)
+void
taskf
(void *arg)
{
RT_INTR intr;
{
RT_INTR intr;
- rt_intr_create(&intr, "lpt1 handler", LPT1IRQ,
0
);
+ rt_intr_create(&intr, "lpt1 handler", LPT1IRQ,
I_PROPAGATE
);
- rt_printf("Listening...\n");
- rt_intr_wait(&intr, TM_INFINITE);
- outb(inb(0x378) & 0xEF, 0x378);
- outb(inb(0x378) | 0x01, 0x378);
- rt_printf("Received an interrupt\n");
while(1){
while(1){
- rt_intr_wait(&intr, TM_INFINITE);
-
outb(inb(0x37A) & 0xEF, 0x37A
);
-
outb(inb(0x37A) | 0x01, 0x37A
);
+
rt_intr_wait(&intr, TM_INFINITE);
+
outb(inb(0x378) & 0xFE, 0x378
);
+
outb(inb(0x378) | 0x01, 0x378
);
}
}
}
}
@@
-36,13
+31,13
@@
int main(int argc, char* argv[])
rt_print_auto_init(1);
mlockall(MCL_CURRENT | MCL_FUTURE);
rt_print_auto_init(1);
mlockall(MCL_CURRENT | MCL_FUTURE);
- ioperm(0x37A, 1, 1);
-
ioperm(0x378, 1, 1
);
-
outb(inb(0x37A) | 0x01, 0x37A
);
- outb(inb(0x378) | 0x01, 0x378);
+
ioperm(0x37A, 1, 1);
+
outb(inb(0x37A) | 0x10, 0x37A
);
+
ioperm(0x378, 1, 1
);
+
outb(inb(0x378) | 0x01, 0x378);
rt_task_create(&task, "task", 0, 50, 0);
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();
rt_printf("CRTL+C to quit\n");
pause();