1571 lines
61 KiB
Plaintext
1571 lines
61 KiB
Plaintext
2004-03-29 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (class fhandler_socket): Add has_been_closed member.
|
|
* fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize
|
|
has_been_closed to 0.
|
|
(fhandler_socket::recvfrom): Use new asynchronous I/O driven
|
|
wsock_event methods.
|
|
(fhandler_socket::recvmsg): Ditto.
|
|
(fhandler_socket::sendto): Ditto.
|
|
(fhandler_socket::sendmsg): Ditto.
|
|
* net.cc (wsock_event::prepare): Reimplement using asynchronous I/O.
|
|
(wsock_event::wait): Ditto.
|
|
(wsock_event::release): New method.
|
|
* wsock_event.h (class wsock_event): Remove ovr member. Accomodate
|
|
new implementation of prepare and wait methods. Add release method.
|
|
|
|
2004-03-29 Thomas Pfaff <tpfaff@gmx.net>
|
|
|
|
* thread.cc (pthread::atforkprepare): Call
|
|
MT_INTERFACE->fixup_before_fork at the end of atforkprepare.
|
|
|
|
2004-03-29 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* net.cc (wsock_event::wait): Change scope of local "len" variable.
|
|
|
|
2004-03-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* shm.cc (shmat): Return (void *) -1 on error instead of NULL.
|
|
|
|
2004-03-27 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* fhandler_nodevice.cc (fhandler_nodevice::open): Assume that errno has
|
|
already been set if pc.error is nonzero.
|
|
|
|
2004-03-26 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygheap.cc (cygheap_fixup_in_child): Improve strace output.
|
|
|
|
2004-03-26 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* errno.cc (errmap): Map ERROR_SHARING_VIOLATION to EBUSY,
|
|
ERROR_EOM_OVERFLOW and ERROR_NO_DATA_DETECTED to EIO. Add mappings
|
|
for ERROR_NO_MEDIA_IN_DRIVE, ERROR_DEVICE_REQUIRES_CLEANING and
|
|
ERROR_DEVICE_DOOR_OPEN.
|
|
* fhandler.h (class fhandler_dev_raw): Drop varblkop member.
|
|
(fhandler_dev_raw::is_eom): De-virtualize.
|
|
(fhandler_dev_raw::is_eof): Ditto.
|
|
(class fhandler_dev_tape): Drop lasterr and dp member. Add mt_mtx
|
|
member. Drop all private methods formerly used by ioctl.
|
|
(fhandler_dev_tape::is_rewind_device): Use get_minor for clarity.
|
|
(fhandler_dev_tape::driveno): New method.
|
|
(fhandler_dev_tape::drive_init): New method.
|
|
(fhandler_dev_tape::clear): Remove method.
|
|
(fhandler_dev_tape::is_eom): Ditto.
|
|
(fhandler_dev_tape::is_eof): Ditto.
|
|
(fhandler_dev_tape::write_file): Ditto.
|
|
(fhandler_dev_tape::read_file): Ditto.
|
|
(fhandler_dev_tape::_lock): New method.
|
|
(fhandler_dev_tape::unlock): New method.
|
|
(fhandler_dev_tape::raw_read): New method.
|
|
(fhandler_dev_tape::raw_write): New method.
|
|
* fhandler_raw.cc (fhandler_dev_raw::is_eom): New method.
|
|
(fhandler_dev_raw::is_eof): New method.
|
|
(fhandler_dev_raw::open): Allow setting write through option by
|
|
using the O_TEXT flag as ... flag.
|
|
(fhandler_dev_raw::writebuf): Remove usage of varblkop and other
|
|
tape specific code.
|
|
(fhandler_dev_raw::raw_read): Ditto.
|
|
(fhandler_dev_raw::dup): Ditto.
|
|
* fhandler_tape.cc: Rewrite tape operations entirely. Implement
|
|
new tape driver classes mtinfo, mtinfo_drive and mtinfo_part.
|
|
Reduce fhandler_dev_tape methods to mostly just calling appropriate
|
|
mtinfo_drive methods.
|
|
(mtinfo_init): New function adding the mtinfo shared memory area.
|
|
* mtinfo.h: New file, containing the definition of the new tape
|
|
driver classes.
|
|
* shared.cc: Include mtinfo.h.
|
|
(offsets): Add entry for mtinfo shared memory area.
|
|
(memory_init): Call mtinfo_init.
|
|
* shared_info.h (shared_locations): Add SH_MTINFO shared location.
|
|
* include/cygwin/mtio.h: Change and add various comments. Add GMT_xxx
|
|
macros for new generic flags. Add MT_ST_xxx bitfield definitions
|
|
for MTSETDRVBUFFER ioctl.
|
|
* include/cygwin/version.h: Bump API minor version number.
|
|
|
|
2004-03-26 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* path.cc (path_conv::check): Use 'strchr' rather than 'strrchr' to
|
|
find end of string, for efficiency.
|
|
|
|
2004-03-26 Thomas Pfaff <tpfaff@gmx.net>
|
|
|
|
* include/cygwin/_types.h: New file.
|
|
* include/sys/lock.h: Ditto.
|
|
* include/sys/stdio.h: Ditto.
|
|
* thread.cc: Include sys/lock.h
|
|
(__cygwin_lock_init): New function.
|
|
(__cygwin_lock_init_recursive): Ditto.
|
|
(__cygwin_lock_fini): Ditto.
|
|
(__cygwin_lock_lock): Ditto.
|
|
(__cygwin_lock_trylock): Ditto.
|
|
(__cygwin_lock_unlock): Ditto.
|
|
(pthread::atforkprepare): Lock file pointer before fork.
|
|
(pthread::atforkparent): Unlock file pointer after fork.
|
|
(pthread::atforkchild): Ditto.
|
|
|
|
2004-03-26 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* sem.cc (semget): Fix debug string.
|
|
(semop): Ditto.
|
|
* shm.cc (fixup_shms_after_fork): Ditto.
|
|
(shmat): Ditto.
|
|
(shmdt): Ditto.
|
|
(shmget): Ditto.
|
|
|
|
2004-03-26 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* sigproc.cc (wait_sig): Make sure that SIGCHLD is handled regardless
|
|
of whether a signal is queued.
|
|
|
|
2004-03-26 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* sigproc.cc (wait_sig): Report if not trying to send signal due to
|
|
queued signal.
|
|
|
|
2004-03-25 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* path.cc (normalize_posix_path): Reorganize to short circuit to DOS
|
|
path handling whenever a '\' is detected.
|
|
|
|
* signal.cc (sigaction): Make strace output more informative.
|
|
* sigproc.cc (pending_signals::add): Just index directly into signal
|
|
array rather than treating the array as a heap.
|
|
(pending_signals::del): Ditto.
|
|
(wait_sig): Don't send signal if we already have a similar signal
|
|
queued.
|
|
* sigproc.h (call_signal_handler_now): Remove obsolete declaration.
|
|
|
|
2004-03-23 Gerd Spalink <Gerd.Spalink@t-online.de>
|
|
|
|
* fhandler_dsp.cc (fhandler_dev_dsp::write): Remove type
|
|
cast from argument to audio_out_->parsewav() to make reference
|
|
work properly. Now .wav file headers are properly discarded.
|
|
|
|
2004-03-23 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_base::fstat_fs): Use created
|
|
handle regardless of nohandle state. Clean up afterwards.
|
|
|
|
2004-03-23 Gerd Spalink <Gerd.Spalink@t-online.de>
|
|
|
|
* autoload.cc: Load eight more functions for waveIn support.
|
|
* fhandler.h (class fhandler_dev_dsp): Add class Audio, class Audio_in
|
|
and class Audio_out members and audio_in_, audio_out_ pointers so
|
|
that future changes are restricted to file fhandler_dsp.cc.
|
|
* fhandler_dsp.cc (fhandler_dev_dsp::Audio): Add this class to treat
|
|
things common to audio recording and playback.
|
|
Add more format conversions.
|
|
(fhandler_dev_dsp::Audio::queue): New queues for buffer management
|
|
to fix incomplete cleanup of buffers passed to the wave device.
|
|
(fhandler_dev_dsp::Audio_in): New, added class to implement audio
|
|
recording.
|
|
(fhandler_dev_dsp::Audio_out): Rework to use functionality provided
|
|
by fhandler_dev_dsp::Audio. Allocate memory audio buffers late,
|
|
just before write.
|
|
(fhandler_dev_dsp::Audio_out::start): Size of wave buffer allocated
|
|
here depends on audio rate/bits/channels.
|
|
(fhandler_dev_dsp::Audio_in::start): Ditto.
|
|
(fhandler_dev_dsp::setupwav): Replaced by following function.
|
|
(fhandler_dev_dsp::Audio_out::parsewav): Does not setup wave device
|
|
any more. Discard wave header properly.
|
|
(fhandler_dev_dsp::open): Add O_RDONLY and_RDWR as legal modes.
|
|
Protect against re-open. Activate fork_fixup.
|
|
(fhandler_dev_dsp::ioctl): Protect against actions when audio is
|
|
active. SNDCTL_DSP_GETFMTS only returns formats supported by
|
|
mmsystem wave API, not all supported formats. SNDCTL_DSP_GETBLKSIZE
|
|
result now depends on current audio format.
|
|
(fhandler_dev_dsp::fixup_after_fork): Call fork_fixup for the Audio
|
|
classes to let them duplicate the CRITICAL_SECTION.
|
|
|
|
2004-03-19 Pierre Humblet <pierre.humblet@ieee.org>
|
|
Christopher Faylor <cgf@redhat.com>
|
|
|
|
* init.cc (munge_threadfunc): Handle all instances of search_for.
|
|
(prime_threads): Test threadfunc_ix[0].
|
|
|
|
2004-03-21 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygheap.cc (init_cheap): Set initial_sz to something or suffer
|
|
spurious output.
|
|
(cygheap_fixup_in_child): Set alloc_sz to passed in size to ensure that
|
|
children will have the right size heap.
|
|
(_csbrk): Make output conditional on DEBUGGING.
|
|
|
|
2004-03-21 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygheap.cc (init_cheap): Conditionalize debugging code.
|
|
|
|
2004-03-21 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygheap.cc (init_cheap): Add ability to specify minimal cygwin heap
|
|
size when debugging.
|
|
(_csbrk): Report error in allocation to stderr.
|
|
(ccalloc): Ditto.
|
|
* dtable.cc (dtable::find_fifo): Remove use of atoms.
|
|
* dtable.h (dtable::find_fifo): Ditto.
|
|
* fhandler.h (fhandler_fifo): Ditto.
|
|
* fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Ditto.
|
|
(fhandler_fifo::set_use): Ditto.
|
|
(fhandler_fifo::open_not_mine): Ditto.
|
|
(fhandler_fifo::open): Ditto.
|
|
* pinfo.cc (_pinfo::commune_recv): Ditto.
|
|
(_pinfo::commune_send): Ditto.
|
|
|
|
2004-03-19 Pierre Humblet <pierre.humblet@ieee.org>
|
|
|
|
* dir.cc (rmdir): Reorganize error handling to reduce indentation.
|
|
|
|
2004-03-19 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* include/cygwin/version.h: Bump DLL minor number to 10.
|
|
|
|
2004-03-18 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* child_info.h (CURR_CHILD_INFO_MAGIC): Reset to new value.
|
|
(child_info::cygheap_alloc_sz): New field.
|
|
* cygheap.cc (init_cheap): Reduce size of cygwin stack until minimal
|
|
hit when attempting initial allocation.
|
|
(cygheap_setup_for_child): Use alloc_sz to create secondary memory
|
|
mapped entry. Store alloc_sz in cygheap_alloc_sz.
|
|
(cygheap_fixup_in_child): Use cygheap_alloc_sz to map parent's cygheap.
|
|
* cygheap.h (_CYGHEAPSIZE_SLOP): New define.
|
|
(CYGHEAPSIZE): Use _CYGHEAPSIZE_SLOP.
|
|
|
|
2004-03-18 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_proc.cc (format_proc_meminfo): On NT, try to figure out
|
|
real swap file usage by requesting SystemPagefileInformation. Use
|
|
GlobalMemoryStatus as fallback.
|
|
* ntdll.h (_SYSTEM_INFORMATION_CLASS): Add SystemPagefileInformation.
|
|
(struct _SYSTEM_PAGEFILE_INFORMATION): Define.
|
|
|
|
2004-03-17 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* pipe.cc (fhandler_pipe::dup): Fix debugging message.
|
|
|
|
2004-03-17 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* include/cygwin/version.h: Bump DLL minor number to 9.
|
|
|
|
2004-03-16 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* sigproc.cc (proc_terminate): Release sync_proc_subproc when done
|
|
terminating or suffer potential hangs.
|
|
(get_proc_lock): Reorganize debugging output slightly.
|
|
|
|
2004-03-15 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygtls.cc (_cygtls::fixup_after_fork): Just manipulate the signal
|
|
stack if a signal occurred during the parent's fork. Otherwise leave
|
|
it alone.
|
|
|
|
2004-03-15 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* exceptions.cc (try_to_debug): Report on tid of caller.
|
|
|
|
* sync.cc (muto::acquire): Fix some races.
|
|
* sync.h (muto): Expose some fields for easier debugging.
|
|
|
|
2004-03-15 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (fhandler_dev_tape::tape_get_pos): Declare with extra
|
|
parameter for partition number.
|
|
(fhandler_dev_tape::_tape_set_pos): Ditto.
|
|
(fhandler_dev_tape::tape_partition): New method.
|
|
(fhandler_dev_tape::tape_set_partition): New method.
|
|
* fhandler_tape.cc (fhandler_dev_tape::open): Call private methods
|
|
directly instead of ioctl.
|
|
(fhandler_dev_tape::ioctl): Use long erase on MTERASE by default.
|
|
Don't use absolute positioning on MTSEEK. Call tape_set_partition
|
|
on MTSETPART, tape_partition on MTMKPART.
|
|
(fhandler_dev_tape::tape_get_pos): Add partition number parameter.
|
|
Prefer logical position information over absolute position information.
|
|
Return partition number.
|
|
(fhandler_dev_tape::_tape_set_pos): Add partition number parameter.
|
|
Use in SetTapePosition.
|
|
(fhandler_dev_tape::tape_set_pos): Remove special TAPE_ABSOLUTE_BLOCK
|
|
handling.
|
|
(fhandler_dev_tape::tape_erase): Rewind before erasing.
|
|
(fhandler_dev_tape::tape_status): Rearrange slightly. Try to get a
|
|
MediaType even if no tape is loaded. Store active partition in
|
|
mt_resid as on Linux.
|
|
(fhandler_dev_tape::tape_partition): New method.
|
|
(fhandler_dev_tape::tape_set_partition): New method.
|
|
* include/cygwin/mtio.h: Fix copyright. Add comment to explain
|
|
mt_resid content.
|
|
* include/cygwin/version.h: Bump API minor number.
|
|
|
|
2004-03-14 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygtls.cc (_cygtls::remove): Call remove_wq even when we can't
|
|
necessarily get the cygtls table lock.
|
|
* cygtls.h (_cygtls::remove_wq): Add wait argument.
|
|
* sigproc.cc (_cygtls::remove_wq): Honor wait argument when acquiring
|
|
lock.
|
|
(proc_terminate): Don't NULL sync_proc_subproc since other threads may
|
|
still try to access it.
|
|
|
|
2004-03-14 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* errno.cc (errmap): Map ERROR_BEGINNING_OF_MEDIA and
|
|
ERROR_SETMARK_DETECTED to EIO instead of ESPIPE.
|
|
Handle ERROR_FILEMARK_DETECTED.
|
|
* fhandler_tape.cc (TAPE_FUNC): Add comment that ERROR_BUS_RESET
|
|
has still to be handled correctly.
|
|
(fhandler_dev_tape::open): Accomodate fact that get.mt_dsreg
|
|
also contains density code.
|
|
(fhandler_dev_tape::ioctl): Rearrange slightly. Reset devbuf also on
|
|
MTNOP, MTWSM, MTSETBLK, MTSETDRVBUFFER, MTSETPART and MTMKPART.
|
|
(fhandler_dev_tape::tape_set_pos): Rearrange. Match behaviour to
|
|
the Linux tape driver.
|
|
(fhandler_dev_tape::tape_status): Call IOCTL_STORAGE_GET_MEDIA_TYPES_EX
|
|
if available. Return device type and density code in appropriate
|
|
mtget members.
|
|
* wincap.h (wincaps::has_ioctl_storage_get_media_types_ex): New element.
|
|
* wincap.cc: Implement above element throughout.
|
|
* include/cygwin/mtio.h: Add tape device types as returned by
|
|
IOCTL_STORAGE_GET_MEDIA_TYPES_EX.
|
|
(MT_TAPE_INFO): Use above type codes.
|
|
(struct mtget): Change mt_dsreg comment.
|
|
|
|
2004-03-14 Pierre Humblet <pierre.humblet@ieee.org>
|
|
|
|
* dir.cc (rmdir): Construct real_dir with flag PC_FULL.
|
|
Use a loop instead of recursion to handle the current directory.
|
|
|
|
2004-03-14 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygtls.cc (_cygtls::remove): Call remove_wq to ensure that wait stuff
|
|
is removed from proc_subproc linked list.
|
|
* cygtls.h (_cygtls::remove_wq): Declare.
|
|
* sigproc.cc (_cygtls::remove_wq): Define.
|
|
(proc_subproc): Label event handle appropriately.
|
|
* spawn.cc (spawn_guts): Return -1 when wait() fails for spawn types
|
|
that require waiting.
|
|
|
|
2004-03-13 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* errno.cc (errmap): Handle ERROR_BUS_RESET.
|
|
* fhandler.h (fhandler_dev_raw::write_file): New method, created
|
|
from former static function.
|
|
(fhandler_dev_raw::read_file): Ditto.
|
|
(reset_devbuf): New inline method.
|
|
(class fhandler_dev_tape): Add TAPE_GET_DRIVE_PARAMETERS
|
|
member `dp'.
|
|
(fhandler_dev_tape::write_file): New method.
|
|
(fhandler_dev_tape::read_file): Ditto.
|
|
(fhandler_dev_tape::tape_get_feature): Convert to inline method.
|
|
(fhandler_dev_tape::tape_error): New method, created from former
|
|
static function.
|
|
(fhandler_dev_tape::tape_get_blocksize): Remove declaration.
|
|
* fhandler_raw.cc (fhandler_dev_raw::write_file): New method, created
|
|
from former static function.
|
|
(fhandler_dev_raw::read_file): Ditto.
|
|
(fhandler_dev_raw::writebuf): Accomodate the fact that no devbuf
|
|
exists under variable block size condition.
|
|
(fhandler_dev_raw::raw_read): Ditto. Add local p pointer to simplify
|
|
pointer arithmetic.
|
|
(fhandler_dev_raw::raw_write): Always set devbufend to 0 when starting
|
|
with writing. Accomodate the fact that no devbuf exists under
|
|
variable block size condition.
|
|
* fhandler_tape.cc: Various formatting changes.
|
|
(TAPE_FUNC): New macro. Use throughout as tape function loop.
|
|
(get_ll): Convert into macro.
|
|
(IS_EOM): New macro.
|
|
(IS_EOF): New macro.
|
|
(fhandler_dev_tape::is_eom): Use IS_EOM macro.
|
|
(fhandler_dev_tape::is_eof): Use IS_EOF macro.
|
|
(fhandler_dev_tape::write_file): New method.
|
|
(fhandler_dev_tape::read_file): New method.
|
|
(fhandler_dev_tape::open): Get drive information block here once.
|
|
(fhandler_dev_tape::lseek): Remove unneeded duplicate code.
|
|
(fhandler_dev_tape::dup): Duplicate drive information block.
|
|
(fhandler_dev_tape::ioctl): Remove drvbuf in variable block size mode.
|
|
Return ERROR_INVALID_BLOCK_LENGTH instead of ERROR_MORE_DATA if
|
|
buffer contains data which would get lost on buffer size changing.
|
|
Use absolute tape positioning also if drive only supports logical
|
|
block positioning.
|
|
(fhandler_dev_tape::tape_error): New method, created from former
|
|
static function.
|
|
(fhandler_dev_tape::tape_get_pos): Allow logical block reporting.
|
|
Workaround tape driver bug.
|
|
(fhandler_dev_tape::_tape_set_pos): Reset device buffer and flags
|
|
after successful repositioning.
|
|
(fhandler_dev_tape::tape_set_pos): Allow logical block positioning.
|
|
Workaround tape driver bug.
|
|
(fhandler_dev_tape::tape_erase): Use dp instead of calling
|
|
GetTapeParameters.
|
|
(fhandler_dev_tape::tape_prepare): Ditto.
|
|
(fhandler_dev_tape::tape_get_blocksize): Remove.
|
|
(fhandler_dev_tape::tape_set_blocksize): Don't call tape_get_blocksize.
|
|
Error handling already done in fhandler_dev_tape::ioctl.
|
|
(fhandler_dev_tape::tape_status): Remove local `dp' variable.
|
|
Accomodate logical tape reporting. Call tape_get_feature instead
|
|
of accessing feature words directly.
|
|
(fhandler_dev_tape::tape_compression): Use dp instead of calling
|
|
GetTapeParameters. Fix resetting datcompression.
|
|
|
|
2004-03-12 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* wait.cc (wait4): Initialize pointer on entry. Avoid calling
|
|
call_signal_handler twice since that guarantees exiting with errno set
|
|
to EINTR.
|
|
|
|
2004-03-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* exceptions.cc (sigpacket::process): Simplify code slightly.
|
|
|
|
2004-03-11 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygtls.h (waitq): Declare structure here.
|
|
(_cygtls::wq): Declare.
|
|
* cygtls.cc (_cygtls::fixup_after_fork): Clear wq.thread_ev to avoid
|
|
using an invalid event handle in forked process.
|
|
* dcrt0.cc (waitq_storage): Delete.
|
|
(threadstuff): Remove waitq_storage.
|
|
* perthread.h (per_thread_waitq): Delete.
|
|
(waitq_storage): Delete declaration.
|
|
* sigproc.cc (sigproc_init): Remove perthread waitq consideration.
|
|
* sigproc.h (waitq): Delete declaration.
|
|
* wait.cc (wait4): Use _my_tls waitq structure rather than per_thread.
|
|
|
|
2004-03-11 Pierre Humblet <pierre.humblet@ieee.org>
|
|
|
|
* cygtls.h (_cygtls::newmask): Delete member.
|
|
(_cygtls::deltamask): New member.
|
|
* gendef (_sigdelayed): Replace the call to set_process_mask by a call
|
|
to set_process_mask_delta.
|
|
* exceptions.cc (handle_sigsuspend): Do not filter tempmask. Or
|
|
SIG_NONMASKABLE in deltamask as a flag.
|
|
(_cygtls::interrupt_setup): Set deltamask only.
|
|
(set_process_mask_delta): New function.
|
|
(_cygtls::call_signal_handler): Replace the first call to
|
|
set_process_mask by a call to set_process_mask_delta.
|
|
* tlsoffsets.h: Regenerate.
|
|
|
|
2004-03-11 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygtls.cc (_cygtls::fixup_after_fork): Remove unneeded setting of
|
|
oldmask.
|
|
* exceptions.cc: Remove some __I386__ conditionals.
|
|
(handle_exceptions): Move ppid test to outside of a loop for
|
|
efficiency.
|
|
(setup_handler): Make debugging output more wordy.
|
|
(_cygtls::call_signal_handler): To avoid a race, use lock/unlock to
|
|
synchronize with signal thread and ensure that signal_arrived event has
|
|
actually been set.
|
|
* gendef (_sigfe): Use ebx for all sigstack manipulations to ensure
|
|
that the register is saved. Move setting of incyg to within stack lock
|
|
to avoid setup_handler confusion.
|
|
(_sigbe): Use ebx for all sigstack manipulations to ensure that the
|
|
register is saved.
|
|
(_cygtls::pop): Ditto.
|
|
(_cygtls::lock): Ditto.
|
|
(stabilize_sig_stack): Ditto.
|
|
(setjmp): Ditto.
|
|
(longjmp): Ditto.
|
|
|
|
2004-03-08 Jaakko Hyvatti <jaakko.hyvatti@iki.fi>
|
|
|
|
* fhandler_serial.cc (fhandler_serial::ioctl): Implement TIOCSBRK and
|
|
TIOCCBRK.
|
|
* include/sys/termios.h: Define TIOCSBRK and TIOCCBRK.
|
|
|
|
2004-03-08 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* exceptions.cc (setup_handler): Avoid suspending a thread if it is in
|
|
a cygwin function, in an exception, spinning, or locked.
|
|
* gendef (_sigfe): Move incyg setting earlier.
|
|
(sigreturn): Set incyg flag to avoid interrupting called cygwin
|
|
functions.
|
|
(sigdelayed): Ditto.
|
|
(stabilize_sig_stack): Ditto.
|
|
|
|
* sigproc.cc (proc_subproc): Don't restore process lock early in exec
|
|
case.
|
|
|
|
* cygtls.h: Reorganize fields in _cygtls slightly.
|
|
* tlsoffsets.h: Regenerate.
|
|
|
|
2004-03-06 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* fork.cc (fork_parent): Save parent pid in a temporary variable since
|
|
child could conceivably exit before function returns, rendering the
|
|
child's shared memory area invalid.
|
|
|
|
* cygtls.h (_cygtls::incyg): Declare new field.
|
|
(_cygtls::in_exception): Define new function.
|
|
* exceptions.cc (setup_handler): Remove locked flag. Use 'incyg' flag
|
|
and in_exception function to determine when we're in a cygwin function.
|
|
(_cygtls::call_signal_handler): Decrement incyg flag prior to calling a
|
|
handler. Increment it on return.
|
|
* gendef (_sigfe): Increment incyg flag. Use testl for zero testing
|
|
rather than orl, for consistency.
|
|
(_sigbe): Decrement incyg flag. Use testl for zero testing rather than
|
|
orl, for consistency.
|
|
(_cygtls::pop): Use testl for zero testing rather than orl, for
|
|
consistency.
|
|
(stabilize_sig_stack): Ditto.
|
|
|
|
* tlsoffsets.h: Regenerate.
|
|
|
|
2004-03-05 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* gendef (sigdelayed): Handle return here rather than going through
|
|
sigbe to ensure that flags are properly restored.
|
|
|
|
2004-03-04 Thomas Pfaff <tpfaff@gmx.net>
|
|
|
|
* include/pthread.h (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): New
|
|
define.
|
|
(PTHREAD_NORMAL_MUTEX_INITIALIZER_NP): Ditto.
|
|
(PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Ditto.
|
|
* thread.cc (pthread_mutex::is_good_initializer): Check for all
|
|
posssible initializers
|
|
(pthread_mutex::is_good_initializer_or_object): Ditto.
|
|
(pthread_mutex::is_good_initializer_or_bad_object): Ditto.
|
|
(verifyable_object_isvalid): Support up to three static initializers.
|
|
(verifyable_object_isvalid (void const *,long)): Remove.
|
|
(pthread_cond::is_good_initializer_or_bad_object): Remove unneeded
|
|
objectState var.
|
|
(pthread_cond::init): Condition remains unchanged when creation has
|
|
failed.
|
|
(pthread_rwlock::is_good_initializer_or_bad_object): Remove unneeded
|
|
objectState var.
|
|
(pthread_rwlock::init): Rwlock remains unchanged when creation has
|
|
failed.
|
|
(pthread_mutex::init): Remove obsolete comment. Mutex remains
|
|
unchanged when creation has failed. Add support for new initializers.
|
|
(pthread_mutex_getprioceiling): Do not create mutex, just return
|
|
ENOSYS.
|
|
(pthread_mutex_lock): Simplify.
|
|
(pthread_mutex_trylock): Remove unneeded local themutex.
|
|
(pthread_mutex_unlock): Just return EPERM if mutex is not initialized.
|
|
(pthread_mutex_setprioceiling): Do not create mutex, just return
|
|
ENOSYS.
|
|
* thread.h (verifyable_object_isvalid): Support up to three static
|
|
initializers.
|
|
(verifyable_object_isvalid (void const *,long)): Remove prototype.
|
|
(pthread_mutex::init): Add optional initializer to parameter list.
|
|
|
|
2004-03-03 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* gendef (sigreturn): Call stabilize_sig_stack to ensure that there are
|
|
no pending signals. Restore edx later.
|
|
(sigdelayed): Save edx earlier.
|
|
|
|
* malloc_wrapper.cc (malloc_init): Add some more debugging output.
|
|
|
|
2004-03-02 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_raw.cc (fhandler_dev_raw::raw_read): When reading with
|
|
variable block size, read only one block, read directly into user
|
|
supplied buffer, return ENOMEM if user supplied buffer is smaller
|
|
than size of next block to read. Use read2 instead of bytes_to_read
|
|
to count number of bytes read.
|
|
* fhandler_tape.cc (fhandler_dev_tape::open): Add debug output.
|
|
|
|
2004-02-26 Brian Ford <ford@vss.fsi.com>
|
|
|
|
* miscfuncs.cc (check_invalid_virtual_addr): Assure the last page
|
|
in the range is always tested. Add appropriate const.
|
|
* mmap.cc (mmap_record::alloc_fh): Remove unused static path_conf object.
|
|
|
|
2004-02-25 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* exceptions.cc (setup_handler): Signal event for any sigwaitinfo, if it
|
|
exists, 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.
|
|
|
|
2004-02-25 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* 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.
|
|
|
|
2004-02-25 Brian Ford <ford@vss.fsi.com>,
|
|
Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* miscfuncs.cc (check_invalid_virtual_addr): New function.
|
|
* winsup.h (check_invalid_virtual_addr): Declare.
|
|
* mmap.cc (munmap): Call check_invalid_virtual_addr instead of
|
|
IsBadReadPtr.
|
|
|
|
2004-02-24 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* gendef (stabilize_sig_stack): Correctly align this pointer for call
|
|
to _cygtls::call_signal_handler.
|
|
* gentls_offsets: Output sizeof field.
|
|
* tlsoffsets.h: Regenerate.
|
|
|
|
2004-02-24 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* dcrt0.cc (_dll_crt0): Don't check sync_startup if threadfunc_ix is set.
|
|
|
|
* external.cc (cygwin_internal): Implement CW_GET_BINMODE.
|
|
* include/sys/cygwin.h: Declare CW_GET_BINMODE.
|
|
|
|
2004-02-24 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* dcrt0.cc (_dll_crt0): Add some stern internal errors.
|
|
|
|
2004-02-24 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* thread.cc (pthread::cancelable_wait): Rearrange slightly.
|
|
Add do_sig_wait parameter. Wait for signal_arrived if set to true.
|
|
Return WAIT_SIGNALED if signal arrived.
|
|
(pthread_cond::wait): Accomodate change to pthread::cancelable_wait.
|
|
(pthread::join): Ditto.
|
|
(semaphore::_timedwait): Ditto.
|
|
(semaphore::_wait): Ditto. Change to return int to allow status
|
|
feedback.
|
|
(semaphore::wait): Return return value from semaphore::_wait.
|
|
* thread.h (WAIT_SIGNALED): New definition.
|
|
(pthread::cancelable_wait): Change declaration. Define do_sig_wait
|
|
as false by default to not interfere with existing calls accidentally.
|
|
(semaphore::_wait): Declare int.
|
|
|
|
2004-02-21 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* exceptions.cc (sigpacket::process): Make sure that tls is filled in
|
|
for SIGSTOP condition.
|
|
(_cygtls::call_signal_handler): Restore signal mask using saved oldmask
|
|
rather than current oldmask.
|
|
|
|
2004-02-20 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* path.cc (conv_path_list): Return error condition.
|
|
(copy1): New function.
|
|
(copyenc): New function.
|
|
(mount_item::fnmunge): Return error condition. Use new functions to
|
|
copy strings.
|
|
(mount_item::build_win32): Ditto.
|
|
(mount_info::conv_to_win32_path): Return error condition.
|
|
(cygwin_conv_to_posix_path): Return result of path conversion.
|
|
(cygwin_conv_to_full_posix_path): Ditto.
|
|
(return_with_errno): New macro.
|
|
(cygwin_win32_to_posix_path_list): Use new macro to potentially set
|
|
errno.
|
|
(cygwin_posix_to_win32_path_list): Ditto.
|
|
* path.h (mount_item::fnmunge): Add size argument.
|
|
(mount_item::build_win32): Ditto.
|
|
|
|
2004-02-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* getopt.c: Avoid useless compiler warnings.
|
|
|
|
2004-02-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* getopt.c: Replace with latest vanilla(!) OpenBSD version 1.16.
|
|
|
|
2004-02-18 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* fork.cc (fork_child): Invert sense of test which defeated correct
|
|
handling in a fork from a non-main thread.
|
|
|
|
* dcrt0.cc (initial_env): Eliminate parameter and just send DebugBreak
|
|
when appropriate.
|
|
(dll_crt0_0): Reflect parameter change to initial_env.
|
|
(dll_crt0_1): Don't call initial_env.
|
|
|
|
2004-02-18 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* gendef (stabilize_sig_stack): New function.
|
|
(setjmp): Import, add sig stack handling. Store sig stack info.
|
|
(longjmp): Call stabilize_sig_stack. Restore sig stack info.
|
|
* config/i386/setjmp.c: Remove.
|
|
|
|
2004-02-17 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fork.cc (fork_child): Move fixup_shms_after_fork so that
|
|
signal_arrived is initialized when calling it.
|
|
|
|
2004-02-17 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* Makefile.in (clean): Clean libserver, too.
|
|
|
|
* fhandler.cc (fhandler_base::~fhandler_base): Remove path_conv cleanup.
|
|
* syscalls.cc (chroot): Ditto.
|
|
* path.cc (path_conv::~path_conv): Define new destructor.
|
|
(conv_path_list_buf_size): Remove explicit path_conv cleanup.
|
|
* path.h (path_conv::~path_conv): Declare new destructor.
|
|
|
|
2004-02-16 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* Makefile.in: Compile flock.o with -fomit-frame-pointer.
|
|
|
|
2004-02-16 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* Makefile.in: Compile dlfcn.o with -fomit-frame-pointer.
|
|
|
|
2004-02-16 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* Makefile.in: Compile delqueue.o with -fomit-frame-pointer.
|
|
|
|
2004-02-16 Pierre Humblet <pierre.humblet@ieee.org>
|
|
|
|
* syscalls.cc (rename): Do not test the MoveFile error code
|
|
where MoveFileEx exists.
|
|
|
|
2004-02-15 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygheap.cc (_csbrk): Report more debugging details on failing
|
|
condition.
|
|
|
|
2004-02-14 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* Makefile.in: Compile syscalls.o with -fomit-frame-pointer.
|
|
|
|
* sigproc.cc: Eliminate unused variable.
|
|
|
|
2004-02-14 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* getopt.c: Replace with latest NetBSD version 1.16. Keep Cygwin
|
|
specific changes as minimal as possible.
|
|
|
|
2004-02-13 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* sigproc.cc (proc_subproc): Change warning back to silent debug
|
|
output.
|
|
|
|
2004-02-13 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* dcrt0.cc (alloc_stack_hard_way): Revert to previous implementation.
|
|
(alloc_stack): Ditto.
|
|
* exceptions.cc (ctrl_c_handler): Add debugging output.
|
|
|
|
2004-02-13 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* Makefile.in (clean): Remove sigfe.s.
|
|
(sigfe.s): Ensure that sigfe.s will be regenerated if it does not exist.
|
|
* dll_init.cc (dll_dllcrt0): Simplify initializing tests.
|
|
|
|
* exceptions.cc (setup_handler): Detect when stub caller is either
|
|
spinning or has acquired the lock after being suspended to avoid
|
|
windows problems with suspending a win32 API call.
|
|
|
|
* cygtls.h (_cygtls::spinning): Declare new element.
|
|
* gendef: Remove unused _siglist_index and _siglist declaration.
|
|
(_sigfe): Set spinning element when potentially looping, waiting for lock.
|
|
(_sigbe): Ditto.
|
|
(_cygtls::lock): Ditto.
|
|
(_longjmp): Ditto.
|
|
* tlsoffsets.h: Regenerate.
|
|
* pinfo.cc (_pinfo::exit): Set final exit state here. Call sigproc_terminate if
|
|
invoked with 'norecord'. Clear any residual _cygtls stuff.
|
|
* winsup.h (exit_states): Define ES_FINAL.
|
|
* spawn.cc (spawn_guts): Don't call proc_terminate specifically when
|
|
execing. Let _pinfo::exit handle that case.
|
|
|
|
* sigproc.cc (wait_subproc): Always exit loop early when proc_loop_wait.
|
|
|
|
* init.cc (munge_threadfunc): Eliminate unused argument.
|
|
(dll_entry): Reflect above change in call to munge_threadfunc.
|
|
|
|
2004-02-11 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* gendef (_sigbe): Zero location on pop.
|
|
(_cygtls::pop): Ditto.
|
|
|
|
2004-02-11 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* dcrt0.cc (alloc_stack_hard_way): Eliminate second argument.
|
|
(alloc_stack): Remove use of 'b' throughout.
|
|
|
|
2004-02-11 Christopher Faylor <cgf@redhat.com>
|
|
|
|
Rename _threadinfo to _cygtls, throughout.
|
|
* cygtls.h (_cygtls::call_signal_handler): Rename from
|
|
call_signal_handler_now.
|
|
(_cygtls::push): Make second argument mandatory.
|
|
(_cygtls::fixup_after_fork): Declare new function.
|
|
(_cygtls::lock): Ditto.
|
|
* cygtls.cc (_cygtls::fixup_after_fork): Define new function.
|
|
* dcrt0.cc (cygwin_finished_initializing): Define as bool.
|
|
(alloc_stack): Use _tlstop rather than arbitrary variable in probably
|
|
vain attempt to avoid strange fork problem on CTRL-C.
|
|
(dll_crt0_0): Remove obsolete winpids::init call.
|
|
* dll_init.cc (dll_dllcrt0): Detect forkee condition as equivalent to
|
|
initializing.
|
|
* winsup.h (cygwin_finished_initializing): Declare as bool.
|
|
* exceptions.cc (handle_exceptions): Rely on
|
|
cygwin_finished_initializing to determine how to handle exception
|
|
during process startup.
|
|
(_cygtls::call_signal_handler): Rename from call_signal_handler_now.
|
|
(_cygtls::interrupt_now): Fill in second argument to push.
|
|
(signal_fixup_after_fork): Eliminate.
|
|
(setup_handler): Initialize locked to avoid potential inappropriate
|
|
unlock. Resume thread if it has acquired the stack lock.
|
|
(ctrl_c_handler): Just exit if ctrl-c is hit before cygiwn has finished
|
|
initializing.
|
|
* fork.cc (sync_with_child): Don't call abort since it can cause exit
|
|
deadlocks.
|
|
(sync_with_child): Change debugging output slightly.
|
|
(fork_child): Set cygwin_finished_initializing here. Call _cygtls fork
|
|
fixup and explicitly call sigproc_init.
|
|
(fork_parent): Release malloc lock on fork failure.
|
|
(vfork): Call signal handler via _my_tls.
|
|
* sigproc.cc (sig_send): Ditto.
|
|
* syscalls.cc (readv): Ditto.
|
|
* termios.cc (tcsetattr): Ditto.
|
|
* wait.cc (wait4): Ditto.
|
|
* signal.cc (nanosleep): Ditto.
|
|
(abort): Ditto.
|
|
(kill_pgrp): Avoid killing self if exiting.
|
|
* sync.cc (muto::acquire): Remove (temporarily?) ill-advised
|
|
exiting_thread check.
|
|
* gendef (_sigfe): Be more agressive in protecting stack pointer from
|
|
other access by signal thread.
|
|
(_cygtls::locked): Define new function.
|
|
(_sigbe): Ditto.
|
|
(_cygtls::pop): Protect edx.
|
|
(_cygtls::lock): Use guaranteed method to set eax to 1.
|
|
(longjmp): Aggressively protect signal stack.
|
|
* miscfuncs.cc (low_priority_sleep): Reduce "sleep time" for secs == 0.
|
|
* pinfo.cc (winpids::set): Counterintuitively use malloc's lock to
|
|
protect simultaneous access to the pids list since there are
|
|
pathological conditions which can cause malloc to call winpid.
|
|
(winpids::init): Eliminate.
|
|
* pinfo.h (winpids::cs): Eliminate declaration.
|
|
* pinfo.h (winpids::init): Eliminate definition.
|
|
|
|
2004-02-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* security.cc (get_nt_object_attribute): Fix error handling.
|
|
|
|
2004-02-09 Ralf Habacker <ralf.habacker@freenet.de>
|
|
|
|
* fhandler_socket.cc (fhandler_socket::ioctl): Add FIONREAD handling.
|
|
|
|
2004-02-08 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* debug.h (console_printf): Define for non-debugging condition.
|
|
|
|
* cygtls.h (_threadinfo::lock): Remove wait argument.
|
|
(_threadinfo::interrupt_setup): Remove retaddr argument.
|
|
* exceptions.cc (_threadinfo::interrupt_setup): Ditto.
|
|
(_threadinfo::interrupt_now): Accommodate change to interrupt_setup
|
|
argument.
|
|
(setup_handler): Ditto. Always lock sig stack prior to determining
|
|
interrupt method.
|
|
* gendef (_sigfe): Correct thinko regarding cmpxchg.
|
|
(_sigbe): Ditto.
|
|
(_threadinfo::lock): Ditto.
|
|
(_threadinfo::pop): Eliminate left-over stack unlock.
|
|
* sigproc.cc (proc_subproc): Change debugging output to printed
|
|
warning.
|
|
|
|
2004-02-08 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* localtime.cc (localtime_r): Call tzset.
|
|
|
|
* 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.
|
|
|
|
2004-02-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygserver.h (CYGWIN_SERVER_VERSION_API): Bump.
|
|
* cygserver_ipc.h (struct proc): Add signal_arrived member.
|
|
(ipc_set_proc_info): Inititalize blk.signal_arrived.
|
|
|
|
2004-02-06 Pierre Humblet <pierre.humblet@ieee.org>
|
|
|
|
* uinfo.cc (cygheap_user::init): Use sec_user_nih to build a
|
|
security descriptor. Set both the process and the default DACLs.
|
|
* fork.cc (fork_parent): Use sec_none_nih security attributes.
|
|
* spawn.cc (spawn_guts): Ditto.
|
|
|
|
2004-02-05 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygwin.din: Make many more functions SIGFE.
|
|
* include/cygwin/version.h (CYGWIN_VERSION_SHARED_DATA): Bump.
|
|
|
|
2004-02-05 Pierre Humblet <pierre.humblet@ieee.org>
|
|
|
|
* security.h (SID): New macro.
|
|
(well_known_*_sid): Change type to cygpsid.
|
|
(cygsid::init): Delete declaration.
|
|
* sec_helper.cc (well_known_*_sid): Define using above SID macro.
|
|
(cygsid::init): Delete.
|
|
* dcrt0.cc (dll_crt0_0): Do not call cygsid::init.
|
|
* security.cc (get_user_local_groups): Change the second argument type
|
|
to cygpsid.
|
|
|
|
2004-02-03 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygtls.h (_local_storage::signamebuf): Increase size to prevent
|
|
overflow on really odd values.
|
|
* tlsoffsets.h: Regenerate.
|
|
|
|
2004-02-03 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* Makefile.in (DLL_OFILES): Add strsig.o.
|
|
* cygtls.h (_local_storage::signamebuf): New element.
|
|
* sysconf.cc (sysconf): Implement _SC_RTSIG_MAX.
|
|
* tlsoffsets.h: Regenerate.
|
|
* include/limits.h (_POSIX_RTSIG_MAX): New define.
|
|
(RTSIG_MAX): Ditto.
|
|
* include/cygwin/signal.h (SIGRTMIN): New define.
|
|
(SIGRTMAX): Ditto.
|
|
(NSIG): Bump.
|
|
* strsig.cc: New file.
|
|
|
|
2004-02-03 Jason Tishler <jason@tishler.net>
|
|
|
|
* window.cc (Winmain): Show windows error code in error output when
|
|
RegisterClass fails.
|
|
|
|
2004-02-02 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* fhandler.h (*::fixup_after_exec): Eliminate unused handle argument.
|
|
* fhandler.h (dtable::fixup_after_exec): Eliminate unused handle
|
|
argument.
|
|
* dcrt0.cc (dll_crt0_1): Reflect elimination of unused handle argument
|
|
to fixup_after_exec.
|
|
* dtable.cc (dtable::fixup_after_exec): Ditto.
|
|
* fhandler_console.cc (fhandler_console::fixup_after_exec): Ditto.
|
|
* fhandler_dsp.cc (fhandler_dsp::fixup_after_exec): Ditto.
|
|
* fhandler_raw.cc (fhandler_raw::fixup_after_exec): Ditto.
|
|
* fhandler_socket.cc (fhandler_socket::fixup_after_exec): Ditto.
|
|
* fhandler_virtual.cc (fhandler_virtual::fixup_after_exec): Ditto.
|
|
* pipe.cc (fhandler_pipe::fixup_after_exec): Ditto.
|
|
|
|
2004-02-02 Pierre Humblet <pierre.humblet@ieee.org>
|
|
|
|
* spawn.cc (spawn_guts): Do not set ciresrv.parent.
|
|
* child_info.h (child_info_spawn::~child_info_spawn): Do not close
|
|
parent. Update CURR_CHILD_INFO_MAGIC.
|
|
* dcrt0.cc (dll_crt0_0): Do not close spawn_info->parent. Pass NULL to
|
|
cygheap->fdtab.fixup_after_exec().
|
|
|
|
2004-02-02 Christopher Faylor <cgf@redhat.com>
|
|
|
|
Throughout, change name from set_inheritance to set_no_inheritance to
|
|
better reflect input arguments of this function.
|
|
|
|
* cygheap.h (CYGHEAPSIZE): Increase size of cygheap to something closer
|
|
to the 21st century.
|
|
|
|
2004-02-02 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygerrno.h (set_errno): Replace semicolon with comma in non-DEBUGGING
|
|
version to avoid compile time error.
|
|
|
|
2004-02-01 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygerrno.h (set_errno): Set global errno whenever setting thread
|
|
specific version.
|
|
* debug.cc (__set_errno): Ditto.
|
|
|
|
* exceptions.cc (handle_sigsuspend): Remove spurious
|
|
sig_dispatch_pending call.
|
|
(set_signal_mask): When there seem to be pending signals to dispatch,
|
|
tell signal_dispatch_pending/sig_send not to specifically call any
|
|
handlers.
|
|
* sigproc.h (sig_dispatch_pending): Change declaration to void.
|
|
* sigproc.cc (sig_dispatch_pending): Change definition to void. Take
|
|
an argument to determine whether to tell sig_send to wait for handler
|
|
to be called.
|
|
* sigproc.cc (sig_send): Don't call signal handler when sig ==
|
|
__SIGFLUSHFAST.
|
|
(wait_sig): Honor __SIGFLUSHFAST. Guard against sigpacket::process
|
|
nuking si_signo.
|
|
* sigproc.h (__SIGFLUSHFAST): Define new special signal.
|
|
(sig_dispatch_pending): Change declaration to void. Take optional
|
|
boolean argument.
|
|
|
|
* fork.cc (vfork): Add debugging output.
|
|
|
|
2004-01-26 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* exceptions.cc (sig_handle_tty_stop): Avoid races by waiting for both
|
|
signal_arrived and for sigCONT.
|
|
(sigpacket::process): Enforce sending of both signal_arrived and
|
|
sigCONT, where appropriate.
|
|
* gendef (sigreturn): Save tls pointer in ebx so that it can jump into
|
|
sigdelayed and use the same register.
|
|
|
|
2004-01-26 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygtls.cc (_threadinfo::init_thread): Add more local reent stdio
|
|
initialization.
|
|
* dcrt0.cc (initial_env): Can it really be true that XP doesn't allow
|
|
attaching a debugger during DLL attach? Add temporary workaround.
|
|
(dll_crt0_0): Ensure that _impure_ptr stdio is initialized before any
|
|
threads.
|
|
(dll_crt0_1): Move _impure_ptr initialization to dll_crt0_0.
|
|
* exceptions.cc (try_to_debug): Reinstate old method for looping while
|
|
debugging.
|
|
* syscalls.cc (_cygwin_istext_for_stdio): Regularize debugging output.
|
|
Remove hopefully extraneous check.
|
|
(setmode_helper): Add debugging output for improbable case. Use
|
|
"binary" rather "raw" for consistency.
|
|
|
|
2004-01-25 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* fhandler.cc (fhandler_base::fhaccess): Avoid always setting errno to
|
|
EACCESS when return value is < 0. Rely on errno being set properly.
|
|
|
|
2004-01-25 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* sigproc.cc (proc_subproc): Don't protect *child's* handle.
|
|
|
|
2004-01-24 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* fhandler.h (fhandler_base::fhaccess): Return int for compatibility
|
|
with access.
|
|
* fhandler.cc (fhandler_base::fhaccess): Return int. Use consistent
|
|
variable name for exit value. Exit at bottom, printing debugging
|
|
information, like other cygwin functions.
|
|
|
|
2004-01-23 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygheap.cc (init_cygheap::close_ctty): Protect YA vforkism.
|
|
* fhandler.h (fhandler_base::has_acls): Make pass through for path_conv
|
|
method.
|
|
(fhandler_base::isremote): Ditto.
|
|
(fhandler_base::is_fs_special): Ditto.
|
|
(fhandler_base::has_attribute): Ditto. Define new function.
|
|
(fhandler_base::fhaccess): Declare new function based on access_worker.
|
|
(fhandler_base::set_has_acls): Eliminate obsolete function.
|
|
(fhandler_base::set_isremote): Ditto.
|
|
* fhandler.cc (fhandler_base::fhaccess): Move from syscalls.cc and into
|
|
fhandler_base class. Use fhandler methods to access data rather than
|
|
path_conv stuff.
|
|
(fhandler_base::device_access_denied): Use fhaccess method.
|
|
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto.
|
|
(fhandler_base::open_fs): Remove calls to obsolete functions.
|
|
* fhandler_virtual.cc (fhandler_virtual::open): Ditto.
|
|
* winsup.h (access_worker): Remove obsolete access_worker declaration.
|
|
*syscalls.cc (access_worker): Move function to fhandler.cc.
|
|
(access): Use fhaccess method.
|
|
|
|
* pinfo.cc (_pinfo::set_ctty): Clarify debugging output.
|
|
* sigproc.cc (sig_dispatch_pending): Ditto.
|
|
* syscalls.cc (setsid): Perform minor rearrangement.
|
|
|
|
2004-01-23 Pierre Humblet <pierre.humblet@ieee.org>
|
|
|
|
* fhandler_socket.cc (fhandler_socket::create_secret_event): Avoid
|
|
creating multiple handles. Always allow event inheritance but set the
|
|
handle inheritance appropriately. Improve error handling.
|
|
(fhandler_socket::check_peer_secret_event): Improve error handling.
|
|
(fhandler_socket::close_secret_event): Simply call CloseHandle.
|
|
(fhandler_socket::set_close_on_exec): Set secret event inheritance.
|
|
|
|
2004-01-23 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* configure.in: Remove NEWVFORK default.
|
|
* configure: Regenerate.
|
|
* dcrt0.cc: Conditionalize vfork stuff throughout.
|
|
* dtable.cc: Ditto.
|
|
* perthread.h: Ditto.
|
|
* pipe.cc (fhandler_pipe::close): Ditto.
|
|
* spawn.cc (spawnve): Ditto.
|
|
* syscalls.cc (setsid): Ditto.
|
|
* exceptions.cc (sigpacket::process): Use macro to refer to vfork pid.
|
|
|
|
* debug.cc (verify_handle): Define new function.
|
|
* debug.h (VerifyHandle): Define new macro.
|
|
(verify_handle): Declare new function
|
|
* fhandler.cc (fhandler_base::dup): Verify that dup'ed handle is not
|
|
supposed to be in use.
|
|
(fhandler_base::set_inheritance): Ditto.
|
|
(fhandler_base::fork_fixup): Ditto.
|
|
* fhandler_socket.cc (fhandler_socket::dup): Ditto.
|
|
* fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
|
|
* net.cc (set_socket_inheritance): Ditto.
|
|
* pinfo.cc (pinfo_fixup_after_exec): Ditto.
|
|
* sigproc.cc (proc_subproc): Ditto.
|
|
(sig_send): Ditto.
|
|
* spawn.cc (spawn_guts): Ditto.
|
|
* thread.cc (pthread::init_mainthread): Ditto.
|
|
* pipe.cc (fhandler_pipe::close): Close read_state with
|
|
ForceCloseHandle since it was protected.
|
|
(fhandler_pipe::fixup_after_exec): Protect read_state handle.
|
|
(fhandler_pipe::dup): Correctly close open handles on error condition.
|
|
Verify that dup'ed handle is not supposed to be in use.
|
|
(fhandler_pipe::create): Protect read_state.
|
|
|
|
2004-01-23 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* exceptions.cc (sig_handle_tty_stop): Fix boneheaded mistake by using
|
|
correct check for parent state rather than inverted check mistakenly
|
|
introduced on 2003-09-15.
|
|
|
|
2004-01-22 Brian Ford <ford@vss.fsi.com>
|
|
|
|
* fhandler_serial.cc (fhandler_serial::raw_write): Prevent a deadlock
|
|
when the input buffer overflows.
|
|
(fhandler_serial::raw_read): Correct to print the actual error and only
|
|
call PurgeComm when necessary.
|
|
|
|
2004-01-22 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* dcrt0.cc (reent_data): Make global.
|
|
* cygwin.din: Reexport reent_data.
|
|
|
|
2004-01-22 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygtls.cc (_threadinfo::remove): Don't assume that we are removing
|
|
_my_tls.
|
|
* exceptions.cc (setup_handler): Improve debugging output.
|
|
(call_signal_handler_now): Remove ill-advised debugger call.
|
|
* sigproc.cc (sigcomplete_main): Delete.
|
|
(sig_send): Honor FIXME and avoid using main thread's completion event
|
|
for everything or suffer races.
|
|
(pending_signals::add): Default stored mask to current process mask
|
|
rather than mask at time of signal send.
|
|
(wait_sig): Add debugging output.
|
|
* sigproc.h (sigpacket::mask_storage): Delete.
|
|
|
|
2004-01-22 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* fhandler.cc (fhandler_base::open): Revert isfs change.
|
|
|
|
2004-01-21 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* devices.in: Change raw com device to more correct form.
|
|
|
|
2004-01-21 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* fhandler.cc (fhandler_base::open): Use major numbers rather than
|
|
device numbers to control special behavior for devices which take
|
|
units.
|
|
* fhandler_raw.cc (fhandler_dev_raw::writebuf): Ditto.
|
|
(fhandler_dev_raw::fstat): Ditto.
|
|
(fhandler_dev_raw::open): Ditto.
|
|
(fhandler_dev_raw::ioctl): Ditto.
|
|
|
|
2004-01-21 Nicholas Wourms <nwourms@netscape.net>
|
|
|
|
* signal.cc (sigaction): Fix if-statement typo.
|
|
|
|
2004-01-21 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygtls.cc (handle_threadlist_exception): Change logic, improve
|
|
debugging output.
|
|
|
|
2004-01-21 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* fhandler_tty.cc (fhandler_tty::ioctl): Semi-revert 2003-09-26 change
|
|
for TIOCSWINSZ. It is not an error for ioctl_request_event to be
|
|
missing.
|
|
|
|
2004-01-20 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* sigproc.cc (pending_signals::save): New function.
|
|
(pending_signals::restore): Ditto.
|
|
(sig_clear): Save/restore current queue pointer.
|
|
(wait_sig): Delete signals marked as such.
|
|
* sigproc.h (__SIGDELETE): New enum.
|
|
|
|
2004-01-20 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* include/cygwin/version.h: Bump DLL minor number to 8.
|
|
|
|
* cygmalloc.h: Make more concessions to attempts to get debugging
|
|
malloc working.
|
|
* debug.h: Ditto.
|
|
* dlmalloc.cc: Ditto.
|
|
* dlmalloc.h: Ditto.
|
|
* malloc_wrapper.cc: Ditto.
|
|
|
|
* perthread.h (perthread::create): Use calloc to ensure zeroed memory.
|
|
|
|
2004-01-20 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* sec_acl.cc (setacl): Make sure sd_ret is large enough.
|
|
|
|
2004-01-19 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* sigproc.cc (sigproc_terminate): Don't close sendsig handle when
|
|
execing since we're not closing what we think we're closing.
|
|
(sig_send): Improve debugging when exiting due to no_signals_available.
|
|
|
|
* wincap.h (wincaps::cant_debug_dll_entry): New element.
|
|
* wincap.cc: Implement above element throughout.
|
|
* dcrt0.cc (initial_env): Accommodate changes necessary to allow
|
|
initial debugging for systems which do not allow debugging in
|
|
dll_entry.
|
|
(dll_crt0_0): Add initial_env call back here.
|
|
|
|
* Makefile.in (install-man): Use mandir as target for installation.
|
|
|
|
2004-01-19 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* include/cygwin/version.h: Bump DLL minor number to 7 (should have been
|
|
done earlier).
|
|
|
|
2004-01-19 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygwin/include/signal.h: Add copyright notice.
|
|
|
|
* 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.
|
|
|
|
2004-01-17 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* signal.cc (sigwaitinfo): Define new function.
|
|
(sigwait): Redefine based on sigwaitinfo.
|
|
* include/cygwin/signal.h (sigwaitinfo): Declare.
|
|
(sigwait): Ditto.
|
|
|
|
2004-01-17 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* dtable.cc (dtable::vfork_parent_restore): Avoid double close of ctty
|
|
when ctty == ctty_on_hold.
|
|
|
|
2004-01-16 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* 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.
|
|
|
|
2004-01-16 Christopher Faylor <cgf@redhat.com>
|
|
|
|
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.
|
|
|
|
2004-01-16 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* fhandler_console.cc (fhandler_console::close): Remove obsolete test
|
|
for vfork_cleanup.
|
|
* pipe.cc (fhandler_pipe::close): Add comment.
|
|
|
|
2004-01-16 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygheap.cc (init_cygheap::close_ctty): Don't NULL ctty if it is still
|
|
active.
|
|
|
|
2004-01-16 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* dtable.cc (dtable::vfork_parent_restore): Store ctty_on_hold prior to
|
|
calling close_all_files since it will be zeroed.
|
|
|
|
2004-01-15 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* gentls_offsets: Reinstate unlink of temp files.
|
|
|
|
2004-01-14 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* fhandler_console.cc (fhandler_console::close): Fix debugging output.
|
|
(fhandler_console::fixup_after_fork): Decrement open_fhs prior to call
|
|
to fhandler_console::open since this would cause incrementing too much
|
|
incrementing in child processes. (Probably needs to be handled more
|
|
elegantly someday)
|
|
(fhandler_console::fixup_after_exec): Ditto.
|
|
|
|
2004-01-14 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygtls.h (_threadinfo::call): Remove regparm declaration to work
|
|
around compiler bug.
|
|
|
|
2004-01-13 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* autoload.cc (TryEnterCriticalSection): Remove.
|
|
* dcrt0.cc (dll_crt0_0): Delete inappropriate setting of
|
|
_my_tls.stackptr to NULL since it has really bad consequences. Make
|
|
'si' an automatic variable.
|
|
|
|
2004-01-13 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygtls.cc (_threadinfo::init_thread): Correct thinko which caused
|
|
thread list to be allocated every time.
|
|
* cygtls.h (CYGTLS_PADSIZE): Define as const int.
|
|
* sync.h: Make multiple inclusion safe.
|
|
(muto::next): Eliminate.
|
|
(muto::exiting_thread): New variable.
|
|
(muto::set_exiting_thread): New function.
|
|
(new_muto): Change to use different section for mutos since c++ give
|
|
inexplicable warning in some cases otherwise.
|
|
(new_muto1): Ditto.
|
|
* dcrt0.cc (do_exit): Call muto::set_exiting_thread here.
|
|
* sync.cc (muto_start): Eliminate.
|
|
(muto::acquire): Always give exiting thread a lock. Never give thread
|
|
a lock if exiting.
|
|
(muto::release): Ditto for releasing.
|
|
* dtable.cc (dtable::init_lock): Unline function and define here.
|
|
* dtable.h (lock_cs): Define as a muto since critical sections seem to
|
|
work oddly on Windows Me.
|
|
(lock): Accommodate switch to muto.
|
|
(unlock): Ditto.
|
|
* exceptions.cc (setup_handler): Don't worry about acquiring mutos
|
|
since that hasn't mattered for a long time.
|
|
(signal_exit): Ditto: muto stuff will be handled automatically on exit
|
|
now.
|
|
|
|
2004-01-12 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* Makefile.in (DLL_IMPORTS): Link advapi32 to ensure proper DLL
|
|
initialization.
|
|
* autoload.cc (RegCloseKey): Arbitrarily choose this function as a
|
|
"seed" to pull the advapi32 link library in. So, comment out the
|
|
autoloading.
|
|
* cygtls.cc (_threadinfo::init_thread): Just clear CYGTLS_PADSIZE.
|
|
(_threadinfo::remove): Add debugging.
|
|
(_threadinfo::find_tls): Ditto.
|
|
* cygtls.h (_threadinfo::padding): Make zero length (for now?).
|
|
* dcrt0.cc (dll_crt0_0): Move more initialization here from dll_crt0_1.
|
|
(dll_crt0_1): See above.
|
|
* dtable.h (dtable::lock): Remove commented out critical section
|
|
locking.
|
|
* dtable.h (dtable::init_lock): Remove commented out critical section
|
|
locking.
|
|
* dtable.h (dtable::unlock): Remove commented out critical section
|
|
locking.
|
|
* exceptions.cc (interruptible): bool'ize.
|
|
* init.cc (threadfunc_fe): Revert to storing threadfunc at stack
|
|
bottom.
|
|
(munge_threadfunc): Ditto. Avoid adding overhead to
|
|
calibration_thread.
|
|
(prime_threads): Don't initialize tls stuff.
|
|
(dll_entry): Make minor change to initialization order.
|
|
* tlsoffsets.h: Regenerate.
|
|
|
|
* sigproc.cc (wait_sig): Add sanity check for end of process thread
|
|
exit.
|
|
|
|
* select.h: Make minor formatting change.
|
|
|
|
2004-01-10 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* Makefile.in: Add still more -fomit-frame-pointer functions.
|
|
* dtable.h (dtable::lock): New function.
|
|
(dtable::unlock): New function.
|
|
(dtable::init_lock): New function.
|
|
* cygheap.h (HEAP_TLS): Declare new enum value.
|
|
(init_cygheap::threadlist): Declare new array.
|
|
(init_cygheap::sthreads): Declare new variable.
|
|
(cygheap_fdmanip::~cygheap_fdmanip): Use new dtable lock/unlock
|
|
functions.
|
|
(cygheap_fdnew::cygheap_fdnew): Ditto.
|
|
(cygheap_fdget::cygheap_fdget): Ditto.
|
|
* dtable.cc (dtable_init): Initialize fdtab critical section.
|
|
(dtable::fixup_after_fork): Ditto.
|
|
(dtable::fixup_after_exec): Ditto.
|
|
(dtable::dup2): Use lock/unlock calls to protect access to fdtab.
|
|
(dtable::find_fifo): Ditto.
|
|
(dtable::fixup_before_fork): Ditto.
|
|
(dtable::fixup_before_exec): Ditto.
|
|
(dtable::set_file_pointers_for_exec): Ditto.
|
|
(dtable::vfork_child_dup): Ditto.
|
|
(dtable::vfork_parent_restore): Ditto.
|
|
* syscalls.cc (close_all_files): Ditto.
|
|
* sync.h (muto::acquired): Declare new function.
|
|
(new_muto1): Declare new macro used to specify name of muto storage.
|
|
* sync.cc (muto::acquired): Define new function.
|
|
|
|
* cygthread.cc (cygthread::stub): Remove signal chain removal call
|
|
since it is handled during initialization now.
|
|
* cygthread.cc (cygthread::simplestub): Remove signal chain removal
|
|
call since it is handled during initialization now.
|
|
* cygtls.cc (sentry): New class used for locking. Use throughout.
|
|
(_threadinfo::reset_exception): Don't pop stack.
|
|
(_threadinfo::find_tls): Move from exceptions.cc.
|
|
(_threadinfo::init_thread): Initialize array of threads rather than
|
|
linked list. Take second argument indicating thread function for this
|
|
thread.
|
|
(_threadinfo::remove): Search thread array rather than linked list.
|
|
Use sentry to lock. Only unlock if we got the lock.
|
|
(_threadinfo::find_tls): Ditto for first two.
|
|
(handle_threadlist_exception): Handle exceptions when manipulating the
|
|
thread list in case of premature thread termination.
|
|
(_threadinfo::init_threadlist_exceptions): Ditto.
|
|
* cygtls.h (TLS_STACK_SIZE): Decrease size.
|
|
(_threadinfo::padding): Add element to avoid overwriting lower part of
|
|
stack.
|
|
(_threadinfo::remove): Add a "wait" argument to control how long we
|
|
wait for a lock before removing.
|
|
* exceptions.cc (init_exception_handler): Make global. Take argument
|
|
to control exception handler being set.
|
|
(ctrl_c_handler): Wait forever when removing self from signal chain.
|
|
(_threadinfo::find_tls): Move to cygtls.cc.
|
|
(sig_handle): Reorganize detection for thread-specific signals.
|
|
* heap.cc (heap_init): Rework slightly. Make fatal error more verbose.
|
|
Remove malloc initialization since it can't happen during dll attach.
|
|
* init.cc (search_for): Move address to search for on stack here.
|
|
(threadfunc_ix): Ditto for stack offset. Make shared so that stack
|
|
walk potentially only has to be done once when cygwin processes are
|
|
running.
|
|
(threadfunc_fe): Use standard tls to store thread function (may change
|
|
back later).
|
|
(calibration_thread): New function. Potentially called to find
|
|
threadfunc_ix.
|
|
(munge_threadfunc): Search for "search_for" value on stack. Output
|
|
warning when thread func not found on stack. Use standard tls to store
|
|
thread function.
|
|
(prime_threads): New function. Called to prime thread front end.
|
|
(dll_entry): Call dll_crt0_0 here when DLL_PROCESS_ATTACH. Call
|
|
prime_threads here. Try to remove thread from signal list here.
|
|
* sigproc.cc (wait_sig): Initialize threadlist exception stuff here.
|
|
* thread.cc (pthread::exit): Pass argument to signal list remove
|
|
function.
|
|
* thread.h: Remove obsolete *ResourceLock defines.
|
|
|
|
* tlsoffsets.h: Regenerate.
|
|
|
|
* winsup.h (spf): Define temporary debug macro to be deleted later.
|
|
|
|
* dcrt0.cc (dll_crt0_0): New function, called during DLL
|
|
initialization. Mainly consists of code pulled from dll_crt0_1.
|
|
(dll_crt0_1): See above.
|
|
(_dll_crt0): Wait for initial calibration thread to complete, if
|
|
appropriate. Move some stuff to dll_crt0_0.
|
|
(initialize_main_tls): Accommodate argument change to
|
|
_thread_info::init_thread.
|
|
* fork.cc (fork_child): Ditto.
|
|
(sync_with_child): Fix debug message.
|
|
* external.cc (cygwin_internal): Remove special considerations for
|
|
uninitialized dll since initialization happens during dll attach now.
|
|
|
|
* dlfcn.cc (dlopen): Remove obsolete *ResourceLock calls.
|
|
(dlclose): Ditto.
|
|
|
|
2004-01-05 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygheap.h (init_cygheap::close_ctty): Declare new function.
|
|
* cygheap.cc (init_cygheap::close_ctty): Define new function.
|
|
* syscalls.cc (close_all_files): Use close_ctty.
|
|
(setsid): Ditto.
|
|
|
|
* cygthread.cc (cygthread::stub): Remove exception initialization.
|
|
* cygthread.cc (cygthread::stub): Remove exception initialization.
|
|
(cygthread::simplestub): Ditto.
|
|
* thread.cc (pthread::thread_init_wrapper): Ditto.
|
|
* cygtls.cc (_last_thread): Make static.
|
|
(_threadinfo::call2): Initialize exception handler here.
|
|
(_threadinfo::find_tls): Move here.
|
|
* exceptions.cc (_threadinfo::find_tls): Move.
|
|
|
|
* dcrt0.cc (__api_fatal): Add prefix info to message here rather than
|
|
including it in every call to function.
|
|
* winsup.h (api_fatal): Accommodate above change.
|
|
* debug.cc (add_handle): Don't do anything if cygheap not around.
|
|
(mark_closed): Ditto.
|
|
|
|
* dll_init.cc (dll_list::detach): Fix debug output.
|
|
* fork.cc (sync_with_child): Ditto.
|
|
(vfork): Improve debug output.
|
|
* heap.cc (heap_init): Ditto.
|
|
|
|
* exceptions.cc (try_to_debug): Clarify message when debugger attaches.
|
|
|
|
2004-01-03 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* exceptions.cc (_threadinfo::interrupt_now): Avoid double call to
|
|
sigdelayed.
|
|
* pinfo.cc (_pinfo::commune_send): Avoid inexplicable test which caused
|
|
most pids to be shown as "<defunct>" on Win9x.
|
|
|
|
2004-01-02 Christopher Faylor <cgf@redhat.com>
|
|
|
|
* cygheap.h (init_cygheap): Play more vfork shell games and move
|
|
ctty_on_hold 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.
|