--- zzzz-none-000/linux-2.4.17/include/asm-mips/signal.h 2000-07-10 05:18:15.000000000 +0000 +++ sangam-fb-322/linux-2.4.17/include/asm-mips/signal.h 2004-11-24 13:21:34.000000000 +0000 @@ -1,4 +1,4 @@ -/* $Id: signal.h,v 1.6 1999/08/18 23:37:49 ralf Exp $ +/* $Id: signal.h,v 1.1.1.1 2003/06/23 22:18:40 jharrell Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive @@ -11,6 +11,8 @@ #define _ASM_SIGNAL_H #include +#include +#include #define _NSIG 128 #define _NSIG_BPW 32 @@ -169,6 +171,39 @@ #define _BRK_THREADBP 11 /* For threads, user bp (used by debuggers) */ #define BRK_MULOVF 1023 /* Multiply overflow */ +/* + * These macros are used by nanosleep() however, they could be used + * by other code that needs the pt_regs. These are passed in different + * ways by the various platforms. In the x86, the address of the first + * parameter is the address of the registers (and the first param is in + * a register because of the asmcall stuff. + * Darn, I give up. No more generic stuff. Here we code the required + * entry for selected given functions. One way or another, we will let + * the various archs work out how they want to deal with it. Too bad + * there isn't a fixed way to grab the pt_regs... + */ +asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs); + +#define NANOSLEEP_ENTRY(a) asmlinkage long sys_nanosleep( struct timespec* rqtp, \ + struct timespec * rmtp) \ +{ struct pt_regs *regs = (struct pt_regs *)&rqtp; \ + a + +#define CLOCK_NANOSLEEP_ENTRY(a) asmlinkage long sys_clock_nanosleep( \ + clockid_t which_clock, \ + int flags, \ + const struct timespec *rqtp, \ + struct timespec *rmtp) \ +{ struct pt_regs *regs = (struct pt_regs *)&which_clock; \ + a + +#define PT_REGS_ENTRY(type,name,p1_type,p1, p2_type,p2) \ + type name(p1_type p1,p2_type p2)\ + { struct pt_regs *regs = (struct pt_regs *)&p1; + +#define _do_signal() do_signal(NULL,regs) + + #endif /* defined (__KERNEL__) */ #endif /* _ASM_SIGNAL_H */