aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/cygtls.h
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2006-05-25 02:33:13 +0000
committerChristopher Faylor <me@cgf.cx>2006-05-25 02:33:13 +0000
commit38229bcdcf45221857163f39d865d1d5d113a9b7 (patch)
tree4a525ef2515e8ce1715ea075e12d34a55c198390 /winsup/cygwin/cygtls.h
parent99fc5e10f338e668b85288366e03727157f23af5 (diff)
downloadnewlib-38229bcdcf45221857163f39d865d1d5d113a9b7.zip
newlib-38229bcdcf45221857163f39d865d1d5d113a9b7.tar.gz
newlib-38229bcdcf45221857163f39d865d1d5d113a9b7.tar.bz2
* cygtls.cc (_cygtls::call): Call call2 using _my_tls.
(_cygtls::init_exception_handler): Always replace existing exception handler with cygwin exception handler. * cygtls.h (_cygtls::call2): Remove static designation. * dcrto.cc (dll_crt0_1): Define in a way that allows calling via _cygtls::call. (_initialize_main_tls): Delete. (_dll_crt0): Call dll_crt0_1 via cygtls::call. Set _main_tls here. * external.cc (cygwin_internal): Implement CW_CYGTLS_PADSIZE. * include/sys/cygwin.h (CW_CYGTLS_PADSIZE): Define. * tlsoffsets.h: Regenerate.
Diffstat (limited to 'winsup/cygwin/cygtls.h')
-rw-r--r--winsup/cygwin/cygtls.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/winsup/cygwin/cygtls.h b/winsup/cygwin/cygtls.h
index fb34df2..6379f8c 100644
--- a/winsup/cygwin/cygtls.h
+++ b/winsup/cygwin/cygtls.h
@@ -138,6 +138,7 @@ typedef __uint32_t __stack_t;
struct _cygtls
{
void (*func) /*gentls_offsets*/(int)/*gentls_offsets*/;
+ exception_list el;
int saved_errno;
int sa_flags;
sigset_t oldmask;
@@ -159,7 +160,6 @@ struct _cygtls
};
struct _local_storage locals;
class cygthread *_ctinfo;
- exception_list el;
san andreas;
waitq wq;
struct _cygtls *prev, *next;
@@ -176,7 +176,7 @@ struct _cygtls
static void init ();
void init_thread (void *, DWORD (*) (void *, void *));
static void call (DWORD (*) (void *, void *), void *);
- static void call2 (DWORD (*) (void *, void *), void *, void *) __attribute__ ((regparm (3)));
+ void call2 (DWORD (*) (void *, void *), void *, void *) __attribute__ ((regparm (3)));
static struct _cygtls *find_tls (int sig);
void remove (DWORD);
void push (__stack_t) __attribute__ ((regparm (2)));