Subversion Repositories HelenOS

Rev

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

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