Subversion Repositories HelenOS

Rev

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

Rev 2048 Rev 2054
Line 71... Line 71...
71
    status = asi_u64_read(ASI_INTR_DISPATCH_STATUS, 0);
71
    status = asi_u64_read(ASI_INTR_DISPATCH_STATUS, 0);
72
    if (status & INTR_DISPATCH_STATUS_BUSY)
72
    if (status & INTR_DISPATCH_STATUS_BUSY)
73
        panic("Interrupt Dispatch Status busy bit set\n");
73
        panic("Interrupt Dispatch Status busy bit set\n");
74
   
74
   
75
    do {
75
    do {
76
        asi_u64_write(ASI_UDB_INTR_W, ASI_UDB_INTR_W_DATA_0, (uintptr_t) func);
76
        asi_u64_write(ASI_UDB_INTR_W, ASI_UDB_INTR_W_DATA_0, (uintptr_t)
-
 
77
            func);
77
        asi_u64_write(ASI_UDB_INTR_W, ASI_UDB_INTR_W_DATA_1, 0);
78
        asi_u64_write(ASI_UDB_INTR_W, ASI_UDB_INTR_W_DATA_1, 0);
78
        asi_u64_write(ASI_UDB_INTR_W, ASI_UDB_INTR_W_DATA_2, 0);
79
        asi_u64_write(ASI_UDB_INTR_W, ASI_UDB_INTR_W_DATA_2, 0);
-
 
80
        asi_u64_write(ASI_UDB_INTR_W, (mid <<
79
        asi_u64_write(ASI_UDB_INTR_W, (mid << INTR_VEC_DISPATCH_MID_SHIFT) | ASI_UDB_INTR_W_DISPATCH, 0);
81
            INTR_VEC_DISPATCH_MID_SHIFT) | ASI_UDB_INTR_W_DISPATCH,
-
 
82
            0);
80
   
83
   
81
        membar();
84
        membar();
82
       
85
       
83
        do {
86
        do {
84
            status = asi_u64_read(ASI_INTR_DISPATCH_STATUS, 0);
87
            status = asi_u64_read(ASI_INTR_DISPATCH_STATUS, 0);