support sigqueue

This commit is contained in:
Tomoki Shirasawa
2014-09-23 23:17:53 +09:00
parent 55aeceb1bf
commit 39f36120c1
12 changed files with 188 additions and 38 deletions

View File

@@ -405,7 +405,7 @@ void setup_x86_ap(void (*next_func)(void))
}
void arch_show_interrupt_context(const void *reg);
void set_signal(int sig, void *regs);
void set_signal(int sig, void *regs, struct siginfo *info);
void check_signal(unsigned long rc, void *regs);
extern void tlb_flush_handler(int vector);
@@ -452,10 +452,13 @@ void handle_interrupt(int vector, struct x86_regs *regs)
void gpe_handler(struct x86_regs *regs)
{
struct siginfo info;
kprintf("General protection fault (err: %lx, %lx:%lx)\n",
regs->error, regs->cs, regs->rip);
arch_show_interrupt_context(regs);
set_signal(SIGILL, regs);
memset(&info, '\0', sizeof info);
set_signal(SIGILL, regs, &info);
check_signal(0, regs);
check_need_resched();
// panic("GPF");