Subversion Repositories HelenOS-historic

Rev

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

Rev 432 Rev 433
Line 27... Line 27...
27
 *
27
 *
28
 */
28
 */
29
 
29
 
30
#include <arch/interrupt.h>
30
#include <arch/interrupt.h>
31
#include <panic.h>
31
#include <panic.h>
-
 
32
#include <print.h>
32
#include <arch/types.h>
33
#include <arch/types.h>
33
#include <arch/asm.h>
34
#include <arch/asm.h>
34
#include <arch/barrier.h>
35
#include <arch/barrier.h>
35
#include <arch/register.h>
36
#include <arch/register.h>
-
 
37
#include <arch.h>
36
 
38
 
37
void external_interrupt(void)
39
void external_interrupt(void)
38
{
40
{
39
    __u8 ivr;
41
    cr_ivr_t ivr;
40
   
42
   
41
    srlz_d();
-
 
42
    ivr = ivr_read() & CR_IVR_MASK;
43
    ivr.value = ivr_read();
43
    srlz_d();
44
    srlz_d();
44
   
45
   
45
    switch(ivr) {
46
    switch(ivr.value) {
-
 
47
        case INTERRUPT_TIMER:
-
 
48
            panic("cpu%d: timer interrupt\n", CPU->id);
-
 
49
            break;
-
 
50
        case INTERRUPT_SPURIOUS:
-
 
51
            printf("cpu%d: spurious interrupt\n", CPU->id);
-
 
52
        break;
46
        default:
53
        default:
47
        panic("\nUnhandled External Interrupt Vector %d\n", ivr);
54
        panic("\nUnhandled External Interrupt Vector %d\n", ivr.vector);
-
 
55
        break;
48
    }
56
    }
49
}
57
}