Changeset 38e5675b in mainline


Ignore:
Timestamp:
2010-06-28T18:12:48Z (14 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ac11ac7
Parents:
62baed17
Message:

Switch ia64 to use the unified panic architecture. No stack traces so far.

Location:
kernel/arch/ia64
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/include/interrupt.h

    r62baed17 r38e5675b  
    165165extern void trap_virtual_enable_irqs(uint16_t irqmask);
    166166
     167extern void decode_istate(istate_t *);
     168
    167169#endif
    168170
  • kernel/arch/ia64/src/interrupt.c

    r62baed17 r38e5675b  
    133133}
    134134
    135 static void dump_interrupted_context(istate_t *istate)
    136 {
    137         putchar('\n');
    138         printf("Interrupted context dump:\n");
     135void decode_istate(istate_t *istate)
     136{
    139137        printf("ar.bsp=%p\tar.bspstore=%p\n", istate->ar_bsp,
    140138            istate->ar_bspstore);
     
    183181       
    184182        fault_if_from_uspace(istate, "General Exception (%s).", desc);
    185        
    186         dump_interrupted_context(istate);
    187         panic("General Exception (%s).", desc);
     183        panic_badtrap(istate, vector, "General Exception (%s).", desc);
    188184}
    189185
     
    195191        fault_if_from_uspace(istate, "Interruption: %#hx (%s).",
    196192            (uint16_t) vector, vector_to_string(vector));
    197         dump_interrupted_context(istate);
    198         panic("Interruption: %#hx (%s).", (uint16_t) vector,
    199             vector_to_string(vector));
     193        panic_badtrap(istate, vector, "Interruption: %#hx (%s).",
     194            (uint16_t) vector, vector_to_string(vector));
    200195#endif
    201196}
     
    226221        fault_if_from_uspace(istate, "Interruption: %#hx (%s).",
    227222            (uint16_t) vector, vector_to_string(vector));
    228         dump_interrupted_context(istate);
    229         panic("Interruption: %#hx (%s).", (uint16_t) vector,
    230             vector_to_string(vector));
     223        panic_badtrap(istate, vector, "Interruption: %#hx (%s).",
     224            (uint16_t) vector, vector_to_string(vector));
    231225}
    232226
  • kernel/arch/ia64/src/mm/tlb.c

    r62baed17 r38e5675b  
    500500                if (as_page_fault(va, PF_ACCESS_EXEC, istate) == AS_PF_FAULT) {
    501501                        fault_if_from_uspace(istate, "Page fault at %p.", va);
    502                         panic("%s: va=%p, rid=%d, iip=%p.", __func__, va, rid,
    503                             istate->cr_iip);
     502                        panic_memtrap(istate, PF_ACCESS_EXEC, va,
     503                            "Page fault.");
    504504                }
    505505        }
     
    622622                if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) {
    623623                        fault_if_from_uspace(istate, "Page fault at %p.", va);
    624                         panic("%s: va=%p, rid=%d, iip=%p.", __func__, va, rid,
    625                             istate->cr_iip);
     624                        panic_memtrap(istate, PF_ACCESS_READ, va,
     625                            "Page fault.");
    626626                }
    627627        }
     
    671671                if (as_page_fault(va, PF_ACCESS_WRITE, istate) == AS_PF_FAULT) {
    672672                        fault_if_from_uspace(istate, "Page fault at %p.", va);
    673                         panic("%s: va=%p, rid=%d, iip=%p.", __func__, va, rid,
    674                             istate->cr_iip);
     673                        panic_memtrap(istate, PF_ACCESS_WRITE, va,
     674                            "Page fault.");
    675675                }
    676676        }
     
    708708                if (as_page_fault(va, PF_ACCESS_EXEC, istate) == AS_PF_FAULT) {
    709709                        fault_if_from_uspace(istate, "Page fault at %p.", va);
    710                         panic("%s: va=%p, rid=%d, iip=%p.", __func__, va, rid,
    711                             istate->cr_iip);
     710                        panic_memtrap(istate, PF_ACCESS_EXEC, va,
     711                            "Page fault.");
    712712                }
    713713        }
     
    745745                if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) {
    746746                        fault_if_from_uspace(istate, "Page fault at %p.", va);
    747                         panic("%s: va=%p, rid=%d, iip=%p.", __func__, va, rid,
    748                             istate->cr_iip);
     747                        panic_memtrap(istate, PF_ACCESS_READ, va,
     748                            "Page fault.");
    749749                }
    750750        }
     
    778778        if (as_page_fault(va, PF_ACCESS_WRITE, istate) == AS_PF_FAULT) {
    779779                fault_if_from_uspace(istate, "Page fault at %p.", va);
    780                 panic("%s: va=%p, rid=%d, iip=%p.", __func__, va, rid,
    781                     istate->cr_iip);
     780                panic_memtrap(istate, PF_ACCESS_WRITE, va, "Page fault.");
    782781        }
    783782        page_table_unlock(AS, true);
     
    819818                if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) {
    820819                        fault_if_from_uspace(istate, "Page fault at %p.", va);
    821                         panic("%s: va=%p, rid=%d.", __func__, va, rid);
     820                        panic_memtrap(istate, PF_ACCESS_READ, va,
     821                            "Page fault.");
    822822                }
    823823        }
Note: See TracChangeset for help on using the changeset viewer.