Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2001-03-11 04:58:23 +0300
committerChristopher Faylor <me@cgf.cx>2001-03-11 04:58:23 +0300
commit2116a175086ebaf7b5f71185fb9425c80771d3c4 (patch)
tree0cb08771477a12753c20be76dff577538c90d8e5 /winsup/cygwin/exceptions.cc
parent7cf3b655ec6ec6246018018cf773d3433e6075af (diff)
* autoload.cc (noload): Use proper method for multiline strings or newer gcc's
complain. * exceptions.cc (unused_sig_wrapper): Ditto. * fhandler.h (fhandler_base): Make get_io_handle and friends return self. * fhandler_tty.cc (fhandler_pty_common::close_on_exec): Accomodate DEBUGGING flag to avoid spurious warnings when inheritance is set.
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r--winsup/cygwin/exceptions.cc126
1 files changed, 63 insertions, 63 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 6e1ae4591..c0d88a815 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -1144,69 +1144,69 @@ void unused_sig_wrapper ()
prototype signal handlers as __stdcall), calls _set_process_mask
to restore any mask, restores any potentially clobbered registers
and returns to original caller. */
-__asm__ volatile ("
- .text
-
-_sigreturn:
- addl $4,%%esp # Remove argument
- movl %%esp,%%ebp
- addl $36,%%ebp
-
- cmpl $0,%4 # Did a signal come in?
- jz 1f # No, if zero
- call _call_signal_handler@0 # yes handle the signal
-
-# FIXME: There is a race here. The signal handler could set up
-# the sigsave structure between _call_signal_handler and the
-# end of _set_process_mask. This would make cygwin detect an
-# incorrect signal mask.
-
-1: call _set_process_mask@4
- popl %%eax # saved errno
- testl %%eax,%%eax # Is it < 0
- jl 2f # yup. ignore it
- movl %1,%%ebx
- movl %%eax,(%%ebx)
-2: popl %%eax
- popl %%ebx
- popl %%ecx
- popl %%edx
- popl %%edi
- popl %%esi
- popf
- popl %%ebp
- ret
-
-__no_sig_start:
-_sigdelayed:
- pushl %2 # original return address
-_sigdelayed0:
- pushl %%ebp
- movl %%esp,%%ebp
- pushf
- pushl %%esi
- pushl %%edi
- pushl %%edx
- pushl %%ecx
- pushl %%ebx
- pushl %%eax
- pushl %7 # saved errno
- pushl %3 # oldmask
- pushl %4 # signal argument
- pushl $_sigreturn
-
- call _reset_signal_arrived@0
- pushl %5 # signal number
- movl $0,%0 # zero the signal number as a
- # flag to the signal handler thread
- # that it is ok to set up sigsave
-
- pushl %8
- call _set_process_mask@4
- popl %%eax
- jmp *%%eax
-__no_sig_end:
-
+__asm__ volatile ("\n\
+ .text\n\
+\n\
+_sigreturn:\n\
+ addl $4,%%esp # Remove argument\n\
+ movl %%esp,%%ebp\n\
+ addl $36,%%ebp\n\
+\n\
+ cmpl $0,%4 # Did a signal come in?\n\
+ jz 1f # No, if zero\n\
+ call _call_signal_handler@0 # yes handle the signal\n\
+\n\
+# FIXME: There is a race here. The signal handler could set up\n\
+# the sigsave structure between _call_signal_handler and the\n\
+# end of _set_process_mask. This would make cygwin detect an\n\
+# incorrect signal mask.\n\
+\n\
+1: call _set_process_mask@4\n\
+ popl %%eax # saved errno\n\
+ testl %%eax,%%eax # Is it < 0\n\
+ jl 2f # yup. ignore it\n\
+ movl %1,%%ebx\n\
+ movl %%eax,(%%ebx)\n\
+2: popl %%eax\n\
+ popl %%ebx\n\
+ popl %%ecx\n\
+ popl %%edx\n\
+ popl %%edi\n\
+ popl %%esi\n\
+ popf\n\
+ popl %%ebp\n\
+ ret\n\
+\n\
+__no_sig_start:\n\
+_sigdelayed:\n\
+ pushl %2 # original return address\n\
+_sigdelayed0:\n\
+ pushl %%ebp\n\
+ movl %%esp,%%ebp\n\
+ pushf\n\
+ pushl %%esi\n\
+ pushl %%edi\n\
+ pushl %%edx\n\
+ pushl %%ecx\n\
+ pushl %%ebx\n\
+ pushl %%eax\n\
+ pushl %7 # saved errno\n\
+ pushl %3 # oldmask\n\
+ pushl %4 # signal argument\n\
+ pushl $_sigreturn\n\
+\n\
+ call _reset_signal_arrived@0\n\
+ pushl %5 # signal number\n\
+ movl $0,%0 # zero the signal number as a\n\
+ # flag to the signal handler thread\n\
+ # that it is ok to set up sigsave\n\
+\n\
+ pushl %8\n\
+ call _set_process_mask@4\n\
+ popl %%eax\n\
+ jmp *%%eax\n\
+__no_sig_end:\n\
+\n\
" : "=m" (sigsave.sig) : "m" (&_impure_ptr->_errno),
"g" (sigsave.retaddr), "g" (sigsave.oldmask), "g" (sigsave.sig),
"g" (sigsave.func), "o" (pid_offset), "g" (sigsave.saved_errno), "g" (sigsave.newmask)