aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/kernel/trap.c
diff options
context:
space:
mode:
authorJeff Dike <jdike@addtoit.com>2008-02-05 01:30:46 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-05 12:44:26 -0500
commitedea138584d7586a3b93b6d5ab5ec021d18e11e9 (patch)
tree0c5a5dd14256d675c8c64c8abdda86053f72abc8 /arch/um/kernel/trap.c
parent0ba7fe03b638a084a4e15e21d2e585ba321ad9c8 (diff)
uml: tidy kern_util.h
Tidy kern_util.h. It turns out that most of the function declarations aren't used, so they can go away. os.h no longer includes kern_util.h, so files which got it through os.h now need to include it directly. A number of other files never needed it, so these includes are deleted. The structure which was used to pass signal handlers from the kernel side to the userspace side is gone. Instead, the handlers are declared here, and used directly from libc code. This allows arch/um/os-Linux/trap.c to be deleted, with its remnants being moved to arch/um/os-Linux/skas/trap.c. arch/um/os-Linux/tty.c had its inclusions changed, and it needed some style attention, so it got tidied. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/um/kernel/trap.c')
-rw-r--r--arch/um/kernel/trap.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c
index e3a3ab8f8635..ff405a446d15 100644
--- a/arch/um/kernel/trap.c
+++ b/arch/um/kernel/trap.c
@@ -128,7 +128,7 @@ static void bad_segv(struct faultinfo fi, unsigned long ip)
128 force_sig_info(SIGSEGV, &si, current); 128 force_sig_info(SIGSEGV, &si, current);
129} 129}
130 130
131static void segv_handler(int sig, struct uml_pt_regs *regs) 131void segv_handler(int sig, struct uml_pt_regs *regs)
132{ 132{
133 struct faultinfo * fi = UPT_FAULTINFO(regs); 133 struct faultinfo * fi = UPT_FAULTINFO(regs);
134 134
@@ -229,27 +229,18 @@ void relay_signal(int sig, struct uml_pt_regs *regs)
229 force_sig(sig, current); 229 force_sig(sig, current);
230} 230}
231 231
232static void bus_handler(int sig, struct uml_pt_regs *regs) 232void bus_handler(int sig, struct uml_pt_regs *regs)
233{ 233{
234 if (current->thread.fault_catcher != NULL) 234 if (current->thread.fault_catcher != NULL)
235 UML_LONGJMP(current->thread.fault_catcher, 1); 235 UML_LONGJMP(current->thread.fault_catcher, 1);
236 else relay_signal(sig, regs); 236 else relay_signal(sig, regs);
237} 237}
238 238
239static void winch(int sig, struct uml_pt_regs *regs) 239void winch(int sig, struct uml_pt_regs *regs)
240{ 240{
241 do_IRQ(WINCH_IRQ, regs); 241 do_IRQ(WINCH_IRQ, regs);
242} 242}
243 243
244const struct kern_handlers handlinfo_kern = {
245 .relay_signal = relay_signal,
246 .winch = winch,
247 .bus_handler = bus_handler,
248 .page_fault = segv_handler,
249 .sigio_handler = sigio_handler,
250 .timer_handler = timer_handler
251};
252
253void trap_init(void) 244void trap_init(void)
254{ 245{
255} 246}