2 * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
3 * Licensed under the GPL
8 #include <asm/sigcontext.h>
9 #include "sysdep/ptrace.h"
10 #include "signal_user.h"
11 #include "user_util.h"
12 #include "kern_util.h"
14 #include "sigcontext.h"
16 void sig_handler_common_skas(int sig, void *sc_ptr)
18 struct sigcontext *sc = sc_ptr;
20 struct signal_info *info;
21 int save_errno = errno;
23 r = &TASK_REGS(get_current())->skas;
25 r->fault_addr = SC_FAULT_ADDR(sc);
26 r->fault_type = SC_FAULT_TYPE(sc);
27 r->trap_type = SC_TRAP_TYPE(sc);
29 change_sig(SIGUSR1, 1);
30 info = &sig_info[sig];
31 if(!info->is_irq) unblock_signals();
33 (*info->handler)(sig, (union uml_pt_regs *) r);
38 extern int missed_ticks[];
40 void user_signal(int sig, union uml_pt_regs *regs)
42 struct signal_info *info;
45 missed_ticks[cpu()]++;
46 regs->skas.is_user = 1;
47 regs->skas.fault_addr = 0;
48 regs->skas.fault_type = 0;
49 regs->skas.trap_type = 0;
50 info = &sig_info[sig];
51 (*info->handler)(sig, regs);
57 * Overrides for Emacs so that we follow Linus's tabbing style.
58 * Emacs will notice this stuff at the end of the file and automatically
59 * adjust the settings for this buffer only. This must remain at the end
61 * ---------------------------------------------------------------------------
63 * c-file-style: "linux"