]> sourceware.org Git - glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 16 Mar 2001 23:53:03 +0000 (23:53 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 16 Mar 2001 23:53:03 +0000 (23:53 +0000)
2001-02-26  Jakub Jelinek  <jakub@redhat.com>

* sysdeps/generic/sigcontextinfo.h (CALL_SIGHANDLER): Define.
* sysdeps/mach/hurd/i386/sigcontextinfo.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h: Likewise.
* sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Likewise.
* sysdeps/unix/sysv/linux/i386/sigcontextinfo.h: Likewise.
* sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h: Likewise.
* sysdeps/unix/sysv/linux/mips/sigcontextinfo.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h: Likewise.
* sysdeps/unix/sysv/linux/s390/sigcontextinfo.h: Likewise.
* sysdeps/unix/sysv/linux/sh/sigcontextinfo.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h: Likewise.

14 files changed:
ChangeLog
linuxthreads/signals.c
sysdeps/generic/sigcontextinfo.h
sysdeps/mach/hurd/i386/sigcontextinfo.h
sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
sysdeps/unix/sysv/linux/i386/sigcontextinfo.h
sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h
sysdeps/unix/sysv/linux/s390/sigcontextinfo.h
sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h

index db343511e03cc473727e91ce6b15de9a511018c4..76e0263824ea9aa3dc7548eea8bead84608e29d0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2001-02-26  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/generic/sigcontextinfo.h (CALL_SIGHANDLER): Define.
+       * sysdeps/mach/hurd/i386/sigcontextinfo.h: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h: Likewise.
+       * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Likewise.
+       * sysdeps/unix/sysv/linux/i386/sigcontextinfo.h: Likewise.
+       * sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h: Likewise.
+       * sysdeps/unix/sysv/linux/mips/sigcontextinfo.h: Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h: Likewise.
+       * sysdeps/unix/sysv/linux/s390/sigcontextinfo.h: Likewise.
+       * sysdeps/unix/sysv/linux/sh/sigcontextinfo.h: Likewise.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h: Likewise.
+       * sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h: Likewise.
+
 2001-03-16  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/ieee754/ldbl-96/s_erfl.c: New file.
index 9824b2f4e70793c9a6f09e45b0f3686d0b5f1b68..714e346fab9a9f4cc3ada304081c38340d52f61f 100644 (file)
@@ -94,7 +94,7 @@ static void pthread_sighandler(int signo, SIGCONTEXT ctx)
   in_sighandler = THREAD_GETMEM(self, p_in_sighandler);
   if (in_sighandler == NULL)
     THREAD_SETMEM(self, p_in_sighandler, CURRENT_STACK_FRAME);
-  sighandler[signo].old(signo, SIGCONTEXT_EXTRA_ARGS ctx);
+  CALL_SIGHANDLER(sighandler[signo].old, signo, ctx);
   if (in_sighandler == NULL)
     THREAD_SETMEM(self, p_in_sighandler, NULL);
 }
index a33aadfed1e4092b06af0d5f7e6488fd5e5ebae5..8a6c93aabc4d4e642ccfe71be59105d1f152d0ea 100644 (file)
@@ -23,3 +23,5 @@
 #define GET_PC(ctx)    ((void *) 0)
 #define GET_FRAME(ctx) ((void *) 0)
 #define GET_STACK(ctx) ((void *) 0)
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+  (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
index 008be707060fa977bf0e7aaac625598864d8a000..68a36bf92d0a8f40e767173b8e32ab2a1fc94ccd 100644 (file)
@@ -21,3 +21,5 @@
 #define GET_PC(ctx)    ((void *) (ctx).sc_eip)
 #define GET_FRAME(ctx) ((void *) (ctx).sc_ebp)
 #define GET_STACK(ctx) ((void *) (ctx).sc_uesp)
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+  (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
index 19c35a4624b3a3126efd9d81cdfd78ed9cebf2bc..4613bd51ac9a92d4ea0b5653997f9336a6e508a1 100644 (file)
@@ -21,3 +21,5 @@
 #define GET_PC(ctx)    ((void *) (ctx).sc_pc)
 #define GET_FRAME(ctx) ((void *) (ctx).sc_regs[15])
 #define GET_STACK(ctx) ((void *) (ctx).sc_regs[30])
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+  (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
index 1aaca1e155c22b669013d52366b631608e77e567..cc8f2f765c374a42ba9f9a4377ee94e6926f1f93 100644 (file)
@@ -31,3 +31,5 @@
                         ctx.v20.reg.ARM_sp : ctx.v21.arm_sp))
 #define ADVANCE_STACK_FRAME(frm)       \
                        ((struct layout *)frm - 1)
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+  (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
index 42c18b22bbceb9fd64972cee80ec7abddbcdf104..d4ee73cede52f42e006f2d8c13d1500b2e7e9158 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
 #define GET_PC(ctx)    ((void *) ctx.eip)
 #define GET_FRAME(ctx) ((void *) ctx.ebp)
 #define GET_STACK(ctx) ((void *) ctx.esp_at_signal)
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+do {                                                                         \
+  int __tmp1, __tmp2, __tmp3, __tmp4;                                        \
+  __asm __volatile ("movl\t%%esp, %%edi\n\t"                                 \
+                   "andl\t$-16, %%esp\n\t"                                   \
+                   "subl\t%8, %%esp\n\t"                                     \
+                   "movl\t%%edi, %c8-4(%%esp)\n\t"                           \
+                   "movl\t%1, 0(%%esp)\n\t"                                  \
+                   "leal\t4(%%esp), %%edi\n\t"                               \
+                   "cld\n\t"                                                 \
+                   "rep\tmovsl\n\t"                                          \
+                   "call\t*%0\n\t"                                           \
+                   "cld\n\t"                                                 \
+                   "movl\t%9, %%ecx\n\t"                                     \
+                   "subl\t%%edi, %%esi\n\t"                                  \
+                   "leal\t4(%%esp,%%esi,1), %%edi\n\t"                       \
+                   "leal\t4(%%esp), %%esi\n\t"                               \
+                   "rep\tmovsl\n\t"                                          \
+                   "movl\t%c8-4(%%esp), %%esp\n\t"                           \
+                   : "=a" (__tmp1), "=d" (__tmp2), "=S" (__tmp3),            \
+                     "=c" (__tmp4)                                           \
+                   : "0" (handler), "1" (signo), "2" (&ctx),                 \
+                     "3" (sizeof (struct sigcontext) / 4),                   \
+                     "n" ((sizeof (struct sigcontext) + 19) & ~15),          \
+                     "i" (sizeof (struct sigcontext) / 4)                    \
+                   : "cc", "edi");                                           \
+} while (0)
index 86bf934c516896fcc6fc15dd5975377aeec3c35a..b7e6f375e538dd8f847c846f268f4b9dfeb4c5fb 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>, 1998.
 
@@ -22,3 +22,5 @@
 #define GET_PC(ctx)    ((void *) (ctx)->sc_pc)
 #define GET_FRAME(ctx) ((void *) __builtin_frame_address (1))
 #define GET_STACK(ctx) ((void *) (ctx)->sc_usp)
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+  (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
index 1b67ce39af2aecb96bdf43e8ed3bd9b274679e01..36d57dcabff262ee407e755eb6bdee3724823f98 100644 (file)
@@ -23,3 +23,5 @@
 #define GET_PC(ctx)    ((void *) ctx->sc_pc)
 #define GET_FRAME(ctx) ((void *) ctx->sc_regs[30])
 #define GET_STACK(ctx) ((void *) ctx->sc_regs[29])
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+  (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
index 644a0c259b9a90d0eccb2bee07d8b44b5e153a04..5a077e40e7733aaf9e6050cfb7251121f3abab58 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -23,3 +23,5 @@
 #define GET_PC(ctx)    ((void *)((ctx)->regs->nip))
 #define GET_FRAME(ctx) (*(void **)((ctx)->regs->gpr[1]))
 #define GET_STACK(ctx) ((void *)((ctx)->regs->gpr[1]))
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+  (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
index ccd5a413542b07bdc8bb3cfe06cdd6975b095938..47985b472410fc00013e75815cfd6dfc7d937023 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
    This file is part of the GNU C Library.
 
@@ -24,3 +24,5 @@
 #define GET_PC(ctx)    ((void *)((ctx)->sregs->regs.psw.addr))
 #define GET_FRAME(ctx) (*(void **)((ctx)->sregs->regs.gprs[11]))
 #define GET_STACK(ctx) ((void *)((ctx)->sregs->regs.gprs[15]))
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+  (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
index f35322fef04e4c399259f735212ee31a4d8e3207..6a97cdab055a9831b221e4aad1aa21164c30e228 100644 (file)
@@ -23,3 +23,5 @@
 #define GET_PC(ctx)    ((void *) ctx.sc_pc)
 #define GET_FRAME(ctx) ((void *) ctx.sc_regs[14])
 #define GET_STACK(ctx) ((void *) ctx.sc_regs[15])
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+  (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
index 9c6b9243194fec55e65351f69a7489e94df50f65..0ce30b64702be2105530123ec7e65cf4623df51b 100644 (file)
@@ -25,3 +25,5 @@
 
 #define GET_STACK(__ctx)       ((void *) (__ctx)->si_regs.u_regs[14])
 #define GET_FRAME(__ctx)       ADVANCE_STACK_FRAME (GET_STACK(__ctx))
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+  (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
index 2bb563cc818dc685e8964c66f91669a72a91f840..f645c4e387ccbf374c82452e68c9b7394364b892 100644 (file)
@@ -28,3 +28,5 @@
                                           + STACK_BIAS))+14))
 #define GET_STACK(__ctx)       ((void *) ((__ctx)->sigc_regs.u_regs[14]))
 #define GET_FRAME(__ctx)       ADVANCE_STACK_FRAME (GET_STACK (__ctx))
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+  (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
This page took 0.062616 seconds and 5 git commands to generate.