Subversion Repositories HelenOS

Rev

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

Rev 125 Rev 136
Line 77... Line 77...
77
    panic("unserviced interrupt\n");
77
    panic("unserviced interrupt\n");
78
}
78
}
79
 
79
 
80
void gp_fault(__u8 n, __u32 stack[])
80
void gp_fault(__u8 n, __u32 stack[])
81
{
81
{
82
    printf("stack[0]=%X, %%eip=%X, %%cs=%X, flags=%X\n", stack[0], stack[1], stack[2], stack[3]);
82
    printf("ERROR_WORD=%X, %%eip=%X, %%cs=%X, flags=%X\n", stack[0], stack[1], stack[2], stack[3]);
83
    printf("%%eax=%L, %%ebx=%L, %%ecx=%L, %%edx=%L,\n%%edi=%L, %%esi=%L, %%ebp=%L, %%esp=%L\n", stack[-2], stack[-5], stack[-3], stack[-4], stack[-9], stack[-8], stack[-1], stack);
83
    printf("%%eax=%L, %%ebx=%L, %%ecx=%L, %%edx=%L,\n%%edi=%L, %%esi=%L, %%ebp=%L, %%esp=%L\n", stack[-2], stack[-5], stack[-3], stack[-4], stack[-9], stack[-8], stack[-1], stack);
84
    printf("stack: %X, %X, %X, %X\n", stack[4], stack[5], stack[6], stack[7]);
84
    printf("stack: %X, %X, %X, %X\n", stack[4], stack[5], stack[6], stack[7]);
85
    panic("general protection fault\n");
85
    //panic("general protection fault\n");
-
 
86
    stack[1]++;
86
}
87
}
87
 
88
 
88
void ss_fault(__u8 n, __u32 stack[])
89
void ss_fault(__u8 n, __u32 stack[])
89
{
90
{
90
    printf("stack[0]=%X, %%eip=%X, %%cs=%X, flags=%X\n", stack[0], stack[1], stack[2], stack[3]);
91
    printf("ERROR_WORD=%X, %%eip=%X, %%cs=%X, flags=%X\n", stack[0], stack[1], stack[2], stack[3]);
91
    printf("%%eax=%L, %%ebx=%L, %%ecx=%L, %%edx=%L,\n%%edi=%L, %%esi=%L, %%ebp=%L, %%esp=%L\n", stack[-2], stack[-5], stack[-3], stack[-4], stack[-9], stack[-8], stack[-1], stack);
92
    printf("%%eax=%L, %%ebx=%L, %%ecx=%L, %%edx=%L,\n%%edi=%L, %%esi=%L, %%ebp=%L, %%esp=%L\n", stack[-2], stack[-5], stack[-3], stack[-4], stack[-9], stack[-8], stack[-1], stack);
92
    printf("stack: %X, %X, %X, %X\n", stack[4], stack[5], stack[6], stack[7]);
93
    printf("stack: %X, %X, %X, %X\n", stack[4], stack[5], stack[6], stack[7]);
93
    panic("stack fault\n");
94
    panic("stack fault\n");
94
}
95
}
95
 
96
 
Line 109... Line 110...
109
 
110
 
110
 
111
 
111
void page_fault(__u8 n, __u32 stack[])
112
void page_fault(__u8 n, __u32 stack[])
112
{
113
{
113
    printf("page fault address: %X\n", read_cr2());
114
    printf("page fault address: %X\n", read_cr2());
114
    printf("stack[0]=%X, %%eip=%X, %%cs=%X, flags=%X\n", stack[0], stack[1], stack[2], stack[3]);
115
    printf("ERROR_WORD=%X, %%eip=%X, %%cs=%X, flags=%X\n", stack[0], stack[1], stack[2], stack[3]);
115
    printf("%%eax=%L, %%ebx=%L, %%ecx=%L, %%edx=%L,\n%%edi=%L, %%esi=%L, %%ebp=%L, %%esp=%L\n", stack[-2], stack[-5], stack[-3], stack[-4], stack[-9], stack[-8], stack[-1], stack);
116
    printf("%%eax=%L, %%ebx=%L, %%ecx=%L, %%edx=%L,\n%%edi=%L, %%esi=%L, %%ebp=%L, %%esp=%L\n", stack[-2], stack[-5], stack[-3], stack[-4], stack[-9], stack[-8], stack[-1], stack);
116
    printf("stack: %X, %X, %X, %X\n", stack[4], stack[5], stack[6], stack[7]);
117
    printf("stack: %X, %X, %X, %X\n", stack[4], stack[5], stack[6], stack[7]);
117
    panic("page fault\n");
118
    panic("page fault\n");
118
}
119
}
119
 
120