IRQ handling

From: Robert Mayer - Student <robert_at_nospam.org>
Date: Sun Mar 13 1994 - 12:20:14 PST

A few days ago I started to write a printer server for VSTa. I wrote a
little test program, but it didn't receive any interrupt messages.
After a little bit of kernel reading I found the reason: IRQ 7 is
disabled by pointing it's vector to a routine that simply IRETs (in the
comment it says that there were problems with stray interrupts).
I commented out the line that disables IRQ 7 and now my
program gets the interrupt messages. The printer server is far from
being finished, but I may have found a bug:

In os/mach/trap.c line 597 there is a call to hardclock() without parameters.
The function hardclock lives in os/kern/xclock.c and it is implemented like
this:
void hardclock(uint x)
{
    struct trapframe *f = (struct trapframe *)&x;
    .
    .
    .

I think in trap.c it should say:
hardclock(f);

and in xclock.c it should say:
void hardclock(struct trapframe *f)
{
    /* struct trapframe *f = (struct trapframe *)&x; */
    .
    .
    .

I don't know if this really is a bug, because everything works fine, but it
sure looks strange to me.

Greetings
Robert
Received on Sun Mar 13 13:19:46 1994

This archive was generated by hypermail 2.1.8 : Wed Sep 21 2005 - 21:02:16 PDT