Subversion Repositories HelenOS

Rev

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

Rev 3018 Rev 3424
Line 111... Line 111...
111
#if (IVT_ITEMS > 0)
111
#if (IVT_ITEMS > 0)
112
    unsigned int i;
112
    unsigned int i;
113
    char *symbol;
113
    char *symbol;
114
 
114
 
115
    spinlock_lock(&exctbl_lock);
115
    spinlock_lock(&exctbl_lock);
116
   
116
 
117
    if (sizeof(void *) == 4) {
117
#ifdef __32_BITS__
118
        printf("Exc Description          Handler    Symbol\n");
118
    printf("Exc Description          Handler    Symbol\n");
119
        printf("--- -------------------- ---------- --------\n");
119
    printf("--- -------------------- ---------- --------\n");
120
    } else {
120
#endif
-
 
121
 
-
 
122
#ifdef __64_BITS__
121
        printf("Exc Description          Handler            Symbol\n");
123
    printf("Exc Description          Handler            Symbol\n");
122
        printf("--- -------------------- ------------------ --------\n");
124
    printf("--- -------------------- ------------------ --------\n");
123
    }
125
#endif
124
   
126
   
125
    for (i = 0; i < IVT_ITEMS; i++) {
127
    for (i = 0; i < IVT_ITEMS; i++) {
126
        symbol = get_symtab_entry((unative_t) exc_table[i].f);
128
        symbol = get_symtab_entry((unative_t) exc_table[i].f);
127
        if (!symbol)
129
        if (!symbol)
128
            symbol = "not found";
130
            symbol = "not found";
129
       
131
 
130
        if (sizeof(void *) == 4)
132
#ifdef __32_BITS__
131
            printf("%-3u %-20s %#10zx %s\n", i + IVT_FIRST, exc_table[i].name,
133
        printf("%-3u %-20s %10p %s\n", i + IVT_FIRST, exc_table[i].name,
132
                exc_table[i].f, symbol);
134
            exc_table[i].f, symbol);
133
        else
135
#endif
-
 
136
 
-
 
137
#ifdef __64_BITS__
134
            printf("%-3u %-20s %#18zx %s\n", i + IVT_FIRST, exc_table[i].name,
138
        printf("%-3u %-20s %18p %s\n", i + IVT_FIRST, exc_table[i].name,
135
                exc_table[i].f, symbol);
139
            exc_table[i].f, symbol);
-
 
140
#endif
136
       
141
       
137
        if (((i + 1) % 20) == 0) {
142
        if (((i + 1) % 20) == 0) {
138
            printf(" -- Press any key to continue -- ");
143
            printf(" -- Press any key to continue -- ");
139
            spinlock_unlock(&exctbl_lock);
144
            spinlock_unlock(&exctbl_lock);
140
            getc(stdin);
145
            getc(stdin);
Line 161... Line 166...
161
/** Initialize generic exception handling support */
166
/** Initialize generic exception handling support */
162
void exc_init(void)
167
void exc_init(void)
163
{
168
{
164
    int i;
169
    int i;
165
 
170
 
166
    for (i=0;i < IVT_ITEMS; i++)
171
    for (i = 0; i < IVT_ITEMS; i++)
167
        exc_register(i, "undef", (iroutine) exc_undef);
172
        exc_register(i, "undef", (iroutine) exc_undef);
168
 
173
 
169
    cmd_initialize(&exc_info);
174
    cmd_initialize(&exc_info);
170
    if (!cmd_register(&exc_info))
175
    if (!cmd_register(&exc_info))
171
        panic("could not register command %s\n", exc_info.name);
176
        panic("could not register command %s\n", exc_info.name);