From: Kasper V. L. <ve...@da...> - 2000-02-06 15:26:56
|
Since the Elysium kernel is a true micro-kernel it will not contain any drivers at all. I've been fiddling around with a keyboard driver - and a text-mode video driver - but for the keyboard driver I need to hook IRQ 1. I'm not quite sure how to do this in the most effective way. On the kernel level I think every IRQ should have at most one user-level handler - IRQ sharing should be implemented on top of the kernel. The problem with an IRQ handler is the usual scheduling business, but under Elysium things get worse. The Elysium kernel doesn't know how to save the state of any running threads, since this is normally handled by the individual processes. So the easy solution would be to revoke the CPU from the process the usual way - by doing an upcall to the epilogue code in the process (which handles saving the thread state) - and then giving the CPU to the interrupt handler code (potentially in another process). I'm a bit concerned about the delay between the actual IRQ firing and the invocation of the handler - I think we'll have to come up with another solution. Any suggestions? Alternative solutions? /Kasper ------------------------------------------------------------------- Kasper Verdich Lund, Computer Science Department, Aarhus University Office: 34P.218 | Phone: (+45) 8942 5680 Email: ve...@da... | WWW: http://www.daimi.au.dk/~verdich |