Subversion Repositories HelenOS

Rev

Rev 1909 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1909 Rev 1919
Line 37... Line 37...
37
#include <genarch/kbd/z8530.h>
37
#include <genarch/kbd/z8530.h>
38
#include <genarch/kbd/key.h>
38
#include <genarch/kbd/key.h>
39
#include <genarch/kbd/scanc.h>
39
#include <genarch/kbd/scanc.h>
40
#include <genarch/kbd/scanc_sun.h>
40
#include <genarch/kbd/scanc_sun.h>
41
#include <arch/drivers/z8530.h>
41
#include <arch/drivers/z8530.h>
-
 
42
#include <irq.h>
42
#include <arch/interrupt.h>
43
#include <arch/interrupt.h>
43
#include <arch/drivers/kbd.h>
44
#include <arch/drivers/kbd.h>
-
 
45
#include <arch/drivers/fhc.h>
44
#include <cpu.h>
46
#include <cpu.h>
45
#include <arch/asm.h>
47
#include <arch/asm.h>
46
#include <arch.h>
48
#include <arch.h>
47
#include <typedefs.h>
49
#include <typedefs.h>
48
#include <console/chardev.h>
50
#include <console/chardev.h>
Line 167... Line 169...
167
                key_pressed(x);
169
                key_pressed(x);
168
        }
170
        }
169
    }
171
    }
170
}
172
}
171
 
173
 
-
 
174
irq_ownership_t z8530_claim(void)
-
 
175
{
-
 
176
    return (z8530_read_a(RR0) & RR0_RCA);
-
 
177
}
-
 
178
 
-
 
179
void z8530_irq_handler(irq_t *irq, void *arg, ...)
-
 
180
{
-
 
181
    /*
-
 
182
     * So far, we know we got this interrupt through the FHC.
-
 
183
     * Since we don't have enough information about the FHC and
-
 
184
     * because the interrupt looks like level sensitive,
-
 
185
     * we cannot handle it by scheduling one of the level
-
 
186
     * interrupt traps. Process the interrupt directly.
-
 
187
     */
-
 
188
    if (z8530_belongs_to_kernel)
-
 
189
        z8530_interrupt();
-
 
190
    else
-
 
191
        ipc_irq_send_notif(0);
-
 
192
    fhc_clear_interrupt(central_fhc, irq->inr);
-
 
193
}
-
 
194
 
172
/** @}
195
/** @}
173
 */
196
 */