linux/arch/um/os-Linux/signal.c
Bodo Stroesser 51a6b0c59a [PATCH] uml: s390 preparation, sighandler interface abstraction
s390 passes parameters in registers.  So the only safe way to find out the
address of signal context, error-address and error-type (trap_no), which are
passed to signal handlers as parameters, is to declare these parameters.

So I inserted an subarch-specific macro which holds the declaration of
parameters for signal handlers.

Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-05 16:36:38 -07:00

49 lines
1.0 KiB
C

/*
* Copyright (C) 2004 PathScale, Inc
* Licensed under the GPL
*/
#include <signal.h>
#include "time_user.h"
#include "mode.h"
#include "sysdep/signal.h"
void sig_handler(ARCH_SIGHDLR_PARAM)
{
struct sigcontext *sc;
ARCH_GET_SIGCONTEXT(sc, sig);
CHOOSE_MODE_PROC(sig_handler_common_tt, sig_handler_common_skas,
sig, sc);
}
extern int timer_irq_inited;
void alarm_handler(ARCH_SIGHDLR_PARAM)
{
struct sigcontext *sc;
ARCH_GET_SIGCONTEXT(sc, sig);
if(!timer_irq_inited) return;
if(sig == SIGALRM)
switch_timers(0);
CHOOSE_MODE_PROC(sig_handler_common_tt, sig_handler_common_skas,
sig, sc);
if(sig == SIGALRM)
switch_timers(1);
}
/*
* Overrides for Emacs so that we follow Linus's tabbing style.
* Emacs will notice this stuff at the end of the file and automatically
* adjust the settings for this buffer only. This must remain at the end
* of the file.
* ---------------------------------------------------------------------------
* Local variables:
* c-file-style: "linux"
* End:
*/