summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/cygwin.din
Commit message (Collapse)AuthorAgeFilesLines
...
* * cygtls.h (CYGTLS_INITIALIZED): Change to a little more unlikely value.Christopher Faylor2006-03-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | (CYGTLSMAGIC): Delete. * dcrt0.cc (dll_crt0_0): Call sigproc_init during init startup. (_dll_crt0): Don't worry about sync_startup. Just wait for sigthread here. * dll_init.cc (cygwin_detach_dll): Only pick up tls version of retaddr if we have a valid tls. * fork.cc (frok::child): Remove sigproc_init initialization since it happens much earlier now. * gendef: Recognize SIGFE_MAYBE. (fefunc): Generate calls to _sigfe_maybe, if appropriate. (_sigfe_maybe): New function. * init.cc (search_for): Always initialize search_for, even on fork. (calibration_thread): Delete. (calibration_id): Delete. (prime_threads): Delete. (munge_threadfunc): Remove calibration_thread special case. Avoid calling thread function if we haven't yet hit the "search_for" thread. (dll_entry): Remove prime_threads call. Only call munge_threadfunc when hwait_sig is active. Ditto. for _my_tls.remove (); * sigproc.cc (hwait_sig): Make global. (sigproc_init): Don't bother with sync_startup. (sig_send): Treat flush as a no-op when signals are held. (wait_sig): Cause signals to be held after fork.
* * cygwin.din: Fix some erroneous SIGFE/NOSIGFE settings.Christopher Faylor2006-03-011-38/+36
| | | | | | | * cygthread.cc (cygthread::callfunc): Revert below change. Make ev a manual reset event again. so that it will be reset by WaitFor*Object as appropriate. (cygthread::stub): Ditto. (cygthread::terminate_thread): Reset ev if it was found to have been set.
* * cygwin.din: Export __isinff, __isinfd, __isnanf, __isnand.Corinna Vinschen2006-02-281-0/+4
| | | | * include/cygwin/version.h: Bump API minor number to 155.
* * cygwin.din (_exit): Use signal front end.Christopher Faylor2006-02-241-2/+2
| | | | (exit): Ditto.
* * cygwin.din: Export sigignore and sigset.Corinna Vinschen2006-02-161-0/+2
| | | | | | | | | * exceptions.cc (sigset): New function. (sigignore): New function. * include/cygwin/signal.h (SIG_HOLD): Define. (sigignore): Declare. (sigset): Declare. * include/cygwin/version.h: Bump API minor number to 154.
* * cygwin.din (updwtmpx): Export.Corinna Vinschen2006-02-021-0/+1
| | | | | | * syscalls.cc (updwtmpx): New function. * include/utmpx.h (updwtmpx): Declare. * include/cygwin/version.h: Bump API minor number to 153.
* * include/cygwin/version.h: Bump API minor number to 151.Christopher Faylor2006-01-211-1/+1
| | | | | | | | | | | | | | | * dir.cc (__opendir_with_d_ino): New function. (opendir): Set flag if we should be calculating inodes. (readdir_worker): Calculate d_ino by calling stat if the user has asked for it. (seekdir64): Maintain all persistent flag settings. * fhandler.h (dirent_states): Add dirent_set_d_ino. * fhandler_disk_file.cc (fhandler_disk_file::opendir): Reflect changes to dirent structure. * fhandler_virtual.cc (fhandler_virtual::opendir): Ditto. * include/sys/dirent.h (struct dirent): Coalesce two similar structures. Remove all threads of the apparently highly confusing references to inodes. Add support for calculating a real inode if __USE_EXPENSIVE_CYGWIN_D_INO is defined.
* * cygwin.din: Export getsubopt.Corinna Vinschen2006-01-091-0/+1
| | | | * include/cygwin/version.h: Bump API minor version.
* * libc: Add subdirectory.Corinna Vinschen2005-11-181-0/+2
| | | | | | | | | | | | | * Makefile.in (VPATH): Add libc subdir. (DLL_OFILES): Add strptime.o and timelocal.o. * cygwin.din: Export timelocal and timegm. * localtime.cc: Define STD_INSPIRED unconditionally. * include/cygwin/time.h (timelocal): Add declaration. (timegm): Ditto. * include/cygwin/version.h: Bump API minor version. * libc/strptime.cc: New file. * libc/timelocal.cc: New file. * libc/timelocal.h: New file.
* * cygheap.h (init_cygheap::_gtod): Remove.Christopher Faylor2005-11-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | * cygwin.din: Export clock_getres and clock_setres. * hires.h (hires_ms::minperiod): Delete declaration. (hires_ms::began_period): Ditto. (hires_ms::prime): Make void. (hires_ms::resolution): Just define here. (hires_ms::usecs): Remove unneeded argument. (gtod): Redeclare as a variable. * timer.cc (timer_thread): Eliminate argument to gtod.usecs(). (timer_tracker::gettime): Ditto. (timer_tracker::settime): Ditto. * times.cc (gettimeofday): Ditto. (hires_ms::began_period): Delete declaration. (hires_us::prime): Remove debugging. (hires_ms::prime): Make void. Eliminate period stuff. (hires_ms::usecs): Eliminate argument to gtod.usecs(). (hires_ms::resolution): New function. (clock_getres): Ditto. (clock_setres): Ditto. * version.h: Bump API version to 143. * include/cygwin/time.h: New file.
* * memmem.cc: New file.Christopher Faylor2005-11-081-0/+1
| | | | | * include/cygwin/version.h: Bump API version number to 142. * cygwin.din: Export memmem.
* * cygwin.din (futimes): Export.Corinna Vinschen2005-10-201-0/+2
| | | | | | | | | | (lutimes): Export. * times.cc (utimes_worker): Created from utimes, add nofollow flag to implement utimes and lutimes. (utimes): Just call utimes_worker. (lutimes): New function. (futimes): Ditto. * include/cygwin/version.h: Bump API minor version.
* * autoload.cc (NtLockVirtualMemory): Import.Corinna Vinschen2005-10-181-0/+2
| | | | | | | | | | | | | | | | | | | | | (NtUnlockVirtualMemory): Import. (GetProcessWorkingSetSize): Import. (SetProcessWorkingSetSize): Import. * cygwin.din (mlock): Export. (munlock): Export. * mmap.cc (mlock): New function. (munlock): Ditto. * ntdll.h (STATUS_WORKING_SET_QUOTA): Define. (LOCK_VM_IN_WSL): Define. (LOCK_VM_IN_RAM): Define. (NtLockVirtualMemory): Declare. (NtUnlockVirtualMemory): Declare. * sysconf.cc (sysconf): Implement _SC_MEMLOCK_RANGE. * wincap.h: Implement has_working_virtual_lock throughout. * wincap.cc: Ditto. * include/cygwin/version.h: Bump API minor version. * include/sys/mman.h (mlock): Declare, (munlock): Declare.
* * cygwin.din: Correct readdir_r typo.Christopher Faylor2005-08-281-1/+1
|
* * cygerrno.h (geterrno_from_win_error): Change declaration to default to usingChristopher Faylor2005-08-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | GetLastError and EACCESS. * cygwin.din: Export readdir_r. * include/cygwin/version.h: Bump API version number to 138. * syscalls.cc (readdir_worker): New function, renamed from old readdir() function. (readdir): Use readdir_worker. (readdir_r): New function. * fhandler.h (fhandler_base::readdir): Accommodate second argument indicating dirent buffer. (fhandler_disk_file::readdir): Ditto. (fhandler_cygdrive::readdir): Ditto. (fhandler_proc::readdir): Ditto. (fhandler_netdrive::readdir): Ditto. (fhandler_registry::readdir): Ditto. (fhandler_process::readdir): Ditto. * fhandler.cc (fhandler_base::readdir): Ditto. * fhandler_disk_file.cc (fhandler_disk_file::readdir): Ditto. * fhandler_cygdrive.cc (fhandler_cygdrive::readdir): Ditto. * fhandler_proc.cc (fhandler_proc::readdir): Ditto. * fhandler_netdrive.cc (fhandler_netdrive::readdir): Ditto. * fhandler_registry.cc (fhandler_registry::readdir): Ditto. * fhandler_process.cc (fhandler_process::readdir): Ditto.
* * Makefile.in (DLL_OFILES): Add fts.o, ftw.o, nftw.o.Corinna Vinschen2005-08-081-0/+10
| | | | | | | | | | | | * cygwin.din: Export fts_children, fts_close, fts_get_clientptr, fts_get_stream, fts_open, fts_read, fts_set, fts_set_clientptr, ftw, nftw. * fts.c: New file, imported from FreeBSD. * ftw.c: Ditto. * nftw.c: Ditto. * include/fts.h: Ditto. * include/ftw.h: Ditto. * include/cygwin/version.h: Bump API minor number.
* * fhandler.h (fhandler_base::pread): Declare new function.Christopher Faylor2005-07-291-0/+2
| | | | | | | | | | | | | | | (fhandler_base::pwrite): Ditto. (fhandler_disk_file::pread): Ditto. (fhandler_disk_file::pwrite): Ditto. * fhandler.cc (fhandler_base::pread): Define new function. (fhandler_base::pwrite): Ditto. * fhandler_disk_file.cc (fhandler_base::pread): Ditto. (fhandler_base::pwrite): Ditto. * syscalls.cc (pread): Define new function. (pwrite): Ditto. * cygwin.din: Export pread, pwrite. * include/sys/ioctl.h: Guard some _IO* declarations to avoid conflict with socket.h.
* * cygwin.din (getline): Export.Corinna Vinschen2005-07-091-2/+4
| | | | | | | (getdelim): Export. * include/sys/stdio.h (getline): Replace macro with function prototype. (getdelim): Likewise. * include/cygwin/version.h: Bump API minor number.
* * cygwin.din (__getline): Export.Corinna Vinschen2005-07-081-0/+2
| | | | | | | (__getdelim): Export. * include/sys/stdio.h (getline): Define as __getline. (getdelim): Define as __getdelim. * include/cygwin/version.h: Bump API minor number.
* * cygwin.din (inet_pton): Export.Corinna Vinschen2005-06-171-0/+2
| | | | | | | | | (inet_ntop): Export. * net.cc (cygwin_inet_pton): Implement inet_pton for AF_INET for now. (cygwin_inet_ntop): Implement inet_ntop for AF_INET for now. * include/arpa/inet.h (inet_pton): Declare. (inet_ntop): Declare. * include/cygwin/version.h: Bump API minor number.
* * cygwin.din (imaxabs): Export.Corinna Vinschen2005-06-101-0/+6
| | | | | | | | | | | | | (imaxdiv): Export. (llabs): Export. (lldiv): Export. (strtoimax): Export. (strtoumax): Export. * include/inttypes.h (imaxabs): Activate declaration. (imaxdiv): Ditto. (strtoimax): Ditto. (strtoumax): Ditto. * include/cygwin/version.h: Bump API minor.
* * cygtls.h (_local_storage::setmode_file): New element.Christopher Faylor2005-06-091-2/+2
| | | | | | | | | | (_local_storage::setmode_mode): New element. * tlsoffsets.h: Regenerate. * cygwin.din (setmode): Define as cygwin_getmode. * syscalls.cc (setmode_helper): Use setmode_* variables from tls rather than using unthreadsafe static. (setmode): Break out fwalk stuff. (cygwin_setmode): New function. Put fwalk stdio stuff here.
* * cygwin.din: Remove signal front end from pthread_[gs]etspecific.Christopher Faylor2005-05-291-2/+2
|
* * cygwin.din: Export mkdtemp.Christopher Faylor2005-05-251-0/+2
| | | | | * mktemp.cc: New file. * Makefile.in (DLL_OFILES): Add mktemp.o
* * cygwin.din (pselect): Export.Corinna Vinschen2005-04-191-0/+1
| | | | | | * select.cc (pselect): New function. * include/cygwin/version.h: Bump API minor number. * include/sys/select.h: Include signal.h. Declare pselect.
* * dcrt0.cc (do_global_dtors): Run DLL dtors.Christopher Faylor2005-04-141-0/+1
| | | | | | | | | | | | | | | | | (__main): Don't rely on atexit to run dtors. (do_exit): Specifically call do_global_dtors here. (cygwin_exit): Ditto. * dll_init.cc (dll_global_dtors): Make global. Only run dtors once. (dll_list::init): Just set flag that dtors should be run. Don't rely on atexit. * dll_init.h (dll_global_dtors): Declare. * exceptions.cc (sigrelse): Define. * path.h (is_fs_device): New method. (is_lnk_special): Ditto. * fhandler_disk_file.cc (fhandler_disk_file::link): Use "is_lnk_special" rather than "is_lnk_symlink". * syscalls.cc (rename): Ditto. * hookapi.cc (ld_preload): Use colon as a separator rather than space.
* * cygthread.cc (cygthread::detach): Revert to just waiting for thred eventChristopher Faylor2005-03-281-0/+1
| | | | | | | | | | | | | | | | | since waiting for anything else is racy. * timer.cc (timer_tracker::hcancel): Rename from cancel. (timer_tracker::cancel): New method. (timer_tracker::th): Remove. (timer_tracker::~timer_tracker): Call cancel method. (timer_tracker::timer_tracker): Ditto. (timer_tracker::timer_tracker): Always, clear cancel, even though it is probably not strictly necessary for ttstart. (timer_thread): Accommodate cancel -> hcancel rename. (timer_tracker::settime): Ditto. (timer_tracker::gettime): Ditto. (timer_delete): Ditto. * cygwin.din: Export _ctype_. * include/ctype.h: Mark that _ctype_ is imported.
* * wininfo.h (wininfo::timer_active): Delete.Christopher Faylor2005-03-271-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (wininfo::itv): Ditto. (wininfo::start_time): Ditto. (wininfo::window_started): Ditto. (wininfo::getitimer): Ditto. (wininfo::setitimer): Ditto. (wininfo::wininfo): Ditto. (wininfo::lock): New method. (wininfo::release): Ditto. * window.cc: Use new lock/acquire wininfo methods throughout. (wininfo::wininfo): Delete (wininfo::getitimer): Ditto. (wininfo::setitimer): Ditto. (getitimer): Ditto. (setitimer): Ditto. (ualarm): Ditto. (alarm): Ditto. (wininfo::lock): Define new function. (wininfo::release): Ditto. (wininfo::process): Delete WM_TIMER handling. * timer.cc (struct timetracker): Delete it, flags. Add it_interval, interval_us, sleepto_us, running, init_muto(), syncthread, and gettime(). (ttstart): Make NO_COPY. (lock_timer_tracker): New class. (timer_tracker::timer_tracker): Distinguish ttstart case. (timer_tracker::~timer_tracker): New destructor. Clean out events, and reset magic. (timer_tracker::init_muto): New method. (to_us): Round up as per POSIX. (timer_thread): Reorganize to match timer_tracker::settime and timer_tracker::gettime. Call sig_send without wait. Call auto_release. (timer_tracker::settime): Reorganize logic to avoid race. Call gettime to recover old value. (timer_tracker::gettime): New method. (timer_create): Properly set errno on invalid timerid. Use new lock_timer_tracker method. (timer_delete): Ditto. Simplify code slightly. (timer_gettime): New function. (fixup_timers_after_fork): Reinit ttstart. (getitimer): New implementation. (setitimer): Ditto. (ualarm): Ditto. (alarm): Ditto. * cygwin.din: Export timer_gettime. * winsup.h: Remove has has_visible_window_station declaration. * Makefile.in (DLL_OFILES): Add lsearch.o. * cygthread.h (cygthread::notify_detached): New element. (cygthread::cygthread): Take optional fourth argument signifying event to signal on thread completion. * cygthread.cc (cygthread::stub): Signal notify_detached event, if it exists. (cygthread::cygthread): Initialize notify_detached from fourth argument. (cygthread::detach): Wait for notify_detached field is present. * lsearch.cc: New file. * search.h: Ditto. * include/cygwin/version.h: Bump API minor number to 126. * cygwin.din: Export lsearch, lfind.
* checkin previously missed file.Christopher Faylor2005-03-231-1/+0
|
* * cygwin.din (__ctype_ptr): Export.Corinna Vinschen2005-03-221-0/+1
| | | | * include/cygwin/version.h: Bump API minor version.
* * cygwin.din (utmpxname): Export.Corinna Vinschen2005-03-031-0/+1
| | | | | | | | * syscalls.cc (utmpxname): Create export alias to utmpname. * include/utmpx.h: Define ut_name and ut_xtime if not already defined. (utmpxname): Add prototype. * include/sys/utmp.h: Only define ut_name if not already defined. * include/cygwin/version.h: Bump API minor version.
* * cygwin.din (getpeereid): Export.Corinna Vinschen2005-02-231-0/+1
| | | | | | | | | | | | | | | | | | | | | * fhandler.h (class fhandler_socket): Add pipe and id members to exchange eid credentials for AF_LOCAL sockets. (eid_pipe_name): Declare new method. (getpeereid): Ditto. * fhandler_socket.cc (fhandler_socket::eid_pipe_name): New method. (fhandler_socket::fhandler_socket): Initialize sec_pipe. (fhandler_socket::connect): Exchange eid credentials with accepting socket process. (fhandler_socket::listen): Prepare eid credential transaction. (fhandler_socket::accept): Exchange eid credentials with connecting socket process. (fhandler_socket::close): Close eid credentials pipe if open. (fhandler_socket::getpeereid): New method. * net.cc (cygwin_getsockopt): Add SO_PEERCRED handling. (getpeereid): New function. * include/asm/socket.h (SO_PEERCRED): Define. * include/cygwin/socket.h (struct ucred): Define new type. * include/cygwin/version.h: Bump API minor version.
* * cygwin.din (fstatvfs): Export.Corinna Vinschen2005-02-231-0/+2
| | | | | | | | | | | | | (statvfs): Export. * syscalls.cc: Include sys/statvfs.h. (statvfs): New function. Move statfs functionality here. (fstatvfs): New function. (statfs): Just call statvfs and copy structure. Check validity of incoming struct statfs pointer. * include/cygwin/types.h (fsblkcnt_t): Define. (fsfilcnt_t): Define. * include/cygwin/version.h: Bump API minor version. * include/sys/statvfs.h: New file.
* * cygwin.din (basename): Export.Corinna Vinschen2005-02-221-0/+2
| | | | | | | | (dirname): Export. * path.cc (basename): New function. (dirname): New function. * include/libgen.h: New file. * include/cygwin/version.h: Bump API minor version.
* * cygwin.din (fdatasync): Export.Corinna Vinschen2005-02-221-0/+1
| | | | | | | * fhandler.cc (fhandler_base::fsync): Return with EINVAL if no handle is available. * syscalls.cc (fdatasync): Create export alias to fsync. * include/cygwin/version.h: Bump API minor version.
* * cygwin.din: Export getpriority and setpriority.Corinna Vinschen2005-01-251-0/+2
| | | | | | | | | | | | | | | | | | | | | | * fork.cc (fork_parent): Copy parent's nice value into child. * spawn.cc (spawn_guts): Ditto. * miscfuncs.cc (winprio_to_nice): New function. (nice_to_winprio): Ditto. * pinfo.cc (pinfo_init): If parent is not a Cygwin process, set default nice value according to current Win32 priority class. * pinfo.h (class _pinfo): Add nice member. * syscalls.cc (setpriority): New function, only implementing PRIO_PROCESS for now. (getpriority): Ditto. (nice): Just call setpriority. * wincap.h (wincaps::has_extended_priority_class): New element. * wincap.cc: Implement above element throughout. * winsup.h: Add prototypes for winprio_to_nice and nice_to_winprio. * include/limits.h (NZERO): New define. * include/cygwin/types.h (id_t): New datatype. * include/cygwin/version.h: Bump API minor version. * include/sys/resource.h: Add PRIO_XXX defines and prototypes for getpriority and setpriority.
* * cygwin.din: Add utmpx symbols.Corinna Vinschen2004-12-151-0/+6
| | | | | | | | | | | | | | | | | | | * syscalls.cc: Include utmpx.h. Implement utmpx functions as stubs to utmp functions. (copy_ut_to_utx): New static function. (pututline): Change from void to struct utmp * as on Linux. (setutxent): New function. (endutxent): New function. (getutxent): New function. (getutxid): New function. (getutxline): New function. (pututxline): New function. * include/utmpx.h: New file. * include/cygwin/utmp.h: New file. * include/cygwin/version.h: Bump API minor number. * include/sys/utmp.h: Include cygwin/utmp.h. Move stuff common with utmpx functionality there. (pututline): Declare struct utmp *.
* * cygwin.din (_impure_ptr): And export again. There are libs out there.Corinna Vinschen2004-09-171-0/+1
|
* * cygwin.din (_impure_ptr): Don't export.Corinna Vinschen2004-09-161-1/+1
| | | | | | (reent_data): Export. * lib/_cygwin_crt0_common.cc (_impure_ptr): Drop entirely. Don't initialize _impure_ptr or u->impure_ptr_ptr.
* * cygwin.din (_impure_ptr): Export.Christopher Faylor2004-09-161-1/+1
| | | | | | | | | (reent_data): Don't export. * dcrt0.cc (reent_data): Drop. (__cygwin_user_data): Initialize impure_ptr as GLOBAL_REENT. (_dll_crt0): Initialize _impure_ptr as GLOBAL_REENT. * lib/_cygwin_crt0_common.cc (_impure_ptr): Drop. Declare extern as dllimport instead.
* * include/cygwin/version.h: Bump api minor version number.Christopher Faylor2004-05-251-0/+1
| | | | * cygwin.din: Export atoll.
* * cygwin.din: Add symbols flockfile, ftrylockfile, funlockfile,Corinna Vinschen2004-05-171-0/+6
| | | | | | | | | | | | | | | | | | getgrgid_r, getgrnam_r and getlogin_r. * grp.cc (getgrgid_r): New function. (getgrnam_r): Ditto. * syscalls.cc (flockfile): Ditto. (ftrylockfile): Ditto. (funlockfile): Ditto. * sysconf.cc (sysconf): Return LOGIN_NAME_MAX in case of _SC_LOGIN_NAME_MAX. * thread.cc (__cygwin_lock_trylock): Define int. Return value from call to pthread_mutex_trylock. * uinfo.cc (getlogin_r): New function. * include/limits.h: Define LOGIN_NAME_MAX. * include/cygwin/version.h: Bump API minor number. * include/sys/lock.h: Add declarations for __cygwin_lock_xxx functions. * include/sys/stdio.h: Add define for _ftrylockfile.
* * cygwin.din: Export rand_r and ttyname_r.Corinna Vinschen2004-04-141-0/+2
| | | | | | * syscalls.cc (ttyname_r): New function. (ttyname): Move functionality to ttyname_r. Call it from here. * include/cygwin/version.h: Bump API minor number.
* * exceptions.cc (setup_handler): Signal event for any sigwaitinfo if it existsChristopher Faylor2004-02-261-0/+2
| | | | | | | | | | | | | | | | | | | | | to force signal to be handled. Zero event here to prevent races. * signal.cc (sigwaitinfo): Use local handle value for everything since signal thread could zero event element at any time. Detect when awaking due to thread not in mask and set return value and errno accordingly. Don't set signal number to zero unless we've recognized the signal. * sigproc.cc (sigq): Rename from sigqueue throughout. * thread.cc (pthread::join): Handle signals received while waiting for thread to terminate. * cygwin.din: Export sighold, sigqueue. * exceptions.cc (sighold): Define new function. * signal.cc (handle_sigprocmask): Set correct errno for invalid signal. Simplify debugging output. (sigqueue): Define new function. * include/cygwin/signal.h (sighold): Declare new function. (sigqueue): Ditto. * include/cygwin/version.h: Bump API minor version number. * include/limits.h (TIMER_MAX): Define. (_POSIX_TIMER_MAX): Ditto.
* * localtime.cc (localtime_r): Call tzset.Christopher Faylor2004-02-081-13/+12
| | | | | | | | | | | | | | | | | | | | | | * Makefile.in: Make version.h/cygwin.din version check a warning since it is not foolproof. * cygheap.h (CYGHEAPSIZE): Bump size down. * cygtls.h (_threadinfo::stacklock): New element. (_threadinfo::pop): Make regparm. (_threadinfo::lock): New function. (_threadinfo::unlock): New function. * cygtls.cc (_threadinfo::push): Wait for a lock on the stack before performing the operation. (_threadinfo::pop): Move to another file. * cygwin.din: More SIGFE changes. * exceptions.cc (try_to_debug): Always display messages on console. (handle_exceptions): Unwind stack only when actually about to call sig_send. (setup_handler): Lock stack prior to performing any operations. * gendef (_sigfe): Ditto. (_sigbe): Ditto. (_threadinfo::pop): Ditto. Move here. * gen_tlsoffsets: Generate positive offsets. * tlsoffsets.h: Regenerate.
* * cygwin.din: Make many more functions SIGFE.Christopher Faylor2004-02-051-66/+66
| | | | * include/cygwin/version.h (CYGWIN_VERSION_SHARED_DATA): Bump.
* * dcrt0.cc (reent_data): Make global.Christopher Faylor2004-01-221-0/+1
| | | | * cygwin.din: Reexport reent_data.
* * cygwin/include/signal.h: Add copyright notice.Christopher Faylor2004-01-191-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cygwin.din: Make clock SIGFE. Add clock_gettime, sigwaitinfo, timer_create, timer_delete, timer_settime. * include/cygwin/version.h: Reflect above additions. * fork.cc (fork_child): Call fixup_timers_after_fork. * signal.cc (sigwait): Remove unused variable. * timer.cc: New file. (clock_gettime): Define new function. (timer_tracker): Define new struct used by timer functions. (timer_tracker::timer_tracker): New function. (to_us): New function. (timer_thread): New function. (timer_tracker::settime): New function. (timer_create): New function. (timer_settime): New function. (timer_delete): New function. (fixup_timers_after_fork): New function. * cygthread.cc: Bump thread count. * signal.cc (sigwaitinfo): Define new function. (sigwait): Redefine based on sigwaitinfo. * include/cygwin/signal.h (sigwaitinfo): Declare. (sigwait): Ditto. * dtable.cc (dtable::vfork_parent_restore): Avoid double close of ctty when ctty == ctty_on_hold. * cygtls.h (_threadinfo::threadkill): New element. (_threadinfo::set_threadkill): Declare new function. (_threadinfo::reset_threadkill): Declare new function. * dcrt0.cc (dcrt0_1): Call here so that it will be possible to attach to running process with #(*& Windows Me/9x. (initial_env): Try to initialize strace if uninitialized. * gendef: Don't zero signal if threadkill is set since that will happen in the called function. * signal.cc (sigwait): Ensure cleanup in error conditions. * sigproc.cc (sig_send): Clear packet mask storage. (wait_subproc): Fill in child exit code in siginfo_t structure. * thread.cc (pthread_kill): Set threadkill flag. * tlsoffsets.h: Regenerate. Throughout, use siginfo_t to fill out all signal information for "kernel" signals. * cygtls.h (_threadinfo::set_siginfo): Declare new function. * cygtls.cc (_threadinfo::set_siginfo): Define new function. * dcrt0.cc (do_exit): Accommodate siginfo_t considerations. * exceptions.cc (handle_exceptions): Ditto. (sig_handle_tty_stop): Ditto. (ctrl_c_handler): Use killsys() to send signal. (sigpacket::process): Rename from sig_handle. Use siginfo_t field from sigpacket for everything. (tty_min::kill_pgrp): Accommodate siginfo_t considerations. (fhandler_termios::bg_check): Ditto. * fhandler_tty.cc (fhandler_tty_slave::ioctl): Use killsys() to send signal. * signal.cc (kill_worker): Rewrite to use siginfo_t second argument. (kill_pgrp): Ditto. (kill0): Define new function pulled from kill(). (kill): Rewrite as frontend to kill0. (killsys): Define new function. * sigproc.cc (sigelem): Eliminate. (sigpacket): Move to sigproc.h. Subsume sigelem. (pending_signals): Use sigpacket rather than sigelem for everything. (sig_clear): Ditto. (wait_sig): Ditto. (sig_send): Rewrite to use siginfo_t argument. (sig_send): New function wratpper to sig_send with siginfo_t argument. (wait_subproc): Accommodate siginfo_t considerations. * thread.cc (pthread_kill): Ditto. * sigproc.h (sigpacket): Move here. (sigpacket::process): Declare "new" function. (sig_handle): Eliminate declaration. (sig_send): Declare with new paramaters. (killsys): Declare new function. (kill_pgrp): Declare. * winsup.h: Move some signal-specific stuff to sigproc.h. * include/cygwin/signal.h: Tweak some siginfo_t stuff.
* * cygheap.h (init_cygheap): Play more vfork shell games and move ctty_on_holdChristopher Faylor2004-01-031-6/+6
| | | | | | | | | | | | | and open_fhs_on_hold (back) here. * dcrt0.cc (_dll_crt0): Just set impure_ptr_ptr here and let later initialization deal with tls. * dtable.cc (dtable::vfork_child_fixup): Move ctty considerations here. (dtable:vfork_parent_restore): And here. * fork.cc (vfork): Reflect change to ctty handling. * perthread.h (vfork_save::fhctty): Eliminate. * cygwin.din: Make more exports NOSIGFE that will never be interrupted by a signal. * init.cc (dll_entry): Set stackptr to NULL to catch problems earlier.
* * cygwin.din: Make crt0 functions NOSIGFE.Christopher Faylor2003-12-311-5/+5
| | | | | * include/cygwin/version.h: Gratuitous comment change. * lib/_cygwin_crt0_common.cc: Remove unneeded declaration.