f153e6b280
(_cygtls::handle_exceptions): New function declaration. (_cygtls::handle_threadlist_exception): Ditto. (_cygtls::init_exception_handler): Ditto. (_cygtls::init_threadlist_exceptions): Remove arg from declaration. * cygtls.cc (_cygtls::call2): Don't initialize exceptions here. (_cygtls::init_thread): Do it here instead and use member function. (_cygtls::handle_threadlist_exception): Move into _cygtls class. (_cygtls::init_exception_handler): Ditto. Rely on existence of 'el' memmber in _cygtls. (_cygtls::init_threadlist_exceptions): Ditto. * dcrt0.cc (dll_crt0_1): Remove exception_list definition and setting since it now commonly resides in the tls. * exceptions.cc (init_exception_handler): Move to cygtls.cc. (init_exceptions): Ditto. (rtl_unwind): New, safe wrapper function for RtlUnwind. (_cygtls::handle_exceptions): Move to _cygtls. Call rtl_unwind to unwind frames and eliminate copying of structures. Put address of failing instruction in si_addr, not the address on the stack. Return 0 to indicate that we've handled this exception. * external.cc (cygwin_internal): Make CW_INIT_EXCEPTIONS a no-op. * sigproc.cc (wait_sig): Accommodate argument change to _cygtls::init_threadlist_exceptions. * tlsoffsets.h: Regenerate. * include/exceptions.h (exception_list): Add more stuff to the exception list. Apparently windows needs this? (init_exceptions): Remove bogus declaration. * include/cygwin/signal.h (SI_USER): Redefine as zero as per SUSv3. * thread.cc (pthread_kill): Set si_pid and si_uid. * timer.cc (timer_thread): Set si_code to SI_TIMER.
126 lines
3.2 KiB
C
126 lines
3.2 KiB
C
//;# autogenerated: Do not edit.
|
|
|
|
//; $tls::sizeof__cygtls = 4028;
|
|
//; $tls::func = -4028;
|
|
//; $tls::pfunc = 0;
|
|
//; $tls::saved_errno = -4024;
|
|
//; $tls::psaved_errno = 4;
|
|
//; $tls::sa_flags = -4020;
|
|
//; $tls::psa_flags = 8;
|
|
//; $tls::oldmask = -4016;
|
|
//; $tls::poldmask = 12;
|
|
//; $tls::deltamask = -4012;
|
|
//; $tls::pdeltamask = 16;
|
|
//; $tls::event = -4008;
|
|
//; $tls::pevent = 20;
|
|
//; $tls::errno_addr = -4004;
|
|
//; $tls::perrno_addr = 24;
|
|
//; $tls::initialized = -4000;
|
|
//; $tls::pinitialized = 28;
|
|
//; $tls::sigmask = -3996;
|
|
//; $tls::psigmask = 32;
|
|
//; $tls::sigwait_mask = -3992;
|
|
//; $tls::psigwait_mask = 36;
|
|
//; $tls::sigwait_info = -3988;
|
|
//; $tls::psigwait_info = 40;
|
|
//; $tls::threadkill = -3984;
|
|
//; $tls::pthreadkill = 44;
|
|
//; $tls::infodata = -3980;
|
|
//; $tls::pinfodata = 48;
|
|
//; $tls::tid = -3832;
|
|
//; $tls::ptid = 196;
|
|
//; $tls::local_clib = -3828;
|
|
//; $tls::plocal_clib = 200;
|
|
//; $tls::__dontuse = -3828;
|
|
//; $tls::p__dontuse = 200;
|
|
//; $tls::locals = -2764;
|
|
//; $tls::plocals = 1264;
|
|
//; $tls::_ctinfo = -1132;
|
|
//; $tls::p_ctinfo = 2896;
|
|
//; $tls::el = -1128;
|
|
//; $tls::pel = 2900;
|
|
//; $tls::andreas = -1088;
|
|
//; $tls::pandreas = 2940;
|
|
//; $tls::wq = -1080;
|
|
//; $tls::pwq = 2948;
|
|
//; $tls::prev = -1052;
|
|
//; $tls::pprev = 2976;
|
|
//; $tls::next = -1048;
|
|
//; $tls::pnext = 2980;
|
|
//; $tls::stackptr = -1044;
|
|
//; $tls::pstackptr = 2984;
|
|
//; $tls::sig = -1040;
|
|
//; $tls::psig = 2988;
|
|
//; $tls::incyg = -1036;
|
|
//; $tls::pincyg = 2992;
|
|
//; $tls::spinning = -1032;
|
|
//; $tls::pspinning = 2996;
|
|
//; $tls::stacklock = -1028;
|
|
//; $tls::pstacklock = 3000;
|
|
//; $tls::stack = -1024;
|
|
//; $tls::pstack = 3004;
|
|
//; $tls::padding = 0;
|
|
//; $tls::ppadding = 4028;
|
|
//; __DATA__
|
|
|
|
#define tls_func (-4028)
|
|
#define tls_pfunc (0)
|
|
#define tls_saved_errno (-4024)
|
|
#define tls_psaved_errno (4)
|
|
#define tls_sa_flags (-4020)
|
|
#define tls_psa_flags (8)
|
|
#define tls_oldmask (-4016)
|
|
#define tls_poldmask (12)
|
|
#define tls_deltamask (-4012)
|
|
#define tls_pdeltamask (16)
|
|
#define tls_event (-4008)
|
|
#define tls_pevent (20)
|
|
#define tls_errno_addr (-4004)
|
|
#define tls_perrno_addr (24)
|
|
#define tls_initialized (-4000)
|
|
#define tls_pinitialized (28)
|
|
#define tls_sigmask (-3996)
|
|
#define tls_psigmask (32)
|
|
#define tls_sigwait_mask (-3992)
|
|
#define tls_psigwait_mask (36)
|
|
#define tls_sigwait_info (-3988)
|
|
#define tls_psigwait_info (40)
|
|
#define tls_threadkill (-3984)
|
|
#define tls_pthreadkill (44)
|
|
#define tls_infodata (-3980)
|
|
#define tls_pinfodata (48)
|
|
#define tls_tid (-3832)
|
|
#define tls_ptid (196)
|
|
#define tls_local_clib (-3828)
|
|
#define tls_plocal_clib (200)
|
|
#define tls___dontuse (-3828)
|
|
#define tls_p__dontuse (200)
|
|
#define tls_locals (-2764)
|
|
#define tls_plocals (1264)
|
|
#define tls__ctinfo (-1132)
|
|
#define tls_p_ctinfo (2896)
|
|
#define tls_el (-1128)
|
|
#define tls_pel (2900)
|
|
#define tls_andreas (-1088)
|
|
#define tls_pandreas (2940)
|
|
#define tls_wq (-1080)
|
|
#define tls_pwq (2948)
|
|
#define tls_prev (-1052)
|
|
#define tls_pprev (2976)
|
|
#define tls_next (-1048)
|
|
#define tls_pnext (2980)
|
|
#define tls_stackptr (-1044)
|
|
#define tls_pstackptr (2984)
|
|
#define tls_sig (-1040)
|
|
#define tls_psig (2988)
|
|
#define tls_incyg (-1036)
|
|
#define tls_pincyg (2992)
|
|
#define tls_spinning (-1032)
|
|
#define tls_pspinning (2996)
|
|
#define tls_stacklock (-1028)
|
|
#define tls_pstacklock (3000)
|
|
#define tls_stack (-1024)
|
|
#define tls_pstack (3004)
|
|
#define tls_padding (0)
|
|
#define tls_ppadding (4028)
|