Subversion Repositories HelenOS

Rev

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

Rev 2262 Rev 2263
Line 146... Line 146...
146
/** Interrupt Exception handler.
146
/** Interrupt Exception handler.
147
 * Determines the sources of interrupt, and calls their handlers.
147
 * Determines the sources of interrupt, and calls their handlers.
148
 */
148
 */
149
static void irq_exception(int exc_no, istate_t* istate)
149
static void irq_exception(int exc_no, istate_t* istate)
150
{
150
{
-
 
151
#if MACHINE == MACHINE_GXEMUL_TESTARM
151
    uint32_t sources = gxemul_irqc_get_sources();
152
    uint32_t sources = gxemul_irqc_get_sources();
152
    int i = 0;
153
    int i = 0;
153
    for (; i < GXEMUL_IRQC_MAX_IRQ; i++) {
154
    for (; i < GXEMUL_IRQC_MAX_IRQ; i++) {
154
        if (sources & (1 << i)) {
155
        if (sources & (1 << i)) {
155
            irq_t *irq = irq_dispatch_and_lock(i);
156
            irq_t *irq = irq_dispatch_and_lock(i);
Line 161... Line 162...
161
                /* Spurious interrupt.*/
162
                /* Spurious interrupt.*/
162
                aux_printf("cpu%d: spurious interrupt (inum=%d)\n", CPU->id, i);
163
                aux_printf("cpu%d: spurious interrupt (inum=%d)\n", CPU->id, i);
163
            }
164
            }
164
        }
165
        }
165
    }
166
    }
-
 
167
#endif
166
/* TODO remove after testing the above code
168
/* TODO remove after testing the above code
167
            noirq = 0;
169
            noirq = 0;
168
            if (i == CONSOLE_IRQ) {
170
            if (i == CONSOLE_IRQ) {
169
                char readchar = *(char*)0x10000000;
171
                char readchar = *(char*)0x10000000;
170
                if (readchar == 0) {
172
                if (readchar == 0) {