3849 lines
		
	
	
		
			147 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			3849 lines
		
	
	
		
			147 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
2004-12-30  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* devices.cc (device::isfs): Return true for the logical case of
 | 
						|
	devn == FH_FS.
 | 
						|
 | 
						|
2004-12-28  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.cc (_pinfo::dup_proc_pipe): DUPLICATE_CLOSE_SOURCE closes the
 | 
						|
	handle regardless, so revert previous change.
 | 
						|
 | 
						|
2004-12-27  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygthread.cc (cygthread::stub): Add better debug output.
 | 
						|
	(cygthread::cygthread): Ditto.
 | 
						|
	(cygthread::terminate_thread): Ditto.  Move inuse test earlier or
 | 
						|
	suffer infinite loop.
 | 
						|
	* pinfo.cc (_pinfo::dup_proc_pipe): Close handle if DuplicateHandle
 | 
						|
	fails and process no longer exists.
 | 
						|
	* spawn.cc (spawn_guts): Create process in suspended state if OS
 | 
						|
	demands it.
 | 
						|
	* wincap.cc: Add "start_proc_suspended" throughout.
 | 
						|
	* wincap.h (wincaps): Ditto.
 | 
						|
	(wincapc): Ditto.
 | 
						|
 | 
						|
2004-12-27  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.cc (_pinfo::exit): Beef up debugging output.
 | 
						|
	* sigproc.cc (proc_subproc): Detached children apparently need a ppid
 | 
						|
	of 1.
 | 
						|
 | 
						|
2004-12-26  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* init.cc (dll_entry): Previous code reversion was ill-advised.  Revert
 | 
						|
	it.
 | 
						|
	* sigproc.cc (child_info::sync): Ditto.
 | 
						|
	* pinfo.cc (_pinfo::exit): Don't set myself.procinfo to NULL since it
 | 
						|
	is no longer required.
 | 
						|
 | 
						|
2004-12-26  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* init.cc (dll_entry): Remove exit code setting.
 | 
						|
	* pinfo.cc (pinfo::init): Initialize exitcode to unset state rather
 | 
						|
	than SIGTERM.
 | 
						|
	(proc_waiter): Detect if exit code is unset and use status from
 | 
						|
	GetExitCodeProcess.
 | 
						|
	* sigproc.cc (child_info::sync): Remove exit code detection here since
 | 
						|
	proc_waiter now (again) detects it.
 | 
						|
 | 
						|
2004-12-25  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::fchmod): Do the right thing when changing
 | 
						|
	an "on disk" device or fifo.
 | 
						|
	(fhandler_base::fchown): Ditto for changing ownership.
 | 
						|
	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Accommodate
 | 
						|
	device files on ntfs partitions.
 | 
						|
	* path.cc (path_conv::check): Use isfs function to figure out if a path
 | 
						|
	exists on a filesystem to make sure that device files are caught.
 | 
						|
 | 
						|
2004-12-24  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* child_info.h (CURR_CHILD_INFO_MAGIC): Update.
 | 
						|
	(child_info::parent_wr_proc_pipe): Eliminate.
 | 
						|
	* pinfo.h (_pinfo::alert_parent): Move here from pinfo class.
 | 
						|
	(_pinfo::dup_proc_pipe): New method.
 | 
						|
	(_pinfo::sync_proc_pipe): Ditto.
 | 
						|
	* exceptions.cc (sig_handle_tty_stop): Reflect move of alert_parent.
 | 
						|
	* init.cc (dll_entry): Exit with status one if main process called
 | 
						|
	ExitProcess.
 | 
						|
	* pinfo.cc (set_myself): Remove handling of parent_wr_proc_pipe.
 | 
						|
	(_pinfo::exit): Reflect move of alert_parent.  Set procinfo to NULL to
 | 
						|
	flag that we are exiting normally.  Always use exitcode when exiting
 | 
						|
	(although this could be a little racy).
 | 
						|
	(pinfo::init): Set default exit to SIGTERM.  This will be the exit code
 | 
						|
	reported if process is terminated.
 | 
						|
	(_pinfo::dup_proc_pipe): New function.
 | 
						|
	(pinfo::wait): Duplicate wr_proc_pipe to the right place.  Use
 | 
						|
	dup_proc_pipe to move the pipe to the child.
 | 
						|
	(_pinfo::sync_proc_pipe): New function.
 | 
						|
	(_pinfo::alert_parent): Move to _pinfo.  Make sure that wr_proc_pipe is
 | 
						|
	ours before using it.
 | 
						|
	* sigproc.cc (child_info::child_info): Remove handling of
 | 
						|
	parent_wr_proc_pipe.
 | 
						|
	* spawn.cc (spawn_guts): Pass our wr_proc_pipe to the child when
 | 
						|
	execing.  Ensure that exit code of cygwin process started from windows
 | 
						|
	is correctly set.
 | 
						|
 | 
						|
2004-12-23  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
	    Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* path.h (path_conv::set_normalized_path): Add second argument and fill
 | 
						|
	it in throughout.
 | 
						|
	* path.cc (path_conv::check): Declare, set and use "strip_tail".
 | 
						|
	(path_conv::set_normalized_path): Add and use second argument,
 | 
						|
	replacing all tail stripping tests.
 | 
						|
 | 
						|
2004-12-23  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygthread.cc (cygthread::cygthread): Guard debugging variable with
 | 
						|
	"ifdef DEBUGGING".
 | 
						|
	(cygthread::release): Ditto.
 | 
						|
 | 
						|
2004-12-23  Christopher Faylor  <cgf@timesys.com>
 | 
						|
	    Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* path.cc (path_conv::check): Don't strip the trailing slash from a
 | 
						|
	path consisting only of two slashes.
 | 
						|
 | 
						|
2004-12-23  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygthread.cc (cygthread::stub): Detect if thread function wants to
 | 
						|
	release itself here, to avoid a race.
 | 
						|
	(cygthread::release): Clear more stuff.  Add a diagnostic for an
 | 
						|
	internal error.
 | 
						|
	* cygthread.h (auto_release): New function.
 | 
						|
	* pinfo.h (pinfo::remember): Add an argument to denote whether child is
 | 
						|
	detached.
 | 
						|
	* fork.cc (fork_parent): Reflect change in arguments to
 | 
						|
	pinfo::remember.
 | 
						|
	* pinfo.cc (_pinfo::exit): Signal exit more forcibly.
 | 
						|
	(proc_waiter): Use cygthread::auto_release to signify that
 | 
						|
	cygthread::stub should release the thread.  This should avoid a race.
 | 
						|
	(pinfo::alert_parent): Don't signify an error when wr_proc_pipe == NULL.
 | 
						|
	* sigproc.cc (proc_subproc): Add support for PROC_DETACHED_CHILD.
 | 
						|
	* sigproc.h: Ditto.
 | 
						|
	* spawn.cc (spawn_guts): Specify whether child is detached or not when
 | 
						|
	calling pinfo::remember.
 | 
						|
 | 
						|
2004-12-22  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygheap.cc (cygheap_setup_for_child): Add api_fatal to catch failing
 | 
						|
	MapViewOfFileEx.
 | 
						|
	* cygthread.cc (cygthread::stub): Previous change to make diagnostic
 | 
						|
	output more informative was really a bust.  Try again.  Capture previous
 | 
						|
	name in a new field in cygthread for diagnostic purposes.
 | 
						|
	(cygthread::cygthread): Ditto.
 | 
						|
	(cygthread::release): Add an argument to control whether h should be cleared
 | 
						|
	or not.
 | 
						|
	(cygthread::terminate_thread): Use 'inuse' for tests rather than 'h'.
 | 
						|
	(cygthread): Add some diagnostic fields.
 | 
						|
	(cygthread::release): Add an argument.
 | 
						|
	* pinfo.cc (proc_waiter): Accommodate change to cygthread::release.
 | 
						|
 | 
						|
2004-12-22  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygthread.cc (cygthread::stub): Make diagnostic output more informative.
 | 
						|
 | 
						|
2004-12-22  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.cc (proc_waiter): Zero wait_thread in child to avoid races with
 | 
						|
	process termination.
 | 
						|
	* cygthread.cc (cygthread::terminate): Clumsily detect when h has gone away
 | 
						|
	and attempt no further action.
 | 
						|
 | 
						|
2004-12-22  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygthread.h (cygthread::release): Just declare here.
 | 
						|
	* cygthread.cc (cygthread::release): Define here.  Use
 | 
						|
	InterlockedExchange to set inuse or suffer potential races.
 | 
						|
	(cygthread::terminate): Use release().
 | 
						|
 | 
						|
2004-12-22  Chris January  <chris@atomice.net>
 | 
						|
 | 
						|
	* fhandler_process.cpp (format_process_status): Use tabs in formatting
 | 
						|
	instead of spaces.
 | 
						|
 | 
						|
2004-12-22  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* path.cc (set_normalized_path): Allow empty pathnames.
 | 
						|
 | 
						|
2004-12-21  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* spawn.cc (spawn_guts): Force parent to forget about P_DETACH'ed
 | 
						|
	process.
 | 
						|
 | 
						|
2004-12-20  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* path.cc (normalize_win32_path): Remove unneeded check for dots.
 | 
						|
 | 
						|
2004-12-20  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* path.cc (normalize_posix_path): Remove unneeded check for dots.
 | 
						|
	(path_conv::set_normalized_path): Strip trailing dots, similarly to
 | 
						|
	what had previously been done for the win32 path.
 | 
						|
 | 
						|
2004-12-18  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* path.cc (normalize_win32_path): Make third arg pass-by reference.
 | 
						|
	Reorganize slightly to eliminate extra variables.
 | 
						|
	(normalize_posix_path): Ditto.
 | 
						|
	(path_conv::check): Reflect change in arguments.
 | 
						|
	(mount_info::conv_to_posix_path): Ditto.
 | 
						|
	(mount_info::add_item): Ditto.
 | 
						|
 | 
						|
2004-12-18  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* child_info.h (CURR_CHILD_INFO_MAGIC): Use updated value.
 | 
						|
 | 
						|
2004-12-18  Christopher Faylor  <cgf@timesys.com>
 | 
						|
	    Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* path.cc (path_conv::check): Check the output Win32 path for trailing
 | 
						|
	spaces and dots, not the input path.  Disallow all use of foo./bar
 | 
						|
	since consistently getting this right is time consuming.  Remove
 | 
						|
	strange test for "unc\" since no one seems to know what it's for.
 | 
						|
 | 
						|
2004-12-18  Chris January  <chris@atomice.net>
 | 
						|
 | 
						|
	* fhandler_proc.cc (proc_listing): Add entry for "self".
 | 
						|
	(proc_fhandlers): Add entry for "self".
 | 
						|
	* fhandler_process.cc (fhandler_process::fstate): Handle "self".
 | 
						|
	(fhandler_process::open): Handle "self".
 | 
						|
 | 
						|
2004-12-17  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* sigproc.cc (proc_subproc): Fix long-standing problem.  Only wait for
 | 
						|
	"all processes" if pid == -1 -- not just if pid is negative.
 | 
						|
	(proc_can_be_signalled): Fix another long-standing problem.  Set
 | 
						|
	correct errno when detecting an exited process.
 | 
						|
 | 
						|
2004-12-16  Thomas Wolff  <towo@computer.org>
 | 
						|
 | 
						|
	* fhandler_console.cc (get_win32_attr): Avoid inappropriate intensity
 | 
						|
	interchanging that used to render reverse output unreadable when
 | 
						|
	non-reversed text is bright.
 | 
						|
 | 
						|
2004-12-15  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygwin.din: Add utmpx symbols.
 | 
						|
	* 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 *.
 | 
						|
 | 
						|
2004-12-14  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* tty.cc (tty_list::terminate): Guard releasing the tty with tty_mutex.
 | 
						|
	(tty::init): Set master_pid to 0.
 | 
						|
 | 
						|
2004-12-14  Thomas Wolff  <towo@computer.org>
 | 
						|
 | 
						|
	* fhandler_console.cc (read): Consider offset within scrolling
 | 
						|
	region of the console window.
 | 
						|
 | 
						|
2004-12-13  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygheap.h (cwdstuff::get_drive): Release cwd_lock.
 | 
						|
 | 
						|
2004-12-12  Bas van Gompel  <cygwin-patch@bavag.tmfweb.nl>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::puts_readahead): Fix end-condition.
 | 
						|
 | 
						|
2004-12-10  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* errno.cc (errmap): Map ERROR_INVALID_ADDRESS to EINVAL instead of
 | 
						|
	EOVERFLOW.
 | 
						|
 | 
						|
2004-12-10  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* include/sys/strace.h: Don't output paranoid_printf by default.
 | 
						|
 | 
						|
2004-12-09  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* lib/libcmain.c (main): Properly deal with quoted first argument.
 | 
						|
 | 
						|
2004-12-06  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.h (proc_pipe::*): Delete class.
 | 
						|
	* pinfo.cc (proc_pipe::*): Ditto.
 | 
						|
 | 
						|
2004-12-05  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* fork.cc (fork_parent): Reinstate "childhProc" protection.  Don't
 | 
						|
	close hProcess handle here since it is used to ensure that a new
 | 
						|
	process isn't created with the old pid after the old pid exits.
 | 
						|
	* spawn.cc (spawn_guts): Ditto.
 | 
						|
	* pinfo.cc (proc_waiter): Don't send any signals if we've execed since
 | 
						|
	this process doesn't officially exist.
 | 
						|
	* pinfo.h (pinfo::pid_handle): Eliminate.  Just use hProc.
 | 
						|
	* sigproc.cc (sig_send): Don't send any signals if our sendsig doesn't
 | 
						|
	exist.  That's a sign that we are execing.
 | 
						|
	(remove_proc): Eliminate pid_handle close.
 | 
						|
 | 
						|
2004-12-05  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygthread.h (cygthread::terminate_thread): Make public.
 | 
						|
	* pinfo.h (pinfo::wait_thread): New element.
 | 
						|
	* pinfo.cc (pinfo::wait): Store "handle" to started thread in pinfo.
 | 
						|
	* sigproc.cc (proc_terminate): Kill any threads waiting for a process
 | 
						|
	pipe.
 | 
						|
 | 
						|
2004-12-05  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* sigproc.cc (mychild): Reimplement as list scan.
 | 
						|
	(proc_subproc): Don't mess with pinfo if it's myself.
 | 
						|
 | 
						|
2004-12-05  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* child_info.h (child_info_types): Label enum for _PROC constants.
 | 
						|
	(child_info::child_info): New constructor.
 | 
						|
	(child_info::~child_info): New destructor.
 | 
						|
	(child_info::sync): Declare new function.
 | 
						|
	(child_info_fork::child_info_fork): New constructor.
 | 
						|
	(child_info_spawn::child_info_spawn): Remove old constructor.
 | 
						|
	(child_info_spawn::child_info_spawn): New constructor.
 | 
						|
	* dcrt0.cc (dll_crt0_0): Use correct sizeof when doing sanity check on
 | 
						|
	passed in child_info.  Signal readiness to parent when not forking (and
 | 
						|
	not spawning).
 | 
						|
	* fork.cc (sync_with_child): Delete.
 | 
						|
	(resume_child): Remove extra argument.
 | 
						|
	(sync_with_parent): Use child_info method to sync with parent.
 | 
						|
	(fork_child): Don't close fork_info->subproc_ready since that is now
 | 
						|
	handled by the destructor.
 | 
						|
	(fork_parent): Remove subproc_ready stuff.  Use child_info sync method
 | 
						|
	for waiting..  Set start time here for child.  Rename "forked" to
 | 
						|
	"child".
 | 
						|
	(fork): Check ch.subproc_ready for validity here.
 | 
						|
	* pinfo.h (_pinfo::exec_sendsig): Temp storage for exec stub which may
 | 
						|
	be staying around to handle non-cygwin captive process.
 | 
						|
	(_pinfo::exec_dwProcessId): Ditto.
 | 
						|
	(_pinfo::_lock): Renamed from lock.
 | 
						|
	(_pinfo::lock): New method.
 | 
						|
	(_pinfo::unlock): Ditto.
 | 
						|
	(_pinfo::initialize_lock): Ditto.
 | 
						|
	* pinfo.cc (set_myself): Use initialize_lock method to initialize
 | 
						|
	myself lock.  Set "exec" fields in _pinfo to zero to indicate that
 | 
						|
	we've started successfully.  Set start time here when appropriate.
 | 
						|
	(_pinfo::commune_send): Use pinfo lock/unlock methods.
 | 
						|
	(proc_waiter): Remove special case for non-cywin processes.
 | 
						|
	Reinstitute handling for PID_NOCLDSTOP.
 | 
						|
	* sigproc.cc (proc_subproc): Set proper EAGAIN errno when process table
 | 
						|
	is filled.
 | 
						|
	(sig_send): Use exec_* fields from _pinfo for sending signals if the
 | 
						|
	the _pinfo sendsig never materializes.
 | 
						|
	(child_info::child_info): New constructor, renamed from init_child_info.
 | 
						|
	Zeroes child_info structure and sets appropriate fields in structure
 | 
						|
	based on chtype.
 | 
						|
	(child_info::~child_info): New destructor.  Closes subproc_ready if it
 | 
						|
	exists.
 | 
						|
	(child_info_fork::child_info_fork): New constructor.
 | 
						|
	(child_info_spawn::child_info_spawn): New constructor.
 | 
						|
	(child_info::ready): New function.  Signals parent when child is ready.
 | 
						|
	(child_info::sync): New function.  Wait for child to signal us or
 | 
						|
	process to die.
 | 
						|
	(remove_proc): Remove closing of hProcess since this should now be
 | 
						|
	handled shortly after process creation.
 | 
						|
	* spawn.cc (spawn_guts): Use child_info_spawn constructor rather than
 | 
						|
	init_child_info.  Save exec_sendsig and exec_dwProcessId in execing
 | 
						|
	_pinfo.  Rely on child_info constructor to properly set
 | 
						|
	parent_wr_proc_pipe in ciresrv.  Revert to previous determination on
 | 
						|
	whether to start a process in suspended mode.  Remove reparenting
 | 
						|
	stuff.  Just keep a stub around if starting a non-cygwin process.
 | 
						|
 | 
						|
2004-12-05  Bas van Gompel  <cygwin-patch@bavag.tmfweb.nl>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::read): Remove superfluous check in
 | 
						|
	__small_printf format for strace.
 | 
						|
 | 
						|
2004-12-05  Bas van Gompel  <cygwin-patch@bavag.tmfweb.nl>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::read): Don't debug_printf garbage when
 | 
						|
	copied_chars is zero.
 | 
						|
 | 
						|
2004-12-03  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* environ.cc (environ_init): Alloc space for TERM if it is not set,
 | 
						|
	like all of the other environment variables.
 | 
						|
 | 
						|
2004-12-02  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* child_info.h (child_info_fork::parent_wr_proc_pipe): New element.
 | 
						|
	* fork.cc (fork_parent): Set parent_wr_proc.
 | 
						|
	* pinfo.cc (set_myself): Close child_proc_info->parent_wr_proc if it
 | 
						|
	exists rather than trying to get value from parent _pinfo.
 | 
						|
 | 
						|
2004-12-02  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.h (enum parent_aleter): New enum.
 | 
						|
	(pinfo::alert_parent): Declare as returning a value.
 | 
						|
	(pinfo::parent_alive): New function.
 | 
						|
	* pinfo.cc (pinfo::alert_parent): Set wr_proc_pipe to invalid non-NULL
 | 
						|
	value when parent disappears.  Return success of operation.
 | 
						|
	(proc_waiter): Use __ALERT_* enum for control since these are not really signals.
 | 
						|
	Implement __ALERT_ALIVE.
 | 
						|
	* sigproc.cc (my_parent_is_alive): Eliminate.
 | 
						|
	* sigproc.h (my_parent_is_alive): Ditto for declaration.
 | 
						|
	(__SIGREPARENT): Eliminate.
 | 
						|
 | 
						|
2004-12-02  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.cc (pinfo::wait): Use better name for cygthread.
 | 
						|
 | 
						|
2004-12-03  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* registry.h (reg_key::reg_key): Change arguments.
 | 
						|
	* shared_info.h (class mount_info): Remove had_to_create_mount_areas.
 | 
						|
	* registry.cc (reg_key::reg_key): Change constructors to always handle
 | 
						|
	HKLM and to avoid relying on HKCU.
 | 
						|
	Do not set mount_table->had_to_create_mount_areas.
 | 
						|
	* path.cc (mount_info::conv_to_win32_path): Improve update of
 | 
						|
	sys_mount_table_counter.
 | 
						|
	(mount_info::read_mounts): Use new reg_key constructor.
 | 
						|
	(mount_info::add_reg_mount): Ditto.
 | 
						|
	(mount_info::del_reg_mount): Ditto.
 | 
						|
	(mount_info::read_cygdrive_info_from_registry): Ditto.
 | 
						|
	(mount_info::write_cygdrive_info_to_registry): Ditto.
 | 
						|
	Update cygwin_shared->sys_mount_table_counter after registry update.
 | 
						|
	(mount_info::get_cygdrive_info): Ditto.
 | 
						|
	* shared.cc (shared_info::heap_chunk_size): Use new reg_key constructor.
 | 
						|
	* environ.cc (regopt): Ditto.
 | 
						|
 | 
						|
2004-12-01  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* include/features.h: Include sys/cdefs.h, like linux.
 | 
						|
 | 
						|
2004-12-01  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* syscalls.cc (truncate64): Don't second-guess errno if open fails.
 | 
						|
	* devices.in: Don't allow /dev/com0.
 | 
						|
 | 
						|
2004-11-25  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* environ.cc (putenv): Accommodate recent newlib change in argument to
 | 
						|
	putenv.
 | 
						|
 | 
						|
2004-11-25  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* child_info.h (child_info_spawn::hexec_proc): Eliminate.
 | 
						|
	* dcrt0.cc (dll_crt0_0): Remove hexec_proc stuff.
 | 
						|
	* fork.cc (fork_child): Remove call to pinfo_fixup_after_fork.
 | 
						|
	* pinfo.cc (set_myself): Close and zero pid_handle if set.
 | 
						|
	(pinfo_fixup_after_fork): Delete.
 | 
						|
	(proc_waiter): Don't close vchild.hProcess here.  Do that when we are
 | 
						|
	remove the vchild from procs.  Save hProcess as pid_handle only on
 | 
						|
	first reparent operation.
 | 
						|
	(pinfo::wait): Don't set pid_handle here.
 | 
						|
	(pinfo::alert_parent): Always try to send signal.  If unsuccessful then
 | 
						|
	close and zero wr_proc_pipe.
 | 
						|
	* pinfo.h (pinfo::pinfo): Make sure that appropriate parts of the class
 | 
						|
	are zeroed on construction.
 | 
						|
	(pinfo::alert_parent): Take char argument.
 | 
						|
	(pinfo_fixup_after_fork): Delete declaration.
 | 
						|
	(hexec_proc): Ditto.
 | 
						|
	* sigproc.cc (remove_proc): Close pid_handle and hProcess if
 | 
						|
	appropriate.
 | 
						|
	* spawn.cc (spawn_guts): Set cygheap->pid_handle on first exec.
 | 
						|
 | 
						|
2004-11-25  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygheap.h (init_cygheap::pid_handle): New element.
 | 
						|
	* pinfo.cc (set_myself): Clear previously existing cygheap->pid_handle
 | 
						|
	when a new process has been started.
 | 
						|
	(pinfo::wait): Make sure that a handle to the newly forked/spawned
 | 
						|
	process is kept around so that the pid will not be reused.
 | 
						|
	* pinfo.h (_pinfo::pid_handle): Move.
 | 
						|
	(pinfo::pid_handle): to here.
 | 
						|
	* spawn.cc (spawn_guts): Create a pid_handle in cygheap prior to
 | 
						|
	spawning to ensure that the pid does not get reused during the lifetime
 | 
						|
	of the "cygwin pid".
 | 
						|
 | 
						|
2004-11-25  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.h (pinfo::alert_parent): New function.
 | 
						|
	* exceptions.cc (sig_handle_tty_stop): Use alert_parent to send
 | 
						|
	"signals" to parent.
 | 
						|
	* fork.cc (fork_parent): Don't close pi.hProcess.  Let the waiter
 | 
						|
	thread do that.
 | 
						|
	* pinfo.cc (proc_waiter): Detect case where process exits without
 | 
						|
	setting the exit code and use value from GetExitCodeProcess.
 | 
						|
	Reluctantly implement __SIGREPARENT.
 | 
						|
	(pinfo::alert_parent): Define.
 | 
						|
	* sigproc.h (__SIGREPARENT): New enum.
 | 
						|
	* spawn.cc (spawn_guts): Send reparent signal to parent on exec.
 | 
						|
	Always create process in suspended state to avoid races.
 | 
						|
 | 
						|
2004-11-25  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	Remove cygthread.h in favor of cygtls.h throughout since cygtls now
 | 
						|
	includes cygthread.h.  Eliminate ppid_handle usage throughout.
 | 
						|
	* child_info.h: Regenerate magic number
 | 
						|
	(child_info): Remove pppid_handle.
 | 
						|
	* cygthread.h (cygthread::release): New method.  Frees thread without
 | 
						|
	waiting.
 | 
						|
	* cygthread.cc (cygthread::stub): Set _ctinfo in _mytls to point to
 | 
						|
	information for executing thread.  Don't call SetEvent if thread is no
 | 
						|
	longer in use.
 | 
						|
	(cygthread::simplestub): Ditto.
 | 
						|
	* cygtls.h (_cygtls::_ctinfo): New element contains pointer to
 | 
						|
	information about executing cygthread, if any.
 | 
						|
	* dcrt0.cc: Remove last vestiges of per_thread stuff.
 | 
						|
	(dll_crt0_0): Ditto.  Remove accommodation for ppid_handle.
 | 
						|
	(do_exit): Remove obsolete reparenting test.
 | 
						|
	(_exit): Exit with a more SUSv3-like exit value.
 | 
						|
	* dtable.cc (dtable::stdio_init): Check for myself->cygstarted rather
 | 
						|
	than myself->ppid_handle to see if we were started by a cygwin process.
 | 
						|
	* exceptions.cc (open_stackdumpfile): Ditto.
 | 
						|
	(handle_exceptions): Ditto.
 | 
						|
	(ctrl_c_handler): Ditto.
 | 
						|
	(sig_handle_tty_stop): Ditto.  Let parent send signal to itself on
 | 
						|
	STOP.
 | 
						|
	(sigpacket::process): Comment out vfork test.
 | 
						|
	(signal_exit): Use more SUSv3-like exit value on signal.
 | 
						|
	* external.cc (fillout_pinfo): Don't set hProcess.
 | 
						|
	* fork.cc: Remove VFORK cruft.
 | 
						|
	(per_thread::set): Delete.
 | 
						|
	(fork_child): Remove perthread stuff.
 | 
						|
	(fork_parent): Remove obsolete subproc_init.  Accommodate new method
 | 
						|
	for tracking subprocesses.
 | 
						|
	* pinfo.cc (set_myself): Accommodate new pinfo/_pinfo layout.  Set some
 | 
						|
	things here that used to be set in wait_sig.
 | 
						|
	(_pinfo::exit): Set exitcode here.  Close process pipe.
 | 
						|
	(_pinfo::commune_send): Accommodeate new pinfo/_pinfo layout.
 | 
						|
	(proc_waiter): New function.  Waits, in a thread for subprocess to go
 | 
						|
	away.
 | 
						|
	(pinfo::wait): New function.  Initialization for proc_waiter.
 | 
						|
	* pinfo.h (_pinfo::exitcode): New element.
 | 
						|
	(_pinfo::cygstarted): Ditto.
 | 
						|
	(_pinfo::wr_proc_pipe): Ditto.
 | 
						|
	(_pinfo::ppid_handle): Delete.
 | 
						|
	(_pinfo::hProcess): Delete.
 | 
						|
	(_pinfo::lock): Delete.
 | 
						|
	(pinfo::hProcess): New element.
 | 
						|
	(pinfo::lock): Ditto.
 | 
						|
	(pinfo::wait): Declare new function.
 | 
						|
	(pinfo::preserve): Define new function.
 | 
						|
	* sigproc.cc: Remove old stuff from wait_subproc thread based method.
 | 
						|
	(zombies): Remove.
 | 
						|
	(procs): New.
 | 
						|
	(my_parent_is_alive): Just check that the parent pid exists.
 | 
						|
	(mychild): Just use pinfo methods to determine if child is mine.
 | 
						|
	(proc_subproc): Revamp PROC_ADDCHILD to use pinfo::wait.  Remove
 | 
						|
	PROC_CHILDTERMINATED logic.  Use different method to remove processes
 | 
						|
	from list when SIGCHLD == SIG_IGN.
 | 
						|
	(proc_terminate): Gut.
 | 
						|
	(subproc_init): Delete.
 | 
						|
	(init_child_info): Remove setting of pppid_handle.
 | 
						|
	(checkstate): Revamp to only scan procs array.
 | 
						|
	(remove_proc): Rename from remove_zombie.  Don't close hProcess or
 | 
						|
	pid_handle.  Don't release memory if it's myself.
 | 
						|
	(stopped_or_terminated): Change logic to handle new consolidated
 | 
						|
	proc/zombie array.
 | 
						|
	(wait_subproc): Delete.
 | 
						|
	* sigproc.h: Remove obsolete EXIT_* defines.
 | 
						|
	(subproc_init): Remove declaration.
 | 
						|
	* spawn.cc (spawn_guts): Remove reparenting stuff.  Use standard wait
 | 
						|
	logic to wait for child if started from a non-cygwin process.
 | 
						|
	* tlsoffsets.h: Regenerate.
 | 
						|
	* tty.cc (tty_init): Check for myself->cygstarted rather than
 | 
						|
	myself->ppid_handle to see if we were started by a cygwin process.
 | 
						|
	* include/sys/signal.h (external_pinfo::exitcode): Replace hProcess.
 | 
						|
	* include/sys/wait.h (WCOREDUMP): Define.
 | 
						|
 | 
						|
	* fhandler_tty.cc (fhandler_tty_slave::read): Add debugging output for
 | 
						|
	timeout case.
 | 
						|
	* signal.cc (abort): Flag that we are exiting with the ABORT signal.
 | 
						|
 | 
						|
2004-11-22  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* select.cc (select_stuff::test_and_set): Remove extraneous tests of
 | 
						|
	"window_handle".
 | 
						|
 | 
						|
2004-11-20  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler::write): Remove debug_printf.
 | 
						|
	* pipe.cc (fhandler_pipe::create): Edit syscall_printf format.
 | 
						|
 | 
						|
2004-11-20  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* cygheap.h (cygheap_user::get_windows_id): New method.
 | 
						|
	* registry.h (get_registry_hive_path): Change argument type.
 | 
						|
	(load_registry_hive): Ditto.
 | 
						|
	* registry.cc (get_registry_hive_path): Change argument type and take
 | 
						|
	Win9x keys into account.
 | 
						|
	(load_registry_hive): Ditto.
 | 
						|
	* uinfo.cc (cygheap_user::env_userprofile): Use get_windows_id, even
 | 
						|
	for SYSTEM.
 | 
						|
	* shared.cc (user_shared_initialize): Use get_windows_id.
 | 
						|
	* syscalls.cc (seteuid32): Load the registry hive and reload the user
 | 
						|
	shared also on Win9x.
 | 
						|
 | 
						|
2004-11-11  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* include/cygwin/version.h: Bump DLL minor number to 13.
 | 
						|
 | 
						|
2004-10-28  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* fork.cc (NPIDS_HELD): Reduce to former number now that bash problem
 | 
						|
	has been identified.
 | 
						|
 | 
						|
2004-10-28  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* path.cc (mount_info::from_registry): Deimpersonate while
 | 
						|
	accessing HKLM.
 | 
						|
	(mount_info::read_cygdrive_info_from_registry): Ditto.
 | 
						|
	* cygheap.h: Define NO_IMPERSONATION.
 | 
						|
	(cygheap_user::issetuid): Replace INVALID_HANDLE_VALUE by
 | 
						|
	NO_IMPERSONATION.
 | 
						|
	(cygheap_user::has_impersonation_tokens): Ditto.
 | 
						|
	(cygheap_user::close_impersonation_tokens): Ditto.
 | 
						|
	* uinfo.cc (uinfo_init): Ditto.
 | 
						|
	* syscalls.cc (seteuid32): Ditto.
 | 
						|
	* security.cc (set_impersonation_token): Ditto.
 | 
						|
 | 
						|
2004-10-26  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygtls.cc (_cygtls::fixup_after_fork): Wipe out exitsock local since
 | 
						|
	it should not be used by the child.
 | 
						|
	* select.cc (start_thread_socket): Turn off inheritance for exitsock.
 | 
						|
	Don't add exitsock to exception mask since it should never get an
 | 
						|
	exception.
 | 
						|
	(socket_cleanup): Change some debug messages for consistency.
 | 
						|
	* fhandler_socket.cc (fhandler_socket::dup): Change comment wording
 | 
						|
	slightly.
 | 
						|
 | 
						|
2004-10-26  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* registry.cc (get_registry_hive_path): Simplify and add a
 | 
						|
	debug_printf in case of failure.
 | 
						|
	(load_registry_hive): Revert the 2004-04-19 change.
 | 
						|
 | 
						|
2004-10-20  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* select.cc (start_thread_socket): Remove attempt to delay reading of
 | 
						|
	exitsock or suffer occasional mysterious 60 second hangs.
 | 
						|
	(socket_cleanup): Empty the exitsock here after the thread has
 | 
						|
	terminated.
 | 
						|
 | 
						|
2004-10-19  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* fhandler_console.cc (fhandler_console::fixup_after_exec): Fix error
 | 
						|
	message.
 | 
						|
 | 
						|
2004-10-12  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* select.cc (start_thread_socket): Remove unused code.
 | 
						|
 | 
						|
2004-10-11  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* fhandler_termios.cc (fhandler_termios::tcsetpgrp): Revert previous checkin.
 | 
						|
 | 
						|
2004-10-10  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygtls.h (exitsock): New element.
 | 
						|
	(exitsock_sin): Ditto.
 | 
						|
	* cygtls.cc (_cygtls::init_thread): Initialize exitsock to invalid handle.
 | 
						|
	(_cygtls::call2): Close exitsock if it is valid.
 | 
						|
	* select.cc (struct socketinf): Remove sin element.
 | 
						|
	(start_thread_socket): Initialize one SOCK_DGRAM socket per thread
 | 
						|
	instead of (apparently) expensive opening and closing of socket with
 | 
						|
	each select call.
 | 
						|
	(socket_cleanup): Send a byte to the exitsock socket as a way to
 | 
						|
	potentially signal a waiting-for-socket thread to exit.
 | 
						|
	* tlsoffsets.h: Regenerate.
 | 
						|
 | 
						|
2004-10-07  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygheap.h (class cygheap_user): Add psystemroot member and
 | 
						|
	env_systemroot method.
 | 
						|
	* environ.cc (struct spenv): Add add_always member.
 | 
						|
	(spenvs): Accommodate new add_always member.  Add
 | 
						|
	cygheap_user::env_systemroot method to SYSTEMROOT entry.
 | 
						|
	(build_env): Check add_always member when adding missing environment
 | 
						|
	variables from spenvs.
 | 
						|
	* uinfo.cc (cygheap_user::env_systemroot): New method.
 | 
						|
 | 
						|
2004-10-07  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* dcrt0.cc (dll_crt0_0): Drop duplicated line.
 | 
						|
 | 
						|
2004-10-07  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* spawn.cc (pthread_cleanup::oldmask): Default to invalid signal mask.
 | 
						|
	(do_cleanup): Test for invalid signal mask to decide whether to restore
 | 
						|
	the mask rather than assuming zero mask indicates that there is nothing
 | 
						|
	to do.
 | 
						|
 | 
						|
2004-10-07  Mark Paulus  <mark.paulus@mci.com>
 | 
						|
 | 
						|
	* fhandler_tty.cc (fhandler_tty_slave::read): Use previously
 | 
						|
	evaluated time_to_wait value.
 | 
						|
 | 
						|
2004-10-05  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* external.cc (check_ntsec): Do not call wincap.has_security.
 | 
						|
	* path.cc (path_conv::check): Ditto.
 | 
						|
	* security.cc (get_object_attribute): Ditto.
 | 
						|
	(get_file_attribute): Ditto.
 | 
						|
 | 
						|
2004-10-05  Bas van Gompel  <cygwin-patch.buzz@bavag.tmfweb.nl>
 | 
						|
 | 
						|
	* pinfo.cc (_pinfo::commune_send): Correct debugging output.
 | 
						|
 | 
						|
2004-10-04  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* include/cygwin/signal.h: Add siginterrupt definition.
 | 
						|
 | 
						|
2004-10-02  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* path.h (enum path_types): Delete PATH_ISDISK.
 | 
						|
	(path_conv::isdisk): Delete method.
 | 
						|
	(path_conv::set_isdisk): Ditto.
 | 
						|
	* path.cc (path_conv::check): Do not call set_isdisk.
 | 
						|
	* uinfo.cc(pwdgrp::load): Do not call pc.isdisk.
 | 
						|
 | 
						|
2004-09-28  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* fhandler_termios.cc (fhandler_termios::tcsetpgrp): Disallow attempts
 | 
						|
	to set the process group to a nonexistent process group.
 | 
						|
 | 
						|
2004-09-27  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* lib/_cygwin_crt0_common.cc: Revert patch from 2004-09-16.  Brakes
 | 
						|
	newly built DLLs.
 | 
						|
 | 
						|
2004-09-24  Christopher Faylor  <cgf@timesys.com>
 | 
						|
	    Sergey Ivanov  <seriv@parkheights.dyndns.org>
 | 
						|
 | 
						|
	* path.cc (mount_info::read_cygdrive_info_from_registry): Default
 | 
						|
	/cygdrive to binary mode.
 | 
						|
 | 
						|
2004-09-22  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* path.cc (normalize_win32_path): Only look for : in second position.
 | 
						|
	Avoid infinite loop with names starting in double dots.
 | 
						|
	(mount_info::conv_to_win32_path): Do not worry about a trailing dot.
 | 
						|
	(hash_path_name): Ditto.
 | 
						|
 | 
						|
2004-09-20  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* exceptions.cc (sig_handle_tty_stop): Set flag earlier.
 | 
						|
 | 
						|
2004-09-20  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* exceptions.cc (sig_handle_tty_stop): Set flag that we are in a cygwin
 | 
						|
	function to avoid a probably erroneous stack walk.
 | 
						|
 | 
						|
2004-09-17  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* syscalls.cc (unlink): Don't use "delete on close" on remote shares.
 | 
						|
 | 
						|
2004-09-17  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygwin.din (_impure_ptr): Add export again. There are libs out there.
 | 
						|
 | 
						|
2004-09-16  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygwin.din (_impure_ptr): Don't export.
 | 
						|
	(reent_data): Export.
 | 
						|
	* lib/_cygwin_crt0_common.cc (_impure_ptr): Drop entirely.  Don't
 | 
						|
	initialize _impure_ptr or u->impure_ptr_ptr.
 | 
						|
 | 
						|
2004-09-15  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygwin.din (_impure_ptr): Export.
 | 
						|
	(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.
 | 
						|
 | 
						|
2004-09-14  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygtls.h: Add alignment kludge to fix disparity between compilers.
 | 
						|
	* tlsoffsets.h: Regenerate.
 | 
						|
 | 
						|
	* fork.cc (slow_pid_reuse): Use define to control number of pids held
 | 
						|
	to prevent pid reuse.
 | 
						|
 | 
						|
2004-09-14  Sam Steingold  <sds@gnu.org>
 | 
						|
 | 
						|
	* autoload.cc (EnumProcessModules): Add.
 | 
						|
	* dlfcn.cc (dlsym): Handle RTLD_DEFAULT using EnumProcessModules().
 | 
						|
	* include/dlfcn.h (RTLD_DEFAULT): Define to NULL.
 | 
						|
 | 
						|
2004-09-13  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* fork.cc (slow_pid_reuse): Temporarily double the number of pids held
 | 
						|
	to prevent pid reuse.
 | 
						|
 | 
						|
2004-09-12  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* sigproc.cc (wait_sig): Ensure that waiting threads are awoken after
 | 
						|
	returning from a hold condition.
 | 
						|
 | 
						|
2004-09-12  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* child_info.h (CURR_CHILD_INFO_MAGIC): Update.
 | 
						|
 | 
						|
2004-09-11  Pierre Humblet  <pierre.humblet@ieee.org>
 | 
						|
	    Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* exceptions.cc: (ctrl_c_handler): Do nothing while a Cygwin subprocess
 | 
						|
	is starting.
 | 
						|
 | 
						|
2004-09-10  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* child_info.h (init_child_info): Remove pid argument from declaration.
 | 
						|
	* cygheap.h (init_cygheap::pid): New element.
 | 
						|
	* dcrt0.cc (dll_crt0_0): Eliminate handling of now-noexistent cygpid
 | 
						|
	parameter in child_info struct.  Set forkee to 'true' rather than
 | 
						|
	cygpid since the pid value was never used.
 | 
						|
	(dll_crt0_1): Ditto.
 | 
						|
	(_dll_crt0): Ditto.
 | 
						|
	* fork.cc (fork_child): Don't wait for sigthread.  This is handled in
 | 
						|
	the fork call now.
 | 
						|
	(fork_parent): Remove obsolete pid argument from init_child_info call.
 | 
						|
	Don't do anything special with cygpid when DEBUGGING.
 | 
						|
	(fork): Delay all signals during fork.
 | 
						|
	(fork_init): Don't do anything special when DEBUGGING.
 | 
						|
	* pinfo.cc (set_myself): Remove pid parameter.  Use new pid field in
 | 
						|
	cygheap.
 | 
						|
	(pinfo_init): Don't pass pid argument to set_myself.
 | 
						|
	* sigproc.cc (sig_send): Wait for dwProcessId to be non-zero as well as
 | 
						|
	sendsig.
 | 
						|
	(init_child_info): Eliminate handling of pid.
 | 
						|
	(wait_sig): Implement method to temporarily hold off sending signals.
 | 
						|
	* sigproc.h (__SIGHOLD): New enum.
 | 
						|
	(__SIGNOHOLD): Ditto.
 | 
						|
	* spawn.cc (spawn_guts): Remove obsolete pid argument from
 | 
						|
	init_child_info call.
 | 
						|
 | 
						|
2004-09-10  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::dup): Use debug_printf.
 | 
						|
 | 
						|
2004-09-10  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* Makefile.in: Create libutil.a from bsdlib.o exports.
 | 
						|
	* bsdlib.cc (logwtmp): Move from syscalls.cc to here.
 | 
						|
	(login): Ditto.
 | 
						|
	(logout): Ditto.
 | 
						|
 | 
						|
	* winsup.h (EXPORT_ALIAS): New macro.
 | 
						|
	* exec.cc: Define alias symbols using EXPORT_ALIAS macro.
 | 
						|
	* syscalls.cc: Ditto.
 | 
						|
	* times.cc: Ditto.
 | 
						|
 | 
						|
2004-09-09  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_tape.cc (fhandler_dev_tape::open): Fix typo.
 | 
						|
 | 
						|
2004-09-09  Bas van Gompel  <cygwin-patch.buzz@bavag.tmfweb.nl>
 | 
						|
 | 
						|
	* pipe.cc (create_selectable_pipe): Work around bug in Windows 95
 | 
						|
	where CreateNamedPipe returns NULL.
 | 
						|
 | 
						|
2004-09-08  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* cygheap.h (cwdstuff::drive_length): New member.
 | 
						|
	(cwdstuff::get_drive): New method.
 | 
						|
	* path.cc (normalize_win32_path): Simplify by using cwdstuff::get_drive.
 | 
						|
	(mount_info::conv_to_win32_path): Use cwdstuff::get_drive as default for /.
 | 
						|
	(cwdstuff::set): Initialize drive_length.
 | 
						|
 | 
						|
2004-09-07  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygtls.cc (_cygtls::init_thread): Set __sdidinit to negative value to
 | 
						|
	indicate that it is "special".
 | 
						|
	* thread.cc (pthread::exit): If __sdidinit is < 0, it was never really
 | 
						|
	initialized so reset it to 0 before calling _reclaim_reent.
 | 
						|
 | 
						|
2004-09-05  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* include/cygwin/version.h: Bump DLL minor number to 12.
 | 
						|
 | 
						|
2004-09-03  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* security.cc: Fix a few more strace_prints.
 | 
						|
 | 
						|
2004-09-02  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	Regularize most strace_prints throughout so that %E is always preceded
 | 
						|
	by a comma and elminate most uses of "foo = %s" to "foo %s".
 | 
						|
 | 
						|
2004-09-02  Bob Byrnes  <byrnes@curl.com>
 | 
						|
	    Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* autoload.cc (NtQueryInformationFile): Return nonzero on error.
 | 
						|
	* ntdll.h (FILE_PIPE_LOCAL_INFORMATION): Add.
 | 
						|
	(NtQueryInformationFile): Fix types for last two arguments.
 | 
						|
	* pipe.cc: Include stdlib.h, limits.h, and ntdll.h.
 | 
						|
	(create_selectable_pipe): New function to create a pipe that can be
 | 
						|
	used with NtQueryInformationFile for select.
 | 
						|
	(fhandler_pipe::create): Call create_selectable_pipe instead of
 | 
						|
	CreatePipe.
 | 
						|
	(pipe): Use DEFAULT_PIPEBUFSIZE as argument to create_pipe.
 | 
						|
	* select.cc: Include limits.h and ntdll.h.
 | 
						|
	(peek_pipe): Add select_printf output.  Call NtQueryInformationFile to
 | 
						|
	implement select for write on pipes.
 | 
						|
	(fhandler_pipe::select_read): Reorder field assignments to be
 | 
						|
	consistent with fhandler_pipe::select_write.
 | 
						|
	(fhandler_pipe::select_write): Initialize startup, verify, cleanup, and
 | 
						|
	write_ready fields for select_record.
 | 
						|
	(fhandler_pipe::select_except): Tweak indentation to be consistent with
 | 
						|
	fhandler_pipe::select_write.
 | 
						|
 | 
						|
2004-08-30  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* fork.cc (fork_parent): Return the cygpid directly derived from the
 | 
						|
	winpid.
 | 
						|
 | 
						|
2004-08-30  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* fork.cc (fork_parent): Record child's pid when we're sure that it has
 | 
						|
	been filled out by the child.
 | 
						|
	* pinfo.cc (pinfo::init): Trivial change.
 | 
						|
 | 
						|
2004-08-29  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Allow to report
 | 
						|
	success on systems with ntsec and ntea set.
 | 
						|
 | 
						|
2004-08-28  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::write): In the lseek_bug case, set EOF
 | 
						|
	before zero filling. Combine similar error handling statements.
 | 
						|
 | 
						|
2004-08-28  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* syscalls.cc (ftruncate64): On 9x, call write with a zero length
 | 
						|
	to zero fill when the file is extended.
 | 
						|
 | 
						|
2004-08-24  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* syscalls.cc (link): Avoid compiler warning.
 | 
						|
 | 
						|
2004-08-21  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* environ.cc (set_ntea): New function.
 | 
						|
	(set_ntsec): Ditto.
 | 
						|
	(set_smbntsec): Ditto.
 | 
						|
	(parse_thing): Change ntea, ntsec and smbntsec settings to call
 | 
						|
	appropriate functions.
 | 
						|
 | 
						|
2004-08-20  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_tape.cc (fhandler_dev_tape::raw_read): Use ?: instead of
 | 
						|
	if/else.
 | 
						|
	(fhandler_dev_tape::raw_write): Return -1 in case of error.
 | 
						|
 | 
						|
2004-08-19  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* errno.cc (_sys_errlist): Change various text to their english Linux
 | 
						|
	counterparts.  Unify layout.
 | 
						|
	(strerror): Remove switch statement.
 | 
						|
 | 
						|
2004-08-19  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::open): Set shared flags to 0 when
 | 
						|
	opening a tape device.
 | 
						|
 | 
						|
2004-08-19  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_socket.cc (fhandler_socket::dup): Increment dtable's
 | 
						|
	need_fixup_before counter on successful dup.
 | 
						|
	* net.cc (cygwin_getpeername): Add file descriptor to debug output.
 | 
						|
 | 
						|
2004-08-17  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* fhandler.h (fhandler_dev_dsp:~fhandler_dev_dsp): Delete.
 | 
						|
	(fhandler_dev_dsp::open_count): Delete.
 | 
						|
	(fhandler_dev_dsp::close_audio_in): New method declaration.
 | 
						|
	(fhandler_dev_dsp::close_audio_in): Ditto.
 | 
						|
	* fhandler_dsp.cc: Add and edit debug_printf throughout.
 | 
						|
	(fhandler_dev_dsp::Audio::denyAccess): Delete.
 | 
						|
	(fhandler_dev_dsp::Audio::fork_fixup): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::getOwner): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::clearOwner): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::owner_): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::setformat): Ditto, rename to setconvert.
 | 
						|
	(fhandler_dev_dsp::Audio::lock): Ditto, move to queue.
 | 
						|
	(fhandler_dev_dsp::Audio::unlock): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::lock_): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::bufferIndex_): New member, from Audio_out
 | 
						|
	and Audio_in.
 | 
						|
	(fhandler_dev_dsp::Audio::pHdr_): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::wavehdr_): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::bigwavebuffer_): ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::Qisr2app_): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::setconvert): New method, from old setformat.
 | 
						|
	(fhandler_dev_dsp::Audio::queue::lock): New method.
 | 
						|
	(fhandler_dev_dsp::Audio::queue::unlock): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::queue::dellock): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::queue::isvalid): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::queue::lock_): New member.
 | 
						|
	(fhandler_dev_dsp::Audio::queue::depth1_): Delete.
 | 
						|
	(fhandler_dev_dsp::Audio_out::fork_fixup): New method.
 | 
						|
	(fhandler_dev_dsp::Audio_out::isvalid): New method.
 | 
						|
	(fhandler_dev_dsp::Audio_out::start): Remove arguments.
 | 
						|
	(fhandler_dev_dsp::Audio_out::parsewav): Change arguments and set
 | 
						|
	internal state.
 | 
						|
	(fhandler_dev_dsp::Audio_out::emptyblocks): Delete.
 | 
						|
	(fhandler_dev_dsp::Audio_out::Qapp2app_): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio_out::Qisr2app_): Ditto, move to Audio.
 | 
						|
	(fhandler_dev_dsp::Audio_out::bufferIndex_): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio_out::pHdr_): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio_out::wavehdr_): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio_out::bigwavefuffer_): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio_out::freq_): New member.
 | 
						|
	(fhandler_dev_dsp::Audio_out::bits_): New member.
 | 
						|
	(fhandler_dev_dsp::Audio_out::channels_): New member.
 | 
						|
	(fhandler_dev_dsp::Audio_in::fork_fixup): New method.
 | 
						|
	(fhandler_dev_dsp::Audio_in::isvalid): New method.
 | 
						|
	(fhandler_dev_dsp::Audio_in::Qapp2app_): Delete.
 | 
						|
	(fhandler_dev_dsp::Audio_in::Qisr2app_): Ditto, move to Audio.
 | 
						|
	(fhandler_dev_dsp::Audio_in::bufferIndex_): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio_in::pHdr_): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio_in::wavehdr_): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio_in::bigwavefuffer_): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::queue::queue): Simplify.
 | 
						|
	(fhandler_dev_dsp::Audio::queue::send): Use lock.
 | 
						|
	(fhandler_dev_dsp::Audio::queue::query): Do not use depth1_.
 | 
						|
	(fhandler_dev_dsp::Audio::queue::recv): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio::Audio): Adapt to new class members.
 | 
						|
	(fhandler_dev_dsp::Audio::~Audio): Ditto
 | 
						|
	(fhandler_dev_dsp::Audio_out::start): Reorganize.
 | 
						|
	(fhandler_dev_dsp::Audio_out::stop): Simplify.
 | 
						|
	(fhandler_dev_dsp::Audio_out::init): Reset the queue and clear flag.
 | 
						|
	(fhandler_dev_dsp::Audio_out::write): Reorganize to allocate audio_out.
 | 
						|
	(fhandler_dev_dsp::Audio_out::buf_info): Use appropriate block size.
 | 
						|
	(fhandler_dev_dsp::Audio_out::callback_sampledone): Do not use lock.
 | 
						|
	(fhandler_dev_dsp::Audio_out::waitforspace): Simplify.
 | 
						|
	(fhandler_dev_dsp::Audio_out::waitforallsent):Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio_out::sendcurrent): Reorganize.
 | 
						|
	Clear flag before requeuing.
 | 
						|
	(fhandler_dev_dsp::Audio_out::parsewav):
 | 
						|
	(fhandler_dev_dsp::Audio_in::start): Reorganize.
 | 
						|
	(fhandler_dev_dsp::Audio_in::stop): Simplify.
 | 
						|
	(fhandler_dev_dsp::Audio_in::queueblock): Ditto.
 | 
						|
	Requeue header in case of error.
 | 
						|
	(fhandler_dev_dsp::Audio_in::init): Reset the queue and clear flag.
 | 
						|
	(fhandler_dev_dsp::Audio_in::waitfordata): Simplify.
 | 
						|
	Do not UnprepareHeader if the flag is zero.
 | 
						|
	(fhandler_dev_dsp::Audio_in::buf_info): Ditto.
 | 
						|
	(fhandler_dev_dsp::Audio_in::callback_blockfull): Do not use lock.
 | 
						|
	(fhandler_dev_dsp::open_count): Delete.
 | 
						|
	(fhandler_dev_dsp::open): Only check existence, do not allocate
 | 
						|
	anything. Set flags appropriately. Create archetype.
 | 
						|
	(fhandler_dev_dsp::write): Call archetype as needed. Create audio_out.
 | 
						|
	(fhandler_dev_dsp::read): Call archetype as needed. Create audio_in.
 | 
						|
	(fhandler_dev_dsp::close): Call archetype as needed.
 | 
						|
	Call close_audio_in and close_audio_out.
 | 
						|
	(fhandler_dev_dsp::close_audio_in): New function.
 | 
						|
	(fhandler_dev_dsp::close_audio_out): New function.
 | 
						|
	(fhandler_dev_dsp::dup): Use archetypes.
 | 
						|
	(fhandler_dev_dsp::ioctl): Call archetype as needed. Reorganize for
 | 
						|
	new structures.
 | 
						|
	(fhandler_dev_dsp::fixup_after_fork): Call archetype as needed.
 | 
						|
	(fhandler_dev_dsp::fixup_after_exec): Call archetype as needed.
 | 
						|
	Clear audio_in and audio_out.
 | 
						|
 | 
						|
2004-08-14  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::open_9x): Set file attributes
 | 
						|
	for new files.
 | 
						|
 | 
						|
2004-08-11  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* net.cc (cygwin_gethostbyname): Show failing host name on error.
 | 
						|
 | 
						|
2004-08-10  Christopher Faylor  <cgf@redhat.com>
 | 
						|
 | 
						|
	* select.cc (select_stuff::wait): Correctly check for w4 array bounds.
 | 
						|
 | 
						|
2004-08-03  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* errno.cc (errmap): Add ERROR_TOO_MANY_LINKS -> EMLINK mapping.
 | 
						|
	* syscalls.cc (link): Only copy files if FS doesn't support hard links.
 | 
						|
 | 
						|
2004-07-26  Christopher January  <chris@atomice.net>
 | 
						|
 | 
						|
	* fhandler_proc.cc (format_proc_cpuinfo): Remove Intel-specific flags
 | 
						|
	from /proc/cpuinfo on non-Intel processors. Added new AMD-specific
 | 
						|
	flags. Changed Intel flag names to match Linux.
 | 
						|
 | 
						|
2004-07-24  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* dcrt0.cc (dll_crt0_0): Use proper boolean arguments.
 | 
						|
	* pinfo.cc (pinfo::init): Don't consider MapViewOfFileEx error to be
 | 
						|
	fatal if exiting.
 | 
						|
	* pinfo.h (pinfo::init): Eliminate default argument and supply the
 | 
						|
	argument in the one case that needed it.
 | 
						|
 | 
						|
2004-07-24  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
	    Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* autoload.cc (GetNativeSystemInfo): Add.
 | 
						|
	(IsWow64Process): Add.
 | 
						|
	* init.cc (respawn_wow64_process): New function.
 | 
						|
	(dll_entry): If process has been started from a 64 bit
 | 
						|
	process, call respawn_wow64_process.
 | 
						|
	* uname.cc (uname): On 64 bit systems, use GetNativeSystemInfo.
 | 
						|
	Show actual CPU type.
 | 
						|
 | 
						|
2004-07-23  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* dtable.cc (dtable::get_debugger_info): Make stderr r/w according
 | 
						|
	to SUSv3.
 | 
						|
 | 
						|
2004-07-22  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_tty.cc (fhandler_tty_slave::open): Use requested flag
 | 
						|
	values also when copying fhandler from archetype.
 | 
						|
 | 
						|
2004-07-22  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.cc (pinfo::init): Print handle in hex when MapViewOfFile fails.
 | 
						|
 | 
						|
2004-07-20  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* shm.cc: Whitespace fixes.
 | 
						|
 | 
						|
2004-07-20  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* Makefile.in (clean): Remove cygwin.def since it is autogenerated.
 | 
						|
 | 
						|
2004-07-19  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::init): Fix non-ISO
 | 
						|
	expression.
 | 
						|
	* fhandler_floppy.cc (fhandler_dev_floppy::open): Remove unused
 | 
						|
	variable.
 | 
						|
	* fhandler_proc.cc (format_proc_meminfo): Fix compiler warning.
 | 
						|
 | 
						|
2004-07-16  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.cc (pinfo::init): Guard against MapViewOfFileEx failure.
 | 
						|
 | 
						|
2004-07-15  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* mmap.cc (mmap_record::alloc_page_map): Mark pages as allocated even
 | 
						|
	on Windows 9x, FWIW.
 | 
						|
 | 
						|
2004-07-15  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* mmap.cc (mprotect): When MAP_WRITE protection is requested, use
 | 
						|
	READWRITE or WRITECOPY protection, whatever has been used when the
 | 
						|
	page has been allocated initially.
 | 
						|
 | 
						|
2004-07-15  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (class fhandler_dev_raw): Remove is_writing flag.
 | 
						|
	Remove declaration of writebuf.
 | 
						|
	(class fhandler_dev_floppy): Remove declaration of close.
 | 
						|
	* fhandler_floppy.cc (fhandler_dev_floppy::close): Delete.
 | 
						|
	(fhandler_dev_floppy::lseek): Remove calls to writebuf.  Set
 | 
						|
	eom_detected to false after successful seek.
 | 
						|
	* fhandler_raw.cc (fhandler_dev_raw::writebuf): Delete.
 | 
						|
	(fhandler_dev_raw::raw_read): Remove calls to writebuf.
 | 
						|
	(fhandler_dev_raw::raw_write): Always invalidate buffer.
 | 
						|
 | 
						|
2004-07-15  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* mmap.cc (class mmap_record): Fix return type of get_offset.
 | 
						|
	(mmap_record::fixup_page_map): Fix off by one error.
 | 
						|
	(list::search_record): Use long as type of "start" argument in both,
 | 
						|
	declaration and definition.  Use long as type for local variable "i".
 | 
						|
 | 
						|
2004-07-14  Dave Korn  <dk@artimi.com>
 | 
						|
 | 
						|
	* fhandler_registry.cc (registry_listing): Correct typo.
 | 
						|
	(fhandler_registry::fill_filebuf): Set size of newly expanded buffer
 | 
						|
	prior to calling RegQueryValueEx.
 | 
						|
 | 
						|
2004-07-14  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_raw.cc (fhandler_dev_raw::raw_write): Remove buffered
 | 
						|
	write entirely.
 | 
						|
 | 
						|
2004-07-07  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* spawn.cc (spawn_guts): Check if script is executable.
 | 
						|
 | 
						|
2004-06-30  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* times.cc (hires_ms::usecs): Don't overreact.
 | 
						|
 | 
						|
2004-06-30  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* times.cc (hires_ms::usecs): Reinit timer when system time overflows.
 | 
						|
 | 
						|
2004-06-27  Christopher Faylor  <me@cgf.cx>
 | 
						|
 | 
						|
	* thread.cc (__cygwin_lock_lock): Don't bother locking when there is
 | 
						|
	only one known thread.
 | 
						|
	(__cygwin_lock_unlock): Ditto for unlocking.
 | 
						|
 | 
						|
2004-06-23  Tomas Ukkonen  <tomas.ukkonen@iki.fi>
 | 
						|
 | 
						|
	* fhandler_proc.cc (format_proc_cpuinfo): Test CPU vendor and print
 | 
						|
	AMD specific 3dnow capabilities.
 | 
						|
 | 
						|
2004-06-23  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* fhandler_socket.cc (fhandler_socket::release): Call
 | 
						|
	WSASetLastError last.
 | 
						|
 | 
						|
2004-06-21  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* autoload.cc (wsock_init): Keep lock while modifying return address.
 | 
						|
 | 
						|
2004-06-17  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::open): Remove 9x specific code.
 | 
						|
 | 
						|
2004-06-17  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::open_9x): Do not check for null name.
 | 
						|
	Move debug_printf to common code line.
 | 
						|
	(fhandler_base::open): Ditto. Initialize upath. Remove second argument
 | 
						|
	of pc.get_nt_native_path.
 | 
						|
	* path.h (path_conv::get_nt_native_path): Remove second argument.
 | 
						|
	* path.cc (path_conv::get_nt_native_path): Ditto. Call str2uni_cat.
 | 
						|
	* security.h (str2buf2uni_cat): Delete declaration.
 | 
						|
	(str2uni_cat): New declaration.
 | 
						|
	* security.cc (str2buf2uni): Get length from sys_mbstowcs call.
 | 
						|
	(str2buf2uni_cat): Delete function.
 | 
						|
	(str2uni_cat): New function.
 | 
						|
	* miscfuncs.cc (sys_mbstowcs): Add debug_printf.
 | 
						|
 | 
						|
2004-06-17  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::open): Substitute FILE_SUPERSEDE with
 | 
						|
	FILE_OVERWRITE_IF.
 | 
						|
 | 
						|
2004-06-09  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* include/cygwin/version.h: REALLY bump dll minor version to 11.
 | 
						|
 | 
						|
2004-06-08  Egor Duda <deo@corpit.ru>
 | 
						|
 | 
						|
	* include/cygwin/ipc.h: Make IPC_INFO visible only for ipc system
 | 
						|
	utilities, to make it consistent with declaration of struct seminfo.
 | 
						|
 | 
						|
2004-06-08  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* path.cc (fchdir): Pass the Posix path to chdir.
 | 
						|
 | 
						|
2004-06-07  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* dtable.cc (dtable::find_fifo): Release lock after fifo found (still
 | 
						|
	racy).
 | 
						|
	* fhandler.h (fhandler_fifo::get_io_handle): New fifo-specific method.
 | 
						|
	* fhandler_fifo.cc (fhandler_fifo::close): Close output_handle only if
 | 
						|
	it is open.
 | 
						|
	(fhandler_fifo::open_not_mine): Reorganize slightly.  Don't call _pinfo
 | 
						|
	methods when the fifo is owned by me or suffer dtable lock_cs deadlock.
 | 
						|
	(fhandler_fifo::open): Call open_not_mine first, otherwise open myself
 | 
						|
	(racy).
 | 
						|
	* pinfo.cc (_pinfo::commune_recv): Duplicate fifo handles here in
 | 
						|
	requesting processes arena to avoid one potential race (of many).
 | 
						|
	(_pinfo::commune_send): Move all PICOM_FIFO code under one case
 | 
						|
	statement.
 | 
						|
 | 
						|
	* thread.cc (pthread::init_mainthread) Use existing hMainProc handle
 | 
						|
	rather than calling GetCurrentProcess.
 | 
						|
 | 
						|
2004-06-04  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* winbase.h (ilockincr): Add more neverending changes from the
 | 
						|
	inexplicable world of gcc asm constraint magic.  Should stop random
 | 
						|
	crashes.
 | 
						|
	(ilockdecr): Ditto.
 | 
						|
 | 
						|
2004-06-03  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* autoload.cc (IsDosDeviceName_U): Define.
 | 
						|
	* ntdll.h (IsDosDeviceName_U): Declare.
 | 
						|
	* fhandler.cc (fhandler_base::open): Check to see if win32_name is a
 | 
						|
	dos device and just call the 9x open if so.
 | 
						|
 | 
						|
2004-06-03  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* winbase.h (ilockincr): More changes from the inexplicable world of
 | 
						|
	gcc asm magic.
 | 
						|
	(ilockdecr): Ditto.
 | 
						|
 | 
						|
2004-06-03  Christopher Faylor  <me@cgf.cx>
 | 
						|
 | 
						|
	* winbase.h (ilockincr): YA correction to ensure correct operation with
 | 
						|
	no optimization.
 | 
						|
	(ilockdecr): Ditto.
 | 
						|
 | 
						|
2004-06-03  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygserver.h (CYGWIN_SERVER_VERSION_API): Bump.
 | 
						|
 | 
						|
2004-06-03  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* include/cygwin/ipc.h (IPC_KEY_IS_SHMID): Redefine to a more sensible
 | 
						|
	value.
 | 
						|
 | 
						|
2004-06-02  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* cygheap.cc (cmalloc): Add debugging hook.
 | 
						|
 | 
						|
2004-06-02  Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
 | 
						|
 | 
						|
	* spawn.cc (find_exec): Use has_slash to determine if path has a slash
 | 
						|
	rather than calculating this twice.
 | 
						|
 | 
						|
2004-05-30  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* path.cc (mount_info::add_item): Make sure native path has drive
 | 
						|
	or UNC form. Call normalize_xxx_path instead of [back]slashify.
 | 
						|
	Remove test for double slashes. Reorganize to always debug_print.
 | 
						|
 | 
						|
2004-05-28  Pierre Humblet  <Pierre.Humblet@ieee.org>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Only try to open
 | 
						|
	the file if it uses an acl.
 | 
						|
 | 
						|
2004-05-28  Pierre Humblet  <Pierre.Humblet@ieee.org>
 | 
						|
 | 
						|
	* path.cc (chdir): Always use the normalized_path as posix_cwd, except
 | 
						|
	if it starts with a drive.
 | 
						|
 | 
						|
2004-05-25  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* winbase.h: Semi-revert previous patch as it caused strange behavior.
 | 
						|
	Use syntax similar to that recommended in mingw-dvlpr.
 | 
						|
 | 
						|
2004-05-25  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* include/cygwin/version.h: Bump DLL minor number to 11.
 | 
						|
 | 
						|
2004-05-25  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* winbase.h: Add proper attributions for memory operands throughout.
 | 
						|
 | 
						|
2004-05-24  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* include/cygwin/version.h: Bump api minor version number.
 | 
						|
 | 
						|
2004-05-24  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* cygwin.din: Export atoll.
 | 
						|
 | 
						|
2004-05-20  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* tty.cc (tty_list::allocate_tty): Leave tty_mutex armed on successful
 | 
						|
	return from !with_console
 | 
						|
	* fhandler_tty.cc (fhandler_pty_master::open): Release tty_mutex here
 | 
						|
	after all initialization is done.
 | 
						|
 | 
						|
2004-05-17  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* grp.cc (getgrgid_r): Replace struct group by struct __group32 in
 | 
						|
	argument definition.
 | 
						|
	(getgrnam_r): Ditto.
 | 
						|
 | 
						|
2004-05-17  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygwin.din: Add symbols flockfile, ftrylockfile, funlockfile,
 | 
						|
	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.
 | 
						|
 | 
						|
2004-05-17  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* tty.cc (tty_list::init): Move hmaster initialization earlier to
 | 
						|
	prevent compilation error.
 | 
						|
 | 
						|
2004-05-17  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	Change the name "title_mutex" to "tty_mutex" throughout.
 | 
						|
	* tty.h (tty_list::allocate_tty): Turn argument into a boolean.
 | 
						|
	* tty.cc (tty_list::init): Protect entire allocation operation with
 | 
						|
	tty_mutex (formerly title_mutex) to protect against allocation races.
 | 
						|
 | 
						|
2004-05-16  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_socket.cc (fhandler_socket::recvfrom): Use original flags
 | 
						|
	value in each WSARecvFrom call.
 | 
						|
	(fhandler_socket::recvmsg): Ditto.  Reformat slightly.
 | 
						|
 | 
						|
2004-05-15  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* cygthread.cc (cygthread::is): Eliminate.
 | 
						|
	* cygthread.h (cygthread::is): Eliminate declaratin.
 | 
						|
	* fhandler_console.cc (fhandler_console::read): Only wait for
 | 
						|
	signal_arrived in the main thread.
 | 
						|
	* fhandler_socket.cc: Include new "wininfo.h".
 | 
						|
	(fhandler_socket::ioctl): Use 'winmsg' rather than 'gethwnd()'.
 | 
						|
	* sync.cc (muto::grab): Define new function.
 | 
						|
	(muto::acquire): Use tls pointer rather than tid.
 | 
						|
	(muto::acquired): Ditto.
 | 
						|
	(muto::reset): Delete.
 | 
						|
	(muto::release): Ditto.  Also implement "close on last release".
 | 
						|
	* sync.h (muto::tid): Delete.
 | 
						|
	(muto::tls): New field.
 | 
						|
	(muto::ismine): Delete.
 | 
						|
	(muto::owner): Delete.
 | 
						|
	(muto::unstable): Delete.
 | 
						|
	(muto::reset): Delete.
 | 
						|
	(muto::upforgrabs): New method.
 | 
						|
	(muto::grab): Ditto.
 | 
						|
	(new_muto_name): New define.
 | 
						|
	* wininfo.h: New file.
 | 
						|
	(wininfo): New class.
 | 
						|
	* window.cc: Rework throughout to use winfo class for controlling
 | 
						|
	invisible window operation.
 | 
						|
	(gethwnd): Delete definition.
 | 
						|
	* winsup.h (gethwnd): Delete declaration.
 | 
						|
 | 
						|
2004-05-15  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* cygheap.h: Remove some parameter names from declarations throughout.
 | 
						|
	(cygheap::set): Reflect changes in declaration for arguments and return
 | 
						|
	value from previous checkin.
 | 
						|
 | 
						|
2004-05-15  Pierre Humblet  <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* cygheap.h (cwdstuff::set): Modify return value and arguments.
 | 
						|
	* path.cc (chdir): Specify PC_POSIX.  Do not call SetCurrentDirectory.
 | 
						|
	Set posix_cwd in a way that does not break find.exe.  Change call to
 | 
						|
	cwd.set.
 | 
						|
	(cwdstuff::get_initial): Do not call GetCurrentDirectory here.
 | 
						|
	(cwdstuff::set): Call SetCurrentDirectory and GetCurrentDirectory as
 | 
						|
	needed.
 | 
						|
 | 
						|
2004-05-12  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* path.cc (path_conv::check): Don't bail out with error if path is "//".
 | 
						|
 | 
						|
2004-05-12  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygheap.h (struct init_cygheap): Add mt_h member.
 | 
						|
	* fhandler_tape.cc (mt_h): Drop in favor of cygheap based handle.
 | 
						|
	(mtinfo_init): Use cygheap->mt_h handle.  Protect it.
 | 
						|
 | 
						|
2004-05-12  Pierre Humblet  <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* tty.h: Remove the %d or %x from all cygtty strings.
 | 
						|
	(tty::open_output_mutex): Only declare.
 | 
						|
	(tty::open_input_mutex): Ditto.
 | 
						|
	(tty::open_mutex): New definition.
 | 
						|
	* fhandler_tty.cc (fhandler_tty_slave::open): Declare buf with
 | 
						|
	size CYG_MAX_PATH and replace __small_printf calls by shared_name.
 | 
						|
	* tty.cc (tty::create_inuse): Ditto.
 | 
						|
	(tty::get_event): Ditto.
 | 
						|
	(tty::common_init): Ditto.
 | 
						|
	(tty::open_output_mutex): New method definition.
 | 
						|
	(tty::open_input_mutex): Ditto.
 | 
						|
	(tty::open_mutex): New method.
 | 
						|
 | 
						|
2004-05-11  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::open): Set file attributes to correct
 | 
						|
	value when creating files.
 | 
						|
	* path.h (class path_conv): Add write accessor for file_attributes.
 | 
						|
 | 
						|
2004-05-10  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (class fhandler_socket): Add "owner" status flag.
 | 
						|
	* fhandler_socket.cc (wait): Take flag parameter to take FD_OOB into
 | 
						|
	account.  Don't wait infinitely.
 | 
						|
	(fhandler_socket::recvfrom): Also wait for FD_OOB if socket owner.
 | 
						|
	(fhandler_socket::recvmsg): Ditto.
 | 
						|
	(fhandler_socket::sendto): Ditto.
 | 
						|
	(fhandler_socket::sendmsg): Ditto.
 | 
						|
	(fhandler_socket::fcntl): Set owner status flag if F_SETOWN with own
 | 
						|
	pid is called.
 | 
						|
 | 
						|
2004-05-09  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* environ.cc (build_env): Only try to construct required-but-missing
 | 
						|
	variables while issetuid.
 | 
						|
 | 
						|
2004-05-08  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
	    Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* syscalls.cc: Include environ.h.
 | 
						|
	(chroot): Set errno in case of path error.  Call getwinenv.
 | 
						|
	* environ.cc: Remove the NO_COPY attribute of conv_envvars.
 | 
						|
 | 
						|
2004-05-07  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_mem.cc (fhandler_dev_mem::fhandler_dev_mem): Move
 | 
						|
	initialization of "mem_size" from here...
 | 
						|
	(fhandler_dev_mem::open): ...to here.  Fix typo in FH_PORT case.
 | 
						|
 | 
						|
2004-05-07  Gerd Spalink  <Gerd.Spalink@t-online.de>
 | 
						|
 | 
						|
	* fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::stop): Move delete of
 | 
						|
	bigwavebuffer_ so that it is always cleaned, also in child processes.
 | 
						|
	(fhandler_dev_dsp::Audio_in::stop): Ditto.
 | 
						|
	(fhandler_dev_dsp::close): Stop audio play immediately in case of
 | 
						|
	abnormal exit.
 | 
						|
 | 
						|
2004-05-07  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	Revert code reversion from 2004-04-03.  So, revert to async I/O again.
 | 
						|
	* fhandler.h (status): Add "closed" flag.
 | 
						|
	(prepare): New method declaration.
 | 
						|
	(wait): Ditto.
 | 
						|
	(release): Ditto.
 | 
						|
	* fhandler_socket.cc: Don't include wsock_event.h.
 | 
						|
	(fhandler_socket::prepare): New method, moved from wsock_event.
 | 
						|
	(fhandler_socket::wait): Ditto.
 | 
						|
	(fhandler_socket::release): New method.
 | 
						|
	(fhandler_socket::recvfrom): Simplify loop.
 | 
						|
	(fhandler_socket::recvmsg): Ditto.
 | 
						|
	(fhandler_socket::sendto): Ditto.
 | 
						|
	(fhandler_socket::sendmsg): Ditto.
 | 
						|
	* net.cc: Don't include wsock_event.h.
 | 
						|
	(wsock_event::prepare): Remove.
 | 
						|
	(wsock_event::wait): Ditto.
 | 
						|
	* wsock_event.h: Remove.
 | 
						|
 | 
						|
2004-05-06  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* thread.cc (pthread::create): Move postcreate call to avoid a
 | 
						|
	potential race.
 | 
						|
	(pthread::cancelable_wait): Don't allow signal interrupt unless main
 | 
						|
	thread.
 | 
						|
 | 
						|
2004-05-07  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
	    Christopher Faylor <cgf@timesys.com>
 | 
						|
 | 
						|
	* path.cc (mount_info::conv_to_posix_path): Return proper status when
 | 
						|
	chrooted.
 | 
						|
 | 
						|
2004-05-06  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* path.cc (path_conv::check): Strip trailing dots and spaces and
 | 
						|
	return error if the final component had only dots and spaces.
 | 
						|
	(normalize_posix_path): Revert 2004-04-30.
 | 
						|
	(chdir): Do not check for trailing spaces. Do not set native_dir
 | 
						|
	to c:\ for virtual devices. Pass only native_dir to cwd.set.
 | 
						|
	(cwdstuff::set): Assume posix_cwd is already normalized.
 | 
						|
 | 
						|
2004-05-04  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* path.cc (normalize_win32_path): Detect components with only dots.
 | 
						|
	Remove a final .  if it follows '\\'.
 | 
						|
	(mount_info::conv_to_win32_path): Only backslashify the path when no
 | 
						|
	mount is found.
 | 
						|
	(chdir): Do not look for components with only dots.
 | 
						|
 | 
						|
2004-05-04  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
	    Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* path.cc (is_unc_share): Remove redundant tests.
 | 
						|
 | 
						|
2004-05-04  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* crt0.o (mainCRTStartup): 16 byte align stack for main function.
 | 
						|
 | 
						|
2004-05-04  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* path.cc (check_sysfile): Don't scan string twice.
 | 
						|
 | 
						|
2004-05-03  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* dir.cc (writable_directory): Remove.
 | 
						|
	(mkdir): Remove call to writable_directory.
 | 
						|
	* syscalls.cc (unlink): Ditto.
 | 
						|
	(rename): Ditto.
 | 
						|
	* winsup.h (writable_directory): Remove declaration.
 | 
						|
 | 
						|
2004-04-30  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::open): Call path_conv::get_nt_native_path
 | 
						|
	for evaluating NT path.
 | 
						|
	* path.cc (normalize_posix_path): Remove trailing dots and spaces.
 | 
						|
	(path_conv::get_nt_native_path): New function.
 | 
						|
	* path.h (class path_conv): Declare get_nt_native_path method.
 | 
						|
 | 
						|
2004-04-30  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::open): Fix NT native path evaluation
 | 
						|
	to allow opening serial ports.
 | 
						|
 | 
						|
2004-04-30  DJ Delorie  <dj@redhat.com>
 | 
						|
 | 
						|
	* init.cc (threadfunc_fe): Hack to make thread stacks always 16
 | 
						|
	byte aligned.
 | 
						|
 | 
						|
2004-04-21  Yitzchak Scott-Thoennes  <sthoenna@efn.org>
 | 
						|
 | 
						|
	* syscalls.cc (lseek64): Fix debug_printf format string.
 | 
						|
	(truncate64): Ditto.
 | 
						|
 | 
						|
2004-04-21  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::lseek): Force res to -1 on error.
 | 
						|
 | 
						|
2004-04-20  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* path.cc (is_unc_share): Rename from slash_unc_prefix_p throughout.
 | 
						|
 | 
						|
2004-04-20  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* path.cc (normalize_posix_path): Process all Posix paths and map three
 | 
						|
	or more initial slashes to a single one.  Simplify processing following
 | 
						|
	two initial slashes.
 | 
						|
	(normalize_win32_path): Make last argument non-optional and do not
 | 
						|
	check for NULL value.
 | 
						|
 | 
						|
2004-04-20  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_base::open_fs): Change
 | 
						|
	set_file_attribute call to indicate that NT security isn't used.
 | 
						|
	(fhandler_disk_file::fchmod): Rearrange to isolate 9x related
 | 
						|
	statements.
 | 
						|
	Do not set FILE_ATTRIBUTE_SYSTEM.
 | 
						|
	(fhandler_disk_file::fchown): Check noop case first.
 | 
						|
	* fhandler.cc (fhandler_base::open9x): Remove ntsec related statements.
 | 
						|
	(fhandler_base::set_name): Do not set namehash.
 | 
						|
	* fhandler.h (fhandler_base::get_namehash): Compute and set namehash if
 | 
						|
	needed.
 | 
						|
	* syscalls.cc (access): Verify that fh is not NULL. Do not set PC_FULL.
 | 
						|
	(chmod): Ditto.
 | 
						|
	(chown_worker): Ditto.
 | 
						|
	(stat_worker): Ditto. Verify if the path exists.
 | 
						|
 | 
						|
2004-04-20  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::open): Remove special DEV_FLOPPY_MAJOR
 | 
						|
	treatment.
 | 
						|
	* fhandler_raw.cc (fhandler_dev_raw::open): Simplify write-only case.
 | 
						|
	* fhandler_tape.cc (fhandler_dev_tape::raw_write): Add accidentally
 | 
						|
	dropped condition.
 | 
						|
 | 
						|
2004-04-20  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::open): Add FILE_READ_ATTRIBUTES when
 | 
						|
	only GENERIC_WRITE access is requested.
 | 
						|
 | 
						|
2004-04-19  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* include/cygwin/mtio.h (GMT_ASYNC): New define.
 | 
						|
	(MT_ST_ASYNC_WRITES): Remove "Not supported" comment.
 | 
						|
 | 
						|
2004-04-19  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* errno.cc (errmap): Handle ERROR_IO_PENDING.
 | 
						|
	* fhandler.cc (fhandler_base::open): Make tape I/O asynchronous.
 | 
						|
	* fhandler.h (class fhandler_dev_tape): Add mt_evt member.
 | 
						|
	* fhandler_tape.cc (mtinfo_drive::initialize): Initialize async_writes.
 | 
						|
	(mtinfo_drive::close): Handle async writes.
 | 
						|
	(mtinfo_drive::read): Add mt_evt parameter.  Use overlapped I/O.
 | 
						|
	(mtinfo_drive::async_wait): New function.
 | 
						|
	(mtinfo_drive::write): Add mt_evt parameter.  Use overlapped I/O.
 | 
						|
	Handle async writes.
 | 
						|
	(mtinfo_drive::_set_pos): Handle async writes.
 | 
						|
	(mtinfo_drive::set_partition): Ditto.
 | 
						|
	(mtinfo_drive::prepare): Ditto.
 | 
						|
	(mtinfo_drive::get_status): Drop useless "else".  Handle async_writes
 | 
						|
	flag.
 | 
						|
	(mtinfo_drive::set_options): Handle async_writes flags.
 | 
						|
	(fhandler_dev_tape::close): Close mt_evt handle.
 | 
						|
	(fhandler_dev_tape::raw_read): Create mt_evt handle and use in call
 | 
						|
	to mtinfo_drive::read.
 | 
						|
	(fhandler_dev_tape::raw_write): Create mt_evt handle and use in call
 | 
						|
	to mtinfo_drive::write.
 | 
						|
	* mtinfo.h (MTINFO_VERSION): Bump.
 | 
						|
	(enum dirty_state): Add async_write_pending state.
 | 
						|
	(class mtinfo_drive): Add OVERLAPPED struct "ov".  Add async_writes
 | 
						|
	flag.
 | 
						|
	(mtinfo_drive::async_wait): Add declaration.
 | 
						|
	(mtinfo_drive::read): Add mt_evt parameter.
 | 
						|
	(mtinfo_drive::write): Ditto.
 | 
						|
 | 
						|
	* registry.cc (load_registry_hive): Call enable_restore_privilege
 | 
						|
	instead of set_process_privilege.
 | 
						|
 | 
						|
2004-04-19  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_tape.cc (mtinfo_drive::_set_pos): Take additional dont_wait
 | 
						|
	parameter.  Use in call to SetTapePosition.
 | 
						|
	(mtinfo_drive::set_pos): Accommodate _set_pos calls to above change.
 | 
						|
	(mtinfo_drive::set_partition): Ditto.
 | 
						|
	* mtinfo.h (mtinfo_drive::_set_pos): Change declaration accordingly.
 | 
						|
 | 
						|
2004-04-16  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* autoload.cc (NtCreateFile): Add.
 | 
						|
	* dir.cc (mkdir): Change set_file_attribute call to indicate that
 | 
						|
	NT security isn't used.
 | 
						|
	* fhandler.cc (fhandler_base::open_9x): New method, created from
 | 
						|
	fhandler_base::open.
 | 
						|
	(fhandler_base::open): Rearrange to use NtCreateFile instead of
 | 
						|
	CreateFile.
 | 
						|
	* fhandler.h (enum query_state): Redefine query_null_access to
 | 
						|
	query_stat_control.  query_null_access isn't allowed in NtCreateFile.
 | 
						|
	(fhandler_base::open_9x): Declare.
 | 
						|
	* fhandler_disk_file.cc (fhandler_base::fstat_fs): Use
 | 
						|
	query_stat_control first, query_read_control if that fails.
 | 
						|
	(fhandler_disk_file::fchmod): Call enable_restore_privilege before
 | 
						|
	trying to open for query_write_control.  Don't fall back to
 | 
						|
	opening for query_read_control.
 | 
						|
	(fhandler_disk_file::fchown): Ditto.
 | 
						|
	(fhandler_disk_file::facl):  Only request restore privilege and query
 | 
						|
	access necessary for given cmd.
 | 
						|
	* fhandler_raw.cc (fhandler_dev_raw::open): Call fhandler_base::open
 | 
						|
	instead of opening device here.
 | 
						|
	* ntdll.h (NtCreateFile): Declare.
 | 
						|
	* path.cc (symlink_worker): Change set_file_attribute call to indicate
 | 
						|
	that NT security isn't used.
 | 
						|
	* sec_acl.cc (getacl): Fix bracketing.
 | 
						|
	* sec_helper.cc (enable_restore_privilege): New function.
 | 
						|
	* security.cc (str2buf2uni_cat): New function.
 | 
						|
	(write_sd): Don't request restore permission here.
 | 
						|
	* security.h (set_process_privileges): Drop stale declaration.
 | 
						|
	(str2buf2uni): Declare.
 | 
						|
	(str2buf2uni_cat): Declare.
 | 
						|
	(enable_restore_privilege): Declare.
 | 
						|
	* syscalls.cc (fchown32): Return immediate success on 9x.
 | 
						|
 | 
						|
2004-04-15  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* autoload.cc (dll_chain1): Rename to dll_chain.  Remove old dll_chain
 | 
						|
	code.
 | 
						|
	(wsock_init): Avoid unneeded winsock_active tests.
 | 
						|
	* winsup.h (winsock_active): Delete.
 | 
						|
 | 
						|
2004-04-15  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Try opening
 | 
						|
	in query_read mode if query_write fails.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::fchown): Ditto.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::facl): Ditto.
 | 
						|
 | 
						|
2004-04-14  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* ntdll.h: Fix copyright date.
 | 
						|
	* sec_acl.cc (acl_worker): Delete allocated fhandler.
 | 
						|
	* syscalls.cc (chown_worker): Ditto.
 | 
						|
	(chmod): Ditto.
 | 
						|
	(stat_worker): Use get_namehash instead of hash_path_name.
 | 
						|
 | 
						|
2004-04-14  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* sec_acl.cc (getacl): Avoid compiler warning.
 | 
						|
	* security.cc (write_sd): Ditto.  Fix error handling.
 | 
						|
 | 
						|
2004-04-14  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* syscalls.cc (fstat64): Use get_namehash instead of hash_path_name.
 | 
						|
 | 
						|
2004-04-14  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::open): Simplify access evaluation
 | 
						|
	expression.
 | 
						|
	(fhandler_base::facl): New method.
 | 
						|
	* fhandler.h: Declare facl method in fhandler_base,
 | 
						|
	fhandler_disk_file and fhandler_virtual.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::facl): New method.
 | 
						|
	* fhandler_virtual.cc (fhandler_virtual::facl): New method.
 | 
						|
	* sec_acl.cc: Remove forward declaration for aclsort32 and acl32.
 | 
						|
	(setacl): Remove static.  Add and use handle parameter.
 | 
						|
	(getacl): Ditto.
 | 
						|
	(acl_worker): Reorganize to call fhandler's facl method eventually.
 | 
						|
	(facl32): Ditto.
 | 
						|
	* security.cc (get_nt_object_security): Remove static.
 | 
						|
	* security.h: Add extern declarations for get_nt_object_security,
 | 
						|
	aclsort32, acl32, getacl and setacl.
 | 
						|
 | 
						|
2004-04-14  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::open): Accommodate query_write_control
 | 
						|
	query_state.
 | 
						|
	(fhandler_base::fchown): New method.
 | 
						|
	* fhandler.h: Declare fchown method in fhandler_base,
 | 
						|
	fhandler_disk_file and fhandler_virtual.
 | 
						|
	(enum query_state): Add query_write_control.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Set query_state
 | 
						|
	to query_write_control.  Only remove FILE_ATTRIBUTE_READONLY if not
 | 
						|
	setting security descriptor.
 | 
						|
	(fhandler_disk_file::fchown): New method.
 | 
						|
	* fhandler_virtual.cc (fhandler_virtual::fchown): New method.
 | 
						|
	* sec_acl.cc (setacl): Call write_sd with additional handle attribute.
 | 
						|
	* security.cc (write_sd): Take handle argument.  Only request owner
 | 
						|
	if getting SE_RESTORE_NAME privilege failed.  Only open file if
 | 
						|
	NtSetSecurityObject failed or handle is NULL.
 | 
						|
	(set_nt_attribute): Call write_sd with additional handle attribute.
 | 
						|
	* security.h (write_sd): Declare with additional handle argument.
 | 
						|
	* syscalls.cc (chown_worker): Reorganize to call fhandler's fchown
 | 
						|
	method eventually.
 | 
						|
	(fchown): Ditto.
 | 
						|
 | 
						|
2004-04-14  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* autoload.cc (NtSetSecurityObject): Add.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Only request
 | 
						|
	READ_CONTROL rights when opening the file.
 | 
						|
	* ntdll.h (NtSetSecurityObject): Add declaration.
 | 
						|
	* security.cc (write_sd): Call NtSetSecurityObject instead of
 | 
						|
	BackupWrite.
 | 
						|
	(get_nt_object_security): Don't free security descriptor here.
 | 
						|
 | 
						|
2004-04-14  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* syscalls.cc (ttyname): Use buffer of length TTY_NAME_MAX + 1.
 | 
						|
	* sysconf.cc (sysconf): Handle _SC_TTY_NAME_MAX request.
 | 
						|
	* include/limits.h: Define TTY_NAME_MAX and _POSIX_TTY_NAME_MAX.
 | 
						|
 | 
						|
2004-04-14  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygwin.din: Export rand_r and ttyname_r.
 | 
						|
	* syscalls.cc (ttyname_r): New function.
 | 
						|
	(ttyname): Move functionality to ttyname_r.  Call it from here.
 | 
						|
	* include/cygwin/version.h: Bump API minor number.
 | 
						|
 | 
						|
2004-04-14  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* path.h (path_conv::set_symlink): Add argument.
 | 
						|
	(path_conv::get_symlink_length): New method.
 | 
						|
	(path_conv::symlink_length): New member.
 | 
						|
	* path.cc (path_conv::check): Pass symlen to set_symlink.
 | 
						|
	* fhandler_disk_file.cc (fhandler_base::fstat_helper): For symlinks
 | 
						|
	set st_size from get_symlink_length.
 | 
						|
 | 
						|
2004-04-13  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* security.cc (set_nt_attribute): Only call get_nt_object_security
 | 
						|
	if handle is NULL.
 | 
						|
 | 
						|
2004-04-13  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* dir.cc (mkdir): Call set_file_attribute with additional handle
 | 
						|
	argument.
 | 
						|
	* fhandler.cc (fhandler_base::fchmod): New method.
 | 
						|
	* fhandler.h: Declare fchmod method in fhandler_base,
 | 
						|
	fhandler_disk_file and fhandler_virtual.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): New method.
 | 
						|
	(fhandler_base::open_fs): Call set_file_attribute with additional
 | 
						|
	handle argument.
 | 
						|
	* fhandler_virtual.cc (fhandler_virtual::fchmod): New method.
 | 
						|
	* path.cc (symlink_worker): Call set_file_attribute with additional
 | 
						|
	handle argument.
 | 
						|
	* security.cc (get_nt_object_security): New function.
 | 
						|
	(get_nt_object_attribute): Call get_nt_object_security.
 | 
						|
	(set_nt_attribute): Add handle argument.  Call get_nt_object_security
 | 
						|
	first, read_sd only if that fails.
 | 
						|
	(set_file_attribute): Add handle argument.
 | 
						|
	* security.h (set_file_attribute): Declare with additional handle
 | 
						|
	argument.
 | 
						|
	* syscalls.cc (stat_suffixes): Move to beginning of file.
 | 
						|
	(chown_worker): Call set_file_attribute with additional handle argument.
 | 
						|
	(chmod): Reorganize to call fhandler's fchmod method eventually.
 | 
						|
	(fchmod): Ditto.
 | 
						|
 | 
						|
2004-04-13  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* autoload.cc (NtQuerySecurityObject): Add.
 | 
						|
	* ntdll.h (STATUS_BUFFER_TOO_SMALL): Add definition.
 | 
						|
	(NtQuerySecurityObject): Add declaration.
 | 
						|
	* security.cc (get_nt_object_attribute): Always use
 | 
						|
	NtQuerySecurityObject to retrieve security descriptor.
 | 
						|
 | 
						|
2004-04-13  Gerd Spalink  <Gerd.Spalink@t-online.de>
 | 
						|
 | 
						|
	* fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::stop): Add optional
 | 
						|
	boolean argument so that playing can be stopped without playing
 | 
						|
	pending buffers.
 | 
						|
	(fhandler_dev_dsp::ioctl): Stop playback immediately for
 | 
						|
	SNDCTL_DSP_RESET.  Do not reset audio parameters in this case.
 | 
						|
	Add support for ioctl SNDCTL_DSP_GETISPACE.
 | 
						|
	(fhandler_dev_dsp::Audio_out::emptyblocks): Now returns the number of
 | 
						|
	completely empty blocks.
 | 
						|
	(fhandler_dev_dsp::Audio_out::buf_info): p->fragments is now the number
 | 
						|
	of completely empty blocks. This conforms with the OSS specification.
 | 
						|
	(fhandler_dev_dsp::Audio_out::parsewav): Ignore wave headers that are
 | 
						|
	not aligned on four byte boundary.
 | 
						|
	(fhandler_dev_dsp::Audio_in::buf_info): New, needed for
 | 
						|
	SNDCTL_DSP_GETISPACE.
 | 
						|
 | 
						|
2004-04-13  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* winsup.h (IMPLEMENT_STATUS_FLAG): New macro to define status flag
 | 
						|
	accessor methods unambiguously.
 | 
						|
	* fhandler.h: Use IMPLEMENT_STATUS_FLAG throughout where possible.
 | 
						|
	* fhandler_termios.cc (fhandler_termios::tcinit): Call corrected
 | 
						|
	accessor for initialized status flag.
 | 
						|
	* mtinfo.h (class mtinfo_drive): Use IMPLEMENT_STATUS_FLAG throughout.
 | 
						|
	* path.cc (fs_info::update): Remove duplicate call to flags().
 | 
						|
	* path.h (struct fs_info): Use IMPLEMENT_STATUS_FLAG where possible.
 | 
						|
	(path_conv::is_auto_device): Fix spacing.
 | 
						|
	* tty.h (class tty_min): Use IMPLEMENT_STATUS_FLAG throughout.
 | 
						|
 | 
						|
2004-04-12  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* thread.cc (pthread::thread_init_wrapper): Wait later to get more
 | 
						|
	parallel behavior.
 | 
						|
 | 
						|
2004-04-12  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* thread.cc (pthread::create): Use thread mutex to control
 | 
						|
	synchronization rather than creating a suspended thread.  Wait for
 | 
						|
	"cancellation event" to indicate that started thread has been properly
 | 
						|
	initialized.
 | 
						|
	(pthread::thread_init_wrapper): Use set_tls_self_pointer() to set tid
 | 
						|
	and cygtls.  Signal with cancel_event when done.
 | 
						|
 | 
						|
2004-04-12  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* path.cc (path_conv::check): Fix "tail filling" logic.
 | 
						|
 | 
						|
2004-04-11  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* cygheap.h: Replace inexplicably removed closing brace.
 | 
						|
 | 
						|
2004-04-11  Christopher Faylor  <cgf@alum.bu.edu>
 | 
						|
 | 
						|
	* cygheap.h (CYGHEAP_SLOP): Reduce drastically to avoid collisions.
 | 
						|
 | 
						|
2004-04-11  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* dtable.cc (dtable::extend): Change order of memcpy and cfree.
 | 
						|
 | 
						|
2004-04-10  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* syscalls.cc (sync): Define void according to SUSv3.
 | 
						|
 | 
						|
2004-04-10  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* sec_acl.cc (setacl): Use correct offset when trying to combine
 | 
						|
	standard and default entry of same type.
 | 
						|
 | 
						|
2004-04-10  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* fhandler.cc (rootdir): Add and use second argument.
 | 
						|
	* winsup.h (rootdir): Add second argument in declaration.
 | 
						|
	* path.cc (fs_info::update): Modify call to rootdir.
 | 
						|
	* syscalls.cc (check_posix_perm): Ditto.
 | 
						|
	(statfs): Ditto. Move syscall_printf near top.
 | 
						|
 | 
						|
2004-04-10  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* Use new unified status_flag accessor methods from classes fhandler_*,
 | 
						|
	tty_min, mtinfo and fs_info thoroughout.
 | 
						|
	* fhandler.h: Redefine all set_close_on_exec methods to take a bool
 | 
						|
	argument.
 | 
						|
	(enum conn_state): Rename from connect_state.
 | 
						|
	(class fhandler_base): Rename some status flags to align with
 | 
						|
	accessor method names.  Drop encoded flag entirely.  Unify status
 | 
						|
	accessor methods.  Const'ify all read accessor methods.
 | 
						|
	(class fhandler_socket): Ditto.
 | 
						|
	(class fhandler_dev_raw): Ditto.
 | 
						|
	* fhandler_disk_file.cc (fhandler_base::fstat_fs): Use fs.fs_is_fat()
 | 
						|
	instead of evaluating FATness of file system here.
 | 
						|
	(fhandler_disk_file::opendir): Drop call to set_encoded().
 | 
						|
	(fhandler_disk_file::readdir): Use pc.isencoded() directly.
 | 
						|
	* mtinfo.h (class mtinfo_drive): Const'ify all read accessor methods.
 | 
						|
	* path.cc (fsinfo_cnt): Add.
 | 
						|
	(fs_info::update): Accommodate class changes. Evaluate file system
 | 
						|
	name specific flags right here. Add thread safety for reading and
 | 
						|
	writing global fsinfo array.
 | 
						|
	* path.h (enum path_types): Drop values for flags kept in fs already.
 | 
						|
	(struct fs_info): Move status informatin into private struct type
 | 
						|
	status_flags.  Add accessor methods. Remove path and file system
 | 
						|
	name string arrays in favor of status bits.
 | 
						|
	(class path_conv): Use new fs_info status information where
 | 
						|
	appropriate.
 | 
						|
	(path_conf::fs_has_ea): Rename from fs_fast_ea.
 | 
						|
	(path_conf::fs_has_acls): New method.
 | 
						|
	(path_conf::root_dir): Remove.
 | 
						|
	(path_conf::volname): Remove.
 | 
						|
	* syscalls (statfs): Evaluate root dir locally.
 | 
						|
	* tty.h (class tty_min): Unify status accessor methods.  Const'ify
 | 
						|
	all read accessor methods.
 | 
						|
 | 
						|
2004-04-09  Thomas Pfaff  <tpfaff@gmx.net>
 | 
						|
 | 
						|
	* thread.h (pthread::init_mainthread): Remove parameter forked.
 | 
						|
	(pthread::set_tls_self_pointer): New static function.
 | 
						|
	* thread.cc (MTinterface::fixup_after_fork): Change call to
 | 
						|
	pthread::init_mainthread.
 | 
						|
	(pthread::init_mainthread): Remove parameter forked.  Simplify thread
 | 
						|
	self pointer handling.
 | 
						|
	(pthread::self): Set thread self pointer to null_pthread if thread has
 | 
						|
	not been initialized.
 | 
						|
	(pthread::set_tls_self_pointer): New static function.
 | 
						|
 | 
						|
2004-04-05  Pierre Humblet  <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* path.cc (path_conv::check): Optimize symlink replacements.
 | 
						|
 | 
						|
2004-04-09  Pierre Humblet  <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* path.cc (normalize_posix_path): Add "tail" argument and set it.
 | 
						|
	Always have a final slash for directories.  Pass 3rd argument to
 | 
						|
	normalize_win32_path.
 | 
						|
	(path_conv::check): Pass tail to normalize_posix_path.  Set
 | 
						|
	need_directory and remove final slash after that call.  Remove last
 | 
						|
	argument to mount_table->conv_to_win32_path().  Remove noop dostail
 | 
						|
	check.  Remove fs.update() from inner loop.  Improve tail finding
 | 
						|
	search.
 | 
						|
	(normalize_win32_path): Add and set tail argument.
 | 
						|
	(mount_item::build_win32): Avoid calling strcpy.
 | 
						|
	(mount_info::conv_to_win32_path): Remove third argument and simplify
 | 
						|
	because the source is normalized.  Keep /proc path in Posix form.  Call
 | 
						|
	win32_device_name() only once.
 | 
						|
	(mount_info::conv_to_posix_path): Add and use 3rd argument to
 | 
						|
	normalize_win32_path to avoid calling strlen.
 | 
						|
	(cwdstuff::set): Add 3rd argument to normalize_posix_path and remove
 | 
						|
	final slash if any.
 | 
						|
	* shared_info.h (mount_info::conv_to_win32_path): Remove last argument
 | 
						|
	in declaration.
 | 
						|
 | 
						|
2004-04-09  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (class fhandler_dev_raw): Move status bits into protected
 | 
						|
	bitfield struct type status_flags.  Drop unused has_written bit.
 | 
						|
	Add accessor methods.
 | 
						|
	(fhandler_dev_raw::clear): Remove.
 | 
						|
	(fhandler_dev_raw::reset_devbuf): Remove.
 | 
						|
	* fhandler_floppy.cc (fhandler_dev_floppy::lseek): Use accessor method
 | 
						|
	for is_writing.
 | 
						|
	* fhandler_raw.cc: Use status accessor methods throughout.
 | 
						|
	(fhandler_dev_raw::clear): Remove.
 | 
						|
	(fhandler_dev_raw::fhandler_dev_raw): Drop clear call.
 | 
						|
	(fhandler_dev_raw::~fhandler_dev_raw): Ditto.
 | 
						|
	* fhandler_tape.cc: Use mtinfo::status accessor methods throughout.
 | 
						|
	(mtinfo_drive::close): Fix conditional to enable BSD semantics
 | 
						|
	correctly.
 | 
						|
	(mtinfo_drive::get_status): Rename from mtinfo_drive::status.
 | 
						|
	* mtinfo.h (class mtinfo_drive): Move status bits into private bitfield
 | 
						|
	struct type status_flags.  Add accessor methods.
 | 
						|
	Rename status method to get_status.
 | 
						|
 | 
						|
2004-04-09  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* path.cc (fsinfo): Global storage for file system information.
 | 
						|
	(fs_info::update): Store file system information also in fsinfo and
 | 
						|
	short circuit GetVolumeInformation by using alredy stored file system
 | 
						|
	information.
 | 
						|
 | 
						|
2004-04-09  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (fhandler_base::status): Declare private.
 | 
						|
	(fhandler_base::open_status): Ditto.
 | 
						|
	(class fhandler_socket): Move status bits into private bitfield struct
 | 
						|
	type status_flags.  Change accessor methods appropriately.
 | 
						|
	* fhandler_socket.cc (fhandler_socket::fhandler_socket): Accommodate
 | 
						|
	above status bit changes.
 | 
						|
	* tty.h: Remove status bit enumerator.
 | 
						|
	(TTYISSETF): Remove.
 | 
						|
	(TTYSETF): Remove.
 | 
						|
	(TTYCLEARF): Remove.
 | 
						|
	(TTYCONDSETF): Remove.
 | 
						|
	(tty_min::status): Define as private bitfield struct type status_flags.
 | 
						|
	Add appropriate accessor methods.
 | 
						|
	* fhandler_console.cc: Use tty_min::status accessor methods throughout.
 | 
						|
	* fhandler_termios.cc: Ditto.
 | 
						|
	* winsup.h (__ISSETF): Remove.
 | 
						|
	(__SETF): Remove.
 | 
						|
	(__CLEARF): Remove.
 | 
						|
	(__CONDSETF): Remove.
 | 
						|
 | 
						|
2004-04-09  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::write): Use bool parameter in calls to
 | 
						|
	set_did_lseek.
 | 
						|
	(fhandler_base::fhandler_base): Accommodate new status and open_status
 | 
						|
	constructor.
 | 
						|
	* fhandler.h: Remove status bit enumerator.
 | 
						|
	(FHDEVN): Remove.
 | 
						|
	(FHISSETF): Remove.
 | 
						|
	(FHSETF): Remove.
 | 
						|
	(FHCLEARF): Remove.
 | 
						|
	(FHCONDSETF): Remove.
 | 
						|
	(FHSTATOFF): Remove.
 | 
						|
	(UNCONNECTED, CONNECT_PENDING, CONNECTED): Substitute by enum
 | 
						|
	connect_state.
 | 
						|
	(fhandler_base::status): Define as bitfield struct type status_flags.
 | 
						|
	Remove unused flags entirely.  Accommodate all status access methods.
 | 
						|
	(open_status): Define as bitfield struct type status_flags.
 | 
						|
	(fhandler_socket): Move socket related status bits to here.  Redefine
 | 
						|
	had_connect_or_listen to be part of these status bits.  Accommodate
 | 
						|
	related access methods.
 | 
						|
	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Use pc.issymlink
 | 
						|
	instead of dropped method get_symlink_p.
 | 
						|
	(fhandler_base::open_fs): Remove setting dropped status flags.
 | 
						|
	* fhandler_socket.cc: Use values from enum connect_state throughout.
 | 
						|
	(fhandler_socket::fhandler_socket): Initialize status bits.
 | 
						|
	* fhandler_virtual.cc (fhandler_virtual::open): Remove setting dropped
 | 
						|
	status flags.
 | 
						|
	* net.cc: Use values from enum connect_state throughout.
 | 
						|
	* select.cc: Ditto.
 | 
						|
	* shared_info.h: Protect struct console_state using _FHANDLER_H_
 | 
						|
	instead of FHDEVN.
 | 
						|
 | 
						|
2004-04-09  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* security.cc (get_file_attribute): Fix conditional.
 | 
						|
 | 
						|
2004-04-08  Christopher Faylor  <cgf@bosbc.com>
 | 
						|
 | 
						|
	* child_info.h: Update CHILD_INFO_MAGIC after 2004-04-03 change.
 | 
						|
 | 
						|
2004-04-08  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* path.cc (hash_path_name): Replace hash algorithm with SDBM.
 | 
						|
 | 
						|
2004-04-08  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::open): Set query access mode according
 | 
						|
	to query_open setting.
 | 
						|
	(fhandler_base::fhandler_base): Initialize query_open.
 | 
						|
	* fhandler.h (FH_QUERYOPEN): Drop.
 | 
						|
	(enum query_state): Add.
 | 
						|
	(class fhandler_base): Add query_open member.
 | 
						|
	(fhandler_base::get_query_open): Redefine to use query_open.
 | 
						|
	(fhandler_base::set_query_open): Ditto.
 | 
						|
	* fhandler_disk_file.cc (fhandler_base::fstat_fs): Remove O_DIROPEN
 | 
						|
	from open_flags since it's added in open_fs anyway.  Remove
 | 
						|
	query_open_already.  Use new query_open settings.  Rearrange slightly.
 | 
						|
	(fhandler_base::fstat_helper): Add get_io_handle as parameter to
 | 
						|
	get_file_attribute.
 | 
						|
	* security.cc (get_nt_object_attribute): Make returning an int.
 | 
						|
	Return -1 on error, 0 otherwise.
 | 
						|
	(get_file_attribute): Take an object handle as argument. Move down
 | 
						|
	to allow calling get_nt_object_attribute in case a non-NULL handle
 | 
						|
	is given.
 | 
						|
	* security.h (get_file_attribute): Add handle to argument list.
 | 
						|
	* syscalls.cc (chown_worker): Accommodate new definition of
 | 
						|
	get_file_attribute.
 | 
						|
 | 
						|
2004-04-07  Pierre Humblet  <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* path.cc (path_prefix_p): Optimize test order.
 | 
						|
 | 
						|
2004-04-06  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* Makefile.in (EXTRALIBS): Add libtextreadmode.a.
 | 
						|
	(INSTOBJS): Add textreadmode.o.
 | 
						|
	* textreadmode.c: New file.
 | 
						|
 | 
						|
2004-04-06  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Request
 | 
						|
	compressed size only if the matching attributes are set.  Use
 | 
						|
	NtQueryInformationFile instead of GetCompressedFileSize.
 | 
						|
	(fhandler_base::fstat_by_handle): Remove NT 3.5 cruft since
 | 
						|
	local.dwVolumeSerialNumber isn't used subsequently.
 | 
						|
	* ntdll.h: Add typedefs for FILE_COMPRESSION_INFORMATION and
 | 
						|
	FILE_INFORMATION_CLASS.
 | 
						|
 | 
						|
2004-04-06  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_raw.cc (fhandler_dev_raw::open): Actually use "options".
 | 
						|
 | 
						|
2004-04-04  Gerd Spalink  <Gerd.Spalink@t-online.de>
 | 
						|
 | 
						|
	* fhandler_dsp.cc (fhandler_dev_dsp::ioctl): Add implementation
 | 
						|
	for ioctl codes SNDCTL_DSP_CHANNELS and SNDCTL_DSP_GETCAPS.
 | 
						|
 | 
						|
2004-04-03  Christopher Faylor  <cgf@bosbc.com>
 | 
						|
 | 
						|
	* child_info.h (child_info::cygheap_reserve_sz): Rename from
 | 
						|
	cygheap_alloc_sz.
 | 
						|
	* cygheap.cc: Rename alloc_sz to reserve_sz throughout.
 | 
						|
 | 
						|
2004-04-03  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (class fhandler_socket): Remove has_been_closed member.
 | 
						|
	* fhandler_socket.cc (fhandler_socket::recvfrom): Revert to
 | 
						|
	overlapped I/O.
 | 
						|
	(fhandler_socket::recvmsg): Ditto.
 | 
						|
	(fhandler_socket::sendto): Ditto.
 | 
						|
	(fhandler_socket::sendmsg): Ditto.
 | 
						|
	* net.cc (wsock_event::prepare): Ditto.
 | 
						|
	(wsock_event::wait): Ditto.  Evaluate overlapped result also after
 | 
						|
	calling CancelIo (thanks to Patrick Samson <p_samson@yahoo.com>).
 | 
						|
	(wsock_event::release): Remove.
 | 
						|
	* wsock_event.h: Revert to overlapped I/O.
 | 
						|
 | 
						|
2004-04-02  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* net.cc (wsock_event::release): Use NULL handle in call to
 | 
						|
	WSAEventSelect to resolve KB 168349.
 | 
						|
 | 
						|
2004-04-01  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_socket.cc (fhandler_socket::recvfrom): Rearrange loop
 | 
						|
	so that WSARecvFrom is always called before waiting.
 | 
						|
	(fhandler_socket::recvmsg): Ditto.
 | 
						|
 | 
						|
2004-04-01  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* net.cc (wsock_event::wait): Make wsa_err an int.  Don't set
 | 
						|
	ret to 0 if any error has happened.
 | 
						|
 | 
						|
2004-04-01  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_socket.cc (fhandler_socket::sendto): Drop out of loop if
 | 
						|
	has_been_closed gets set.
 | 
						|
	(fhandler_socket::sendmsg): Ditto.
 | 
						|
	* net.cc (wsock_event::wait): Don't initialize evts.  Don't try to
 | 
						|
	evaluate network events if WSAEnumNetworkEvents fails.
 | 
						|
	(wsock_event::release): Save last WSA error and set it again unless
 | 
						|
	resetting to blocking socket fails.
 | 
						|
	* wsock_event.h (class wsock_event): Remove destructor.
 | 
						|
 | 
						|
2004-03-31  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_tape.cc (mtinfo::initialize): Fix fatal error message.
 | 
						|
 | 
						|
2004-03-31  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_socket.cc (fhandler_socket::recvfrom): Always initialize
 | 
						|
	ret to 0 when using in Winsock call.
 | 
						|
	(fhandler_socket::recvmsg): Ditto.
 | 
						|
	(fhandler_socket::sendto): Ditto.
 | 
						|
	(fhandler_socket::sendmsg): Ditto.
 | 
						|
 | 
						|
2004-03-31  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_tape.cc (mtinfo_drive::get_pos): Only set partition if
 | 
						|
	GetTapePosition returned a non-zero partition number.
 | 
						|
	(mtinfo_drive::create_partitions): Reinitialize to partition 0.
 | 
						|
	Support TAPE_DRIVE_INITIATOR and TAPE_DRIVE_FIXED partitioning.
 | 
						|
	(mtinfo_drive::set_partition): Initialize new partition.
 | 
						|
	(mtinfo_drive::status): Readd accidentally dropped setting of mt_resid.
 | 
						|
 | 
						|
	* net.cc (wsock_event::prepare): Always print debug output in case
 | 
						|
	of error.
 | 
						|
 | 
						|
2004-03-31  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_socket.cc (fhandler_socket::sendmsg): Add SIGPIPE handling.
 | 
						|
 | 
						|
2004-03-31  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_socket.cc (fhandler_socket::recvfrom): Initialize res to
 | 
						|
	SOCKET_ERROR.  Use SOCKET_ERROR instead of -1 throughout.
 | 
						|
	(fhandler_socket::recvmsg): Ditto.
 | 
						|
	(fhandler_socket::sendto): Ditto.
 | 
						|
	(fhandler_socket::sendmsg): Ditto.
 | 
						|
	* net.cc (wsock_event::prepare): Call WSASetLastError instead of
 | 
						|
	SetLastError.
 | 
						|
	(wsock_event::wait): Use SOCKET_ERROR instead of -1.
 | 
						|
 | 
						|
2004-03-30  Thomas Pfaff  <tpfaff@gmx.net>
 | 
						|
 | 
						|
	* thread.h (pthread::init_mainthread): Add parameter forked.  Set
 | 
						|
	forked default to false..
 | 
						|
	* thread.cc (MTinterface::fixup_after_fork): Call
 | 
						|
	pthread::init_mainthread with forked = true.
 | 
						|
	(pthread::init_mainthread): Add parameter forked.  Do not change thread
 | 
						|
	self pointer when forked.
 | 
						|
 | 
						|
2004-03-30  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* shm.cc (shmat): If shmid is unknown, call a special variation
 | 
						|
	of shmget to retrieve the shared memory segment from Cygserver
 | 
						|
	instead of failing immediately.
 | 
						|
	* include/cygwin/ipc.h (IPC_KEY_IS_SHMID): New internal flag for
 | 
						|
	shmget when called from shmat.
 | 
						|
 | 
						|
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.  Accommodate
 | 
						|
	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): Accommodate 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): Accommodate 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. Accommodate 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.
 | 
						|
	Accommodate 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): Accommodate 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.
 |