5814 lines
		
	
	
		
			217 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			5814 lines
		
	
	
		
			217 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 2005-12-31  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syslog.cc (vsyslog): Decrement len if trailing \n has been removed.
 | |
| 	Add \n when writing to stderr if LOG_PERROR option is set.
 | |
| 
 | |
| 2005-12-31  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/in.h: Drop including stdint.h.  Move definition
 | |
| 	of in_port_t and in_addr_t to top of file and use throughout. Use
 | |
| 	sa_family_t type where appropriate.
 | |
| 	(struct in6_addr): Change `unsigned char' to `uint8_t'.
 | |
| 	(struct sockaddr_in6): Add sin6_scope_id member. Add comments.
 | |
| 	* include/cygwin/socket.h: Include stdint.h.  Move definition of
 | |
| 	socklen_t to top of file.  Define sa_family_t.  Define struct
 | |
| 	sockaddr_storage as per SUSv3.
 | |
| 	* include/sys/un.h: Include cygwin/socket.h.  Use sa_family_t type.
 | |
| 
 | |
| 2005-12-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Use
 | |
| 	strace method rather than accessing field directly.
 | |
| 	(fhandler_tty_common::__release_output_mutex): Ditto.
 | |
| 
 | |
| 2005-12-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* child_info.h (CURR_CHILD_INFO_MAGIC): Reset.
 | |
| 	(child_info::dwProcessId): Delete.
 | |
| 	(child_info::straced): New variable.
 | |
| 	(child_info::handle_fork): New member function.
 | |
| 	* dcrt0.cc (in_forkee): New global variable.
 | |
| 	(__cygwin_user_data::forkee): Mark as obsolete.
 | |
| 	(do_global_ctors): Use in_forkee rather than user_data->forkee.
 | |
| 	(get_cygwin_startup_info): Ditto.  Deal with new straced field to allow
 | |
| 	strace to deal with children of attached processes.
 | |
| 	(initial_env): Accommodate changes to strace::hello.
 | |
| 	(child_info_fork::handle_fork): Rename from plain old 'handle_fork'.
 | |
| 	Move alloc_stack() call elsewhere.
 | |
| 	(dll_crt0_0): Fill out more of user_data.  Reference handle_fork via
 | |
| 	fork_info.  Add some debugging output.
 | |
| 	(_dll_crt0): Don't wait for sync thread if sync_startup is invalid.
 | |
| 	Zero sync_startup here.  Call alloc_stack() here, if appropriate.
 | |
| 	(dll_crt0_1): Use in_forkee rather than user_data->forkee.
 | |
| 	(dll_crt0): Ditto.
 | |
| 	* malloc_wrapper.cc (malloc_init): Ditto.
 | |
| 	* dll_init.cc (in_forkee): Remove local static version of this
 | |
| 	variable.
 | |
| 	(dll_list::load_after_fork): Don't set in_forkee here.
 | |
| 	* external.cc (cygwin_internal): Use strace method rather than
 | |
| 	accessing field directly.
 | |
| 	* fhandler.cc (fhandler_base::read): Ditto.
 | |
| 	* fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Ditto.
 | |
| 	* fork.cc (frok::parent): Invoke strace write_childpid to communicate
 | |
| 	with potential strace.
 | |
| 	(child_copy): Add more detail to debugging output.
 | |
| 	* init.cc (calibration_id): New static variable.
 | |
| 	(prime_threads): Set sync_startup to invalid handle if we already know
 | |
| 	about thread_func_ix.  Use static calibration_id to hold calibration
 | |
| 	thread id.
 | |
| 	* munge_threadfunc (munge_threadfunc): Don't try to debug if we don't
 | |
| 	find threadfunc_ix.
 | |
| 	(dll_entry): Avoid calling munge_threadfunc and _cygtls::remove on
 | |
| 	non-cygwin threads invoked during process startup.
 | |
| 	* pinfo.cc (set_myself): Always call strace.hello here regardless of
 | |
| 	DEBUGGING.
 | |
| 	* sigproc.cc (child_info::child_info): Remove spurious handling of
 | |
| 	dwProcessId.  Set straced as appropriate.
 | |
| 	* spawn.cc (spawn_guts): Rename ciresrv to ch.  Invoke strace
 | |
| 	write_childpid to communicate with potential strace.
 | |
| 	* strace.cc: Include child_info.h.
 | |
| 	(strace::hello): Remove inited test.  Use active() method to test if
 | |
| 	strace has been activated.  Handle case where we are started before
 | |
| 	(mypid): New function.
 | |
| 	(strace::vsprntf): Try to deal more intelligently with case where
 | |
| 	progname may not be filled out.  Put pid in parentheses if it is a
 | |
| 	windows pid rather than a cygwin pid.  myself has been filled out.
 | |
| 	(strace::write_childpid): New function for notifying strace about the
 | |
| 	creation of children.
 | |
| 	(strace::vprntf): Use strace method rather than accessing field
 | |
| 	directly.
 | |
| 	(strace_printf): Ditto.
 | |
| 	(strace::wm): Ditto.
 | |
| 	* winsup.h (in_forkee): Declare.
 | |
| 	* include/sys/strace.h (strace::write_childpid): Declare new function.
 | |
| 	(strace::attached): Define new function.
 | |
| 	(strace::active): Ditto.
 | |
| 	(strace::active_val): Ditto.
 | |
| 	(_STRACE_ON): Delete.
 | |
| 	(_STRACE_OFF): Ditto.
 | |
| 	(define_strace0): Use strace method rather than accessing field
 | |
| 	directly.
 | |
| 	(strace_printf_wrap): Ditto.
 | |
| 	(strace_printf_wrap1): Ditto.
 | |
| 
 | |
| 2005-12-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* environ.cc (win_env::add_cache): Don't add variables to the
 | |
| 	environment during initialization.
 | |
| 
 | |
| 2005-12-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* exceptions.cc (_cygtls::handle_exceptions): Drop redundant `break'.
 | |
| 
 | |
| 2005-12-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* exceptions.cc (inside_kernel): Rename from interruptible.
 | |
| 	Accommodate change throughout file.
 | |
| 
 | |
| 2005-12-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* exceptions.cc (interruptible): New function, code stripped from
 | |
| 	_cygtls::interrupt_now.
 | |
| 	(_cygtls::handle_exceptions): Handle STATUS_DATATYPE_MISALIGNMENT as
 | |
| 	SIGBUS error.  Differ between unmapped memory (SEGV_MAPERR) and access
 | |
| 	violation (SEGV_ACCERR) in case of STATUS_ACCESS_VIOLATION.  Write
 | |
| 	kernel log message in case of uncatched STATUS_ACCESS_VIOLATION.
 | |
| 	(_cygtls::interrupt_now): Just call interruptible now instead of
 | |
| 	evaluating interruptibility here.
 | |
| 
 | |
| 2005-12-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Rework loop removing trailing dots
 | |
| 	and spaces.
 | |
| 
 | |
| 	* syslog.cc (vklog): Set facility to LOG_KERN if not set.
 | |
| 
 | |
| 2005-12-26  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (__api_fatal): Simplify to just use strace mechamisms.
 | |
| 	(do_exit): Move minimal_printf...
 | |
| 	* pinfo.cc (pinfo::exit): ...into here.
 | |
| 	* strace.cc (strace::vprntf): Guarantee output to the console when
 | |
| 	system_printf/api_fatal.
 | |
| 
 | |
| 	* heap.cc (heap_init): Wait a second before issuing an error when
 | |
| 	ERROR_INVALID_ADDRESS since this is probably due to a CTRL-C handler
 | |
| 	sneaking in, using the memory that we want to use for the heap, and,
 | |
| 	eventually exiting.
 | |
| 
 | |
| 2005-12-23  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.cc (_cygtls::handle_threadlist_exception): Make an error
 | |
| 	fatal.
 | |
| 	* cygtls.h (sockaddr_in): Use header rather than defining our own
 | |
| 	structure.
 | |
| 	* exceptions.cc (_cygtls::interrupt_setup): Use exact contents of
 | |
| 	sa_mask rather than assuming that current sig should be masked, too.
 | |
| 	(_cygtls::call_signal_handler): Use more aggressive locking.
 | |
| 	* gendef (_sigbe): Wait until later before releasing incyg.
 | |
| 	(_sigreturn): Remove more arguments to accommodate quasi-sa_sigaction
 | |
| 	support.
 | |
| 	(_sigdelayed): Push arguments for sa_sigaction.  More work needed here.
 | |
| 	* signal.cc (sigaction): Implement SA_NODEFER.
 | |
| 	* tlsoffsets.h: Regenerate.
 | |
| 
 | |
| 	* sigproc.cc (wait_sig): Use default buffer size or Windows 9x
 | |
| 	complains.
 | |
| 
 | |
| 	* pinfo.cc (_onreturn::dummy_handle): Remove.
 | |
| 	(_onreturn::h): Make this a pointer.
 | |
| 	(_onreturn::~_onreturn): Detect whether pointer is NULL rather than
 | |
| 	value is NULL.
 | |
| 	(_onreturn::_onreturn): Set h to NULL initially.
 | |
| 	(_onreturn::no_close_p_handle): Set h to NULL.
 | |
| 	(winpids::add): Initialize onreturn with value from p.hProcess
 | |
| 	immediately.
 | |
| 
 | |
| 2005-12-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fork.cc (fork): Honor error return from sig_send.  Don't continue
 | |
| 	with fork if we couldn't suspend signals.
 | |
| 	* sigproc.cc (sig_send): Set sigCONT event when we see __SIGNOHOLD.
 | |
| 	(wait_sig): Remove holding_signals.  Create pipe with a buffer which
 | |
| 	will theoretically cause blocking if there is nothing reading on the
 | |
| 	pipe.  Wait for sigCONT at end of loop when we have a __SIGHOLD.
 | |
| 
 | |
| 2005-12-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::issymlink): New method.
 | |
| 	* syscalls.cc (open): Handle O_NOFOLLOW flag.
 | |
| 	* include/fcntl.h (_FNOFOLLOW): New define.
 | |
| 	(O_NOFOLLOW): Ditto.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2005-12-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (winpids::add): Increment nelem when winpid is true since we
 | |
| 	don't care if it's a cygwin process in that case.
 | |
| 
 | |
| 2005-12-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (winpids::release): Fix typo.
 | |
| 
 | |
| 2005-12-21  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::init): Clarify comment slightly.
 | |
| 	(_onreturn): New helper class.
 | |
| 	(winpids:add): Remove copied stuff.  Try to put process handle into
 | |
| 	pinfo in question and use _onreturn class to control when to close it.
 | |
| 	(winpids::release): Remove use of copied array.  Free procinfo when
 | |
| 	hProcess is NULL.  Otherwise call release and call CloseHandle on
 | |
| 	hProcess.
 | |
| 	* pinfo.h (winpids::copied): Remove throughout class.
 | |
| 
 | |
| 2005-12-21  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::init): Remove spurious low_priority_sleep.
 | |
| 
 | |
| 2005-12-21  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* spawn.cc (spawn_guts): Hide the window whenever ctty == -1, not just
 | |
| 	when we have no console.
 | |
| 
 | |
| 2005-12-21  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygheap.cc (init_cygheap::manage_console_count): Revert previous
 | |
| 	change.  Handle this a different way.
 | |
| 	* external.cc (cygwin_internal): Accommodate extra
 | |
| 	hook_or_detect_cygwin argument.
 | |
| 	* hookapi.cc (cygwin_internal): Fill in subsys variable with the
 | |
| 	subsystem of the executable.
 | |
| 	* spawn.cc (av::iscui): New variable.
 | |
| 	(spawn_guts): Hide window when we don't have a console and this isn't
 | |
| 	NT/XP/2003.
 | |
| 	(av::fixup): Set iscui flag.
 | |
| 	* winsup.h (hook_or_detect_cygwin): Accommodate extra argument.
 | |
| 
 | |
| 2005-12-21  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygheap.cc (init_cygheap::manage_console_count): Don't call
 | |
| 	FreeConsole on 9x/Me.
 | |
| 
 | |
| 2005-12-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* (fhandler_disk_file::fchown): Remove execute bits from "sensible"
 | |
| 	permissions.  Use same setting as in symlink.
 | |
| 
 | |
| 2005-12-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix inode number
 | |
| 	debug output.
 | |
| 	(fhandler_disk_file::fchown): Always set sensible permission values
 | |
| 	when creating the ACL for symlinks.
 | |
| 
 | |
| 2005-12-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* winsup.h (flush_file_buffers): Define as inline function.
 | |
| 	* miscfuncs.cc (flush_file_buffers): Remove.
 | |
| 
 | |
| 2005-12-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* winsup.h (flush_file_buffers): Declare new function.
 | |
| 	(FLushFileBuffers): New define.
 | |
| 	* miscfuncs.cc (flush_file_buffers): Define new function.
 | |
| 
 | |
| 2005-12-20  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_termios::fixup_after_exec): Make non-inlined.
 | |
| 	* fhandler_termios.cc (fhandler_termios::fixup_after_exec): Don't call
 | |
| 	fixup_after_fork if close_on_exec'ed.
 | |
| 
 | |
| 2005-12-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.h (_cygtls::interrupt_now): Subsume interruptible().
 | |
| 	(interruptible): Delete.
 | |
| 	(setup_handler): Remove interruptible call and just use return from
 | |
| 	interrupt_now.
 | |
| 
 | |
| 2005-12-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.h (set_console_state_for_spawn): Add an argument to the
 | |
| 	declaration.
 | |
| 	* fhandler_console.cc (set_console_state_for_spawn): Ditto for the
 | |
| 	definition.  Only set invisible console for non-cygwin process.  Remove
 | |
| 	debugging leftover.
 | |
| 	* spawn.cc (spawn_guts): Pass argument denoting whether this is a
 | |
| 	cygwin process to set_console_state_for_spawn and only call this
 | |
| 	function when exec'ing.
 | |
| 
 | |
| 2005-12-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (fhandler_dev_zero::mmap): Call VirtualFree(MEM_RELEASE)
 | |
| 	with zero length parameter, otherwise it fails.
 | |
| 	(fhandler_dev_zero::munmap): Ditto.
 | |
| 
 | |
| 2005-12-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_console::invisible_console): Declare new
 | |
| 	variable.
 | |
| 	(fhandler_pipe::fixup_in_child): Declare new function.
 | |
| 	(fhandler_console::need_invisible): Ditto.
 | |
| 	(fhandler_console::has_a): Ditto.
 | |
| 	* fhandler_console.cc (set_console_state_for_spawn): Eliminate return
 | |
| 	value.  Set up an invisible console if necessary prior to spawning.
 | |
| 	(fhandler_console::invisible_console): Define.
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::open): Use
 | |
| 	fhandler_console::invisible_console to setup an invisible console.
 | |
| 	* pipe.cc (fhandler_pipe::fixup_in_child): Define new function from
 | |
| 	fixup_after_exec.
 | |
| 	(fhandler_pipe::fixup_after_exec): Use fixup_in_child when appropriate.
 | |
| 	(fhandler_pipe::fixup_after_fork): Ditto.
 | |
| 	* spawn.cc (handle): Reorganize and modernize a little.
 | |
| 	(spawn_guts): Rely on set_console_state_for_spawn to set the console
 | |
| 	into the right state but don't create the process with "detached" flag
 | |
| 	if we have no controlling tty since that confuses 'cmd'.
 | |
| 	* dtable.cc (dtable::stdio_init): Don't set console as controlling
 | |
| 	terminal if we have an invisible console.
 | |
| 
 | |
| 	* sigproc.cc (child_info::sync): Use correct name in ForceCloseHandle1.
 | |
| 
 | |
| 2005-12-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/sys/dirent.h: Change __deprecated_d_ino to __invalid_d_ino
 | |
| 	throughout to make things a little clearer.
 | |
| 	* dir.cc (readdir_worker): Reflect above change.
 | |
| 
 | |
| 2005-12-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* winsup.h (child_copy): Change prototype to match new functionality.
 | |
| 	* cygheap.cc (cygheap_fixup_in_child): Accommodate new child_copy
 | |
| 	arguments.
 | |
| 	* dcrt0.cc (dll_data_start): Move definition here from fork.
 | |
| 	(dll_data_end): Ditto.
 | |
| 	(dll_bss_start): Ditto.
 | |
| 	(dll_bss_end): Ditto.
 | |
| 	(handle_fork): New function.  Called when forked to deal with fork
 | |
| 	issues and copy data to this process from the parent.
 | |
| 	(dll_crt0_0): Call handle_fork when _PROC_FORK condition.
 | |
| 	(dll_crt0): Don't copy user_data when we've forked.  Don't zero first
 | |
| 	element of main_environment ever.
 | |
| 	(cygwin_dll_init): Ditto.
 | |
| 	* fork.cc (child_copy): Rename from fork_copy and change arguments so
 | |
| 	that each pair of things to copy gets its own descriptor.
 | |
| 	(frok::child): Remove fixup_mmaps_after_fork call here.  Move to
 | |
| 	handle_fork in dcrt0.cc.
 | |
| 	(frok::parent): Use child_copy rather than fork_copy and accommodate
 | |
| 	changes in parameters.
 | |
| 
 | |
| 	* exceptions.cc (setup_handler): Delay test of whether we're locked
 | |
| 	until after GetThreadContext has been called since there are apparently
 | |
| 	cases where SuspendThread does not cause an immediate thread
 | |
| 	suspension.
 | |
| 
 | |
| 2005-12-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* init.cc (dll_entry): Call prime_threads after dll_crt0_0 to avoid
 | |
| 	conflicts between heap allocation and thread stack allocation.
 | |
| 
 | |
| 2005-12-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* hookapi.cc (putmem): Remove query of previous memory protection since
 | |
| 	we get that for free the first time we call VirtualProtect.
 | |
| 
 | |
| 2005-12-15  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (fhandler_dev_zero::fixup_mmap_after_fork): Use
 | |
| 	system_printf like any other fixup_mmap_after_fork.
 | |
| 
 | |
| 2005-12-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (ACCFLAGS): Remove macro.
 | |
| 	(fhandler_base::get_default_fmode): Use O_ACCMODE instead of ACCFLAGS
 | |
| 	and or'ed read/write flags.
 | |
| 	(fhandler_base::open_9x): Use O_ACCMODE instead of or'ed read/write
 | |
| 	flags.
 | |
| 	(fhandler_base::open): Ditto.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::open_fs): Ditto.
 | |
| 	* fhandler_mem.cc (fhandler_dev_mem::open): Ditto.
 | |
| 	* fhandler_raw.cc (fhandler_dev_raw::open): Ditto.
 | |
| 
 | |
| 2005-12-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::open_9x): Handle O_SYNC and O_DIRECT
 | |
| 	flags.
 | |
| 	(fhandler_base::open): Ditto.
 | |
| 	* fhandler_floppy.cc (fhandler_dev_floppy::open): Don't allocate devbuf
 | |
| 	in O_DIRECT case.
 | |
| 	* fhandler_raw.cc (fhandler_dev_raw::ioctl): Don't allow buffer
 | |
| 	changes in O_DIRECT case.  Allow returning a buffer size 0, which
 | |
| 	indicates O_DIRECT.
 | |
| 	* fhandler_tape.cc (fhandler_dev_tape::open): Use O_SYNC flag to
 | |
| 	hand down the !buffer_writes case.  Don't allocate devbuf in O_DIRECT
 | |
| 	case.
 | |
| 	(fhandler_dev_tape::raw_read): Don't mess with devbuf if it's NULL.
 | |
| 	* include/fcntl.h: Define _FDIRECT, O_DIRECT, O_DSYNC and O_RSYNC.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 
 | |
| 2005-12-13  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.cc (_cygtls::remove): Don't bother if we're exiting.
 | |
| 	* sigproc.cc (_cygtls::remove_wq): Ditto.
 | |
| 
 | |
| 2005-12-13  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty::open): Enhance comment.
 | |
| 
 | |
| 2005-12-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty::open): Close newly created window
 | |
| 	station after switching to original window station.
 | |
| 
 | |
| 2005-12-13  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty::open): Add a comment.
 | |
| 
 | |
| 2005-12-12  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* times.cc (hires_ms::usecs): Subtract from slop from system time or
 | |
| 	we'll always end up priming the pump.
 | |
| 
 | |
| 2005-12-12  Nick Duffek <nick@duffek.com>
 | |
| 
 | |
| 	* times.cc (systime): Correct precision referenced in comment.
 | |
| 
 | |
| 2005-12-12  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::open): Don't free original
 | |
| 	windows station since that will cause strange problems displaying
 | |
| 	fonts.  Reset windows station to original station after creating
 | |
| 	console.
 | |
| 	* times.cc (hires_ms::usecs): Only reprime when calculated time is less
 | |
| 	than system time.
 | |
| 
 | |
| 2005-12-12  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (winpids::add): Don't copy procinfo when there is no cygwin
 | |
| 	process associated with the pid, i.e., procinfo == NULL.
 | |
| 
 | |
| 2005-12-12  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* times.cc (hires_ms::usecs): Correct order when checking if high
 | |
| 	precision time is <= current time.
 | |
| 
 | |
| 2005-12-12  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (size_copied): New convenience macro.
 | |
| 	(winpids::add): Alias the element that we are working on for slightly
 | |
| 	better clarity.  Honor the "make_copy" flag.
 | |
| 	(winpids::release): Free and zero procinfo field if it was allocated
 | |
| 	via malloc.
 | |
| 	(winpids::~winpids): Free copied array.
 | |
| 	* pinfo.h (class pinfo): Make winpids class a friend.
 | |
| 	(winpids::make_copy): New field.
 | |
| 	(winpids::copied): New array.
 | |
| 	(winpids::reset): Reset npids after releasing pinfos or suffer a memory
 | |
| 	leak.
 | |
| 	(winpids::winpids): Try harder to zero all fields in the class.
 | |
| 
 | |
| 2005-12-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (GetSystemTimes): Remove.
 | |
| 
 | |
| 2005-12-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_proc.cc (format_proc_uptime): Drop usage of GetSystemTimes.
 | |
| 	Use NtQuerySystemInformation to evaluate uptime and idle_time from
 | |
| 	all CPU's processor times.  Fallback to GetTickCount.
 | |
| 
 | |
| 2005-12-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (gen_create_protect): Always generate WRITECOPY protection
 | |
| 	for private maps.
 | |
| 	(fixup_mmaps_after_fork): Fix calculation of WRITECOPY protection for
 | |
| 	VirtualProtect.  Add some words to the comment.
 | |
| 
 | |
| 2005-12-10  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dirent.h: Change the rest of the d_ino's to __deprecated_d_ino.
 | |
| 
 | |
| 2005-12-10  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* malloc.cc: Update to version 2.8.3.
 | |
| 	* cygmalloc.h (MSPACE): Remove unneeded definition.
 | |
| 
 | |
| 2005-12-08  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_raw.cc (fhandler_dev_raw::ioctl): Only allow 0, 1 or a
 | |
| 	multiple of 512 as new buffersize.
 | |
| 
 | |
| 2005-12-08  Pekka Pessi <ppessi@gmail.com>
 | |
| 	    Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::recvfrom): Mask flags with
 | |
| 	MSG_WINMASK for Windows socket calls.
 | |
| 	(fhandler_socket::recvmsg): Ditto.
 | |
| 	(fhandler_socket::sendmsg): Ditto.
 | |
| 
 | |
| 2005-12-07  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* hires.h (hires_ms::initime_ms): Delete.
 | |
| 	(hires_ms::initime_us): Just define as LONGLONG.
 | |
| 	(hires_ms::uptime): New function.
 | |
| 	* select.cc (select_stuff::wait): Use gtod for timing to attempt to
 | |
| 	avoid windows 32 bit wraparound.
 | |
| 	* times.cc (systime): New function.
 | |
| 	(times): Replace GetTickCount with gtod.uptime.
 | |
| 	(hires_us::prime): Use systime() to calculate system time rather than
 | |
| 	calling GetSystemTimeAsFileTime directly.
 | |
| 	(hires_ms::prime): Ditto.  Eliminate initime_ms.
 | |
| 	(hires_ms::usecs): Try harder to detect wraparound.
 | |
| 
 | |
| 	* fhandler_proc.cc (format_proc_partitions): Set drive_size to zero to
 | |
| 	avoid a compiler warning.
 | |
| 
 | |
| 2005-12-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_proc.cc (format_proc_partitions): Use modern IOCTLs
 | |
| 	to determine drive size as far as possible.
 | |
| 
 | |
| 2005-12-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_raw.cc (fhandler_dev_raw::ioctl): Fix INVALID_PARAMETER
 | |
| 	condition.  Only copy devbuf to buf if buf is non-NULL.
 | |
| 
 | |
| 2005-12-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_raw.cc (fhandler_dev_raw::ioctl): Fix setting devbuf
 | |
| 	when rd_parm is 0 or 1.
 | |
| 
 | |
| 2005-12-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_floppy.cc (fhandler_dev_floppy::lseek): Fix test for
 | |
| 	valid file position at EOM.
 | |
| 
 | |
| 2005-12-07  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/cygwin/stdlib.h: Guard compilation of *unsetenv* in newlib.
 | |
| 
 | |
| 2005-12-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* exceptions.cc (_cygtls::handle_exceptions): In case of a
 | |
| 	STATUS_ACCESS_VIOLATION, check if the page is a mmaped page beyond
 | |
| 	a file's EOF.  Generate SIGBUS instead of SIGSEGV then.
 | |
| 	* mmap.cc (__PROT_ATTACH): New define.
 | |
| 	(__PROT_FILLER): Ditto.
 | |
| 	(fh_anonymous): Rename from fh_paging_file;
 | |
| 	(fh_disk_file): New global static variable.
 | |
| 	(attached): New inline function.
 | |
| 	(filler): Ditto.
 | |
| 	(gen_create_protect): Split off from gen_protect to use the file's
 | |
| 	access mode to create mapping always with maximum allowed protections.
 | |
| 	(gen_protect): Accommodate pages attached beyond EOF.  Use symbolic
 | |
| 	values instead of numerics when possible.  Drop create parameter.
 | |
| 	(gen_access): Use file's access mode instead of protection.
 | |
| 	(CreateMapping9x): Create named mapping names so that different
 | |
| 	creation access modes result in different mappings.
 | |
| 	(CreateMappingNT): Only reserve attached pages, don't commit them.
 | |
| 	(MapViewNT): Ditto.  Set AT_ROUND_TO_PAGE for all non-NULL base
 | |
| 	addresses.
 | |
| 	(mmap_func_t): Define CreateMapping and MapView function pointers
 | |
| 	with additional openflags parameter.
 | |
| 	(class mmap_record): Add openflags member.
 | |
| 	(mmap_record::mmap_record): Add openflags parameter.
 | |
| 	(mmap_record::get_openflags): New accessor.
 | |
| 	(mmap_record::attached): Call global attached function.
 | |
| 	(mmap_record::filler): Call global filler function.
 | |
| 	(mmap_record::gen_create_protect): Call global gen_create_protect
 | |
| 	function.
 | |
| 	(mmap_record::gen_protect): Drop create parameter.
 | |
| 	(mmap_record::alloc_fh): Set fhandler's access flags.
 | |
| 	(list::search_record): Accommodate filler pages.
 | |
| 	(list::set): Use inode number as hash value.
 | |
| 	(map::get_list_by_fd): Check hash value against file's inode number.
 | |
| 	(mmap_is_attached_page): New function to evaluate if a given address
 | |
| 	is on a attached page.  Called from _cygtls::handle_exceptions.
 | |
| 	(mmap_worker): New function to do mapping and bookkeeping in a
 | |
| 	single call.
 | |
| 	(mmap64): Use roundup2 to round length to pagesize alignment.
 | |
| 	Initialize global fhandlers.  Simplify anonymous initialization.
 | |
| 	Add SUSv3 compatible check of file open mode vs. requested protection.
 | |
| 	Try creating new file handles to allow maximum page protection.
 | |
| 	Allow creating attached pages in case of mapping beyond EOF.
 | |
| 	Close new file handle if one has been created.
 | |
| 	(munmap): Align len to pagesize.
 | |
| 	(msync): Rework argument checks. Align len to pagesize.
 | |
| 	(mprotect): Ditto.  Accommodate attached pages.
 | |
| 	(mlock): Use roundup/rounddown macros instead of homemade expressions.
 | |
| 	(munlock): Add page alignment as in mlock.
 | |
| 	(fhandler_dev_zero::munmap): Fix unmapping of non-private mappings.
 | |
| 	(fhandler_dev_zero::fixup_mmap_after_fork): Accommodate filler pages.
 | |
| 	(fixup_mmaps_after_fork): Don't fail if attached pages couldn't be
 | |
| 	created in child.  Avoid superfluous call to VirtualFree.  Check for
 | |
| 	original allocation protection to fix PAGE_WRITECOPY protection.
 | |
| 	* ntdll.h: Revert deletion of AT_ROUND_TO_PAGE define.
 | |
| 	* winsup.h (mmap_is_attached_page): Declare.
 | |
| 
 | |
| 2005-12-05  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/cygwin/stdlib.h: New file.
 | |
| 	* environ.cc (unsetenv): Change to return -1 on input error.
 | |
| 	* include/cygwin/version.h: Add more description to latest api bump.
 | |
| 
 | |
| 2005-12-05  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dir.cc (readdir_workdir): Only fill out d_ino when linked into older
 | |
| 	app.
 | |
| 	* include/cygwin/version.h: Bump api minor number to 147, reflecting
 | |
| 	obsolescence of d_ino.
 | |
| 	(CYGWIN_VERSION_USER_API_VERSION_COMBINED): New convenience macro.
 | |
| 	(CYGWIN_VERSION_CHECK_FOR_NEEDS_D_INO): New convenience macro.
 | |
| 	* include/sys/dirent.h: Change d_ino field to __deprecated_d_ino.
 | |
| 
 | |
| 2005-12-05  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	Remove unneeded whitespace.
 | |
| 	* cygtls.cc (_cygtls::set_state): Delete.
 | |
| 	(_cygtls::reset_exception): Ditto.
 | |
| 	(_cygtls::init_thread): Set initialized state directly here.
 | |
| 	(_cygtls::push): Remove exception argument.  Don't treat exceptions
 | |
| 	specially.
 | |
| 	* cygtls.h (_cygtls::push): Ditto.
 | |
| 	(_cygtls::isinitialized): Don't treat exceptions specially.
 | |
| 	(_cygtls::reset_exception): Delete.
 | |
| 	(_cygtls::set_state): Ditto.
 | |
| 	(_cygtls::handle_exceptions): Don't push ebp on the stack prior to
 | |
| 	calling sig_send.  Just set incyg instead.
 | |
| 	(_cygtls::interrupt_setup): Accommodate _cygtls::push argument change.
 | |
| 	(_cygtls::interrupt_now): Ditto.
 | |
| 	(setup_handler): Don't treat exceptions specially.
 | |
| 	* gendef (longjmp): Always zero incyg flag.
 | |
| 
 | |
| 2005-12-04  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* environ.cc (spenvs): Add "windir" as an "always export" variable
 | |
| 	to accommodate WinSock on Windows 95.
 | |
| 
 | |
| 2005-12-02  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/exceptions.h (exception_list): Revert previous change.
 | |
| 	Windows doesn't care.
 | |
| 	(exception_handler): Use real exception_list parameter type rather than
 | |
| 	void *
 | |
| 	* tlsoffsets.h: Regenerate.
 | |
| 	* cygtls.h (_cygtls::handle_exceptions): Use real exception_list
 | |
| 	parameter type rather than void *.
 | |
| 	(handle_threadlist_exception): Ditto.
 | |
| 	(init_exception_handler): Ditto.
 | |
| 	* cygtls.cc (_cygtls::handle_threadlist_exception ): Ditto.
 | |
| 	(_cygtls::init_exception_handler): Add kludge to terminate linked list
 | |
| 	with a loop, which seems to solve problem of RtlUnwind causing problems
 | |
| 	* exceptions.cc (rtl_unwind): Use real exception_list parameter type
 | |
| 	rather than void *.
 | |
| 	(_cygtls::handle_exceptions): Ditto.
 | |
| 
 | |
| 2005-12-02  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.h (_cygtls::el): New field.
 | |
| 	(_cygtls::handle_exceptions): New function declaration.
 | |
| 	(_cygtls::handle_threadlist_exception): Ditto.
 | |
| 	(_cygtls::init_exception_handler): Ditto.
 | |
| 	(_cygtls::init_threadlist_exceptions): Remove arg from declaration.
 | |
| 	* cygtls.cc (_cygtls::call2): Don't initialize exceptions here.
 | |
| 	(_cygtls::init_thread): Do it here instead and use member function.
 | |
| 	(_cygtls::handle_threadlist_exception): Move into _cygtls class.
 | |
| 	(_cygtls::init_exception_handler): Ditto.  Rely on existence of 'el'
 | |
| 	memmber in _cygtls.
 | |
| 	(_cygtls::init_threadlist_exceptions): Ditto.
 | |
| 	* dcrt0.cc (dll_crt0_1): Remove exception_list definition and setting
 | |
| 	since it now commonly resides in the tls.
 | |
| 	* exceptions.cc (init_exception_handler): Move to cygtls.cc.
 | |
| 	(init_exceptions): Ditto.
 | |
| 	(rtl_unwind): New, safe wrapper function for RtlUnwind.
 | |
| 	(_cygtls::handle_exceptions): Move to _cygtls.  Call rtl_unwind to
 | |
| 	unwind frames and eliminate copying of structures.  Put address of
 | |
| 	failing instruction in si_addr, not the address on the stack.  Return 0
 | |
| 	to indicate that we've handled this exception.
 | |
| 	* external.cc (cygwin_internal): Make CW_INIT_EXCEPTIONS a no-op.
 | |
| 	* sigproc.cc (wait_sig): Accommodate argument change to
 | |
| 	_cygtls::init_threadlist_exceptions.
 | |
| 	* tlsoffsets.h: Regenerate.
 | |
| 	* include/exceptions.h (exception_list): Add more stuff to the
 | |
| 	exception list.  Apparently windows needs this?
 | |
| 	(init_exceptions): Remove bogus declaration.
 | |
| 
 | |
| 	* include/cygwin/signal.h (SI_USER): Redefine as zero as per SUSv3.
 | |
| 	* include/cygwin/version.h: Bump API minor version number to 146.
 | |
| 
 | |
| 	* thread.cc (pthread_kill): Set si_pid and si_uid.
 | |
| 
 | |
| 	* timer.cc (timer_thread): Set si_code to SI_TIMER.
 | |
| 
 | |
| 2005-12-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (getstack): Try harder to modify memory.
 | |
| 	(alloc_stack): Alloc page prior to stack top, too.
 | |
| 
 | |
| 2005-12-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* devices.h (_major): Revert previous ill-advised change.
 | |
| 	(_minor): Ditto.
 | |
| 
 | |
| 2005-12-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* exceptions.cc (handle_exceptions): Translate a guard page exception
 | |
| 	to a "SIGBUS".
 | |
| 
 | |
| 2005-12-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc: Make debug output more consistently.  Fix some comments.
 | |
| 	(gen_protect): Convert to inline function.
 | |
| 	(gen_access): Ditto.
 | |
| 	(mmap_record::gen_protect): Add create parameter as in global function.
 | |
| 	(mmap_record::alloc_page_map): Change condition so that always the
 | |
| 	correct protection setting is set after mapping has been established.
 | |
| 	(mmap64): For anonymous mappings set offset always to 0.
 | |
| 	(fixup_mmaps_after_fork): Always call fixup_mmap_after_fork method
 | |
| 	with the MAP_FIXED flag set.
 | |
| 
 | |
| 2005-12-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* devices.h (_minor): Coerce argument to proper type before
 | |
| 	manipulating.
 | |
| 	(_major): Ditto.
 | |
| 	(device::is_fs_special): New function.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Set the size to
 | |
| 	0 for devices rather than reporting the size of the symlink.
 | |
| 	(fhandler_disk_file::readdir): Use is_fs_special to determine if .lnk
 | |
| 	should be stripped.
 | |
| 	* path.cc: Rename symlink_info::is_symlink to symlink_info::issymlink
 | |
| 	throughout.
 | |
| 	(symlink_info::isdevice): New field.
 | |
| 	(path_conv::check): Use 'isdevice' to determine if just-parsed entity
 | |
| 	is a device rather than relying on non-zero major/minor.
 | |
| 	(symlink_info::parse_device): Set isdevice to true if we've discovered
 | |
| 	a device.
 | |
| 	(symlink_info::check): Clear isdevice field prior to processing.  Use
 | |
| 	isdevice to control debugging output.
 | |
| 	(symlink_info::set): Set isdevice to false.
 | |
| 	* path.h (path_conv::is_fs_special): New function.
 | |
| 	* devices.cc: Regenerate.
 | |
| 
 | |
| 2005-11-30  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* times.cc (hires_ms::prime): Remove debugging stuff.
 | |
| 	(hires_ms::usecs): Ditto.
 | |
| 
 | |
| 2005-11-30  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (list::try_map): New method, implementing trying to map
 | |
| 	within another already existing map, moved from mmap64 here.
 | |
| 	(mmap64): Just call try_map now.
 | |
| 	(fhandler_dev_zero::fixup_mmap_after_fork): Always create new private
 | |
| 	map with PAGE_READWRITE protection.
 | |
| 	(fixup_mmaps_after_fork): Fix comment.
 | |
| 
 | |
| 2005-11-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 
 | |
| 2005-11-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_dev_zero::mmap): Add method.
 | |
| 	(fhandler_dev_zero::munmap): Ditto.
 | |
| 	(fhandler_dev_zero::msync): Ditto.
 | |
| 	(fhandler_dev_zero::fixup_mmap_after_fork): Ditto.
 | |
| 	* mmap.cc: Implement anonymous mapping using fhandler_dev_zero class.
 | |
| 	Implement private anonymous maps using VirtualAlloc/VirtualFree.  Fix
 | |
| 	or add some more comments.
 | |
| 	(fh_paging_file): Change to type fhandler_dev_zero.
 | |
| 	(priv): New static inline function to avoid having lots of flag bit
 | |
| 	tests in the code.  Use throughout were appropriate.
 | |
| 	(fixed): Ditto.
 | |
| 	(anonymous): Ditto.
 | |
| 	(noreserve): Ditto.
 | |
| 	(autogrow): Ditto.
 | |
| 	(gen_protect): Never generate PAGE_WRITECOPY protection for
 | |
| 	private anonymous maps.
 | |
| 	(gen_access): Drop FILE_MAP_EXECUTE handling since it's not supported
 | |
| 	correctly on 9x.
 | |
| 	(VirtualProt9x): Move comment from mmap64 here.
 | |
| 	(mmap_record::mmap_record): Gegerate correct device entry for
 | |
| 	anonymous maps, though unused right now.
 | |
| 	(mmap_record::priv): Call global priv function.
 | |
| 	(mmap_record::fixed): Call global fixed function.
 | |
| 	(mmap_record::anonymous): Call global anonymous function.
 | |
| 	(mmap_record::noreserve): Call global noreserve function.
 | |
| 	(mmap_record::autogrow): Call global autogrow function.
 | |
| 	(list::anonymous): New method.  Use throughout were appropriate.
 | |
| 	(mmap_record::compatible_flags): Drop now useless ifdef.
 | |
| 	(mmap_record::alloc_page_map): Accommodate private anonymous maps.
 | |
| 	(mmap_record::map_pages): Accommodate MAP_NORESERVE mappings.
 | |
| 	(mmap_record::unmap_pages): Accommodate private anonymous maps.
 | |
| 	(mmap64): Simplify argument check.  Don't remove the MAP_PRIVATE flag
 | |
| 	for anonymous mappings on 9x anymore since that's now handled
 | |
| 	gracefully.
 | |
| 	(mprotect): Accommodate MAP_NORESERVE mappings.  Fix case when
 | |
| 	non-mmap areas are just MEM_RESERVEd.
 | |
| 	(fhandler_dev_zero::mmap): Implement anonymous mapping here.
 | |
| 	(fhandler_dev_zero::munmap): Ditto.
 | |
| 	(fhandler_dev_zero::msyn): Ditto.
 | |
| 	(fhandler_dev_zero::fixup_mmap_after_fork): Ditto.
 | |
| 	(fixup_mmaps_after_fork): Accommodate private anonymous maps.  Enhance
 | |
| 	debug output in case VirtualProtect fails.
 | |
| 	* include/sys/mman.h: Really define MAP_NORESERVE now.
 | |
| 
 | |
| 2005-11-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (NtCreateSection): Define.
 | |
| 	* cygheap.cc (_csbrk): Call getpagesize instead of getshmlba.
 | |
| 	* dcrt0.cc (dll_crt0_0): Call mmap_init.
 | |
| 	* external.cc (cygwin_internal): Call getpagesize instead of getshmlba.
 | |
| 	* fhandler.h (fhandler_base::mmap): Change access to prot parameter.
 | |
| 	(fhandler_base::fixup_mmap_after_fork): Ditto.
 | |
| 	(fhandler_disk_file::mmap): Ditto.
 | |
| 	(fhandler_disk_file::fixup_mmap_after_fork): Ditto.
 | |
| 	(fhandler_dev_mem::mmap): Ditto.
 | |
| 	(fhandler_dev_mem::fixup_mmap_after_fork): Ditto.
 | |
| 	* fhandler_mem.cc (fhandler_dev_mem::write): Call getsystempagesize
 | |
| 	instead of getpagesize.
 | |
| 	(fhandler_dev_mem::read): Ditto.
 | |
| 	(fhandler_dev_mem::fstat): Ditto.
 | |
| 	(fhandler_dev_mem::mmap): Move to mmap.cc.
 | |
| 	(fhandler_dev_mem::munmap): Ditto.
 | |
| 	(fhandler_dev_mem::msync): Ditto.
 | |
| 	(fhandler_dev_mem::fixup_mmap_after_fork): Ditto.
 | |
| 	* fhandler_proc.cc (format_proc_meminfo): Call getsystempagesize
 | |
| 	instead of getpagesize.
 | |
| 	* fhandler_process.cc (format_process_stat): Ditto.
 | |
| 	(format_process_status): Ditto.
 | |
| 	(get_mem_values): Ditto.
 | |
| 	* mmap.cc: Fix formatting.  Try to make more readable and modular.
 | |
| 	Take advantage of pagesize==granularity.
 | |
| 	(gen_protect): New static function to evaluate Windows
 | |
| 	protection bits from POSIX protection and flags.
 | |
| 	(gen_access): Ditto for Windows access mode.
 | |
| 	(VirtualProt9x): Wrapper function to call VirtualProtect on 9x.
 | |
| 	(VirtualProtNT): Ditto for NT.
 | |
| 	(VirtualProtEx9x): Ditto for VirtualProtectEx on 9x.
 | |
| 	(VirtualProtExNT): Ditto for NT.
 | |
| 	(CreateMapping9x): Wrapper function for creating a mapping handle on 9x.
 | |
| 	(CreateMappingNT): Ditto for NT.
 | |
| 	(MapView9x): Wrapper function to map a view on 9x.
 | |
| 	(MapViewNT): Ditto for NT.
 | |
| 	(mmap_funcs_9x): Structure containing function pointers to wrapper
 | |
| 	functions for 9x.
 | |
| 	(mmap_funcs_nt): Ditto for NT.
 | |
| 	(mmap_func): Pointer to wrapper functions used in subsequent code.
 | |
| 	(mmap_init): Initialize mmap_func depending on OS.
 | |
| 	(class mmap_record): Use sensible member names.  Add POSIX protection
 | |
| 	member. Drop Windows access flags member.  Constify more methods.
 | |
| 	Use accessors instead of direct member access inside of own methods.
 | |
| 	(mmap_record::gen_protect): Class wrapper to evaluate matching
 | |
| 	Windows protection bits.
 | |
| 	(mmap_record::gen_access): Ditto for Windows access flags.
 | |
| 	(mmap_record::compatible_flags): New function to check if flags are
 | |
| 	compatible with flags of existing map.
 | |
| 	(list::add_record): Drop offset and length arguments.
 | |
| 	(class map): Change counters to unsigned.  Match usage throughout.
 | |
| 	(mmapped_areas): Convert from pointer to global struct.
 | |
| 	(mmap_record::alloc_page_map): Simplify.
 | |
| 	(mmap_record::map_pages): Ditto.
 | |
| 	(mmap_record::fixup_page_map): Delete.
 | |
| 	(mmap64): Simplify.  Add workaround for Windows 98 bug.  Fix bug on
 | |
| 	NT that existing anonymous mappings weren't searched for a match.
 | |
| 	(munmap): Add workaround for Windows 98 bug.
 | |
| 	(msync): Simplify.
 | |
| 	(mprotect): Handle existing maps correctly.
 | |
| 	(mlock): Add local pagesize variable and enlightening comment.
 | |
| 	(fhandler_disk_file::mmap): Main functionality now in CreateMapping/
 | |
| 	MapView wrapper functions.
 | |
| 	(fhandler_disk_file::fixup_mmap_after_fork): Call MapView wrapper.
 | |
| 	(fhandler_dev_mem::mmap): Moved from fhandler_mem.cc.  Simplify by
 | |
| 	calling MapViewNT.
 | |
| 	(fhandler_dev_mem::munmap): Moved from fhandler_mem.cc.
 | |
| 	(fhandler_dev_mem::msync): Ditto.
 | |
| 	(fhandler_dev_mem::fixup_mmap_after_fork): Ditto.  Call MapViewNT.
 | |
| 	(fixup_mmaps_after_fork): Restructure and hopefully speed up loop for
 | |
| 	setting protection and memory content on MAP_PRIVATE maps.
 | |
| 	* ntdll.h (AT_ROUND_TO_PAGE): Remove define.
 | |
| 	(AT_EXTENDABLE_FILE): Add define.
 | |
| 	(NtCreateSection): Add prototype.
 | |
| 	* syscalls.cc (getpagesize): Return granularity as pagesize now.
 | |
| 	(getsystempagesize): New function to retrieve "real" pagesize.
 | |
| 	(getshmlba): Delete since it's replaced by getpagesize now.
 | |
| 	* wincap.h (wincaps::has_mmap_alignment_bug): New element.
 | |
| 	* wincap.cc: Implement above element throughout.
 | |
| 	* winsup.h (getshmlba): Drop prototype.
 | |
| 	(getsystempagesize): Add prototype.
 | |
| 	(mmap_init): Ditto.
 | |
| 	* include/sys/mman.h: (Not yet) define MAP_NORESERVE.
 | |
| 
 | |
| 2005-11-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Don't rely on
 | |
| 	has_acl() state for evaluating inodes.  Temporarily(?) enable "real"
 | |
| 	inodes for remote drives.
 | |
| 
 | |
| 2005-11-25  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* heap.cc: Remove spurious getpagesize declaration.
 | |
| 
 | |
| 2005-11-25  Christian Franke  <Christian.Franke@t-online.de>
 | |
| 
 | |
| 	* exceptions.cc (ctrl_c_handler): Distinguish CTRL-BREAK from CTRL-C in
 | |
| 	some cases.
 | |
| 
 | |
| 2005-11-23  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::open): Reset the current windows
 | |
| 	station whenever ctty == -1 regardles of whether there's a windows
 | |
| 	station already assigned.  Close the old windows station in this
 | |
| 	situation.
 | |
| 	* pinfo.cc (_pinfo::set_ctty): Reinstate incrementing of console count
 | |
| 	when recording ctty so that the current tty is always around.
 | |
| 	* autoload.cc (CloseWindowStation): Define.
 | |
| 
 | |
| 2005-11-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* strptime.cc (_strptime): Fix gcc warnings.
 | |
| 
 | |
| 2005-11-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* memmem.cc: Move from here.
 | |
| 	* lib/memmem.cc: Move to here.
 | |
| 
 | |
| 2005-11-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* libc: Add subdirectory.
 | |
| 	* Makefile.in (VPATH): Add libc subdir.
 | |
| 	(DLL_OFILES): Add strptime.o and timelocal.o.
 | |
| 	* cygwin.din: Export timelocal and timegm.
 | |
| 	* localtime.cc: Define STD_INSPIRED unconditionally.
 | |
| 	* include/cygwin/time.h (timelocal): Add declaration.
 | |
| 	(timegm): Ditto.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 	* libc/strptime.cc: New file.
 | |
| 	* libc/timelocal.cc: New file.
 | |
| 	* libc/timelocal.h: New file.
 | |
| 
 | |
| 2005-11-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/cygwin/sys_time.h: Move futimes and lutimes declaration here
 | |
| 	from newlib.
 | |
| 
 | |
| 2005-11-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* times.cc (timezone): Put back (void).
 | |
| 	* include/cygwin/time.h: Add more cygwin stuff from newlib.
 | |
| 
 | |
| 2005-11-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/cygwin/sys_time.h: Rename from include/cygwin/time.h.
 | |
| 	* include/cygwin/time.h: New file.
 | |
| 
 | |
| 2005-11-17  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fork.cc (fork): Move top-of-stack calculation later.
 | |
| 
 | |
| 	* pinfo.cc (_pinfo::set_ctty): Use __ctty to print current console in
 | |
| 	debugging output.
 | |
| 
 | |
| 2005-11-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::open):  Don't expect that
 | |
| 	service applications have no window station attached.
 | |
| 
 | |
| 2005-11-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* times.cc (hires_ms::prime): Don't escalate the priority.
 | |
| 
 | |
| 2005-11-14  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/sys/elf64.h: Fix types to reflect linux usage.
 | |
| 
 | |
| 2005-11-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 	    Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_console::fixup_after_fork_exec): Define with
 | |
| 	additional bool parameter.
 | |
| 	(fhandler_console::fixup_after_exec): Accommodate
 | |
| 	fixup_after_fork_exec's parameter.
 | |
| 	(fhandler_console::fixup_after_fork): Ditto.
 | |
| 	* fhandler_console.cc (fhandler_console::fixup_after_fork_exec): Avoid
 | |
| 	opening new console only when close_on_exec AND execing.
 | |
| 
 | |
| 2005-11-14  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_console::fixup_after_fork_exec): Declare new function.
 | |
| 	(fhandler_console::fixup_after_fork): Use fixup_after_fork_exec.
 | |
| 	(fhandler_console::fixup_after_exec): Ditto.
 | |
| 	* fhandler_console.cc (fhandler_console::fixup_after_fork): Delete definition.
 | |
| 	(fhandler_console::fixup_after_fork_exec): Rename from fixup_after_exec.
 | |
| 	* pinfo.cc (_pinfo::set_ctty): Don't play with console count here.
 | |
| 	* syscalls.cc (close_all_files): Don't close cygheap ctty if hExeced
 | |
| 	since the child will be copying information from us.
 | |
| 	(setsid): Use myctty() rather than raw ctty #.
 | |
| 
 | |
| 2005-11-13  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygheap.h (init_cygheap::manage_console_count): Declare new function.
 | |
| 	(init_cygheap::console_count): Renamed from open_fhs.  Make private.
 | |
| 	* cygheap.cc (init_cygheap::manage_console_count): Define new function.
 | |
| 	* dtable.cc (dtable::fixup_after_exec): Always call fixup_after_exec on
 | |
| 	elements of fd even when they are about to be closed.
 | |
| 	* fhandler.h (report_tty_counts): Remove open_fhs from debugging
 | |
| 	output.
 | |
| 	* fhandler_console.cc (fhandler_console::open): Use
 | |
| 	manage_console_count rather than manipulating count directly.
 | |
| 	(fhandler_console::close): Ditto.
 | |
| 	(fhandler_console::fixup_after_fork): Ditto.
 | |
| 	(fhandler_console::fixup_after_exec): Ditto.  Don't close handles if
 | |
| 	close_on_exec.
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::open): Use
 | |
| 	manage_console_count() rather than manipulating count directly.
 | |
| 	Reflect change in arguments to report_tty_counts().
 | |
| 	(fhandler_tty_slave::close): Ditto for both.
 | |
| 	(fhandler_tty_slave::dup): Ditto for both.
 | |
| 	(fhandler_tty_slave::ioctl): Use myctty() rather than raw ctty #.
 | |
| 	(fhandler_tty_slave::fixup_after_fork): Reflect change in arguments to
 | |
| 	report_tty_counts().
 | |
| 	(fhandler_tty_master::init_console): Use manage_console_count() rather
 | |
| 	than manipulating count directly.
 | |
| 	* fhandler_clipboard.cc (fhandler_dev_clipboard::fixup_after_exec):
 | |
| 	Don't perform any operations if close_on_exec.
 | |
| 	* fhandler_dsp.cc (fhandler_dev_dsp::fixup_after_exec): Ditto.
 | |
| 	* fhandler_raw.cc (fhandler_dev_raw::fixup_after_exec): Ditto.
 | |
| 	* fhandler_serial.cc (fhandler_serial::fixup_after_exec): Ditto.
 | |
| 	* pinfo.h (_pinfo::_ctty): Declare new function.
 | |
| 	(myctty): Declare new macro.
 | |
| 	(__ctty): Declare new macro.
 | |
| 	* pinfo.cc (_pinfo::_ctty): Define new function.
 | |
| 	(_pinfo::set_ctty): Use manage_console_count() rather than manipulating
 | |
| 	count directly.
 | |
| 	* signal.cc (kill_pgrp): Use myctty() and __ctty() macros rather than
 | |
| 	raw ctty #.
 | |
| 	* syscalls.cc (setsid): Ditto.  Use manage_console_count() rather than
 | |
| 	manipulating count directly.
 | |
| 
 | |
| 2005-11-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::recvfrom): Just return 0 (EOF)
 | |
| 	in case of WSAESHUTDOWN.
 | |
| 	(fhandler_socket::recvmsg): Ditto.
 | |
| 	* poll.cc (poll): Set revents to POLLIN instead of POLLHUP. Add comment.
 | |
| 
 | |
| 2005-11-11  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygheap.h (init_cygheap::_gtod): Remove.
 | |
| 	* cygwin.din: Export clock_getres and clock_setres.
 | |
| 	* hires.h (hires_ms::minperiod): Delete declaration.
 | |
| 	(hires_ms::began_period): Ditto.
 | |
| 	(hires_ms::prime): Make void.
 | |
| 	(hires_ms::resolution): Just define here.
 | |
| 	(hires_ms::usecs): Remove unneeded argument.
 | |
| 	(gtod): Redeclare as a variable.
 | |
| 	* timer.cc (timer_thread): Eliminate argument to gtod.usecs().
 | |
| 	(timer_tracker::gettime): Ditto.
 | |
| 	(timer_tracker::settime): Ditto.
 | |
| 	* times.cc (gettimeofday): Ditto.
 | |
| 	(hires_ms::began_period): Delete declaration.
 | |
| 	(hires_us::prime): Remove debugging.
 | |
| 	(hires_ms::prime): Make void.  Eliminate period stuff.
 | |
| 	(hires_ms::usecs): Eliminate argument to gtod.usecs().
 | |
| 	(hires_ms::resolution): New function.
 | |
| 	(clock_getres): Ditto.
 | |
| 	(clock_setres): Ditto.
 | |
| 	* version.h: Bump API version to 143.
 | |
| 	* include/cygwin/time.h: New file.
 | |
| 
 | |
| 2005-11-10  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* times.cc (hires_ms::prime): Comment out call to timeBeginPeriod for
 | |
| 	now.
 | |
| 	(hires_ms::usecs): Call prime if haven't called began_period().
 | |
| 
 | |
| 	* param.h: Don't define stuff that is already defined in endian.h.
 | |
| 
 | |
| 2005-11-10  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/endian.h: Remove USE_BSD ifdef since it is never defined on
 | |
| 	Cygwin.
 | |
| 
 | |
| 2005-11-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syslog.cc (setlogmask): Don't mask the mask.
 | |
| 	(vsyslog): Fix priority check.
 | |
| 
 | |
| 2005-11-10  Scott Finneran  <scottf@pacom.com>
 | |
| 
 | |
| 	* include/cygwin/signal.h: Add missing sigrelse prototype.
 | |
| 
 | |
| 2005-11-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_base.cc (fhandler_base::readv): Free buf, not a pointer into
 | |
| 	the middle of buf.
 | |
| 
 | |
| 2005-11-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* memmem.cc: New file.
 | |
| 	* include/cygwin/version.h: Bump API version number to 142.
 | |
| 	* cygwin.din: Export memmem.
 | |
| 	* Makefile.in: Build memmem.o.
 | |
| 
 | |
| 2005-11-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* environ.cc (spenvs): Make "SYSTEMDRIVE" an "always export".
 | |
| 
 | |
| 2005-11-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* times.cc (futimes): Redirect to utimes_worker if given file
 | |
| 	descriptor is opened R/O.
 | |
| 
 | |
| 2005-11-06  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_0): Initialize security data first so that it can
 | |
| 	be used by subsequent handle creation.
 | |
| 
 | |
| 2005-11-04  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygheap.h (init_cygheap::_gtod): New hires_ms element.
 | |
| 	* hires.h (hires_ms::minperiod): Remove static designation.
 | |
| 	(hires::began_period): New field.
 | |
| 	* signal.cc: Include headers required for cygheap.h now that gtod lives
 | |
| 	in the cygheap.
 | |
| 	* timer.c: Ditto.
 | |
| 	* times.cc (gtod): Delete variable.
 | |
| 	(gtod::minperiod): Ditto.
 | |
| 	(gtod::began_period): Define.
 | |
| 	(hires_ms::prime): Add more debugging output.  Call timeBeginPeriod
 | |
| 	only when !began_period.
 | |
| 
 | |
| 2005-11-04  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* times.cc (hires_ms::prime): More debugging.
 | |
| 	(hires_ms::usecs): Ditto.
 | |
| 
 | |
| 2005-11-03  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* times.cc (stupid_printf): Define and use throughout -- temporarily.
 | |
| 
 | |
| 2005-11-03  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* times.cc (hires_ms::prime): Add lots of temporary debugging output.
 | |
| 
 | |
| 2005-11-02  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* times.cc (hires_ms::minperiod): Make copy-on-fork.
 | |
| 	(gettimeofday): Remove temporary debugging.
 | |
| 	(hires_us::prime): Add lots of temporary debugging output.
 | |
| 
 | |
| 2005-11-02  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* times.cc (gettimeofday): Add temporary debugging output.
 | |
| 
 | |
| 2005-11-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/sys/cygwin.h: Define CYGWIN_SIGNAL_STRING.
 | |
| 	* exceptins.cc (sigpacket::process): Send a _CYGWIN_SIGNAL_STRING to
 | |
| 	gdb if the process is being debugged.  A WIP.
 | |
| 
 | |
| 2005-10-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* exceptions.cc (signal_exit): Eliminate setting of main thread
 | |
| 	priority since process lock should make that unnecessary.
 | |
| 	* fork.cc (stack_base): Eliminate.
 | |
| 	(frok::parent): Subsume stack_base and just set stack stuff here.
 | |
| 	Report on priority class in debugging output.
 | |
| 	* spawn.cc (spawn_guts): Report on priority class in debugging output.
 | |
| 
 | |
| 2005-10-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fork.cc (frok::child): Change order of cleanup prior to return.
 | |
| 	(fork): Save more of the stack.
 | |
| 
 | |
| 	* gendef: Fix some comments.
 | |
| 
 | |
| 	* sigproc.cc (wait_sig): Clarify debug output.
 | |
| 
 | |
| 2005-10-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* child_info.h (CHILD_INFO_MAGIC): Reset.
 | |
| 
 | |
| 2005-10-24  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (_pinfo::fds): Lock fdtab while enumerating.
 | |
| 
 | |
| 2005-10-24  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* spawn.cc (spawn_guts): Don't leave the function with return inside
 | |
| 	pthread cleanup brackets.
 | |
| 
 | |
| 2005-10-24  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygheap.h (cygheap_fdenum): Remove start_fd stuff.
 | |
| 	(cygheap_fdenum::rewind): Ditto.
 | |
| 	* pipe.cc (fhandler_pipe::open): Lock fdtab while enumerating.
 | |
| 	* times.cc (utimes_worker): Ditto.
 | |
| 
 | |
| 2005-10-23  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygheap.h (cygheap_fdenum::cygheap_fdenum): Record locked state or
 | |
| 	suffer deadlocks.
 | |
| 	(class locked_process): Move to another header.
 | |
| 	* sync.h (lock_process): Define here.
 | |
| 	* cygtls.cc (_cygtls::fixup_after_fork): Reset spinning state as well
 | |
| 	as stacklock state.
 | |
| 	* dcrt0.cc (lock_process::locker): Define.
 | |
| 	(dtable::lock_cs): Delete.
 | |
| 	(dll_crt0_0): Initialize process lock here ASAP.
 | |
| 	* dtable.cc (dtable_init): Eliminate call to init_lock().
 | |
| 	(dtable::fixup_after_fork): Ditto.
 | |
| 	(dtable::init_lock): Delete definition.
 | |
| 	* dtable.h (dtable::init_lock): Delete declaration.
 | |
| 	(dtable::lock): Use process lock rather than dtable-specific lock.
 | |
| 	(dtable::unlock): Ditto.
 | |
| 
 | |
| 	* sigproc.cc (sigproc_init): Minor change to debugging output.
 | |
| 
 | |
| 	* times.cc (utime_worker): Use build_fh_pc rather than reinterpreting
 | |
| 	the posix path name again.  Return any error from path_conv immediately.
 | |
| 
 | |
| 2005-10-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::connect): Don't restrict
 | |
| 	WSAEINVAL -> WSAEISCONN conversion to nonblocking sockets.
 | |
| 	(fhandler_socket::accept): Use event driven technique to implement
 | |
| 	interuptible accept.
 | |
| 	(fhandler_socket::wait): Allow FD_ACCEPT handling.
 | |
| 	* net.cc (cygwin_accept): Remove workaround for allowing blocking
 | |
| 	accept.  That's entirely in fhandler_socket::accept now.
 | |
| 
 | |
| 2005-10-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_socket): Add timeout parameter to wait()
 | |
| 	method.
 | |
| 	* fhandler_socket.cc (fhandler_socket::connect): Use event driven
 | |
| 	technique (prepare/wait/release) to implement interuptible connect.
 | |
| 	(fhandler_socket::wait): Add timeout parameter.  Allow FD_CONNECT
 | |
| 	handling.
 | |
| 	* net.cc (cygwin_connect): Remove braindead workaround for allowing
 | |
| 	blocking connect.  That's entirely in fhandler_socket::connect now.
 | |
| 
 | |
| 2005-10-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/version.h: Fix typo.
 | |
| 
 | |
| 2005-10-21  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dir.cc (rmdir): Eliminate nonsensical code.
 | |
| 
 | |
| 	* fork.cc (fork): Move exit debug_printf to last statement.
 | |
| 
 | |
| 2005-10-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (futimes): Export.
 | |
| 	(lutimes): Export.
 | |
| 	* times.cc (utimes_worker): Created from utimes, add nofollow flag
 | |
| 	to implement utimes and lutimes.
 | |
| 	(utimes): Just call utimes_worker.
 | |
| 	(lutimes): New function.
 | |
| 	(futimes): Ditto.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 
 | |
| 2005-10-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.cc (child_info::sync): Move check for !wr_proc_pipe lower.
 | |
| 	* spawn.cc (spawn_guts): Correct check for top-level process.
 | |
| 
 | |
| 2005-10-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc: Revert loading rcmd, rexec, rresvport and inet_network
 | |
| 	from wsock32.dll since these symbols are not exported from ws2_32.dll.
 | |
| 
 | |
| 2005-10-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* times.cc (utimes): Only consider fds opened with write access.
 | |
| 
 | |
| 2005-10-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::utimes_fs): Use existing handle
 | |
| 	if fhandler has one.
 | |
| 	* times.cc (utimes): Scan open fds for matching paths and use existing
 | |
| 	fhandler if one exists.
 | |
| 
 | |
| 2005-10-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (_pinfo::dup_proc_pipe): Make warning more severe by
 | |
| 	actually printing it.
 | |
| 	(_pinfo::alert_parent): Fix comment.  Don't send to parent if we are in
 | |
| 	an exec stub.
 | |
| 
 | |
| 2005-10-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.cc (handle_threadlist_exception): Improve diagnostic output.
 | |
| 
 | |
| 	* sigproc.cc (child_info::sync): Only clear hProcess when execing.
 | |
| 	(wait_sig): Protect readsig handle.
 | |
| 
 | |
| 2005-10-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (NtLockVirtualMemory): Import.
 | |
| 	(NtUnlockVirtualMemory): Import.
 | |
| 	(GetProcessWorkingSetSize): Import.
 | |
| 	(SetProcessWorkingSetSize): Import.
 | |
| 	* cygwin.din (mlock): Export.
 | |
| 	(munlock): Export.
 | |
| 	* mmap.cc (mlock): New function.
 | |
| 	(munlock): Ditto.
 | |
| 	* ntdll.h (STATUS_WORKING_SET_QUOTA): Define.
 | |
| 	(LOCK_VM_IN_WSL): Define.
 | |
| 	(LOCK_VM_IN_RAM): Define.
 | |
| 	(NtLockVirtualMemory): Declare.
 | |
| 	(NtUnlockVirtualMemory): Declare.
 | |
| 	* sysconf.cc (sysconf): Implement _SC_MEMLOCK_RANGE.
 | |
| 	* wincap.h: Implement has_working_virtual_lock throughout.
 | |
| 	* wincap.cc: Ditto.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 	* include/sys/mman.h (mlock): Declare,
 | |
| 	(munlock): Declare.
 | |
| 
 | |
| 2005-10-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.cc (child_info::sync): Use correct name when closing to
 | |
| 	prevent warnings when DEBUGGING.
 | |
| 	* spawn.cc (spawn_guts): Set myself.hProcess to pi.hProcess since this
 | |
| 	may have been zeroed by the previous sync.
 | |
| 
 | |
| 2005-10-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.cc (child_info::sync): Fix typo which caused hProcess to
 | |
| 	never be cleared.  Only clear hProcess when not forking.
 | |
| 
 | |
| 2005-10-17  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	Change process_lock to lock_process throughout.
 | |
| 	Change all calls to new cygthread to handle extra argument, throughout.
 | |
| 	* cygthread.h (cygthread::callproc): Declare new method.
 | |
| 	(cygthread::cygthread): Add optional length argument to allow copying
 | |
| 	arguments to executing thread.
 | |
| 	* cygthread.cc (cygthread::callproc): Define new method.
 | |
| 	(cygthread::stub): Use callfunc to invoke thread func to allow
 | |
| 	potentially allocating stack memory which will be returned.
 | |
| 	(cygthread::simplestub): Ditto.
 | |
| 	(cygthread::cygthread): Accept arglen argument.  Reset ev here prior to
 | |
| 	activating thread.  Wait for ev after activating thread if we're
 | |
| 	copying contents to the thread.  Wait until the end before setting h,
 | |
| 	to allow thread synchronization.
 | |
| 	(cygthread::release): Don't reset ev here.  Rely on that happening the next
 | |
| 	time the thread is activated.
 | |
| 	* pinfo.h (commune_process): Rename declaration from _pinfo::commune_process.
 | |
| 	* pinfo.cc (commune_process): Ditto for definition.  Modify slightly to allow
 | |
| 	running as a separate cygthread.
 | |
| 	* sigproc.cc (child_info::sync): Always wait for both subproc_ready and
 | |
| 	any hProcess if we have a cygwin parent.
 | |
| 	(talktome): Change argument to be a pointer to siginfo_t.  Contiguously
 | |
| 	allocate whole siginfo_t structure + any needed extra for eventual passing
 | |
| 	to commune_process thread.
 | |
| 	(wait_sig): Accommodate change in talktome argument.
 | |
| 
 | |
| 	* pipe.cc (fhandler_pipe::fixup_after_exec): Remove debugging.
 | |
| 
 | |
| 2005-10-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc: Never load wsock32.dll. Load all wsock32 function
 | |
| 	from ws2_32.  Rearrange symbol order accordingly.  None of the ws2_32
 | |
| 	functions is optional right now.
 | |
| 	(wsadata): Move from net.cc here.  Define NO_COPY.
 | |
| 	(wsock_init): Drop unused symbols ws2_32_handle and wsock32_handle.
 | |
| 	(load_wsock32): Remove.
 | |
| 	(WSACleanup): Remove.
 | |
| 	* fhandler_socket.cc: Drop Winsock 1 accommodations throughout.
 | |
| 	(fhandler_socket::readv): Accommodate new POSIX style struct msghdr.
 | |
| 	(fhandler_socket::writev): Ditto.
 | |
| 	(fhandler_socket::recvmsg): Ditto. Handle "old" applications using
 | |
| 	former struct msghdr correctly.
 | |
| 	* net.cc: Drop Winsock 1 accommodations throughout.
 | |
| 	(wsadata): Move definition to autoload.cc.
 | |
| 	(set_socket_inheritance): Remove.
 | |
| 	(convert_ws1_ip_optname): New static function to convert Winsock1
 | |
| 	IPPROTO_IP option values into Winsock2 IPPROTO_IP option values.
 | |
| 	(cygwin_setsockopt): Remove wrong and incomplete cleartext printing
 | |
| 	of optname.  For "old" applications, convert optname from Winsock1
 | |
| 	to Winsock2 values before using them.  Add comment to describe the
 | |
| 	IP_TOS weirdness on W2K and above.
 | |
| 	(cygwin_getsockopt): Remove wrong and incomplete cleartext printing
 | |
| 	of optname.  For "old" applications, convert optname from Winsock1
 | |
| 	to Winsock2 values before using them.
 | |
| 	* select.cc (start_thread_socket): Forget about winsock2_active.
 | |
| 	* winsup.h (wsock32_handle): Remove declaration.
 | |
| 	(ws2_32_handle): Ditto.
 | |
| 	(netapi32_handle): Ditto.
 | |
| 	(wsadata): Ditto.
 | |
| 	(winsock2_active): Remove definition.
 | |
| 	* include/cygwin/socket.h: Change formatting slightly.
 | |
| 	(socklen_t): Move definition up in file.
 | |
| 	(struct msghdr): Convert to POSIX style.
 | |
| 	(struct cmsghdr): New type.
 | |
| 	(CMSG_ALIGN): New macro.
 | |
| 	(CMSG_LEN): Ditto.
 | |
| 	(CMSG_SPACE): Ditto.
 | |
| 	(CMSG_FIRSTHDR): Ditto.
 | |
| 	(CMSG_NXTHDR): Ditto.
 | |
| 	(CMSG_DATA): Ditto.
 | |
| 	(SCM_RIGHTS): Ditto.
 | |
| 	(struct OLD_msghdr): Define old msghdr structure for Cygwin internal
 | |
| 	purposes.
 | |
| 	(MSG_TRUNC): New macro.
 | |
| 	(MSG_CTRUNC): Ditto.
 | |
| 	(IP_OPTIONS): Redefine IPPROTO_IP option values to Winsock2 values.
 | |
| 	Keep Winsock1 values for Cygwin internal purposes.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 	(CYGWIN_VERSION_CHECK_FOR_USING_ANCIENT_MSGHDR): Define to check for
 | |
| 	applications using old struct msghdr.
 | |
| 	(CYGWIN_VERSION_CHECK_FOR_USING_WINSOCK1_VALUES): Define to check for
 | |
| 	applications using old Winsock1 IPPROTO_IP values.
 | |
| 
 | |
| 2005-10-13  David Rothenberger <daveroth@acm.org>
 | |
| 	   Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* Makefile.in (MKDIRP): Just use raw $(INSTALL) rather than
 | |
| 	$(INSTALL_DATA).  Create directories with 755 permissions.
 | |
| 
 | |
| 2005-10-12  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dir.cc (mkdir): Abandon use of PC_WRITABLE.
 | |
| 	(rmdir): Ditto.
 | |
| 	* path.h (PC_WRITABLE): Delete.
 | |
| 	* path.cc (path_conv::check): Remove PC_WRITABLE accommodations.
 | |
| 	Revisit later.
 | |
| 
 | |
| 2005-10-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::rmdir): Convert an
 | |
| 	ERROR_INVALID_FUNCTION into an ERROR_FILE_NOT_FOUND.  Add comment
 | |
| 	to explain why.
 | |
| 
 | |
| 2005-10-11  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* Makefile.in: Make sure that directories are created prior to copying
 | |
| 	to them.
 | |
| 
 | |
| 2005-10-11  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* net.cc (cygwin_gethostbyname): Remove debugging.
 | |
| 
 | |
| 2005-10-11  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syslog.cc (try_connect_syslogd): Add priority parameter. Use writev
 | |
| 	to add the priority to the message in a syslog conformant way.
 | |
| 	(vsyslog): If facility isn't set in the priority, use default facility
 | |
| 	as given in call to openlog. Fix agressive use of spaces in syslog
 | |
| 	output. Call try_connect_syslogd with priority parameter.
 | |
| 
 | |
| 2005-10-11  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* (symlink_info::set_error): Change to return bool if input error
 | |
| 	should be ignored.
 | |
| 	(symlink_info::check): Treat path as a normal file if set_error returns
 | |
| 	false.
 | |
| 
 | |
| 2005-10-03  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygheap.h (class process_lock): New class.
 | |
| 	* dtable.h (class dtable): Add class process_lock as a friend.
 | |
| 	* dcrt0.cc (get_exit_lock): Delete.
 | |
| 	(do_exit): Use process_lock class instead of get_exit_lock.
 | |
| 	* exceptions.cc (signal_exit): Ditto.
 | |
| 	* pinfo.cc (pinfo::exit): Ditto.
 | |
| 	(_pinfo::commune_process): Set process lock around this whole function.
 | |
| 	(_pinfo::commune_request): Use process_lock rather than myself.lock.
 | |
| 	* pinfo.h (pinfo::_lock): Delete.
 | |
| 	(pinfo::initialize_lock): Delete.
 | |
| 	(pinfo::lock): Delete.
 | |
| 	(pinfo::unlock): Delete.
 | |
| 	* winsup.h (get_exit_lock): Delete declaration.
 | |
| 
 | |
| 2005-10-03  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* uname.cc (uname): Disable use of GetNativeSystemInfo.
 | |
| 
 | |
| 2005-10-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (get_exit_lock): Use myself.lock rather than exit_lock.
 | |
| 	* exceptions.cc (exit_lock): Delete.
 | |
| 	(events_init): Don't init exit_lock.
 | |
| 	* (_pinfo::commune_process): Add per-PICOM debugging.
 | |
| 	* sigproc.cc (talktome): Add some temporary debugging statements.
 | |
| 
 | |
| 	* fhandler_proc.cc (format_proc_cpuinfo): Cosmetic change.
 | |
| 	(format_proc_partitions): Ditto.
 | |
| 	* syscalls.cc (locked_append): Ditto.
 | |
| 
 | |
| 2005-09-30  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (do_exit): Don't set ES_SET_MUTO here.  Call get_exit_lock()
 | |
| 	instead.
 | |
| 	(get_exit_lock): New function.  Grabs the lock and sets initial
 | |
| 	exit_state.
 | |
| 	* exceptions.cc (try_to_debug): Use low_priority_sleep.
 | |
| 	(sigpacket::process): Avoid handler if this is an exec stub.
 | |
| 	(signal_exit): Use get_exit_lock rather than manipulating the exit_lock
 | |
| 	critical section directly.
 | |
| 	* pinfo.cc (pinfo::exit): Ditto.
 | |
| 	* winsup.h (get_exit_lock): Declare.
 | |
| 	(exit_lock): Delete declaration.
 | |
| 
 | |
| 2005-09-30  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc: Change calls to pc.set_attributes into
 | |
| 	calls to pc.file_attributes throughout.
 | |
| 	* path.h (class path_conv): Remove superfluous set_attributes method.
 | |
| 
 | |
| 2005-09-30  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Use
 | |
| 	fhandler method to access major device number.  Add comment to
 | |
| 	explain floppy weirdness.
 | |
| 
 | |
| 2005-09-30  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Also use
 | |
| 	attributes stored in this->pc if call to GetFileInformationByHandle
 | |
| 	failed.
 | |
| 
 | |
| 2005-09-30  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Only write
 | |
| 	attributes if call to GetFileInformationByHandle was successful.
 | |
| 
 | |
| 2005-09-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fork.cc (frok::parent): Simplify error messages.  Don't issue an
 | |
| 	error when child.remember fails.
 | |
| 	(fork): When appropriate, build up an error message from grouped.error.
 | |
| 
 | |
| 2005-09-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Don't call
 | |
| 	EX ioctls on floppy drives.
 | |
| 
 | |
| 2005-09-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* dir.cc (mkdir): Check for trailing /. or /.. component.
 | |
| 	(rmdir): Ditto.
 | |
| 	* path.cc (has_dot_last_component): New function.
 | |
| 	* path.h (has_dot_last_component): Add declaration.
 | |
| 
 | |
| 2005-09-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* crt0.cc: Remove PPC considerations.
 | |
| 	(WinMainCRTStartup): Add symbol as alias to mainCRTStartup.
 | |
| 
 | |
| 2005-09-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	Change name from commune_recv to commune_process throughout.
 | |
| 	Change name from commune_send to commune_request throughout.
 | |
| 	* pinfo.h (PICOM_EXTRASTR): New flag.
 | |
| 	(PICOM_FIFO): Define with new flag.
 | |
| 	(_pinfo::hello_pid): Delete.
 | |
| 	(_pinfo::tothem): Delete.
 | |
| 	(_pinfo::fromthem): Delete.
 | |
| 	(_pinfo::commune_process): Rename from commune_recv.  Add a siginfo_t
 | |
| 	argument to declaration.
 | |
| 	(_pinfo::commune_request): Rename from commune_send.  Change DWORD to
 | |
| 	__uint32_t in declaration.
 | |
| 	* pinfo.cc (_pinfo::commune_process): Rename from commune_recv.  Add
 | |
| 	siginfo_t argument.  Use information from argument rather than reading
 | |
| 	from another pipe.  Synchronize with other process's commune event.
 | |
| 	(_pinfo::commune_request): Rename from commune_send.  Change DWORD to
 | |
| 	__uint32 in argument.  Fill out information in new siginfo_t element
 | |
| 	and rely on extended operation of sig_send rather than trying to deal
 | |
| 	with synchronization issues here.  Use process handle and read pipe
 | |
| 	information filled out by sig_send to gather information from the other
 | |
| 	process.
 | |
| 	* sigproc.cc (sig_send): Take special action if "communing" to ensure
 | |
| 	synchronization with the other process and to return information about
 | |
| 	the other process to the caller.
 | |
| 	(talktome): Accept a siginfo_t and handle arguments.  Read additional
 | |
| 	information from the signal pipe when _si_commune._si_code has the
 | |
| 	PICOM_EXTRASTR flag set.
 | |
| 	(wait_sig): Pass the transmitted siginfo_t struct and the pipe handle
 | |
| 	to talktome.  Close pipe read handle as soon as possible after we
 | |
| 	detect that we're exiting.
 | |
| 
 | |
| 2005-09-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* hookapi.cc (hook_or_detect_cygwin): Correct inverted test for whether
 | |
| 	to allocate a buffer by always allocating a buffer.
 | |
| 
 | |
| 2005-09-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_dev_raw): Delete current_position and
 | |
| 	eof_detected status flag.  Delete is_eom and is_eof methods.
 | |
| 	Move drive_size, bytes_per_sector, eom_detected status flag, as well
 | |
| 	as the methods read_file, write_file, raw_read and raw_write to ...
 | |
| 	(class fhandler_dev_floppy): ... here. Remove is_eom and is_eof
 | |
| 	methods.  Add dup method.
 | |
| 	* fhandler_floppy.cc (IS_EOM): New macro.
 | |
| 	(fhandler_dev_floppy::is_eom): Remove.
 | |
| 	(fhandler_dev_floppy::is_eof): Remove.
 | |
| 	(fhandler_dev_floppy::fhandler_dev_floppy): Initialize status flags.
 | |
| 	(fhandler_dev_floppy::get_drive_info): Only call EX functions on
 | |
| 	systems supporting them and stop suffering strange delays.
 | |
| 	(fhandler_dev_floppy::read_file): Move here, drop setting
 | |
| 	current_position.
 | |
| 	(fhandler_dev_floppy::write_file): Move here, drop setting
 | |
| 	current_position.
 | |
| 	(fhandler_dev_floppy::open): Rearrange comment.
 | |
| 	(fhandler_dev_floppy::dup): New method.
 | |
| 	(fhandler_dev_floppy::get_current_position): New inline method.  Use
 | |
| 	instead of former current_position were appropriate.
 | |
| 	(fhandler_dev_floppy::raw_read): Move here.  Drop EOF handling.
 | |
| 	(fhandler_dev_floppy::raw_write): Move here.  Drop EOF handling.
 | |
| 	(fhandler_dev_floppy::lseek): Remove useless conditions.  Convert
 | |
| 	sector_aligned_offset to LARGE_INTEGER to improve SetFilePointer call.
 | |
| 	(fhandler_dev_floppy::ioctl): Move blocksize check in RDSETBLK case
 | |
| 	to here.
 | |
| 	* fhandler_raw.cc (fhandler_dev_raw::is_eom): Remove.
 | |
| 	(fhandler_dev_raw::is_eof): Remove.
 | |
| 	(fhandler_dev_raw::write_file): Remove.
 | |
| 	(fhandler_dev_raw::read_file): Remove.
 | |
| 	(fhandler_dev_raw::raw_read): Remove.
 | |
| 	(fhandler_dev_raw::raw_write): Remove.
 | |
| 	(fhandler_dev_raw::dup): Drop copying removed members.
 | |
| 	(fhandler_dev_raw::ioctl): Drop blocksize testing.
 | |
| 	* wincap.h: Implement has_disk_ex_ioctls throughout.
 | |
| 	* wincap.cc: Ditto.
 | |
| 	(wincap_vista): Preliminary wincaps for Windows Vista/Longhorn.
 | |
| 	(wincapc::init): Add Vista/Longhorn handling.
 | |
| 
 | |
| 2005-09-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (getstack): New function.
 | |
| 	(alloc_stack): Use tls stuff for stack info rather than calling
 | |
| 	VirtualQuery.
 | |
| 	(dll_crt0_0): Initialize _impure_ptr stuff much earlier.  Move
 | |
| 	init_console_handler here.
 | |
| 	* fork.cc (class frok): New class renamed from local fork() struct.
 | |
| 	(stack_base): Change argument type.  Use tls stuff to determine stack
 | |
| 	info rather than calling VirtualQuery.
 | |
| 	(frok::child): Rename from fork_child.  Eliminate now unneeded
 | |
| 	arguments.
 | |
| 	(frok::parent): Rename from fork_parent and ditto.  Set error and errno
 | |
| 	as appropriate.  Fixup impersonation in cleanup, if needed.  Try harder
 | |
| 	to set errno appropriately.
 | |
| 	(fork): Define "grouped" as a frok type.  Deal with errors from
 | |
| 	fork_parent here.
 | |
| 	* init.cc (dll_entry): Remove init_console_handler call.
 | |
| 
 | |
| 2005-09-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (_pinfo::dup_proc_pipe): Ignore error if the child process
 | |
| 	has just gone away.
 | |
| 
 | |
| 2005-09-27  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* init.cc (prime_threads): Make this static, as it should be.
 | |
| 	(dll_entry): Apply cosmetic changes to define closer to the way MSDN
 | |
| 	suggests.
 | |
| 
 | |
| 2005-09-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* pthread.cc (mangle_sem_name): Use cygheap->shared_prefix instead
 | |
| 	of fiddling with wincap.has_terminal_services manually.
 | |
| 
 | |
| 2005-09-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygheap.cc (cygheap_init): Add GLOBAL_PRIV to hProcToken explicitely
 | |
| 	since hProcImpToken isn't initialized here.
 | |
| 	* shared.cc (open_shared): Always print mapname instead of name in
 | |
| 	debug output.
 | |
| 
 | |
| 2005-09-27  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* strace.cc (strace::vsprntf): Avoid printing a zero pid.
 | |
| 
 | |
| 2005-09-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* init.cc (dll_entry): Call IsWow64Process with GetCurrentProcess
 | |
| 	as process handle since hMainProc isn't initialized here.
 | |
| 
 | |
| 2005-09-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Always
 | |
| 	try IOCTL_DISK_GET_DRIVE_GEOMETRY_EX and
 | |
| 	IOCTL_DISK_GET_PARTITION_INFO_EX ioctls first, to allow access to GPT
 | |
| 	partitioned disks.  Fall back to old non-EX ioctls otherwise.
 | |
| 	Add comment to explain NT4 weirdness.
 | |
| 
 | |
| 2005-09-26  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* errno.cc (errmap): Map ERROR_SEEK and ERROR_SECTOR_NOT_FOUND.
 | |
| 
 | |
| 2005-09-26  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* exceptions.cc (_cygtls::call_signal_handler): Minor cleanup.
 | |
| 
 | |
| 2005-09-26  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_dev_raw): Add drive information members
 | |
| 	drive_size, current_position and bytes_per_sector.
 | |
| 	(fhandler_dev_floppy::get_drive_info): Declare.
 | |
| 	* fhandler_floppy.cc (fhandler_dev_floppy::is_eom): Define ERROR_SEEK
 | |
| 	and ERROR_SECTOR_NOT_FOUND as end-of-medium conditions.
 | |
| 	(fhandler_dev_floppy::get_drive_info): New method to have one function
 | |
| 	retrieving drive info.
 | |
| 	(fhandler_dev_floppy::open): Call get_drive_info to get drive
 | |
| 	information right from the start.
 | |
| 	(fhandler_dev_floppy::lseek): Use and set drive information members.
 | |
| 	Especially keep track of current_position.
 | |
| 	(fhandler_dev_floppy::ioctl): Ditto.
 | |
| 	* fhandler_raw.cc (fhandler_dev_raw::write_file): Keep track of
 | |
| 	current_position.
 | |
| 	(fhandler_dev_raw::read_file): Ditto.
 | |
| 	(fhandler_dev_raw::raw_read): Never try to read beyond end-of-medium.
 | |
| 	(fhandler_dev_raw::dup): Handle new drive information members.
 | |
| 
 | |
| 2005-09-26  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* exceptions.cc (handle_exceptions): Just set si_code to SI_KERNEL
 | |
| 	first and let it be overridden.
 | |
| 
 | |
| 2005-09-26  Yitzchak Scott-Thoennes  <sthoenna@efn.org>
 | |
| 
 | |
| 	* exceptions.cc (_cygtls::call_signal_handler): Call signal handler
 | |
| 	with extra siginfo_t * and void * parameters when SA_SIGINFO flag is
 | |
| 	set.
 | |
| 	* signal.cc (signal): Clear SA_SIGINFO flag.
 | |
| 	(sigqueue): Fix incorrect setting of si_code.
 | |
| 	* sigproc.cc (signal_fixup_after_exec): Clear SA_SIGINFO flag when
 | |
| 	setting handler to SIG_DFL.
 | |
| 
 | |
| 2005-09-26  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (proc_waiter): Properly fill out si_code as according to SUSv3.
 | |
| 
 | |
| 2005-09-26  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* exceptions.cc (handle_exceptions): Properly fill out si_code as
 | |
| 	according to SUSv3.
 | |
| 
 | |
| 2005-09-25  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.cc (wait_sig): Cosmetic change.
 | |
| 	* pinfo.cc (pinfo::exit): Don't explicitly remove myself since some
 | |
| 	other thread may still be using it.
 | |
| 
 | |
| 2005-09-24  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.cc (sigproc_terminate): More reversion of
 | |
| 	always-exit-from-sigthread change.
 | |
| 
 | |
| 2005-09-23  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* shared.cc (open_shared): Add crucial bit of debugging info.
 | |
| 
 | |
| 2005-09-23  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	Semi-reversion of always-exit-from-sigthread change of 2005-09-15.
 | |
| 	* exceptions.cc (sigpacket::process): Eliminate return after call to
 | |
| 	reinstated noreturn function.
 | |
| 	(signal_exit): Allow function to exit when a captive process has been
 | |
| 	terminated.
 | |
| 	* pinfo.cc (pinfo::exit): Enter exit_lock here.  Once again exit here
 | |
| 	under control of exit_lock.
 | |
| 	* sigproc.cc (sig_send): Don't wait for completion if process is exiting.
 | |
| 	Remove special __SIGEXIT accommodations.
 | |
| 	(wait_sig): Just exit the thread when a __SIGEXIT has been detected.
 | |
| 	Don't exit the process.
 | |
| 
 | |
| 2005-09-23  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* net.cc (cygwin_gethostbyname): Remove debugging cruft.
 | |
| 
 | |
| 2005-09-23  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::exit): Call ExitProcess if called from signal
 | |
| 	thread.
 | |
| 
 | |
| 2005-09-23  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::exit): Eliminate use of _my_tls.thread_handle.
 | |
| 	* tlsoffsets.h: Regenerate.
 | |
| 
 | |
| 2005-09-23  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.h (struct _cygtls::thread_handle): Remove/revert.
 | |
| 	* sigproc.h (struct sipacket::thread_handle): Put thread_handle here.
 | |
| 	* sigproc.cc (sigproc_terminate): Move setting of thread_handle...
 | |
| 	(sig_send): ...to here.  Put it in packet being sent.  Only close
 | |
| 	pack.wakeup when we're waiting for completion.
 | |
| 	(wait_sig): Use thread_handle directly from received packet.
 | |
| 
 | |
| 2005-09-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygheap.cc (cygheap_fixup_in_child): It's not just for exec.
 | |
| 	* cygtls.h (struct _cygtls::thread_handle): New field.
 | |
| 	* dcrt0.cc (exit_lock): Remove declaration.
 | |
| 	* winsup.h (exit_lock): Add declaration.
 | |
| 	* exceptions.cc (sigpacket::process): Properly return after
 | |
| 	signal_exit.
 | |
| 	* pinfo.cc (pinfo::exit): Only exit the process if
 | |
| 	_my_tls.thread_handle has not been filled out -- which should be an
 | |
| 	impossible event.
 | |
| 	* sigproc.cc (sigproc_terminate): Fillout _my_tls.thread_handle to
 | |
| 	provide something for wait_sig to wait for.  Use the siginfo_t version
 | |
| 	of sig_send and fill out the tls argument with _my_tls.
 | |
| 	(wait_sig): Wait for the thread specified in pack.tls or (for now)
 | |
| 	complain bitterly if it doesn't exit.
 | |
| 	* tlsoffsets.h: Regenerate.
 | |
| 
 | |
| 2005-09-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (set_myself): Call strace.hello unconditionally when
 | |
| 	DEBUGGING.
 | |
| 	(pinfo::init): Sleep and issue debugging output before looping when a
 | |
| 	PID_EXITED is found.
 | |
| 
 | |
| 2005-09-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix copy/paste
 | |
| 	bug.
 | |
| 
 | |
| 2005-09-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* strace.cc (strace::vsprntf): Avoid accessing myself->pid if !myself.
 | |
| 
 | |
| 2005-09-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/sys/strace.h (_STRACE_ON): Remove semicolon from definition.
 | |
| 	(_STRACE_OFF): Remove semicolon from definition.
 | |
| 
 | |
| 2005-09-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::fstat_helper): Declare with additional
 | |
| 	file attributes argument.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Use
 | |
| 	file attributes evaluated from NtQueryFileInformation or
 | |
| 	FileInformationByHandle in call to fstat_helper.
 | |
| 	Set pc.fileattr from just evaluated file attributes here.
 | |
| 	(fhandler_base::fstat_by_name): Use file attributes evaluated from
 | |
| 	FindFileFirst or default attribute in call to fstat_helper.
 | |
| 	Set pc.fileattr from just evaluated file attributes here.
 | |
| 	(fhandler_base::fstat_helper): Use file attributes given as argument,
 | |
| 	not file attributes stored in this fhandler, since this information
 | |
| 	is potentially wrong.  Add comment to explain this.
 | |
| 	* path.h (has_attribute): New global inline function.
 | |
| 	(path_conv::set_attributes): New method to change fileattr.
 | |
| 
 | |
| 2005-09-21  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::operator new): Just use getenv() to look for
 | |
| 	CYGWIN_FREERANGE_NOCHECK since the Windows environment may be truncated
 | |
| 	by being previously execed.
 | |
| 
 | |
| 2005-09-20  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* spawn.cc (av::fixup): Just blindly run any file if it has a .bat or
 | |
| 	.cmd extension.
 | |
| 
 | |
| 2005-09-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (do_exit): Only call sigproc_terminate from one location --
 | |
| 	pinfo::exit.
 | |
| 	* pinfo.cc (pinfo::exit): Move sigproc_terminate later so that signals
 | |
| 	can be processed while waiting for hExeced child.
 | |
| 	(pinfo::maybe_set_exit_code_from_windows): Set exit code from sigExeced
 | |
| 	if it is non-zero.  Set exit_state to ES_EXEC_EXIT prior to waiting for
 | |
| 	captive process exit code.
 | |
| 	* exceptions.cc (sigExeced): New global variable.
 | |
| 	(signal_exit): Remove noreturn attribute from declaration.
 | |
| 	(signal_exit): Just terminate captive process and return if hExeced on
 | |
| 	the theory that the exit will be subsequently handled in the main
 | |
| 	thread.
 | |
| 	* sigproc.cc (sigproc_terminate): Eliminate test for
 | |
| 	ES_SIGPROCTERMINATE and use ES_FINAL instead.
 | |
| 	(sig_send): Use no_signals_available instead of duplicate test.
 | |
| 	* winsup.h (ES_EXEC_EXIT): New enum.
 | |
| 	(ES_SIGPROCTERMINATE): Delete.
 | |
| 
 | |
| 2005-09-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.cc (talktome): Take siginfo_t argument.  Don't scan all pids
 | |
| 	trying to find one that's talking to me.  Just use the pid from
 | |
| 	siginfo_t.
 | |
| 	(wait_pid): Pass siginfo_t argument to talktome.
 | |
| 
 | |
| 2005-09-17  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pipe.cc (fhandler_pipe::open): Use 'cfree' to free buffer since it is
 | |
| 	now allocated by cmalloc.
 | |
| 
 | |
| 2005-09-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* net.cc (cygwin_inet_ntop): Change len argument to socklen_t to
 | |
| 	follow SUSv3.
 | |
| 	* include/arpa/inet.h (inet_ntop): Ditto.
 | |
| 	* include/cygwin/in.h: Include cygwin/socket.h to get socklen_t.
 | |
| 
 | |
| 2005-09-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* environ.cc (build_env): Use "kilo"bytes not "mega"bytes.  Return
 | |
| 	immediately on error.
 | |
| 	* spawn.cc (spawn_guts): Set return value to -1 on error from
 | |
| 	build_env.
 | |
| 
 | |
| 2005-09-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* environ.cc (build_env): Clear envblock and return NULL on attempt to
 | |
| 	use env var > 32K.
 | |
| 	* spawn.cc (spawn_guts): Set E2BIG if build_env detects an error.
 | |
| 
 | |
| 2005-09-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* environ.cc (environ_init): Protect with a 'myfault' in case
 | |
| 	GetEnvironmentStrings misbehaves.
 | |
| 
 | |
| 2005-09-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* environ.cc (environ_init): Add debugging output with value returned
 | |
| 	from GetEnvironmentStrings.
 | |
| 
 | |
| 2005-09-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* environ.cc (environ_init): Issue an error if GetEnvironmentStrings
 | |
| 	fails and return.
 | |
| 
 | |
| 2005-09-15  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.h (EXITCODE_SET): Move out of range of Windows error.
 | |
| 	(EXITCODE_NOSET): Ditto.
 | |
| 	* sigproc.cc (no_signals_available): Remove check for hwait_sig.  Just
 | |
| 	rely on my_sendsig.  Pass in an argument controlling when it is
 | |
| 	appropriate to test EXITCODE_SET.
 | |
| 	(proc_can_be_signalled): Remove checks for myself since this function
 | |
| 	is never called in that context.
 | |
| 	(sigproc_init): Pre-initialize my_sendsig to non-zero so that
 | |
| 	proc_can_be_signalled will know that we expect to be signalable soon.
 | |
| 	(sig_send): Change debugging output.
 | |
| 
 | |
| 2005-09-15  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.cc (no_signals_available): Return true if sending to self
 | |
| 	from the signal thread.
 | |
| 	(wait_sig): Correct so that WaitForSingleObject is called when
 | |
| 	hMainThread is != 0, rather than the reverse.
 | |
| 
 | |
| 	* cygheap.cc (cygheap_fixup_in_child): Clarify potential error message.
 | |
| 
 | |
| 	* fork.cc (fork_copy): Cosmetic change.
 | |
| 
 | |
| 2005-09-15  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.cc (wait_sig): Reorganize exit case so that ExitProcess is
 | |
| 	always called, since that is the intent of sending a __SIGEXIT.  Wait
 | |
| 	forever for main thread to go away since, presumably, the main thread
 | |
| 	told us it was going away.
 | |
| 
 | |
| 2005-09-14  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* spawn.cc (av::fixup): Avoid breaking out of the wrong "loop".
 | |
| 
 | |
| 2005-09-14  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* hookapi.cc (hook_or_detect_cygwin): Simplify very slightly.
 | |
| 	* spawn.cc (av::fixup): Guard against problems reading an executable
 | |
| 	which does not match Microsoft's documentation about PE format.
 | |
| 
 | |
| 2005-09-14  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* spawn.cc (av::error): Eliminate.
 | |
| 	(av::av): Remove reference to error.
 | |
| 	(av::replace0_maybe): Ditto.
 | |
| 	(av::dup_maybe): Ditto.
 | |
| 	(av::dup_all): Ditto.
 | |
| 	(av::unshift): Ditto.
 | |
| 	(spawn_guts): On a fault, return E2BIG only if ENOMEM has been set.
 | |
| 	Otherwise return EFAULT.
 | |
| 
 | |
| 2005-09-14  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.h (san): New structure.
 | |
| 	(cygtls::andreas): New element.  Replaces _myfault and _myfault_errno.
 | |
| 	(cygtls::fault_guarded): Use andreas.
 | |
| 	(cygtls::return_from_fault): Ditto.
 | |
| 	(cygtls::setup_fault): Add a parameter denoting where to store old
 | |
| 	fault handler, if any and use it to "stack" faults.
 | |
| 	(cygtls::reset_fault): Restore fault from parameter.
 | |
| 	(myfault::sebastian): New variable.
 | |
| 	(myfault::~myfault): Pass sebastian to reset_fault.
 | |
| 	(myfault::myfault): Store old fault values in sebastian.
 | |
| 
 | |
| 2005-09-14  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* heap.cc (heap_init): Revert 2005-09-11 patch as it seems to
 | |
| 	inexplicably cause problems with emacs.
 | |
| 
 | |
| 2005-09-14  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	Remove some more unneeded 'return;'s throughout.
 | |
| 
 | |
| 2005-09-14  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.h: Protect declaration so that it only happens when
 | |
| 	__INSIDE_CYGWIN__.
 | |
| 
 | |
| 2005-09-14  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* exceptions.cc (sigtid): Remove declaration.
 | |
| 	(handle_exceptions): Use _sig_tls rather than sigtid to determine if
 | |
| 	this is the signal thread.
 | |
| 	(set_signal_mask): Ditto for conditionalized CGF code.
 | |
| 	* pinfo.cc (pinfo::exit): Exit the thread if we forcefully terminated
 | |
| 	the main thread.
 | |
| 	* sigproc.cc (sigtid): Delete.
 | |
| 	(_sig_tls): Define.
 | |
| 	(sig_clear): Use _sig_tls rather than sigtid to determine if this is
 | |
| 	the signal thread.
 | |
| 	(sig_dispatch_pending): Ditto.
 | |
| 	(wait_sig): Set _sig_tls here.
 | |
| 
 | |
| 2005-09-13  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (do_exit): Move sigproc_terminate call later since signal
 | |
| 	handling was still needed for subsequent stuff.  Call sigproc_terminate
 | |
| 	with new exit_state value.
 | |
| 	* pinfo.cc (pinfo::exit): Call sigproc_terminate with new exit_state
 | |
| 	value.
 | |
| 	* sigproc.cc (proc_terminate): Remove unnecessary (void) parameter.
 | |
| 	(sigproc_terminate): Ditto.  Add new argument to accept exit state to
 | |
| 	be set.
 | |
| 	(wait_sig): Reorganize __SIGEXIT handling.  Add more debugging output.
 | |
| 	* winsup.h (sigproc_terminate): Declare with new exit_state argument.
 | |
| 	(exit_states): Reorganize to reflect new exit ordering of
 | |
| 	sigproc_terminate.
 | |
| 
 | |
| 2005-09-13  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (do_exit): Rely on sigproc_terminate to set exit_state
 | |
| 	appropriately.
 | |
| 	* pinfo.cc (pinfo::exit): Always call sigproc_terminate here.  Rely on
 | |
| 	sigproc_terminate to signal signal thread to handle eventual process
 | |
| 	exit.
 | |
| 	* sigproc.cc (no_signals_available): Change criteria for determining if
 | |
| 	this process can handle signals to itself.
 | |
| 	(my_sendsig): New variable.  Copy of my sendsig handle.
 | |
| 	(proc_can_be_signalled): Don't send signals if exit code is set.
 | |
| 	(sigproc_terminate): Use and set exit_state appropriately to determine
 | |
| 	when to do anything.  Send __SIGEXIT to self to control process exit.
 | |
| 	(sig_send): Use my_sendsig for sending signals.  Don't call
 | |
| 	proc_can_be_signalled for myself since the criteria is now different
 | |
| 	for sending signals to myself.
 | |
| 	(wait_sig): Copy myself->sendsig to my_sendsig for future use.  Exit
 | |
| 	signal loop when __SIGEXIT is received.  Wait for main thread to exit
 | |
| 	and use its exit status to actually exit process.
 | |
| 	* sigproc.h (__SIGEXIT): New enum.
 | |
| 
 | |
| 2005-09-13  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (alloc_stack): Eliminate superfluous "return;".
 | |
| 	* debug.cc (add_handle): Ditto.
 | |
| 	* devices.in (device::parse): Ditto.
 | |
| 	* dtable.cc (dtable::vfork_parent_restore): Ditto.
 | |
| 	(dtable::vfork_child_fixup): Ditto.
 | |
| 	* environ.cc (parse_options): Ditto.
 | |
| 	* errno.cc (seterrno_from_win_error): Ditto.
 | |
| 	* exceptions.cc (sig_handle_tty_stop): Ditto.
 | |
| 	(set_signal_mask): Ditto.
 | |
| 	* fhandler.cc (fhandler_base::read): Ditto.
 | |
| 	(fhandler_base::operator delete): Ditto.
 | |
| 	(fhandler_base::seekdir): Ditto.
 | |
| 	(fhandler_base::rewinddir): Ditto.
 | |
| 	* fhandler_console.cc (fhandler_console::read): Ditto.
 | |
| 	(fhandler_console::fixup_after_exec): Ditto.
 | |
| 	* sigproc.cc (sigproc_init): Ditto.
 | |
| 	(sigproc_terminate): Ditto.
 | |
| 
 | |
| 	* devices.cc: Regenerate.
 | |
| 
 | |
| 2005-09-13  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.cc (wait_sig): Be more defensive about detecting when we're
 | |
| 	exiting.
 | |
| 
 | |
| 2005-09-12  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::cygthread): Add more info to fatal error.
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::readdir): Temporarily
 | |
| 	remove insertion of /dev into root directory.
 | |
| 	* path.cc (path_conv::check): Ditto.
 | |
| 
 | |
| 2005-09-11  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* heap.cc (heap_init): Allocate heap from top down as a hedge against
 | |
| 	subsequent ERROR_INVALID_ADDRESS in forked processes when CTRL-C is
 | |
| 	pressed.
 | |
| 
 | |
| 2005-09-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* heap.cc (heap_init): Be slightly more aggressive when trying to
 | |
| 	allocate heap.  Change fatal error message to avoid confusion with
 | |
| 	cygheap.
 | |
| 
 | |
| 	* spawn.cc (linebuf::finish): New function.
 | |
| 	(linebuf::add): Cosmetic change.
 | |
| 	(spawn_guts): Only avoid building windows command line if the program
 | |
| 	being executed was actually mounted with -X.  Don't return E2BIG if we
 | |
| 	hit the 32K size and we're executing a detected cygwin program.  Just
 | |
| 	silently truncate the windows command line, instead.
 | |
| 
 | |
| 2005-09-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_serial.cc (fhandler_serial::tcgetattr): Just zero c_cflag
 | |
| 	here rather than clearing CBAUD after the fact.
 | |
| 	* termios.cc (tcgetattr): Revert previous change.
 | |
| 
 | |
| 2005-09-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_serial.cc (fhandler_serial::ioctl): Always return 0 for
 | |
| 	window size.
 | |
| 	* termios.cc (tcgetattr): Clear out baud part of c_cflag since it is
 | |
| 	always ignored.
 | |
| 
 | |
| 2005-09-08  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* exceptions.cc (ctrl_c_handler): Disable any special CTRL_LOGOFF_EVENT
 | |
| 	handling and add longish comment about the reasons.
 | |
| 
 | |
| 2005-09-07  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* hookapi.cc (rvadelta): Change argument to DWORD to eliminate a
 | |
| 	compiler warning.
 | |
| 
 | |
| 	* path.h (path_conv::set_cygexec): New function.
 | |
| 	* spawn.cc (av::iscygwin): Eliminate.
 | |
| 	(av::av): Don't initialize iscygwin.
 | |
| 	(spawn_guts): Just use real_path.iscygexec for all tests.
 | |
| 	(av::fixup): Short circuit test if .exe extension and known cygexec.
 | |
| 	Set cygexec flag appropriately if we find that program uses cygwin1.dll.
 | |
| 
 | |
| 2005-09-06  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (initial_env): Don't attempt stracing if dynamically loaded.
 | |
| 	(dll_crt0_0): Move console initialization earlier.
 | |
| 	* init.cc (dll_entry): Move console initialization here.
 | |
| 	* exceptions.cc (init_console_handler): Fully remove any old console
 | |
| 	handler.
 | |
| 	(handle_sigsuspend): Make cancelable when called from non-main thread.
 | |
| 
 | |
| 	* spawn.cc (spawn_guts): Don't fill out windows argv if we've deduced
 | |
| 	that this is a cygwin-using program.
 | |
| 	(av::fixup): Always check executables to see if they are using
 | |
| 	cygwin1.dll.  Don't consider .com files to be scripts.
 | |
| 	* hookapi.cc (rvadelta): New function.
 | |
| 	(PEHeaderFromHModule): Simplify slightly.
 | |
| 	(hook_or_detect_cygwin): Use passed in name argument for "HMODULE"
 | |
| 	rather than incorrectly reading current program.  Calculate delta
 | |
| 	needed to read image data and file names if this isn't a real
 | |
| 	"HMODULE".
 | |
| 
 | |
| 2005-09-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* thread.h: Revert patch from 2005-09-05.
 | |
| 	* thread.cc (pthread_mutex::can_be_unlocked): Return true also if
 | |
| 	mutex is owned by MUTEX_OWNER_ANONYMOUS.
 | |
| 
 | |
| 2005-09-05  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygheap.cc (cygheap_init): Eliminate debugging #if.
 | |
| 
 | |
| 	* fork.cc (fork_parent): Don't issue errors if "somebody" has set the
 | |
| 	PID_EXITED flag on a child.  Don't close process handle if it has
 | |
| 	potentially already been closed.
 | |
| 	* pinfo.cc (winpids::add): Eliminate PID_ALLPIDS handling which was
 | |
| 	obsoleted by previous changes.
 | |
| 
 | |
| 	* spawn.cc (av::fixup): Do win16 detection for .com files.  Make sure
 | |
| 	that buffer has been unmapped in all cases.
 | |
| 
 | |
| 2005-09-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* thread.h (pthread_mutex::get_pthread_self): Remove.
 | |
| 	(pthread_mutex::lock): Use ::pthread_self as self parameter.
 | |
| 	(pthread_mutex::trylock): Ditto.
 | |
| 	(pthread_mutex::unlock): Ditto.
 | |
| 	(pthread_mutex::destroy): Ditto.
 | |
| 
 | |
| 2005-09-02  Dave Korn  <dave.korn@artimi.com>
 | |
| 
 | |
| 	* Makefile.in (CXXFLAGS): Use 'override' to correctly set flags to
 | |
| 	generate dependencies when invoked from top-level make.
 | |
| 
 | |
| 2005-08-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* exceptions.cc (set_process_mask_delta): Conditionalize debugging
 | |
| 	output.
 | |
| 	* sigproc.cc (proc_subproc): Make strace output a little more verbose.
 | |
| 
 | |
| 2005-08-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.h (__ljfault): Declare.
 | |
| 	(_cygtls::return_from_fault): Use __ljfault.
 | |
| 	* exceptions.cc (set_signal_mask): Revert previous checkin.
 | |
| 	* gendef (__sjfault): Split out into a separate function which doesn't
 | |
| 	bother with any special signal locking.
 | |
| 	(_ljfault): Return from a __sjfault without bothering with signals.
 | |
| 
 | |
| 2005-08-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.h (_local_storage::strerror_buf): Allocate more space.
 | |
| 	* errno.cc (strerror_worker): New function, adapted from strerror.
 | |
| 	(strerror): Use strerror_worker.
 | |
| 	* tlsoffsets.h: Regenerate.
 | |
| 
 | |
| 	* exceptions.cc (set_signal_mask): Minimize time during which mask_sync
 | |
| 	is held.
 | |
| 
 | |
| 2005-08-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygwin.din: Correct readdir_r typo.
 | |
| 
 | |
| 2005-08-27  Bas van Gompel  <cygwin-patch.buzz@bavag.tmfweb.nl>
 | |
| 
 | |
| 	* dir.cc (readdir_r): Invert sense on error test.
 | |
| 
 | |
| 2005-08-25  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (normalize_posix_path): Keep two leading slashes
 | |
| 	intact throughout.
 | |
| 	(normalize_win32_path): Revert to only checking for slash.
 | |
| 	(realpath): Convert drive letters to cygdrive paths before
 | |
| 	doing anything else.
 | |
| 	* shared_info.h (mount_info::cygdrive_posix_path): Make public.
 | |
| 
 | |
| 2005-08-25  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (realpath): Drop call to mount_info::conv_to_posix_path
 | |
| 	in favor of calling path_conv with PC_POSIX flag.  Align error
 | |
| 	handling closer to POSIX.  As on Linux, return user space allocated
 | |
| 	memory if second parameter is NULL.
 | |
| 
 | |
| 2005-08-25  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (normalize_win32_path): Honor network paths.  Fold more
 | |
| 	than two leading dir separators into one.  Check for dir separator
 | |
| 	instead of just slashes to handle incoming Win32 paths correctly.
 | |
| 
 | |
| 2005-08-25  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* errno.cc (errmap): Translate ERROR_NO_MORE_ITEMS to ENMFILE.
 | |
| 
 | |
| 2005-08-24  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* exceptions.cc (handle_sigsuspend): Just sleep forever if called from
 | |
| 	non-main thread.
 | |
| 	(sigpacket:process): Simplify logic which determines when and how a
 | |
| 	signal is masked.  Don't trigger sigwait if there is a signal handler.
 | |
| 	* sigproc.cc (wait_sig): Update comment.  Try to process a signal which
 | |
| 	is in the queue if it isn't queued for the target thread (this is still
 | |
| 	not right).
 | |
| 
 | |
| 2005-08-24  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* spawn.cc (perhaps_suffix): Record errno-type error value in third
 | |
| 	argument.
 | |
| 	(find_exec): On error, set errno returned from perhaps_suffix.
 | |
| 	(spawn_guts): Ditto.
 | |
| 
 | |
| 2005-08-24  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_virtual.cc (fhandler_virtual::close): Don't free filebuf if
 | |
| 	it's NULL.
 | |
| 	* pinfo.cc (_pinfo::commune_send): Fix test for incorrect number of
 | |
| 	bytes read from pipe.
 | |
| 
 | |
| 2005-08-24  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (endusershell): Reset shell_fp to NULL to allow
 | |
| 	subsequent getusershell calls.
 | |
| 
 | |
| 2005-08-24  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Fill in fileattr for /dev, defaulting to
 | |
| 	directory if /dev doesn't actually exist.
 | |
| 	(win32_device_name): Don't consider FH_DEV to be a device since it's
 | |
| 	really a directory which should go through mount processing.
 | |
| 
 | |
| 2005-08-24  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygheap.h (cygheap_types): Add HEAP_COMMUNE.
 | |
| 	* fhandler_proc.cc: Use cygheap rather than user heap for allocation of
 | |
| 	filebuf throughout.
 | |
| 	* fhandler_registry.cc: Ditto.
 | |
| 	* fhandler_virtual.cc: Ditto.
 | |
| 	* fhandler_process.cc: Ditto.
 | |
| 	(get_mem_values): Use malloc/realloc/free rather than new.
 | |
| 	* pinfo.cc (_pinfo::commune_send): Allocate on cygwin heap rather than
 | |
| 	user heap.  Avoid calling ReadFile when correct number of characters
 | |
| 	have been read or suffer buffer corruption.
 | |
| 	(_pinfo::fd): Allocate on cygwin heap rather than user heap.
 | |
| 	(_pinfo::fds): Ditto.
 | |
| 	(_pinfo::root): Ditto.
 | |
| 	(_pinfo::cwd): Ditto.
 | |
| 	(_pinfo::cmdline): Ditto.
 | |
| 
 | |
| 	* devices.h (FH_DEV): New define.
 | |
| 	* devices.in: Detect lone /dev.
 | |
| 	* devices.cc: Regenerate.
 | |
| 	* path.cc (path_conv::check): Treat FH_DEV as a special case.
 | |
| 
 | |
| 2005-08-23  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.h (set_signal_mask): Remove default on second parameter and
 | |
| 	make pass by reference.
 | |
| 	* signal.cc (abort): Accommodate change to set_signal_mask.
 | |
| 	* select.cc (pselect): Ditto.
 | |
| 	* exceptions.cc (handle_sigsuspend): Ditto.
 | |
| 	(ctrl_c_handler): Ditto.
 | |
| 	(sighold): Ditto.
 | |
| 	(sigrelse): Ditto.
 | |
| 	(set_process_mask_delta): Ditto.
 | |
| 	(_cygtls::call_signal_handler): Ditto.
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::readdir): Return ENMFILE
 | |
| 	if __handle is not set.  Set __handle to NULL when out of files.
 | |
| 	(fhandler_disk_file::rewinddir): Don't close handle if it's NULL.
 | |
| 	(fhandler_disk_file::closedir): Ditto.
 | |
| 
 | |
| 2005-08-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dir.cc (readdir_worker): Make static.  Only add '.' and '..' when
 | |
| 	readdir fails due to ENMFILE.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::readdir): Only close
 | |
| 	handle on error != ENMFILE.
 | |
| 
 | |
| 2005-08-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mtinfo.h (mtinfo_drive::error): Fix argument bug in debug_printf call.
 | |
| 
 | |
| 2005-08-20  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygerrno.h (geterrno_from_win_error): Change declaration to default
 | |
| 	to using GetLastError and EACCESS.
 | |
| 	* cygwin.din: Export readdir_r.
 | |
| 	* include/cygwin/version.h: Bump API version number to 138.
 | |
| 	* syscalls.cc (readdir_worker): New function, renamed from old
 | |
| 	readdir() function.
 | |
| 	(readdir): Use readdir_worker.
 | |
| 	(readdir_r): New function.
 | |
| 	* fhandler.h (fhandler_base::readdir): Accommodate second argument
 | |
| 	indicating dirent buffer.
 | |
| 	(fhandler_disk_file::readdir): Ditto.
 | |
| 	(fhandler_cygdrive::readdir): Ditto.
 | |
| 	(fhandler_proc::readdir): Ditto.
 | |
| 	(fhandler_netdrive::readdir): Ditto.
 | |
| 	(fhandler_registry::readdir): Ditto.
 | |
| 	(fhandler_process::readdir): Ditto.
 | |
| 	* fhandler.cc (fhandler_base::readdir): Ditto.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::readdir): Ditto.
 | |
| 	* fhandler_cygdrive.cc (fhandler_cygdrive::readdir): Ditto.
 | |
| 	* fhandler_proc.cc (fhandler_proc::readdir): Ditto.
 | |
| 	* fhandler_netdrive.cc (fhandler_netdrive::readdir): Ditto.
 | |
| 	* fhandler_registry.cc (fhandler_registry::readdir): Ditto.
 | |
| 	* fhandler_process.cc (fhandler_process::readdir): Ditto.
 | |
| 	* include/sys/dirent.h (readdir_r): Add declaration.
 | |
| 
 | |
| 2005-08-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.h (dirent_states): Add dirent_saw_proc.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::readdir): Fill in "proc"
 | |
| 	if it is the root dir and it is missing.
 | |
| 
 | |
| 2005-08-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.h (dirent_states): Add dirent_isroot, dirent_saw_cygdrive,
 | |
| 	dirent_saw_dev.
 | |
| 	* dir.cc (opendir): Don't zero __flags here.  Push that responsibility
 | |
| 	to opendir methods.
 | |
| 	(seekdir): Preserve dirent_isroot in __flags.
 | |
| 	(rewinddir): Ditto.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::opendir): Set
 | |
| 	dirent_isroot appropriately.
 | |
| 	(fhandler_disk_file::readdir): Fill in "cygdrive" and "dev" if it is
 | |
| 	the root dir and they are missing.
 | |
| 	* fhandler_process.cc (fhandler_process::opendir): Set __flags here.
 | |
| 	* fhandler_virtual.cc (fhandler_virtual::opendir): Set __flags here.
 | |
| 
 | |
| 2005-08-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* winsup.h (create_pipe): Declare new function.
 | |
| 	(CreatePipe): New define.
 | |
| 	* miscfuncs.cc (create_pipe): Define new function.
 | |
| 
 | |
| 2005-08-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_tty_common::lseek): Declare new method.
 | |
| 	(fhandler_tty_slave::lseek): Delete old method.
 | |
| 	(fhandler_tty_master::lseek): Delete old method.
 | |
| 	* fhandler_tty.cc (fhandler_tty_common::lseek): Define new method.
 | |
| 
 | |
| 2005-08-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::recvfrom): Always initialize
 | |
| 	ret to 0.
 | |
| 	(fhandler_socket::recvmsg): Ditto.
 | |
| 
 | |
| 2005-08-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* errno.cc (strerror): Check errnum for underflow.
 | |
| 
 | |
| 2005-08-17  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_1): Tweak debugging stuff.
 | |
| 
 | |
| 2005-08-17  Pavel Tsekov  <ptsekov@gmx.net>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty_common::close): Rearrange the code so
 | |
| 	that the master end of the input and output pipes is closed before
 | |
| 	signalling an EOF event to the slave.
 | |
| 	(fhandler_pty_master::close): Likewise.
 | |
| 
 | |
| 2005-08-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* init.cc (respawn_wow64_process): Make inline function.  Remove
 | |
| 	"noreturn" attribute.  Add additional check if parent process is
 | |
| 	actually a 64 bit process.
 | |
| 	(dll_entry): Only test WOW64 processes with a stack in the usual
 | |
| 	"dangerous" process space area.
 | |
| 
 | |
| 2005-08-11  Troy Curtiss  <trcurtiss@gmail.com>
 | |
| 
 | |
| 	* fhandler_serial.cc (fhandler_serial::tcgetattr): Return current baud
 | |
| 	rate regardless of current DTR state.
 | |
| 
 | |
| 2005-08-11  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc: Remove ld_preload declaration.
 | |
| 	* winsup.h: Move ld_preload declaration here.
 | |
| 	* fork.cc (fork_child): Call ld_preload() before returning.
 | |
| 
 | |
| 2005-08-11  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* child_info.  (CURR_CHILD_INFO_MAGIC): Refresh.
 | |
| 	(child_info::child_info()): New constructor.
 | |
| 	(child_info_spawn::child_info_spawn()): Ditto.
 | |
| 	(child_info_spawn::operator new): New operator.
 | |
| 	(child_info_spawn::set): New function.
 | |
| 	* spawn.cc (av()): New constructor.
 | |
| 	(av::operator new): New operator.
 | |
| 	(av::set): New function.
 | |
| 	(spawn_guts): Reorganize so that classes which allocate are defined
 | |
| 	early in the function so that it can be properly cleaned up after an
 | |
| 	efault.  Set errno to E2BIG in the event of a SEGV situation.
 | |
| 
 | |
| 2005-08-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/sys/cdefs.h: Remove extra line.
 | |
| 
 | |
| 2005-08-08  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.cc (get_reg_security): New static function.
 | |
| 	(get_nt_object_security): Call get_reg_security for registry keys
 | |
| 	to circumvent problems with predefined registry keys.
 | |
| 
 | |
| 2005-08-08  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_process.cc (fhandler_process::open): Allow opening of
 | |
| 	/proc/<pid>/fd for reading.
 | |
| 	* fhandler_registry.cc (fhandler_registry::open): Ditto for registry
 | |
| 	keys.
 | |
| 
 | |
| 2005-08-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/sys/cdefs.h (__CONCAT): Define.
 | |
| 	* include/elf.h: New file.
 | |
| 	* include/sys/elf32.h: Ditto.
 | |
| 	* include/sys/elf64.h: Ditto.
 | |
| 	* include/sys/elf_common.h: Ditto.
 | |
| 	* include/sys/elf_generic.h: Ditto.
 | |
| 
 | |
| 2005-08-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygwin.sc: Use simpler method to align .cygheap.
 | |
| 	* dllfixdbg: Just copy .stab and .stabstr sections when making
 | |
| 	cygwin1.dbg, rather than relying on objcopy to keep only the debug
 | |
| 	sections since objcopy seems to get it wrong.
 | |
| 
 | |
| 2005-08-08  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* dtable.cc (build_fh_pc): Check setting fh to fhandler_nodevice for
 | |
| 	NULL, too.
 | |
| 
 | |
| 2005-08-08  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ftw.c: Include winsup.h.
 | |
| 	* nftw.c: Ditto.
 | |
| 	* include/ftw.h: Guard declarations appropriately.
 | |
| 
 | |
| 2005-08-08  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* Makefile.in (DLL_OFILES): Add fts.o, ftw.o, nftw.o.
 | |
| 	* cygwin.din: Export fts_children, fts_close, fts_get_clientptr,
 | |
| 	fts_get_stream, fts_open, fts_read, fts_set, fts_set_clientptr,
 | |
| 	ftw, nftw.
 | |
| 	* fts.c: New file, imported from FreeBSD.
 | |
| 	* ftw.c: Ditto.
 | |
| 	* nftw.c: Ditto.
 | |
| 	* include/fts.h: Ditto.
 | |
| 	* include/ftw.h: Ditto.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2005-08-07  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* Makefile.in (dtable_CFLAGS): Use -fomit-frame-pointer and
 | |
| 	-fcheck-new.
 | |
| 	* cygheap.cc (cmalloc): Only emit system_printf warnings on failure if
 | |
| 	DEBUGGING.
 | |
| 	(crealloc): Ditto.
 | |
| 	(ccalloc): Ditto.
 | |
| 	* dtable.cc (build_fh_name): Treat NULL return from cnew as indicative
 | |
| 	of EMFILE condition.
 | |
| 	(build_fh_dev): Ditto.
 | |
| 	(dtable::dup_worker): Handle NULL return from build_fh_pc.
 | |
| 	(dtable::vfork_child_dup): Trust dup_worker to set errno.
 | |
| 	* fhandler.h (fhandler_base::new): Mark as nothrow.
 | |
| 
 | |
| 2005-08-07  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dllfixdbg: New perl script.
 | |
| 	* configure.in: Detect objcopy, objdump, strip.
 | |
| 	* configure: Regenerate.
 | |
| 	* Makefile.in: Pass target objcopy/objdump to new dllfixdbg script.
 | |
| 	Remove previous perl check.
 | |
| 	* cygwin.sc: Add .gnu_debuglink_overlay section for eventual
 | |
| 	replacement with .gnu_debuglink section.  Revert move of cygheap to end
 | |
| 	of image.
 | |
| 
 | |
| 2005-08-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* Makefile.in: Allow previous patch to work in a 64 bit environment.
 | |
| 
 | |
| 2005-08-06  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* Makefile.in: Warn when end of cygheap is not on 64k boundary.
 | |
| 	* cygwin.sc: Try harder to ensure that cygheap is on a 64k boundary.
 | |
| 	Move cygheap to end of image to stop interference from unstripped debug
 | |
| 	regions.
 | |
| 
 | |
| 2005-08-06  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/endian.h: Move everything into this file and define things
 | |
| 	more like linux.
 | |
| 	* include/cygwin/types.h: Include endian.h.
 | |
| 	* include/sys/dirent.h: Define DT_* types and conversion macros.
 | |
| 
 | |
| 	* pinfo.cc (pinfo::init): Remove special handling for PID_ALLPIDS and
 | |
| 	execed code, even though it probably still isn't quite right.
 | |
| 
 | |
| 2005-08-05 Michael Gorse <mgorse@alum.wpi.edu>
 | |
| 
 | |
| 	* thread.cc (pthread::create(3 args)): Make bool.
 | |
| 	(pthread_null::create): Ditto.
 | |
| 	(pthread::create(4 args)): Check return of inner create rather than
 | |
| 	calling is_good_object().
 | |
| 	* thread.h: Ditto.
 | |
| 
 | |
| 2005-08-05  Vaclav Haisman  <v.haisman@sh.cvut.cz>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::tcflush): Return either 0 or -1.
 | |
| 
 | |
| 2005-08-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* thread.cc (pthread_cond_timedwait): Check abstime for validity
 | |
| 	according to SUSv3.  Rewrite timeout check and waitlength calculation
 | |
| 	to avoid overflow problems.
 | |
| 
 | |
| 2005-08-02  Yitzchak Scott-Thoennes  <sthoenna@efn.org>
 | |
| 
 | |
| 	* include/sys/termios.h: Define TIOCMBIS and TIOCMBIC.
 | |
| 	* fhandler.h (class fhandler_serial): Declare switch_modem_lines.
 | |
| 	* fhandler_serial.cc (fhandler_serial::switch_modem_lines): New
 | |
| 	static function to set or clear DTR and/or RTS.
 | |
| 	(fhandler_serial::ioctl): Use switch_modem_lines for TIOCMSET
 | |
| 	and new TIOCMBIS and TIOCMBIC.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2005-07-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::pread): Don't move file offset
 | |
| 	pointer after I/O.
 | |
| 	(fhandler_base::pwrite): Ditto.
 | |
| 
 | |
| 2005-07-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::pread): Declare new function.
 | |
| 	(fhandler_base::pwrite): Ditto.
 | |
| 	(fhandler_disk_file::pread): Ditto.
 | |
| 	(fhandler_disk_file::pwrite): Ditto.
 | |
| 	* fhandler.cc (fhandler_base::pread): Define new function.
 | |
| 	(fhandler_base::pwrite): Ditto.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::pread): Ditto.
 | |
| 	(fhandler_base::pwrite): Ditto.
 | |
| 	* syscalls.cc (pread): Define new function.
 | |
| 	(pwrite): Ditto.
 | |
| 	* cygwin.din: Export pread, pwrite.
 | |
| 
 | |
| 	* include/sys/ioctl.h: Guard some _IO* declarations to avoid conflict
 | |
| 	with socket.h.
 | |
| 
 | |
| 2005-07-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/sys/ioctl.h: Add some linux defines.
 | |
| 
 | |
| 2005-07-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::init): Put back accidentally removed debug_printf.
 | |
| 
 | |
| 2005-07-29  Arto Huusko  <arto.huusko@wmdata.fi>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::simplestub): Wait for h to be filled out
 | |
| 	by main thread before assigning it.
 | |
| 
 | |
| 2005-07-29  Arto Huusko  <arto.huusko@wmdata.fi>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::init): Sleep before retrying open_shared().
 | |
| 
 | |
| 2005-07-29  Arto Huusko  <arto.huusko@wmdata.fi>
 | |
| 
 | |
| 	* fork.cc (fork_parent): Fix null deref if pinfo creation fails.
 | |
| 
 | |
| 2005-07-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygmalloc.h (MSPACES): Define.  This dropped through the cracks after
 | |
| 	the last malloc update.
 | |
| 	* dcrt0.cc: Fix a comment.
 | |
| 	* malloc.cc (internal_malloc): Fix definition so that it can be safely
 | |
| 	coerced.
 | |
| 
 | |
| 2005-07-27  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/cygwin/in.h (INET_ADDRSTRLEN): Add new definition.
 | |
| 
 | |
| 2005-07-27  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* gendef: Use nocr to remove \r's from input.
 | |
| 	gendef (nocr): New function.
 | |
| 
 | |
| 2005-07-27  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_clipboard.cc (fhandler_dev_clipboard::close): Set membuffer
 | |
| 	to NULL.
 | |
| 	(fhandler_dev_clipboard::fixup_after_exec): Don't call close here.
 | |
| 	Just set variables directly.
 | |
| 
 | |
| 2005-07-25  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/byteswap.h: New file.
 | |
| 
 | |
| 2005-07-25  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/cygwin/types.h: Define loff_t.
 | |
| 
 | |
| 2005-07-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* child_info.h (child_info::sync): Pass pid and HANDLE rather than
 | |
| 	using pinfo.
 | |
| 	(child_info::child_info): Accept an argument controlling whether to
 | |
| 	create proc_subproc.
 | |
| 	(child_info_spawn::child_info_spawn): Ditto.
 | |
| 	* sigproc.cc (child_info::child_info): Ditto.
 | |
| 	(child_info_spawn::child_info_spawn): Ditto.
 | |
| 	(child_info::sync): Use passed in pid and HANDLE.
 | |
| 	* fork.cc (fork_parent): Reflect additional arguments required for
 | |
| 	child_info::sync.
 | |
| 	* hookapi.cc (hook_or_detect_cygwin): Rename.  Change so that NULL 'fn'
 | |
| 	argument just returns "true", indicating that program uses cygwin1.dll.
 | |
| 	* spawn.cc (av::win16_exe): New element.
 | |
| 	* spawn.cc (av::iscygwin): New element.
 | |
| 	(av::fixup): New function.
 | |
| 	(spawn_guts): Protect against SEGV.  Use fixup function to detect when
 | |
| 	it is safe to wait for a spawned (as opposed to an execed) program.
 | |
| 	Reflect changes in child_info::sync arguments.
 | |
| 	* external.cc (cygwin_internal): Reflect function renaming to
 | |
| 	hook_or_detect_cygwin.
 | |
| 
 | |
| 	* cygheap.cc (cygheap_fixup_in_child): Close handle after debug fixup
 | |
| 	has been done to prevent false positives in handle collision.
 | |
| 
 | |
| 	* exceptions.cc (try_to_debug): Notify debugger if already being
 | |
| 	debugged.
 | |
| 
 | |
| 2005-07-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.cc (mount): Only check win32_path when we know we need it.
 | |
| 
 | |
| 2005-07-09  Nicholas Wourms  <nwourms@gmail.com>
 | |
| 
 | |
| 	* cygwin.din (getline): Export.
 | |
| 	(getdelim): Export.
 | |
| 	* include/sys/stdio.h (getline): Replace macro with function prototype.
 | |
| 	(getdelim):  Likewise.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2005-07-08  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (__getline): Export.
 | |
| 	(__getdelim): Export.
 | |
| 	* include/sys/stdio.h (getline): Define as __getline.
 | |
| 	(getdelim): Define as __getdelim.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2005-07-06  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	Eliminate (void) cast on standalone function calls throughout.
 | |
| 
 | |
| 2005-07-05  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (cygwin_exit): Mark as "noreturn".
 | |
| 	* sigproc.cc (child_info::ready): Don't signal parent that we are a
 | |
| 	cygwin process if we are dynamically loaded.
 | |
| 
 | |
| 2005-07-05  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* malloc.cc: Update to version 2.8.2.
 | |
| 
 | |
| 2005-07-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_tape.cc (fhandler_dev_tape::close): Don't do "extra stuff"
 | |
| 	when we know we're execing.
 | |
| 
 | |
| 2005-07-04  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	Change foo (void) to foo () for all c++ functions throughout.
 | |
| 	Remove all fhandler_*::dump functions throughout.
 | |
| 
 | |
| 	* fhandler.h (fhandler_dev_mem::close): Remove pass-through function in
 | |
| 	favor of virtual method.
 | |
| 	(handler_dev_raw::close): Ditto.
 | |
| 	(fhandler_dev_clipboard::fixup_after_exec): New method.
 | |
| 	* fhandler_dev_mem.cc (fhandler_dev_mem::close): Eliminate pass through
 | |
| 	function in favor of virtual method.
 | |
| 	* fhandler_dev_raw.cc (fhandler_dev_raw::close): Ditto.
 | |
| 	* fhandler_clipboard.cc (fhandler_dev_clipboard::close): Don't go to
 | |
| 	extra effort when execing.
 | |
| 	(fhandler_dev_clipboard::fixup_after_exec): New function.
 | |
| 	* fhandler_console.cc (fhandler_console::close): Don't do "extra stuff"
 | |
| 	when we know we're execing.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::close): Ditto.
 | |
| 	* fhandler_dsp.cc (fhandler_dev_dsp::close): Ditto.
 | |
| 	* fhandler_fifo.cc (fhandler_fifo.cc::close): Ditto.  function in favor
 | |
| 	of base function.
 | |
| 	* fhandler_random.cc (fhandler_dev_random::close): Ditto.
 | |
| 	* fhandler_registry.cc (fhandler_registry::close): Ditto.
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::close): Ditto.
 | |
| 	* fhandler_virtual.cc (fhandler_virtual::close): Ditto.
 | |
| 
 | |
| 	* pinfo.cc (proc_waiter): Remove unneeded hExeced declaration.
 | |
| 	* sigproc.cc: Ditto.
 | |
| 	* winsup.h (hExeced): Define here.
 | |
| 
 | |
| 	* fhandler_virtual.cc (fhandler_virtual::fixup_after_exec): Just call
 | |
| 	close() to reinitialize things to known state.
 | |
| 
 | |
| 2005-07-04  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.h (_cygtls): Perform minor reformatting.
 | |
| 
 | |
| 	* winsup.h (close_all_files): Reflect argument change.
 | |
| 	* dtable.cc (close_all_files): Ditto.
 | |
| 	* dtable.h: Ditto.
 | |
| 	* fhandler.h: Ditto.
 | |
| 	* spawn.cc (spawn_guts): Move close_all_files back to its original
 | |
| 	location in first P_OVERLAY test but use argument denoting that handles
 | |
| 	are only supposed to be closed, not released (more work to be done
 | |
| 	here).
 | |
| 	* syscalls.cc (close_all_files): Take an argument denoting whether to
 | |
| 	release closed files or not.
 | |
| 
 | |
| 	* path.cc (symlink): Change argument names to reflect linux man page.
 | |
| 	(symlink_worker): Ditto.  Also appropriately set ENOENT for empty
 | |
| 	strings.
 | |
| 
 | |
| 
 | |
| 2005-07-04  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* cygheap.h (struct init_cygheap): Delete cygwin_regname member.
 | |
| 	* external.cc (cygwin_internal): Use cygpsid::get_id for
 | |
| 	CW_GET_UID_FROM_SID and CW_GET_GID_FROM_SID.
 | |
| 	Turn CW_SET_CYGWIN_REGISTRY_NAME and CW_GET_CYGWIN_REGISTRY_NAME
 | |
| 	into noops.
 | |
| 
 | |
| 2005-07-03  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* thread.cc (pthread_mutex::init): Remove unneeded efault/mutex check.
 | |
| 
 | |
| 2005-07-02  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* thread.h (verifyable_object_state verifyable_object_isvalid): Delete
 | |
| 	function declaration that should have been static.
 | |
| 	* thread.cc (verifyable_object_state verifyable_object_isvalid): Make
 | |
| 	inline static.
 | |
| 	(pthread*::is_good_object): Move to directly after
 | |
| 	verifyable_object_state verifyable_object_isvalid and make inline.
 | |
| 	(check_valid_pointer): Delete function.
 | |
| 	(pthread_cond_timedwait): Use myfault to detect valid pointer.
 | |
| 	(pthread_mutex::init): Ditto.
 | |
| 
 | |
| 2005-07-02  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	Replace valid memory checks with new myfault class "exception
 | |
| 	handling", almost everywhere.  Leave some thread.cc stuff alone for
 | |
| 	now.
 | |
| 	* cygtls.h: Kludge some definitions to avoid including a problematic
 | |
| 	windows header.
 | |
| 	(_cygtls::_myfault): New entry.
 | |
| 	(_cygtls::_myfault_errno): Ditto.
 | |
| 	(_cygtls::fault_guarded): New function.
 | |
| 	(_cygtls::setup_fault): Ditto.
 | |
| 	(_cygtls::return_from_fault): Ditto.
 | |
| 	(_cygtls::clear_fault): Ditto.
 | |
| 	(myfault): New class.
 | |
| 	* exceptions.cc (handle_exceptions): Handle case of guarded fault in
 | |
| 	system routine.
 | |
| 	* gendef: Add another entry point for setjmp that the compiler doesn't
 | |
| 	know about and won't complain about.
 | |
| 	* gentls_offsets: Just include windows.h rather than kludging a HANDLE
 | |
| 	def.
 | |
| 	* miscfuncs.cc (check_null_str): Delete.
 | |
| 	(check_null_empty_str): Ditto.
 | |
| 	(check_null_empty_str_errno): Ditto.
 | |
| 	(check_null_str_errno): Ditto.
 | |
| 	(__check_null_invalid_struct): Ditto.
 | |
| 	(__check_null_invalid_struct_errno): Ditto.
 | |
| 	(__check_invalid_read_ptr): Ditto.
 | |
| 	(__check_invalid_read_ptr_errno): Ditto.
 | |
| 	(dummytest): New function.
 | |
| 	(check_iovec_for_read): Delete.
 | |
| 	(chec_iovec): Rename from check_iovec_for_write.  Take a read/write
 | |
| 	parameter.
 | |
| 	* tlsoffsets.h: Regenerate.
 | |
| 	* winsup.h: Remove check_* declarations.
 | |
| 	(check_iovec_for_read): Delete declaration.  Turn into a define
 | |
| 	instead.
 | |
| 	(check_iovec_for_write): Ditto.
 | |
| 	(check_iovec): New declaration.
 | |
| 
 | |
| 	* thread.h: Use ifdef guard name consistent with other header files.
 | |
| 
 | |
| 2005-07-02  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump DLL minor number to 19.
 | |
| 
 | |
| 2005-06-30  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::readv): Use malloc/free instead of alloca.
 | |
| 	(fhandler_base::writev): Ditto.
 | |
| 
 | |
| 2005-06-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygerrno.h: Make multi-inclusion safe.
 | |
| 	* fhandler_termios.cc (fhandler_termios::tcsetpgrp): Deal with EINTR.
 | |
| 	* dcrt0.cc (dll_crt0_0): Accommodate init_console_handler argument
 | |
| 	change.
 | |
| 	* winsup.h: Ditto.
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
 | |
| 	* exceptions.cc (init_console_handler): Ditto.  Ignore console events
 | |
| 	if we're not attached to a terminal.
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
 | |
| 	* wincap.cc: Implement has_null_console_handler_routine throughout.
 | |
| 	* wincap.h: Ditto.
 | |
| 
 | |
| 2005-06-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* autoload.cc (LoadDLLprime): Use a more descriptive name for autoload
 | |
| 	text sections.
 | |
| 	* cygwin.sc: Ditto.
 | |
| 
 | |
| 2005-06-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::facl): Add missing break.
 | |
| 
 | |
| 2005-06-24  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Don't strip trailing dots and spaces
 | |
| 	at the start of the path.
 | |
| 
 | |
| 2005-06-24  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (rootdir): Don't set errno.
 | |
| 	* syscalls.cc (statvfs): Set errno to ENOTDIR if rootdir() failed.
 | |
| 
 | |
| 2005-06-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_dev_tape): Add declaration for
 | |
| 	fixup_after_fork and set_close_on_exec.
 | |
| 	* fhandler_tape.cc (fhandler_dev_tape::open): Create mt_mtx mutex
 | |
| 	inheritable.
 | |
| 	(fhandler_dev_tape::close): Close mt_mtx.
 | |
| 	(fhandler_dev_tape::dup): Duplicate mt_mtx and mt_evt as necessary.
 | |
| 	(fhandler_dev_tape::fixup_after_fork): New method.
 | |
| 	(fhandler_dev_tape::set_close_on_exec): New method.
 | |
| 
 | |
| 2005-06-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.cc (get_initgroups_sidlist): Drop special_pgrp parameter.
 | |
| 	(get_setgroups_sidlist): Avoid duplicate groups in group list.
 | |
| 	(create_token): Remove special_pgrp local variable.  Accommodate
 | |
| 	change to get_initgroups_sidlist call.
 | |
| 
 | |
| 2005-06-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* uinfo.cc (uinfo_init): Call reimpersonate to set the main thread's
 | |
| 	impersonation token.
 | |
| 
 | |
| 2005-06-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_proc.cc (format_proc_partitions): Only list recognized
 | |
| 	partitions.  Use partition number given by PartitionNumber member.
 | |
| 
 | |
| 2005-06-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* glob.c: (glob0): New local variable `limit`. Use in calls to glob1
 | |
| 	and globextend.
 | |
| 	(glob1): Add `limit' parameter.
 | |
| 	(glob2): Ditto.
 | |
| 	(glob3): Ditto.
 | |
| 	(globextend): Ditto. Implement GLOB_LIMIT handling.
 | |
| 	* include/glob.h (GLOB_LIMIT): New define.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2005-06-17  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* wincap.h (wincaps::detect_win16_exe): Declare.
 | |
| 	(wincapc::detect_win16_exe): Implement.
 | |
| 	* wincap.cc: Populate detect_win16_exe where appropriate.
 | |
| 	* spawn.cc (spawn_guts): Only go out of the way to detect 16-bit apps
 | |
| 	on systems which are flummoxed by them.
 | |
| 
 | |
| 2005-06-17  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* spawn.cc (spawn_guts): Detect when executing a 16-bit application and
 | |
| 	avoid setting the process pipe since this causes conniptions in Windows
 | |
| 	9x.
 | |
| 
 | |
| 2005-06-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (inet_pton): Export.
 | |
| 	(inet_ntop): Export.
 | |
| 	* net.cc (cygwin_inet_pton): Implement inet_pton for AF_INET for now.
 | |
| 	(cygwin_inet_ntop): Implement inet_ntop for AF_INET for now.
 | |
| 	* include/arpa/inet.h (inet_pton): Declare.
 | |
| 	(inet_ntop): Declare.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2005-06-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_union): Add missing members corresponding to
 | |
| 	fhandler_fifo and fhandler_netdrive.
 | |
| 
 | |
| 2005-06-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (statvfs): Handle the case when GetDiskFreeSpaceEx
 | |
| 	succeeds but GetDiskFreeSpace fails by faking bytes-per-sector and
 | |
| 	sectors-per-cluster values.
 | |
| 
 | |
| 2005-06-15  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::detach): Fix debugging output.
 | |
| 	* dcrt0.cc (dll_crt0_1): Create signal_arrived early -- before any
 | |
| 	filename manipulation.
 | |
| 	* sigproc.cc (sigproc_init): Don't create signal_arrived here.
 | |
| 	* fork.cc (fork_child): Ditto.
 | |
| 	* sigproc.h (create_signal_arrived): Declare.
 | |
| 
 | |
| 2005-06-14  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Always reset to FH_FS when component != 0
 | |
| 	and FH_NETDRIVE to fix problems with strict case checking.
 | |
| 
 | |
| 2005-06-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::recvmsg): Avoid SEGV in OpenSSH
 | |
| 	when trying to pass file descriptor by setting msg->msg_accrightslen
 | |
| 	to 0.
 | |
| 
 | |
| 2005-06-11  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* Makefile.in: Avoid initial heap allocation since cygwin has its own
 | |
| 	heap.
 | |
| 
 | |
| 2005-06-11  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_console.cc (fhandler_console::read): Fix a compiler warning.
 | |
| 
 | |
| 2005-06-10  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/pthread.h: Change PTHREAD_MUTEX_DEFAULT to
 | |
| 	PTHREAD_MUTEX_NORMAL.  Revert PTHREAD_MUTEX_INITIALIZER to
 | |
| 	PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP since that is actually closer
 | |
| 	to what linux does.
 | |
| 	* thread.h (cw_cancel_action): New enum.
 | |
| 	(cancelable_wait): Use cw_cancel_action as third argument.
 | |
| 	* thread.cc (cancelable_wait): Ditto.  Don't wait for cancel if
 | |
| 	cancel_action == cw_no_cancel.
 | |
| 	(pthread::create): Don't wait for cancel event since that is racy.
 | |
| 	(pthread_mutex::pthread_mutex): Set default to PTHREAD_MUTEX_ERRORCHECK.
 | |
| 	(pthread_mutexattr::pthread_mutexattr): Ditto.
 | |
| 	(pthread_mutex::_lock): Tell cancelable_wait not to wait for
 | |
| 	cancellation event.
 | |
| 	(semaphore::_timedwait): Accommodate change in cancelable_wait args.
 | |
| 	(pthread::join): Ditto.
 | |
| 
 | |
| 2005-06-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::sendto): Always initialize
 | |
| 	ret to 0.
 | |
| 	(fhandler_socket::sendmsg): Ditto.
 | |
| 
 | |
| 2005-06-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (imaxabs): Export.
 | |
| 	(imaxdiv): Export.
 | |
| 	(llabs): Export.
 | |
| 	(lldiv): Export.
 | |
| 	(strtoimax): Export.
 | |
| 	(strtoumax): Export.
 | |
| 	* include/inttypes.h (imaxabs): Activate declaration.
 | |
| 	(imaxdiv): Ditto.
 | |
| 	(strtoimax): Ditto.
 | |
| 	(strtoumax): Ditto.
 | |
| 	* include/cygwin/version.h: Bump API minor.
 | |
| 
 | |
| 2005-06-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::detach): Improve diagnostics for what should
 | |
| 	be an impossible failure condition.
 | |
| 
 | |
| 2005-06-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.h (_local_storage::setmode_file): New element.
 | |
| 	(_local_storage::setmode_mode): New element.
 | |
| 	* tlsoffsets.h: Regenerate.
 | |
| 	* cygwin.din (setmode): Define as cygwin_getmode.
 | |
| 	* syscalls.cc (setmode_helper): Use setmode_* variables from tls rather
 | |
| 	than using unthreadsafe static.
 | |
| 	(setmode): Break out fwalk stuff.
 | |
| 	(cygwin_setmode): New function.  Put fwalk stdio stuff here.
 | |
| 
 | |
| 2005-06-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* thread.cc (pthread_mutex::_lock): Use cancelable_wait rather than
 | |
| 	WaitForSingleObject.
 | |
| 
 | |
| 2005-06-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygwin.sc: Place .cygwin_dll_common in a more sensible spot.
 | |
| 
 | |
| 2005-06-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygwin.sc: Place .cygwin_dll_common.
 | |
| 	* init.cc (threadfunc_ix): Use a more common name for the section name.
 | |
| 
 | |
| 2005-06-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/pthread.h (PTHREAD_MUTEX_INITIALIZER): Change to
 | |
| 	PTHREAD_NORMAL_MUTEX_INITIALIZER_NP to be closer to linux default.
 | |
| 
 | |
| 2005-06-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* thread.cc (cancelable_wait): No-op change to make sure that res is
 | |
| 	always a valid WFMO return.
 | |
| 
 | |
| 2005-06-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	Change pthread::cancelable_wait to just cancelable_wait, throughout.
 | |
| 	* thread.h (cw_sig_wait): New enum.
 | |
| 	(fast_mutex::lock): Use cancelable_wait with resumable signal.
 | |
| 	(cancelable_wait): Change fourth argument to cw_sig_wait enum.
 | |
| 	* thread.cc (cancelable_wait): Ditto.  Loop on signal detection if
 | |
| 	fourth argument == cw_sig_resume.
 | |
| 
 | |
| 2005-06-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygwin.sc: Apparently nonloading sections need to go last.
 | |
| 
 | |
| 2005-06-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygwin.sc: Restore resource and reloc sections and use more modern
 | |
| 	syntax for stabs sections.
 | |
| 
 | |
| 2005-06-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* environ.cc (spenvs): Remove cut/paste error which associated
 | |
| 	CYGWIN_DEBUG with HOME.
 | |
| 
 | |
| 2005-06-08  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.cc (cygwin_logon_user): Run LogonUser in the primary
 | |
| 	process token context.  Fix potential handle leak.
 | |
| 
 | |
| 2005-06-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::init): Define sa_buf as PSECURITY_ATTRIBUTES and
 | |
| 	allocate dynamically.
 | |
| 	(pinfo::set_acl): Replace sa_buf by dynamically allocated acl_buf.
 | |
| 	* sec_acl.cc (setacl): Allocate acl dynamically.
 | |
| 	* sec_helper.cc (sec_acl): Add test for alignment of acl when
 | |
| 	DEBUGGING is defined.
 | |
| 	(__sec_user): Same for sa_buf.
 | |
| 	* security.cc (verify_token): Define sd_buf as PSECURITY_DESCRIPTOR
 | |
| 	and allocate dynamically.
 | |
| 	(alloc_sd): Allocate acl dynamically.
 | |
| 	security.h (sec_user_nih): Change first parameter to
 | |
| 	SECURITY_ATTRIBUTES *.
 | |
| 	(sec_user): Ditto.
 | |
| 	* sigproc.cc (wait_sig): Define sa_buf as PSECURITY_ATTRIBUTES and
 | |
| 	allocate dynamically.
 | |
| 	* syscalls.cc (seteuid32): Define dacl_buf as PACL and allocate
 | |
| 	dynamically.
 | |
| 	* uinfo.cc (cygheap_user::init): Define sa_buf as PSECURITY_ATTRIBUTES
 | |
| 	and allocate dynamically.
 | |
| 	* winbase.h (ilockincr): Mark first argument of inline assembly as
 | |
| 	earlyclobber.
 | |
| 	(ilockdecr): Ditto.
 | |
| 
 | |
| 2005-06-07  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::detach): Make error message a little more
 | |
| 	detailed.
 | |
| 	* fhandler.cc (fhandler_base::raw_read): Ditto for debug message.
 | |
| 	* dcrt0.cc (do_exit): Add some more synchronization tests.
 | |
| 	* fhandler_fifo.cc (fhandler_fifo::dup): Don't duplicate a nonexistent
 | |
| 	handle.  Use derived return value rather than always retuning 0.
 | |
| 	* fhandler_netdrive.cc (fhandler_netdrive::exists): Wnet -> WNet.
 | |
| 	* winsup.h (exit_states): Add a couple of new exit states.
 | |
| 
 | |
| 2005-06-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (symlink_info::check): If GetFileAttributes returns
 | |
| 	with ERROR_SHARING_VIOLATION, the file exists.
 | |
| 
 | |
| 2005-06-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* uname.cc (uname): Change "amd64" to "x86_64" as on Linux.
 | |
| 
 | |
| 2005-06-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* uname.cc (uname): Add missing break.
 | |
| 
 | |
| 2005-06-05  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* Makefile.in: Build sync.o with -fomit-frame-pointer and -O3.
 | |
| 
 | |
| 2005-06-05  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sync.cc (muto::acquire): Remove unneeded brackets and fix whitespace.
 | |
| 
 | |
| 2005-06-04  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* malloc.cc: Update to Doug Lea's malloc v2.8.0.
 | |
| 
 | |
| 2005-06-03  Max Kaehn <slothman@electric-cloud.com>
 | |
| 
 | |
| 	* dcrt0.cc (cygwin_dll_init): Initialize main_environ and cygtls.  Add
 | |
| 	comment to explain the caveats of this method.
 | |
| 	* how-cygtls-works.txt: New file.
 | |
| 
 | |
| 2005-06-02  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dlfcn.cc (get_full_path_of_dll): Use a relative path when converting
 | |
| 	so that the standard Windows rules for finding a library will be used
 | |
| 	if no path is given.  Stop explicitly searching /usr/bin since that is
 | |
| 	now in effect.
 | |
| 
 | |
| 2005-06-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	Revert 2005-05-30 close_all_files changes.
 | |
| 	* spawn.cc (spawn_guts): When execing, close all files after the child
 | |
| 	has synced with us.
 | |
| 
 | |
| 2005-06-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fchown): Make sure that
 | |
| 	disk open is called in case we're passed in a non-existent device.
 | |
| 
 | |
| 2005-06-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/machine/stdlib.h: New file.
 | |
| 
 | |
| 2005-06-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* thread.h (List_remove): Revert most of 2005-05-30 change.
 | |
| 
 | |
| 2005-06-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygwin.sc: Don't output .reloc or .rsrc sections.  Clean up stuff
 | |
| 	around .cygheap and use a workaround to get things working with newer
 | |
| 	(broken?) binutils.
 | |
| 
 | |
| 2005-05-31  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygheap.cc (cygheap_end): Remove bogus section attribute.
 | |
| 	* cygwin.sc: Make __cygheap_mid absolute.  Remove unused _cygheap_foo.
 | |
| 
 | |
| 2005-05-30  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* child_info.h (child_info::cygheap_h): Delete.
 | |
| 	(child_info::dwProcessId): New field.
 | |
| 	* cygheap.cc (init_cheap): Delete.
 | |
| 	(dup_now): Ditto.
 | |
| 	(cygheap_setup_for_child): Ditto.
 | |
| 	(cygheap_setup_for_child_cleanup): Ditto.
 | |
| 	(cygheap_fixup_in_child): Simplify.  Use new "child_copy" function to
 | |
| 	copy heap from parent.
 | |
| 	(_csbrk): Don't attempt allocation if within cygheap section.  Fix so
 | |
| 	that more than one allocation will succeed.
 | |
| 	(cygheap_init): Reset possibly-nonzero region to zero.
 | |
| 	* cygheap.h (cygheap_setup_for_child): Delete declaration.
 | |
| 	(cygheap_setup_for_child_cleanup): Ditto.
 | |
| 	(cygheap_start): Define as an array.
 | |
| 	* cygwin.sc: Modernize.  Remove unneeded sections.  Define cygheap
 | |
| 	here.
 | |
| 	* dcrt0.cc (do_exit): Reflect argument change to close_all_files.
 | |
| 	* dtable.cc (dtable::vfork_parent_restore): Ditto.
 | |
| 	* dtable.h: Ditto.
 | |
| 	* fhandler.h: Ditto.
 | |
| 	* fork.cc (fork_copy): Call ReadProcessMemory if there is no thread
 | |
| 	(indicating that we're execing).
 | |
| 	(fork_child): Don't mess with hParent.
 | |
| 	(fork_parent): Remove hParent stuff.  It happens earlier now.
 | |
| 	Remove call to cygheap_setup_for_child* stuff.
 | |
| 	(fork): Put child_info_stuff in grouped structure.  Issue error if
 | |
| 	parent handle is not set.
 | |
| 	(child_copy): New function.
 | |
| 	* sigproc.cc (child_info::child_info): Put cygheap settings here.  Set
 | |
| 	parent handle.
 | |
| 	(child_info::~child_info): Close parent handle if it exists.
 | |
| 	* spawn.cc (spawn_guts): Reorganize so that ciresrv is allocated at
 | |
| 	only the last minute so that cygheap changes are reflected.  Delete
 | |
| 	cygheap_setup* calls.
 | |
| 	* syscalls.cc (close_all_files): Add an argument to flag when the fd
 | |
| 	entry should be released.
 | |
| 	* winsup.h (close_all_files): Add an argument to close_all_files
 | |
| 	declaration.  Declare child_copy.
 | |
| 
 | |
| 2005-05-30  Vaclav Haisman  <v.haisman@sh.cvut.cz>
 | |
| 
 | |
| 	* thread.h (List_remove): Make node parameter const.  Use simple
 | |
| 	comparison and assignment rather than InterlockedCompareExchangePointer
 | |
| 	since access is already synchronized.
 | |
| 
 | |
| 2005-05-30  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dlfcn.cc (set_dl_error): Use UNIX error rather than Windows error.
 | |
| 
 | |
| 2005-05-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygmagic: Remove debugging cruft missed on 2005-05-21.
 | |
| 
 | |
| 2005-05-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Move component to function scope. Set
 | |
| 	PATH_RO only on *real* FH_NETDRIVEs or on non-FH_NETDRIVE virtual
 | |
| 	paths. Allow non-retrievable shares to be handled as files.
 | |
| 
 | |
| 2005-05-29  Eric Blake  <ebb9@byu.net>
 | |
| 
 | |
| 	* include/limits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Always define.
 | |
| 
 | |
| 2005-05-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* thread.h (pthread_key::set): Inline.
 | |
| 	(pthread_key::get): Ditto.
 | |
| 	* thread.cc (pthread::set): Delete.
 | |
| 	(pthread::get): Ditto.
 | |
| 
 | |
| 2005-05-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygwin.din: Remove signal front end from pthread_[gs]etspecific.
 | |
| 
 | |
| 2005-05-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave:tcflush): Use signed comparison.
 | |
| 
 | |
| 2005-05-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* times.cc (time_ms::usecs): Coerce comparison to signed or whole test
 | |
| 	is a no-op.
 | |
| 
 | |
| 2005-05-27  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygheap.h: Reference _cygheap_start via .cygheap section.
 | |
| 
 | |
| 	* environ.cc: Fix force_into_environment typo throughout.
 | |
| 	(spenvs): Export CYGWIN_DEBUG if DEBUGGING.
 | |
| 
 | |
| 2005-05-26  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump DLL minor number to 18.
 | |
| 
 | |
| 2005-05-25  Pierre Humblet  <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::mkdir): New virtual method.
 | |
| 	(fhandler_base::rmdir): Ditto.
 | |
| 	(fhandler_disk_file:mkdir): New method.
 | |
| 	(fhandler_disk_file:rmdir): Ditto.
 | |
| 	* dir.cc (mkdir): Implement with fhandlers.
 | |
| 	(rmdir): Ditto.
 | |
| 	* fhandler.cc (fhandler_base::mkdir): New virtual method.
 | |
| 	(fhandler_base::rmdir): Ditto.
 | |
| 	(fhandler_disk_file::mkdir): New method.
 | |
| 	(fhandler_disk_file::rmdir): Ditto.
 | |
| 
 | |
| 2005-05-24  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump API minor number to 129.
 | |
| 
 | |
| 2005-05-24  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygwin.din: Export mkdtemp.
 | |
| 	* mktemp.cc: New file.
 | |
| 	* Makefile.in (DLL_OFILES): Add mktemp.o
 | |
| 
 | |
| 2005-05-23  Eric Blake  <ebb9@byu.net>
 | |
| 
 | |
| 	* include/stdint.h (INTMAX_C, UINTMAX_C): Fix definition.
 | |
| 
 | |
| 2005-05-21  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* spawn.cc (find_exec): Accept a PATH-like string in place of an
 | |
| 	environment variable.
 | |
| 	* dlfcn.cc (get_full_path_of_dll): Search /usr/bin (for windows
 | |
| 	compatibility) and /usr/lib (for UNIX compatibility) when looking for
 | |
| 	shared libraries.
 | |
| 	* environ.cc (conv_envvars): Put back LD_LIBRARY_PATH since it is used
 | |
| 	by get_full_path_of_dll().
 | |
| 	* errno.cc (errmap): Map MOD_NOT_FOUND to ENOENT.
 | |
| 
 | |
| 	* cygmagic: Remove debugging cruft.
 | |
| 
 | |
| 2005-05-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/in.h: Add comment.
 | |
| 
 | |
| 2005-05-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/in.h: Define IPPROTO_xxx values as macros to
 | |
| 	accommodate SUSv3.
 | |
| 
 | |
| 2005-05-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/limits.h: Include features.h, as on linux.
 | |
| 
 | |
| 2005-05-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/endian.h: New file.
 | |
| 
 | |
| 2005-05-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.sc: Add Dwarf-2 debug sections.
 | |
| 
 | |
| 2005-05-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (mmap64): Make granularity an automatic variable.
 | |
| 
 | |
| 2005-05-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_cygdrive::seekdir): Delete declaration.
 | |
| 	(fhandler_cygdrive::seekdir): Delete.
 | |
| 
 | |
| 2005-05-19  Pierre Humblet  <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* fhandler.h (fhandler_cygdrive::iscygdrive_root): Delete method.
 | |
| 	(fhandler_cygdrive::telldir): Delete declaration.
 | |
| 	* fhandler_disk_file.cc: Remove all uses of
 | |
| 	fhandler_cygdrive::iscygdrive_root.
 | |
| 	(fhandler_disk_file::mkdir): New method.
 | |
| 	(fhandler_disk_file::rmdir): Ditto.
 | |
| 	(fhandler_cygdrive::telldir): Delete.
 | |
| 
 | |
| 2005-05-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* external.cc: Move pids declaration to file scope and use less
 | |
| 	enthusiastic constructor.
 | |
| 	* pinfo.h (winpids::winpids): Remove default setting.
 | |
| 	* fhandler_fifo.cc (fhandler_fifo::open_not_mine): Accommodate removal
 | |
| 	of default setting.
 | |
| 	* fhandler_proc.cc (fhandler_proc::readdir): Ditto.
 | |
| 
 | |
| 2005-05-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.h (_local_storage::unknown_thread_name): New buffer.
 | |
| 	* tlsoffsets.h: Regenerate.
 | |
| 	* cygthread.cc (cygthread::name): Use new thread-local buffer.
 | |
| 	* exceptions.cc (handle_exceptions): Avoid unnecessary initialization
 | |
| 	of static variables to zero.
 | |
| 	* fork.cc (slow_pid_reuse) Ditto.
 | |
| 
 | |
| 2005-05-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (mmap64): Avoid compiler warning.
 | |
| 	* ntea.cc (NTReadEA): Ditto.
 | |
| 	* hires.h (hires_base): Remove useless usecs function.
 | |
| 
 | |
| 2005-05-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_netdrive.cc (fhandler_netdrive::telldir): Remove since it's
 | |
| 	equivalent to fhandler_virtual::telldir now anyway.
 | |
| 	* fhandler.h (class fhandler_netdrive): Remove telldir.
 | |
| 
 | |
| 2005-05-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_netdrive.cc (fhandler_netdrive::telldir): Implement.
 | |
| 	(fhandler_netdrive::seekdir): Implement.
 | |
| 	(fhandler_netdrive::closedir): Call rewinddir to have only one point
 | |
| 	of calling WNetCloseEnum.
 | |
| 
 | |
| 2005-05-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_netdrive): Add method rewinddir.
 | |
| 	* fhandler_netdrive.cc (struct netdriveinf): New structure to
 | |
| 	store thread arguments.
 | |
| 	(thread_netdrive): Thread handling all potentially blocking
 | |
| 	WNet... calls.
 | |
| 	(create_thread_and_wait): Start and wait for above thread.
 | |
| 	(fhandler_netdrive::exists): Change to call create_thread_and_wait
 | |
| 	instead of calling WNet... function.
 | |
| 	(fhandler_netdrive::readdir): Ditto.  Fix error handling.
 | |
| 	(fhandler_netdrive::rewinddir): New method.
 | |
| 
 | |
| 2005-05-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* external.cc (cygwin_internal): Avoid compiler warning.
 | |
| 
 | |
| 2005-05-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_0): Don't do fixup_after_exec if dynamically
 | |
| 	loaded since the state of fds is unknown at this point.
 | |
| 
 | |
| 2005-05-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/sys/cygwin.h (enum cygwin_getinfo_types): Add CW_DEBUG_SELF.
 | |
| 	* external.cc (cygwin_internal): Implement CW_DEBUG_SELF.
 | |
| 
 | |
| 	* init.cc (dll_entry): Minor rearrangement of code.
 | |
| 
 | |
| 2005-05-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Remove embedded dots before slashes.
 | |
| 
 | |
| 2005-05-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* environ.cc (conv_envvars): Remove LD_LIBRARY_PATH entirely.
 | |
| 	It doesn't belong here.
 | |
| 
 | |
| 2005-05-15  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* environ.cc (conv_envvars): Treat LD_LIBRARY_PATH as path list.
 | |
| 
 | |
| 2005-05-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Check
 | |
| 	return code from GetFileSize and set file size to 0 if necessary.
 | |
| 	* fhandler_netdrive.cc (fhandler_netdrive::fstat): Set permissions
 | |
| 	to read/execute for all.
 | |
| 
 | |
| 2005-05-13  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.cc (normalize_posix_path): Do normalization on .  and ..  after
 | |
| 	a '//'.
 | |
| 
 | |
| 2005-05-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_netdrive::readdir): Remove useless comment.
 | |
| 
 | |
| 2005-05-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (WNetGetResourceParentA): Import.
 | |
| 	(WNetOpenEnumA): Import.
 | |
| 	(WNetEnumResourceA): Import.
 | |
| 	(WNetCloseEnum): Import.
 | |
| 	* fhandler.h (fhandler_netdrive::telldir): Add declaration.
 | |
| 	(fhandler_netdrive::seekdir): Ditto.
 | |
| 	(fhandler_netdrive::closedir): Ditto.
 | |
| 	* fhandler_netdrive.cc: Drop explicit including windows.h.  Include
 | |
| 	winnetwk.h instead of shlwapi.h.  Include dirent.h.
 | |
| 	(fhandler_netdrive::readdir): Implement.
 | |
| 	(fhandler_netdrive::telldir): New method.
 | |
| 	(fhandler_netdrive::seekdir): New method.
 | |
| 	(fhandler_netdrive::closedir): Ditto.
 | |
| 
 | |
| 2005-05-13  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	Remove PC_FULL from path_conv usage throughout.
 | |
| 	* path.h (enum pathconv_arg): Change PC_FULL to PC_NOFULL.
 | |
| 	* path.cc (path_conv::check): Test for PC_NOFULL rather than !PC_FULL.
 | |
| 	(cygwin_conv_to_win32_path): Use PC_NOFULL to force non-absolute path.
 | |
| 
 | |
| 2005-05-13  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_netdrive.cc (fhandler_netdrive::exists): Assert that "//"
 | |
| 	exists.
 | |
| 
 | |
| 2005-05-12  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.cc (_cygtls::remove): Eliminate compiler warning.
 | |
| 
 | |
| 	* dir.cc (mkdir): Check path for writability.
 | |
| 	(rmdir): Ditto.  Remove check for special directories.
 | |
| 	* path.cc (path_conv::check): Set PATH_RO for virtual devices.  Set
 | |
| 	error if read-only and asked for writability.
 | |
| 	* path.h (pathconv_arg): Add PC_WRITABLE.
 | |
| 	(path_types): Add PATH_RO.
 | |
| 	(path_conv::isro): Add (currently unused) check for read-only
 | |
| 	filesystem.  Return "ENOSHARE" when we know a share doesn't exist.
 | |
| 	* include/sys/mount.h: Add MOUNT_RO flag.
 | |
| 	* autoload.cc (WNetGetResourceInformationA): Import.
 | |
| 	* fhandler_netdrive.cc (fhandler_netdrive::exists): Detect actual
 | |
| 	existence of remote system rather than always assuming that it exists.
 | |
| 
 | |
| 2005-05-11  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (do_global_dtors): Don't call dll_global_dtors here.
 | |
| 	(__main): Reinstate atexit of do_global_dtors.
 | |
| 	(cygwin_exit): Call dll_global_dtors here.
 | |
| 	(do_exit): And here.
 | |
| 
 | |
| 
 | |
| 2005-05-10  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.cc (_cygtls::remove): Clear exitsock after close.
 | |
| 	* fhandler_console.cc (fhandler_console::write_normal): Store character
 | |
| 	in a local variable for potential future inspection.
 | |
| 
 | |
| 2005-05-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* Makefile.in (DLL_OFILES): Add fhandler_mailslot.o.
 | |
| 	* devices.h (FH_KMSG): Define new device.
 | |
| 	* devices.in: Add "/dev/kmsg" entry.
 | |
| 	* devices.cc: Regenerate.
 | |
| 	* dtable.cc (build_fh_pc): Handle case FH_KMSG.
 | |
| 	* fhandler.h (class fhandler_mailslot): New class.
 | |
| 	(class select_stuff): Add device_specific_mailslot pointer.
 | |
| 	* fhandler_mailslot.cc: New file.
 | |
| 	* select.cc (peek_mailslot): New function.
 | |
| 	(verify_mailslot): Ditto.
 | |
| 	(struct mailslotinf): New stuct to handle select on mailslots.
 | |
| 	(thread_mailslot): New function.
 | |
| 	(start_thread_mailslot): Ditto.
 | |
| 	(mailslot_cleanup): Ditto.
 | |
| 	(fhandler_mailslot::select_read): New method.
 | |
| 	* syslog.cc (klog_guard): New muto.
 | |
| 	(dev_kmsg): Local mailslot for kernel message device.
 | |
| 	(vklog): New function.
 | |
| 	(klog): Ditto.
 | |
| 	* winsup.h (vklog): Declare.
 | |
| 	(klog): Ditto.
 | |
| 	* include/sys/syslog.h: Define _PATH_KLOG.
 | |
| 
 | |
| 2005-05-10  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_1): Call cygwin_exit to ensure that destructors
 | |
| 	are handled correctly.
 | |
| 
 | |
| 2005-05-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Set correct file attributes for socket
 | |
| 	files.
 | |
| 
 | |
| 2005-05-09  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_netdrive): New class.
 | |
| 	* fhandler_netdrive.cc (fhandler_netdrive::fhandler_netdrive): New constructor.
 | |
| 	(fhandler_netdrive::exists): New method.
 | |
| 	(fhandler_netdrive::fstat): Ditto.
 | |
| 	(fhandler_netdrive::readdir): Ditto.
 | |
| 	(fhandler_netdrive::open): Ditto.
 | |
| 	* dtable.cc (build_fh_pc): Handle case FH_NETDRIVE.
 | |
| 	* path.cc (isvirtual_dev): Add FH_NETDRIVE.
 | |
| 	(mount_info::conv_to_win32_path): Detect netdrive device and bypass mount
 | |
| 	search for network paths.
 | |
| 
 | |
| 2005-05-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (get_cygwin_startup_info): New function pulled from
 | |
| 	dll_crt0_0.
 | |
| 	(dll_crt0_0): Use get_cygwin_startup_info to retrieve cygwin-specific
 | |
| 	startup pointer.
 | |
| 	* external.cc (cygwin_internal): Implement CW_ARGV and CW_ENVP.
 | |
| 	* include/sys/cygwin.h: Implement CW_ARGV and CW_ENVP.
 | |
| 
 | |
| 2005-05-07  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.cc (normalize_posix_path): Don't treat '//' specially since
 | |
| 	newer versions of bash now get this right.
 | |
| 
 | |
| 2005-05-07  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* devices.cc: Regenerate with correct name for dev_netdrive_storage.
 | |
| 
 | |
| 2005-05-06  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* Makefile.in (DLL_O_FILES): Add fhandler_netdrive.o.
 | |
| 	* fhandler_netdrive.cc: Placeholder file for future development.
 | |
| 	* devices.h (FH_NETDRIVE): Define new virtual device type.
 | |
| 	(netdrive_dev): Define.
 | |
| 	* devices.in (dev_netdrive_storage): Define.
 | |
| 	* devices.cc: Regenerate.
 | |
| 
 | |
| 2005-05-04  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygerrno.h (__set_errno): Remove useless parentheses.
 | |
| 
 | |
| 2005-05-04  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygerrno.h (__set_errno): Define as inline function here.
 | |
| 	(set_errno): Always define as call to __set_errno.
 | |
| 	* debug.cc (__set_errno): Move to cygerrno.h.
 | |
| 
 | |
| 2005-05-03  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* shared.cc (user_shared_initialize): Rework locking so that nothing is
 | |
| 	checked until cb is non-zero.
 | |
| 
 | |
| 2005-05-03  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't treat
 | |
| 	inability to open file as failure if only SetFileAttributes is
 | |
| 	going to be called.  Only call set_file_attribute if really necessary.
 | |
| 
 | |
| 2005-05-03  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (get_inet_addr): Add missing __seterrno call.
 | |
| 
 | |
| 2005-05-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::read): Actually read input when
 | |
| 	vmin == vtime == 0.
 | |
| 
 | |
| 2005-04-30  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* environ.cc (spenv::force_into_environment): Rename from add_always.
 | |
| 	(spenv::add_if_exists): Rename from force.
 | |
| 	(build_env): Accommodate name changes.  Make sure that stuff that is
 | |
| 	always supposed to be in the environment is actually added to the
 | |
| 	environment.
 | |
| 
 | |
| 	* shared.cc (open_shared): Restore VirtualFree eliminated by 2005-04-28
 | |
| 	change.
 | |
| 
 | |
| 2005-04-30  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* errno.cc (errmap): Sort table.
 | |
| 
 | |
| 2005-04-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* errno.cc (errmap): Map ERROR_NETNAME_DELETED to ENOSHARE.
 | |
| 
 | |
| 2005-04-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* shared_info.h (cygwin_shared_address): Bump to a higher value to avoid
 | |
| 	collision with large data areas.
 | |
| 
 | |
| 2005-04-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_console.cc (fhandler_console::get_tty_stuff): Accommodate
 | |
| 	changes to open_shared arguments.
 | |
| 	* fhandler_tape.cc (mtinfo_init): Ditto.
 | |
| 	* pinfo.cc (pinfo::init): Use open_shared rather than win32 mmap calls.
 | |
| 	* shared.cc (user_shared_initialize): Ditto.
 | |
| 	(memory_init): Ditto.
 | |
| 	(open_shared): Change to allow use a smore general mmap handler.
 | |
| 	* shared_info.h (shared_locations): Add SH_JUSTCREATE, SH_JUSTOPEN.
 | |
| 	(open_shared): Change declaration to match new usage.
 | |
| 
 | |
| 	* autoload.cc (LoadDLLfuncEx2): Define in terms of LoadDLLfuncEx3.
 | |
| 	(LoadDLLfuncEx3): New macro.
 | |
| 
 | |
| 2005-04-27  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::open_9x): Remove (broken) check for
 | |
| 	O_CREAT|O_EXCL.
 | |
| 	* syscalls.cc (open): Do O_CREAT|O_EXCL check here first.
 | |
| 
 | |
| 2005-04-26  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* environ.cc (build_env): Ensure that win32 array is properly filled in
 | |
| 	when a missing value has to be generated.
 | |
| 
 | |
| 2005-04-26  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump DLL minor number to 17.
 | |
| 
 | |
| 2005-04-24  Pavel Tsekov <ptsekov@gmx.net>
 | |
| 
 | |
| 	* how-to-debug-cygwin.txt: Fix typo.
 | |
| 
 | |
| 2005-04-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* shared.cc (user_shared_initialize): Implement locking similar to
 | |
| 	shared_info when initializing shared region.
 | |
| 
 | |
| 2005-04-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.h (dev_console::set_color): Define new function.
 | |
| 	(dev_console::set_default_attr): Ditto, moved from fhandler_console.
 | |
| 	(dev_console::fillin_info): Ditto.  Accommodate this change throughout
 | |
| 	this file.
 | |
| 	(fhandler_console::get_win32_attr): Eliminate.
 | |
| 	* fhandler_console.cc (fhandler_console::get_tty_stuff): Properly set
 | |
| 	default attributes on initialization.
 | |
| 	(fhandler_console::open): Set current attributes rather than default
 | |
| 	color on open.
 | |
| 	(fhandler_console::get_win32_attr): Eliminate.
 | |
| 	(dev_console::set_color): New function.  Move get_win32_attr stuff
 | |
| 	here.
 | |
| 	(dev_console::set_default_attr): New function, moved from
 | |
| 	fhandler_console.
 | |
| 	(dev_console::fillin_info): Ditto.
 | |
| 	(fhandler_console::char_command): Call set_color to set screen
 | |
| 	characteristics.
 | |
| 
 | |
| 2005-04-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::read): Remove unused signal state tweaks.
 | |
| 	* fhandler.h (fhandler_pipe::create_selectable): Declare.
 | |
| 	(fhandler_fifo::close_one_end): Declare.
 | |
| 	* fhandler_fifo.cc (fhandler_fifo::close_one_end): Define.
 | |
| 	(fhandler_fifo::open_not_mine): Use close_one_end to close appropriate
 | |
| 	end of pipe.
 | |
| 	* pinfo.cc (_pinfo::commune_recv): Ditto.
 | |
| 	* pipe.cc (fhandler_pipe::create_selectable): Rename from
 | |
| 	create_selectable_pipe.  Reorganize.
 | |
| 	(fhandler_pipe::create): Use create_selectable.
 | |
| 
 | |
| 2005-04-21  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* shared.cc (shared_info::initialize): Test previous version of shared
 | |
| 	memory magic rather than current version when determining if there has
 | |
| 	been a shared memory mismatch.
 | |
| 
 | |
| 2005-04-20  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.cc (proc_subproc): Fix handling of waiting for pids with zero
 | |
| 	value.
 | |
| 
 | |
| 	* strace.cc (strace::hello): Report parent pid of executing process.
 | |
| 
 | |
| 2005-04-20  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Fix problem reading symlinks introduced
 | |
| 	in below change by reverting the change and adding an additional test
 | |
| 	for nonexistent files in /proc.
 | |
| 
 | |
| 2005-04-20  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Punt when attempting to access a
 | |
| 	nonexistent directory or file in /proc.
 | |
| 
 | |
| 2005-04-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.cc (alloc_sd): Remove DELETE bit from user's ACE if
 | |
| 	allow_traverse is set.
 | |
| 
 | |
| 2005-04-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (pselect): Export.
 | |
| 	* select.cc (pselect): New function.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 	* include/sys/select.h: Include signal.h.  Declare pselect.
 | |
| 
 | |
| 2005-04-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (enum conn_state): Add connect_failed state.
 | |
| 	* fhandler_socket.cc (fhandler_socket::connect): Set connect_state to
 | |
| 	connect_failed when connect failed.
 | |
| 	* poll.cc (poll): Change errno to EINVAL if allocating memory fails,
 | |
| 	according to SUSv3. Add socket descriptors always to except_fds. Test
 | |
| 	for failed connect and set revents flags appropriately.
 | |
| 	* select.cc (set_bits): Set connect_state to connect_failed when
 | |
| 	select indicates failed nonblocking connect.
 | |
| 	(fhandler_dev_null::select_except): Set except_ready to false so that
 | |
| 	/dev/null is not always in except state.
 | |
| 	(peek_socket): Fix bogus conditional.
 | |
| 	(fhandler_socket::select_write): Treat all connect_states except
 | |
| 	unconnected equivalent to return consistent results.
 | |
| 	(fhandler_windows::select_except): Set except_ready to false so that
 | |
| 	/dev/windows is not always in except state.
 | |
| 
 | |
| 2005-04-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump DLL minor number to 16.
 | |
| 
 | |
| 2005-04-18  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* grp.cc (initgroups32): Return the correct value.
 | |
| 
 | |
| 2005-04-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::utimes_fs): Ignore
 | |
| 	ERROR_NOT_SUPPORTED to workaround Win9x weirdness.
 | |
| 	* path.cc (symlink_info::check): Remap ERROR_INVALID_FUNTION to
 | |
| 	ERROR_FILE_NOT_FOUND for the same reason.
 | |
| 
 | |
| 2005-04-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 	    Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* security.h (cygsidlist::addfromgr): Allow duplicate entries.
 | |
| 	(get_server_groups): Declare new function.
 | |
| 	* security.cc (is_group_member): Simplify.
 | |
| 	(get_server_groups): New function.
 | |
| 	(get_initgroups_sidlist): Call get_server_groups.
 | |
| 	(verify_token): Allow token when supplementary sids are not in
 | |
| 	/etc/group but are in the token.
 | |
| 	Streamline the code.
 | |
| 	* grp.cc (initgroups32): New implementation.
 | |
| 	(getgroups32): Handle case where the supplementary groups are set.
 | |
| 
 | |
| 2005-04-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* environ.cc (environ_init): Don't set traverse checking as default.
 | |
| 
 | |
| 2005-04-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::utimes_fs): Drop touching
 | |
| 	ChangeTime.
 | |
| 
 | |
| 2005-04-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.cc (fhandler::dup): Duplicate flags, too.
 | |
| 	* fhandler.h (fhandler_fifo::owner): Eliminate.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_fs): Handle on-disk
 | |
| 	devices better.
 | |
| 	(fhandler_base::fstat_helper): Ditto.
 | |
| 	* fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Don't initialize
 | |
| 	obsolete "owner".
 | |
| 	(fhandler_fifo::open_not_mine): Add some debugging.  Duplicate correct
 | |
| 	handle when we own it.
 | |
| 	(fhandler_fifo::open): Set flags from input, not from first pipe.  Flag
 | |
| 	that fork fixup is needed.
 | |
| 	(fhandler_fifo::dup): Set errno correctly when DuplicateHandle fails.
 | |
| 	* pinfo.cc (commune_send): Add debugging for fifo.
 | |
| 
 | |
| 	* cygwin/version.h: Bump API minor version to 127 to reflect exporting
 | |
| 	of sigrelese.
 | |
| 
 | |
| 2005-04-14  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
 | |
| 
 | |
| 	* syscalls.cc (setuid32): Correct debugging output.
 | |
| 
 | |
| 2005-04-14  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (do_global_dtors): Run DLL dtors.
 | |
| 	(__main): Don't rely on atexit to run dtors.
 | |
| 	(do_exit): Specifically call do_global_dtors here.
 | |
| 	(cygwin_exit): Ditto.
 | |
| 	* dll_init.cc (dll_global_dtors): Make global.  Only run dtors once.
 | |
| 	(dll_list::init): Just set flag that dtors should be run.  Don't rely on atexit.
 | |
| 	* dll_init.h (dll_global_dtors): Declare.
 | |
| 
 | |
| 	* exceptions.cc (sigrelse): Define.
 | |
| 
 | |
| 	* path.h (is_fs_device): New method.
 | |
| 	(is_lnk_special): Ditto.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::link): Use
 | |
| 	"is_lnk_special" rather than "is_lnk_symlink".
 | |
| 	* syscalls.cc (rename): Ditto.
 | |
| 
 | |
| 	* hookapi.cc (ld_preload): Use colon as a separator rather than space.
 | |
| 
 | |
| 2005-04-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_socket): Remove utimes.
 | |
| 	* fhandler_socket.cc (fhandler_socket::utimes): Remove.
 | |
| 
 | |
| 2005-04-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygerrno.h (__seterrno_from_nt_status): Define. Always set Win32
 | |
| 	error code as well as errno. Use throughout where errno is set from
 | |
| 	NT status.
 | |
| 	(set_errno): Evaluate val only once.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Fix typo in
 | |
| 	debug output.
 | |
| 	* fhandler_mem.cc (fhandler_dev_mem::open): Rely on
 | |
| 	__seterrno_from_nt_status setting Win32 error code in debug output.
 | |
| 	* fhandler_proc.cc (format_proc_uptime): Ditto.
 | |
| 	(format_proc_stat): Ditto.
 | |
| 	* fhandler_process.cc (format_process_stat): Ditto.
 | |
| 	* sysconf.cc (sysconf): Ditto.
 | |
| 
 | |
| 2005-04-13  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::utimes_fs): New method.
 | |
| 	* fhandler.cc (fhandler_base::utimes): Call utimes_fs if on-disk
 | |
| 	special file.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::utimes): Use utimes_fs.
 | |
| 	(fhandler_base::utimes_fs): Handle on-disk device files.
 | |
| 
 | |
| 2005-04-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::utimes): Don't set errno
 | |
| 	if open fails, it has already been set by open.
 | |
| 
 | |
| 2005-04-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (NtQueryVolumeInformationFile): Add.
 | |
| 	* fhandler.cc (fhandler_base::raw_write): Don't touch has_changed flag.
 | |
| 	* fhandler.h (enum change_state): Remove.
 | |
| 	(fhandler_base::status): Revert has_changed to a simple bit.
 | |
| 	(fhandler_base::fstat_helper): Add nAllocSize parameter.  Rename
 | |
| 	ftCreationTime to ftChangeTime.
 | |
| 	* fhandler_disk_file.cc: Call fstat_helper with additional
 | |
| 	allocation size throughout.
 | |
| 	(fhandler_base::fstat_by_handle): Use NT native functions to get
 | |
| 	full file information on NT.  Call fstat_helper with LastWriteTime
 | |
| 	as ctime, if ChangeTime is not available.
 | |
| 	(fhandler_base::fstat_by_name): Call fstat_helper with LastWriteTime
 | |
| 	as ctime.
 | |
| 	(fhandler_base::fstat_helper): Add comment. Drop special FAT
 | |
| 	handling since it's useless. Use nAllocSize for st_blocks if available.
 | |
| 	(fhandler_disk_file::touch_ctime): Only touch LastWriteTime.
 | |
| 	(fhandler_disk_file::fchmod): Set has_changed on 9x only.
 | |
| 	(fhandler_disk_file::fchown): Don't set has_changed.
 | |
| 	(fhandler_disk_file::facl): Ditto.
 | |
| 	(fhandler_disk_file::ftruncate): Ditto.
 | |
| 	(fhandler_disk_file::link): Set has_changed on 9x only and on original
 | |
| 	file only.
 | |
| 	(fhandler_base::open_fs): Don't set has_changed in O_TRUNC case.
 | |
| 	* ntdll.h (FILE_BASIC_INFORMATION): Define.
 | |
| 	(FILE_STANDARD_INFORMATION): Define.
 | |
| 	(FILE_INTERNAL_INFORMATION): Define.
 | |
| 	(FILE_EA_INFORMATION): Define.
 | |
| 	(FILE_ACCESS_INFORMATION): Define.
 | |
| 	(FILE_POSITION_INFORMATION): Define.
 | |
| 	(FILE_MODE_INFORMATION): Define.
 | |
| 	(FILE_ALIGNMENT_INFORMATION): Define.
 | |
| 	(FILE_NAME_INFORMATION): Don't define with arbitrary FileName size.
 | |
| 	(FILE_ALL_INFORMATION): Define.
 | |
| 	(FILE_INFORMATION_CLASS): Add FileAllInformation.
 | |
| 	(FILE_FS_VOLUME_INFORMATION): Define.
 | |
| 	(FS_INFORMATION_CLASS): Define.
 | |
| 	(NtQueryVolumeInformationFile): Define.
 | |
| 
 | |
| 2005-04-11  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	Revert previous patch.
 | |
| 	* autoload.cc (GetVolumePathNamesForVolumeNameA): Remove.
 | |
| 	(GetVolumeNameForVolumeMountPointA): Add.
 | |
| 	* syscalls.cc (sync): Rewrite guid case to skip floppies also on
 | |
| 	Windows 2000.
 | |
| 
 | |
| 2005-04-11  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (sync): Use renamed has_get_volume_pathnames wincap.
 | |
| 	* wincap.h (wincaps::has_get_volume_pathnames): Rename from
 | |
| 	has_guid_volumes
 | |
| 	* wincap.cc: Accommodate above rename throughout.  Set to false on
 | |
| 	Windows 2000.
 | |
| 
 | |
| 2005-04-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pipe.cc (fhandler_pipe::open): Remove O_CREAT limitation.
 | |
| 
 | |
| 2005-04-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syslog.cc (try_connect_guard): Remove useless conditionalized code.
 | |
| 
 | |
| 2005-04-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syslog.cc: Include sys/socket.h.
 | |
| 	(try_connect_guard): New static variable.
 | |
| 	(syslogd_inited): Ditto.
 | |
| 	(syslogd_sock): Ditto.
 | |
| 	(try_connect_syslogd): New function to connect and write syslog to
 | |
| 	local syslogd.
 | |
| 	(vsyslog): Log to stderr if LOG_PERROR flag has been given to openlog.
 | |
| 	Try logging to syslogd.  Use Event Log resp. log file as fallback.
 | |
| 	(closelog): Close socket to syslogd.
 | |
| 	* include/sys/syslog.h (_PATH_LOG): Define.
 | |
| 	(INTERNAL_NOPRI): Define if SYSLOG_NAMES is defined.
 | |
| 	(INTERNAL_MARK): Ditto.
 | |
| 	(struct _code): Ditto.
 | |
| 	(prioritynames): Ditto.
 | |
| 	(facilitynames): Ditto.
 | |
| 
 | |
| 2005-04-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (get_inet_addr): Add type parameter to return
 | |
| 	unix socket type.  Read socket type from unix socket file.
 | |
| 	(fhandler_socket::bind): Write socket type to unix socket file.
 | |
| 	(fhandler_socket::connect): Return with errno EPROTOTYPE if
 | |
| 	socket type of socket doesn't match socket type of unix socket
 | |
| 	trying to connect to.
 | |
| 
 | |
| 2005-04-06  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* security.h (cygsidlist::addfromgr): Avoid duplicate entries.
 | |
| 	* grp.cc (initgrousp): Add syscall_printf.
 | |
| 	(setgroups): Add syscall_printf and make sure sids are added only once.
 | |
| 
 | |
| 2005-04-06  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* net.cc (cygwin_getservbyname): Return (possibly NULL) return value of
 | |
| 	dup_ent rather than assuming that tls buffer is valid.
 | |
| 	(cygwin_getservbyport): Ditto.
 | |
| 	(cygwin_gethostbyname): Ditto.
 | |
| 	(cygwin_gethostbyaddr): Ditto.
 | |
| 
 | |
| 2005-04-05  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.cc (_cygtls::remove): Don't free or close stuff if we're being
 | |
| 	called in a "non-standard" way.
 | |
| 
 | |
| 2005-04-05  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sync.h (muto::initforce): Delete flawed implementation.
 | |
| 	* pwdgrp.h (pwdgrp::pglock): Make static.
 | |
| 	* grp.cc (pwdgrp::pwdgrp): Eliminate use of initforce.
 | |
| 
 | |
| 2005-04-05  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sync.h (muto::initforce): Force initialization even when name !=
 | |
| 	NULL.
 | |
| 	* grp.cc (pwdgrp::pwdgrp): Use initforce since the enclosing structure
 | |
| 	is !NO_COPY.
 | |
| 
 | |
| 2005-04-05  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sync.h (muto::operator int): New operator.
 | |
| 	(locker): Remove unused class.
 | |
| 	(new_muto): Delete.
 | |
| 	(new_muto1): Ditto.
 | |
| 	(new_muto_name): Ditto.
 | |
| 	* cygheap.cc (cygheap_setup_for_child): Reflect use of static storage
 | |
| 	for muto rather than pointer.
 | |
| 	(_csbrk): Ditto.
 | |
| 	(_cmalloc): Ditto.
 | |
| 	(_cmalloc): Ditto.
 | |
| 	(_cfree): Ditto.
 | |
| 	* cygheap.h (cwdstuff::cwd_lock): Ditto.
 | |
| 	(cwdstuff::get_drive): Ditto.
 | |
| 	* cygmalloc.h (__malloc_lock): Ditto.
 | |
| 	(__malloc_unlock): Ditto.
 | |
| 	* cygtls.cc (sentry::lock): Ditto.
 | |
| 	(sentry::sentry): Ditto.
 | |
| 	(~sentry): Ditto.
 | |
| 	(_cygtls::init): Ditto.
 | |
| 	* dcrt0.cc: Ditto.
 | |
| 	(cygwin_atexit): Ditto.
 | |
| 	(cygwin_exit): Ditto.
 | |
| 	* debug.cc (lock_debug::locker): Ditto.
 | |
| 	(lock_debug::lock_debug): Ditto.
 | |
| 	(lock_debug::unlock): Ditto.
 | |
| 	(debug_init): Ditto.
 | |
| 	* dtable.cc (dtable::init_lock): Ditto.
 | |
| 	* dtable.h (dtable::lock_cs): Ditto.
 | |
| 	(dtable::lock): Ditto.
 | |
| 	(dtable::unlock): Ditto.
 | |
| 	* exceptions.cc (mask_sync): Ditto.
 | |
| 	(sighold): Ditto.
 | |
| 	(set_process_mask_delta): Ditto.
 | |
| 	(set_signal_mask): Ditto.
 | |
| 	(events_init): Ditto.
 | |
| 	* grp.cc (pwdgrp::pwdgrp): Ditto.
 | |
| 	* malloc_wrapper.cc (mallock): Ditto.
 | |
| 	(malloc_init): Ditto.
 | |
| 	* path.cc (cwdstuff::cwd_lock): Ditto.
 | |
| 	(cwdstuff::get_hash): Ditto.
 | |
| 	(cwdstuff::get_hash): Ditto.
 | |
| 	(cwdstuff::init): Ditto.
 | |
| 	(cwdstuff::set): Ditto.
 | |
| 	(cwdstuff::get): Ditto.
 | |
| 	* pwdgrp.h (pwdgrp::pglock): Ditto.
 | |
| 	(pwdgrp::refresh): Ditto.
 | |
| 	* sigproc.cc (sync_proc_subproc): Ditto.
 | |
| 	(get_proc_lock): Ditto.
 | |
| 	(proc_subproc): Ditto.
 | |
| 	(_cygtls::remove_wq): Ditto.
 | |
| 	(proc_terminate): Ditto.
 | |
| 	(sigproc_init): Ditto.
 | |
| 	* timer.cc (lock_timer_tracker::protect): Ditto.
 | |
| 	(lock_timer_tracker::lock_timer_tracker): Ditto.
 | |
| 	(lock_timer_tracker::~lock_timer_tracker): Ditto.
 | |
| 	* wininfo.cc (wininfo::_lock;): Ditto.
 | |
| 	(wininfo::winthread): Ditto.
 | |
| 	(operator HWND): Ditto.
 | |
| 	(wininfo::lock): Ditto.
 | |
| 	(wininfo::release): Ditto.
 | |
| 	* wininfo.h (wininfo::_lock;): Ditto.
 | |
| 
 | |
| 2005-04-04  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Only check for PC_NO_ACCESS_CHECK in end
 | |
| 	component.
 | |
| 
 | |
| 2005-04-04  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_1): Don't call set_cygwin_privileges on 9x.
 | |
| 
 | |
| 	* fhandler.h (enum change_state): Add.
 | |
| 	(fhandler_base::status): Add a bit to has_changed flag.
 | |
| 	(fhandler_base::has_changed): Implement with type change_state.
 | |
| 	* fhandler.cc (fhandler_base::raw_write): Accommodate type change
 | |
| 	of has_changed.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): Also
 | |
| 	touch modification time if has_changed == data_changed.
 | |
| 	(fhandler_disk_file::fchmod): Also open on 9x, otherwise we can't
 | |
| 	touch ctime.  Accommodate type change of has_changed.
 | |
| 	(fhandler_disk_file::fchown): Accommodate type change of has_changed.
 | |
| 	(fhandler_disk_file::facl): Ditto.
 | |
| 	(fhandler_disk_file::ftruncate): Ditto.
 | |
| 	(fhandler_disk_file::link): Ditto.
 | |
| 	(fhandler_base::open_fs): Ditto.
 | |
| 
 | |
| 2005-04-03  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygheap.cc (cygheap_init): Accommodate set_process_privilege change.
 | |
| 	* cygheap.h (cygheap_user::curr_primary_token): New member.
 | |
| 	(cygheap_user::primary_token): New method.
 | |
| 	(cygheap_user::deimpersonate): Always revert to processes'
 | |
| 	impersonation token.
 | |
| 	(cygheap_user::reimpersonate): Set processes' or setuid token as
 | |
| 	necessary.
 | |
| 	(cygheap_user::has_impersonation_tokens): Look for curr_primary_token
 | |
| 	value.
 | |
| 	(cygheap_user::close_impersonation_tokens): Close curr_primary_token
 | |
| 	here if necessary.  Don't reset token values to NO_IMPERSONATION since
 | |
| 	that's done in uinfo_init anyway.
 | |
| 	(init_cygheap::luid): New LUID array keeping privilege LUIDs.
 | |
| 	* cygtls.cc (_cygtls::init_thread): Call cygheap->user.reimpersonate.
 | |
| 	* dcrt0.cc (hProcToken): New global variable to keep process token.
 | |
| 	(hProcImpToken): Ditto for process impersonation token.
 | |
| 	(dll_crt0_0): Open process token here once.  Duplicate to create
 | |
| 	hProcImpToken.
 | |
| 	(dll_crt0_1): Call set_cygwin_privileges.
 | |
| 	* environ.cc (allow_ntea): Drop duplicate declaration.
 | |
| 	(allow_smbntsec): Ditto.
 | |
| 	(set_traverse): Only set allow_traverse here.
 | |
| 	(environ_init): Ditto.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Drop call to
 | |
| 	enable_restore_privilege.
 | |
| 	(fhandler_disk_file::fchown): Ditto.
 | |
| 	(fhandler_disk_file::facl): Ditto.
 | |
| 	* fork.cc (fork_child): Move call to cygheap->user.reimpersonate after
 | |
| 	syn with parent. Call set_cygwin_privileges.
 | |
| 	* grp.cc (internal_getgroups): Use hProcImpToken instead of opening
 | |
| 	process token.
 | |
| 	* path.cc (fs_info::update): Bypass traverse checking when retrieving
 | |
| 	volume information using push/pop_thread_privileges.
 | |
| 	* registry.cc (load_registry_hive): Drop setting restore privilege
 | |
| 	since it's already set if available.
 | |
| 	* sec_helper.cc: Include cygtls.h.
 | |
| 	(cygpriv): Privilege string array.
 | |
| 	(privilege_luid): New function, evaluate LUID from cygpriv_idx.
 | |
| 	(privilege_luid_by_name): New function, evaluate LUID from privilege
 | |
| 	string.
 | |
| 	(privilege_name): New function, evaluate privilege string from
 | |
| 	cygpriv_idx.
 | |
| 	(set_privilege): New static function called by set_process_privilege
 | |
| 	and set_thread_privilege.  Call privilege_luid to get privilege LUID.
 | |
| 	Fix bug in return value evaluation. Improve debug output.
 | |
| 	(set_cygwin_privileges): New function.
 | |
| 	(set_process_privilege): Remove.
 | |
| 	(enable_restore_privilege): Remove.
 | |
| 	* security.cc (allow_traverse): New global variable.
 | |
| 	(sys_privs): Change type to cygpriv_idx and store privilege indices
 | |
| 	instead of strings.
 | |
| 	(SYSTEM_PRIVILEGES_COUNT): Renamed from SYSTEM_PERMISSION_COUNT.
 | |
| 	(get_system_priv_list): Don't use numerical constant in malloc call.
 | |
| 	Use privilege_luid to get privilege LUIDs.
 | |
| 	(get_priv_list): Call privilege_luid_by_name to get LUIDs. Improve
 | |
| 	inner privilege LUID comparison loop.
 | |
| 	(create_token): Enable create token privilege using
 | |
| 	push/pop_self_privileges. Use hProcToken instead of opening process
 | |
| 	token. Use default DACL when duplicating token.
 | |
| 	(subauth): Enable tcb privilege using push/pop_self_privileges.
 | |
| 	Use sec_none instead of homw made security attributes when duplicating
 | |
| 	token.
 | |
| 	(check_file_access): Don't duplicate access token, use active
 | |
| 	impersonation token as is.
 | |
| 	* security.h (enum cygpriv_idx): New enumeration type enumerating
 | |
| 	possible privileges.
 | |
| 	(privilege_luid): Declare new function.
 | |
| 	(privilege_luid_by_name): Ditto.
 | |
| 	(privilege_name): Ditto.
 | |
| 	(allow_traverse): Declare.
 | |
| 	(set_privilege): Declare function.
 | |
| 	(set_process_privilege): Define as macro.
 | |
| 	(enable_restore_privilege): Remove declaration.
 | |
| 	(_push_thread_privilege): Define macro.
 | |
| 	(push_thread_privilege): Ditto.
 | |
| 	(pop_thread_privilege): Ditto.
 | |
| 	(pop_self_privilege): Ditto.
 | |
| 	* spawn.cc (spawn_guts): Use cygheap->user.primary_token instead of
 | |
| 	cygheap->user.token.
 | |
| 	* syscalls.cc (statvfs): Bypass traverse checking when retrieving
 | |
| 	volume information using push/pop_thread_privileges. Rearrange code
 | |
| 	to simplify push/pop bracketing.
 | |
| 	(seteuid32): Use hProcToken instead of opening process token. Call
 | |
| 	cygheap->user.deimpersonate instead of RevertToSelf.  Create
 | |
| 	impersonation token from primary internal or external token.  Set
 | |
| 	cygheap->user.curr_primary_token and cygheap->user.current_token
 | |
| 	privileges once here.  Drop "failed" and "failed_ptok" labels.
 | |
| 	Drop setting DefaultDacl of process token.
 | |
| 	(setegid32): Use hProcToken and hProcImpToken instead of opening
 | |
| 	process token. Always reimpersonate afterwards.
 | |
| 	* uinfo.cc (cygheap_user::init): Use hProcToken instead of opening
 | |
| 	process token.
 | |
| 	(internal_getlogin): Ditto. Set hProcImpToken, too.
 | |
| 	(uinfo_init): Initialize cygheap->user.curr_primary_token.
 | |
| 	* winsup.h (hProcToken): Declare.
 | |
| 	(hProcImpToken): Declare.
 | |
| 
 | |
| 2005-04-03  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	Unify usage of CYG_MAX_PATH throughout.  Change buffers from
 | |
| 	size CYG_MAX_PATH + 1 to CYG_MAX_PATH.  Change length tests
 | |
| 	accordingly.
 | |
| 
 | |
| 2005-04-02  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump DLL minor number to 15.
 | |
| 
 | |
| 2005-04-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fork.cc (fork_child): Add missing __stdcall.
 | |
| 
 | |
| 2005-04-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.cc (create_signal_arrive): New (temporary?) function to
 | |
| 	create signal_arrived event.
 | |
| 	(sigproc_init): Use create_signal_arrived.
 | |
| 	* fork.cc (fork_child): Create signal_arrived early.
 | |
| 
 | |
| 2005-04-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fork.cc (fork_child): Fixup SYSV IPC shared memory before fixing
 | |
| 	up fdtab.
 | |
| 
 | |
| 2005-03-31  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* gentls_offsets: Add '-m32' flag to native compiler call to satisfy
 | |
| 	cross platform builds.
 | |
| 
 | |
| 2005-03-31  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* errno.cc (NO_SYSTEM_RESOURCES): Map to EAGAIN.
 | |
| 	(NONPAGED_SYSTEM_RESOURCES): Ditto.
 | |
| 	(PAGED_SYSTEM_RESOURCES): Ditto.
 | |
| 	(WORKING_SET_QUOTA): Ditto.
 | |
| 	(PAGEFILE_QUOTA): Ditto.
 | |
| 	(COMMITMENT_LIMIT): Ditto.
 | |
| 
 | |
| 2005-03-30  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* environ.cc (spenvs): Re-force SYSTEMROOT to always be included in
 | |
| 	environment.
 | |
| 	(build_env): Ditto.
 | |
| 
 | |
| 2005-03-30  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* environ.cc (spenv::retrieve): Revert most of previous change.
 | |
| 	(build_env): Ditto.  Rework to track environment variables which need
 | |
| 	to always be in the windows environment in a separate array.
 | |
| 
 | |
| 2005-03-30  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
 | |
| 
 | |
| 	* path.cc (symlink_info::case_check): Ignore trailing characters
 | |
| 	in paths when comparing case.
 | |
| 
 | |
| 2005-03-30  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* environ.h (win_env::immediate): Declare new field.
 | |
| 	(win_env::operator = ): Declare new operator.
 | |
| 	(win_env::reset): Declare new function.
 | |
| 	(win_env::~win_env): Declare new destructor.
 | |
| 	(getwinenv): Add optional third argument to declaration.
 | |
| 	* environ.cc (conv_envvars): Accommodate immediate field.
 | |
| 	(win_env::operator =): Define new operator.
 | |
| 	(win_env::~win_env): Define new destructor.
 | |
| 	(win_env::add_cache): Add value to environment immediately if
 | |
| 	"immediate" is set.
 | |
| 	(getwinenv): Accept optional third argument which will be used to store
 | |
| 	"cached" values to avoid overwriting real cache.
 | |
| 	(spenv::force): Declare new field.
 | |
| 	(spenvs): Accommodate force field.  Add "PATH=" with force set to true.
 | |
| 	(spenv::retrieve): Avoid duping anything if we're not building an
 | |
| 	envblock.
 | |
| 	(build_env): Ditto.  Use size of potentially constructed new
 | |
| 	environment block to determine if we need to create an environment
 | |
| 	block.  Pass getwinenv temporary storage to avoid inappropriately
 | |
| 	overwriting the environment cache.
 | |
| 
 | |
| 2005-03-29  Eric Blake  <ebb9@byu.net>
 | |
| 
 | |
| 	* include/limits.h (NAME_MAX): New define.
 | |
| 	(PATH_MAX): POSIX allows PATH_MAX to include trailing NUL.
 | |
| 
 | |
| 2005-03-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (is_floppy): Make externally available.
 | |
| 	* path.h (is_floppy): Declare.
 | |
| 	* syscalls.cc (sync): Check for floppies on A: and B: in guid case.
 | |
| 	Don't call setmntent in non-guid case but evaluate drive bit mask
 | |
| 	locally.
 | |
| 
 | |
| 2005-03-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_process.cc: Re-add exename.
 | |
| 
 | |
| 2005-03-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/ctype.h: Accommodate building in newlib.
 | |
| 
 | |
| 2005-03-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* timer.cc (getitimer): Check that ovalue is a valid pointer, not just
 | |
| 	NULL.
 | |
| 
 | |
| 2005-03-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* timer.cc (timer_tracker::settime): Set times to zero when just
 | |
| 	cancelling a timer.
 | |
| 
 | |
| 2005-03-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::detach): Revert to just waiting for thread
 | |
| 	event since waiting for anything else is racy.
 | |
| 	* timer.cc (timer_tracker::hcancel): Rename from cancel.
 | |
| 	(timer_tracker::cancel): New method.
 | |
| 	(timer_tracker::th): Remove.
 | |
| 	(timer_tracker::~timer_tracker): Call cancel method.
 | |
| 	(timer_tracker::timer_tracker): Ditto.
 | |
| 	(timer_tracker::timer_tracker): Always, clear cancel, even though it is
 | |
| 	probably not strictly necessary for ttstart.
 | |
| 	(timer_thread): Accommodate cancel -> hcancel rename.
 | |
| 	(timer_tracker::settime): Ditto.
 | |
| 	(timer_tracker::gettime): Ditto.
 | |
| 	(timer_delete): Ditto.
 | |
| 
 | |
| 	* cygwin.din: Export _ctype_.
 | |
| 	* include/ctype.h: Mark that _ctype_ is imported.
 | |
| 
 | |
| 2005-03-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* timer.cc (timer_tracker::timer_tracker): Eliminate simple
 | |
| 	constructor.
 | |
| 	(ttstart): Fully initialize.
 | |
| 
 | |
| 	* errno.cc: Fix typo introduced in previous change.
 | |
| 
 | |
| 2005-03-28  Eric Blake  <ebb9@byu.net>
 | |
| 
 | |
| 	* errno.cc (FILENAME_EXCED_RANGE): Map to ENAMETOOLONG.
 | |
| 
 | |
| 2005-03-27  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* signal.cc (nanosleep): Revert tv_sec < 0 check as it is fixed
 | |
| 	properly in the below change to hires.h.
 | |
| 
 | |
| 2005-03-27  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* times.cc (hires_ms::usecs): Compare the difference.
 | |
| 	* hires.h: Add parentheses to HIRES_DELAY_MAX.
 | |
| 
 | |
| 2005-03-26  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* timer.cc (nanosleep): Treat tv_sec < 0 as invalid.
 | |
| 
 | |
| 	* include/search.h: Make declarations consistent with newlib.
 | |
| 
 | |
| 2005-03-26  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 	    Christopher Faylor <cgf@timesys.com>
 | |
| 
 | |
| 	* wininfo.h (wininfo::timer_active): Delete.
 | |
| 	(wininfo::itv): Ditto.
 | |
| 	(wininfo::start_time): Ditto.
 | |
| 	(wininfo::window_started): Ditto.
 | |
| 	(wininfo::getitimer): Ditto.
 | |
| 	(wininfo::setitimer): Ditto.
 | |
| 	(wininfo::wininfo): Ditto.
 | |
| 	(wininfo::lock): New method.
 | |
| 	(wininfo::release): Ditto.
 | |
| 	* window.cc:  Use new lock/acquire wininfo methods throughout.
 | |
| 	 (wininfo::wininfo): Delete
 | |
| 	(wininfo::getitimer): Ditto.
 | |
| 	(wininfo::setitimer): Ditto.
 | |
| 	(getitimer): Ditto.
 | |
| 	(setitimer): Ditto.
 | |
| 	(ualarm): Ditto.
 | |
| 	(alarm): Ditto.
 | |
| 	(wininfo::lock): Define new function.
 | |
| 	(wininfo::release): Ditto.
 | |
| 	(wininfo::process): Delete WM_TIMER handling.
 | |
| 	* timer.cc (struct timetracker): Delete it, flags.  Add it_interval,
 | |
| 	interval_us, sleepto_us, running, init_muto(), syncthread, and
 | |
| 	gettime().
 | |
| 	(ttstart): Make NO_COPY.
 | |
| 	(lock_timer_tracker): New class.
 | |
| 	(timer_tracker::timer_tracker): Distinguish ttstart case.
 | |
| 	(timer_tracker::~timer_tracker): New destructor.  Clean out events, and
 | |
| 	reset magic.
 | |
| 	(timer_tracker::init_muto): New method.
 | |
| 	(to_us): Round up as per POSIX.
 | |
| 	(timer_thread): Reorganize to match timer_tracker::settime and
 | |
| 	timer_tracker::gettime.  Call sig_send without wait.  Call
 | |
| 	auto_release.
 | |
| 	(timer_tracker::settime): Reorganize logic to avoid race.  Call gettime
 | |
| 	to recover old value.
 | |
| 	(timer_tracker::gettime): New method.
 | |
| 	(timer_create): Properly set errno on invalid timerid.  Use new
 | |
| 	lock_timer_tracker method.
 | |
| 	(timer_delete): Ditto.  Simplify code slightly.
 | |
| 	(timer_gettime): New function.
 | |
| 	(fixup_timers_after_fork): Reinit ttstart.
 | |
| 	(getitimer): New implementation.
 | |
| 	(setitimer): Ditto.
 | |
| 	(ualarm): Ditto.
 | |
| 	(alarm): Ditto.
 | |
| 	* cygwin.din: Export timer_gettime.
 | |
| 	* winsup.h: Remove has has_visible_window_station declaration.
 | |
| 
 | |
| 2005-03-26  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* Makefile.in (DLL_OFILES): Add lsearch.o.
 | |
| 	* cygthread.h (cygthread::notify_detached): New element.
 | |
| 	(cygthread::cygthread): Take optional fourth argument signifying event
 | |
| 	to signal on thread completion.
 | |
| 	* cygthread.cc (cygthread::stub): Signal notify_detached event, if it
 | |
| 	exists.
 | |
| 	(cygthread::cygthread): Initialize notify_detached from fourth argument.
 | |
| 	(cygthread::detach): Wait for notify_detached field is present.
 | |
| 
 | |
| 	* lsearch.cc: New file.
 | |
| 	* search.h: Ditto.
 | |
| 	* include/cygwin/version.h: Bump API minor number to 126.
 | |
| 	* cygwin.din: Export lsearch, lfind.
 | |
| 
 | |
| 2005-03-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_socket::secret_event): Remove.
 | |
| 	(fhandler_socket::af_local_set_secret): New function combining former
 | |
| 	set_connect_secret and get_connect_secret into one function.
 | |
| 	(fhandler_socket::af_local_setblocking): Rename from eid_setblocking.
 | |
| 	(fhandler_socket::af_local_unsetblocking): Rename from
 | |
| 	eid_unsetblocking.
 | |
| 	(fhandler_socket::af_local_set_cred): New method.
 | |
| 	(fhandler_socket::af_local_copy): New method.
 | |
| 	(fhandler_socket::af_local_recv_secret): New method.
 | |
| 	(fhandler_socket::af_local_send_secret): New method.
 | |
| 	(fhandler_socket::af_local_recv_cred): Rename from eid_recv.
 | |
| 	(fhandler_socket::af_local_send_cred): Rename from eid_send.
 | |
| 	(fhandler_socket::af_local_accept): New method.
 | |
| 	(fhandler_socket::af_local_set_sockpair_cred): Rename from
 | |
| 	set_socketpair_eids.
 | |
| 	(fhandler_socket::eid_accept): Remove.
 | |
| 	(fhandler_socket::eid_connect): Remove.
 | |
| 	(fhandler_socket::set_connect_secret): Remove.
 | |
| 	(fhandler_socket::get_connect_secret): Remove.
 | |
| 	(fhandler_socket::create_secret_event): Remove.
 | |
| 	(fhandler_socket::check_peer_secret_event): Remove.
 | |
| 	(fhandler_socket::signal_secret_event): Remove.
 | |
| 	(fhandler_socket::close_secret_event): Remove.
 | |
| 	(fhandler_socket::sec_event_accept): Remove.
 | |
| 	(fhandler_socket::sec_event_connect): Remove.
 | |
| 	* fhandler_socket.cc (secret_event_name): Remove.
 | |
| 	(fhandler_socket::af_local_set_sockpair_cred): Rename from
 | |
| 	set_socketpair_eids.
 | |
| 	(fhandler_socket::af_local_setblocking): Rename from eid_setblocking.
 | |
| 	(fhandler_socket::af_local_unsetblocking): Rename from
 | |
| 	eid_unsetblocking.
 | |
| 	(fhandler_socket::af_local_recv_secret): New function to receive
 | |
| 	AF_LOCAL connect secret over socket itself.
 | |
| 	(fhandler_socket::af_local_send_secret): New function to send AF_LOCAL
 | |
| 	connect secret over socket itself.
 | |
| 	(fhandler_socket::af_local_recv_cred): Rename from eid_recv.
 | |
| 	(fhandler_socket::af_local_send_cred): Rename from eid_send.
 | |
| 	(fhandler_socket::eid_connect): Remove.
 | |
| 	(fhandler_socket::af_local_connect): Take over connect side handling
 | |
| 	of AF_LOCAL secret and credential handshake.
 | |
| 	(fhandler_socket::eid_accept): Remove.
 | |
| 	(fhandler_socket::af_local_accept): New method, take over accept side
 | |
| 	handling of AF_LOCAL secret and credential handshake.
 | |
| 	(fhandler_socket::af_local_set_cred): New method, set eid credentials
 | |
| 	to start values.
 | |
| 	(fhandler_socket::af_local_copy): New method, copy secret and
 | |
| 	credentials to another socket.
 | |
| 	(fhandler_socket::af_local_set_secret): New function combining former
 | |
| 	set_connect_secret and get_connect_secret into one function.
 | |
| 	(fhandler_socket::create_secret_event): Remove.
 | |
| 	(fhandler_socket::signal_secret_event): Remove.
 | |
| 	(fhandler_socket::close_secret_event): Remove.
 | |
| 	(fhandler_socket::check_peer_secret_event): Remove.
 | |
| 	(fhandler_socket::sec_event_connect): Remove.
 | |
| 	(fhandler_socket::sec_event_accept): Remove.
 | |
| 	(fhandler_socket::fixup_after_fork): Drop secret_event handling.
 | |
| 	(fhandler_socket::bind): Call af_local_set_secret.
 | |
| 	(fhandler_socket::connect): Call af_local_set_cred and af_local_connect.
 | |
| 	(fhandler_socket::listen): Call af_local_set_cred.
 | |
| 	(fhandler_socket::accept): Call af_local_copy and af_local_accept on
 | |
| 	accepted socket.
 | |
| 	(fhandler_socket::close): Don't call close_secret_event.
 | |
| 	(fhandler_socket::set_close_on_exec): Don't set secret_event
 | |
| 	inheritance.
 | |
| 	* net.cc (cygwin_getsockopt): Add debug output.
 | |
| 	(socketpair): Call af_local_set_sockpair_cred instead of
 | |
| 	set_socketpair_eids.
 | |
| 	* select.cc (set_bits): Drop AF_LOCAL special handling in case
 | |
| 	of except bit set.
 | |
| 
 | |
| 2005-03-23  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/ctype.h: Always define macros when inside cygwin.
 | |
| 	(isblank): New macro.
 | |
| 
 | |
| 2005-03-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_socket::eid_connect): Make private.
 | |
| 	(fhandler_socket::set_connect_secret): Ditto.
 | |
| 	(fhandler_socket::get_connect_secret): Ditto.
 | |
| 	(fhandler_socket::create_secret_event): Ditto. Remove secret argument.
 | |
| 	(fhandler_socket::check_peer_secret_event): Ditto.
 | |
| 	(fhandler_socket::signal_secret_event): Make private.
 | |
| 	(fhandler_socket::close_secret_event): Ditto.
 | |
| 	(fhandler_socket::sec_event_accept): New private method.
 | |
| 	(fhandler_socket::sec_event_connect): Ditto.
 | |
| 	(fhandler_socket::af_local_connect): New public method.
 | |
| 	* fhandler_socket.cc: Use 'struct sockaddr' and 'struct sockaddr_in'
 | |
| 	rather than just 'sockaddr' and 'sockaddr_in' throughout.
 | |
| 	(fhandler_socket::eid_connect): Drop AF_LOCAL/SOCK_STREAM test.
 | |
| 	(fhandler_socket::create_secret_event): Remove secret argument.
 | |
| 	Always use connect_secret instead.
 | |
| 	(fhandler_socket::check_peer_secret_event): Ditto.
 | |
| 	(fhandler_socket::sec_event_connect): New method, combining entire
 | |
| 	secret event handshake on connect side.
 | |
| 	(fhandler_socket::af_local_connect): New method, combining secret
 | |
| 	event handshake and eid credential transaction on connect side, to
 | |
| 	be called from select.
 | |
| 	(fhandler_socket::sec_event_accept): New method, combining entire
 | |
| 	secret event handshake on accept side.
 | |
| 	(fhandler_socket::connect): Drop secret, use connect_secret instead.
 | |
| 	Move entire secret event handshake to sec_event_connect.
 | |
| 	(fhandler_socket::accept): Move entire secret event handshake to
 | |
| 	sec_event_accept.
 | |
| 	* select.cc (set_bits): Just call af_local_connect here.
 | |
| 
 | |
| 2005-03-23  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Change comment for most recent API version
 | |
| 	bump to reflect new additions to the DLL and to remove change obsoleted
 | |
| 	by the previous checkin.
 | |
| 
 | |
| 2005-03-23  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/ctype.h: New file.
 | |
| 	* ctype.cc: Ditto.
 | |
| 	* Makefile.in: Add ctype.o to DLL_OFILES.
 | |
| 	* cygwin.din: Remove _ctype_ptr (for now?).
 | |
| 
 | |
| 2005-03-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* Makefile.in (DLL_OFILES): Add hookapi.o.  Eliminate some cruft.
 | |
| 	* cygheap.h (cygheap_types): Add new enum: HEAP_1_HOOK.
 | |
| 	(hook_chain): New struct.
 | |
| 	(init_cygheap::hooks): Define new element.
 | |
| 	* cygheap.cc (cygheap_fixup_in_child): Zero hook chain on exec.
 | |
| 	* dcrt0.cc (dll_crt0_1): Call ld_preload just before calling main function.
 | |
| 	* external.cc (cygwin_internal): Implement CW_HOOK.
 | |
| 	* fork.cc (fork_child): Call fixup_hooks_after_fork.
 | |
| 	* init.cc (cygwin_hmodule): Reinstate after a long absence.
 | |
| 	* include/sys/cygwin.h: Define CW_HOOK.
 | |
| 	* hookapi.cc: New file.
 | |
| 
 | |
| 	* select.cc (start_thread_socket): Add debugging output.
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): gcc 4.x
 | |
| 	accommodation.
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::connect): Make sure that err is
 | |
| 	initialized.
 | |
| 
 | |
| 2005-03-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (__ctype_ptr): Export.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 
 | |
| 2005-03-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class cygthread): Remove forward declaration.
 | |
| 
 | |
| 2005-03-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class cygthread): Forward declare.
 | |
| 	(fhandler_socket::sec_pipe): Remove.
 | |
| 	(fhandler_socket::eid_pipe_name): Remove.
 | |
| 	(fhandler_socket::eid_setblocking): New private method.
 | |
| 	(fhandler_socket::eid_unsetblocking): Ditto
 | |
| 	(fhandler_socket::eid_recv): Ditto
 | |
| 	(fhandler_socket::eid_send): Ditto
 | |
| 	(fhandler_socket::eid_accept): Ditto
 | |
| 	(fhandler_socket::eid_connect): New public method.
 | |
| 	* fhandler_socket.cc (ASYNC_MASK): Move to beginning of file.
 | |
| 	(fhandler_socket::eid_pipe_name): Remove.
 | |
| 	(fhandler_socket::set_socketpair_eids): Move down to fhandler_socket
 | |
| 	methods.
 | |
| 	(fhandler_socket::fhandler_socket): Drop initializing sec_pipe.
 | |
| 	(fhandler_socket::~fhandler_socket): Drop closing sec_pipe.
 | |
| 	(fhandler_socket::eid_setblocking): New method.
 | |
| 	(fhandler_socket::eid_unsetblocking): New method.
 | |
| 	(fhandler_socket::eid_recv): New method.
 | |
| 	(fhandler_socket::eid_send): New method.
 | |
| 	(fhandler_socket::eid_connect): New method.
 | |
| 	(fhandler_socket::eid_accept): New method.
 | |
| 	(fhandler_socket::dup): Drop sec_pipe handling.
 | |
| 	(fhandler_socket::connect): Fix WinSock error handling. Prepare
 | |
| 	eid credential transaction. Call eid_connect on successful connect.
 | |
| 	(fhandler_socket::listen): Drop creating sec_pipe.
 | |
| 	(fhandler_socket::accept): Slightly simplify code. Call eid_accept
 | |
| 	on accepted socket.
 | |
| 	(fhandler_socket::getpeereid): Reshuffle code for readability. Fix
 | |
| 	test for invalid pid.
 | |
| 	* select.cc (set_bits): Call eid_connect on successfully connected
 | |
| 	socket.
 | |
| 
 | |
| 2005-03-19  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* child_info.h (fork_info): Use different method to alias variable.
 | |
| 	(spawn_info): Ditto.
 | |
| 	* cxx.cc (__cxa_guard_acquire): New function (needed for gcc 4.x).
 | |
| 	(__cxa_guard_release): Ditto.
 | |
| 	* devices.in: Make sure stuff is correctly bracketed (for gcc 4.x).
 | |
| 	* devices.cc: Regenerate.
 | |
| 	* fhandler.h (fhandler_disk_file::fchmod): Avoid left coercion (for gcc
 | |
| 	4.x).
 | |
| 	* smallprint.c (__rn): Declare as __fastcall since gcc 4.x complains
 | |
| 	about use of regparm, for some reason.
 | |
| 	* sync.h (sync::init_lock): Remove.
 | |
| 	* sync.cc (sync::init_lock): Ditto.
 | |
| 
 | |
| 2005-03-18  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* net.cc (cygwin_getprotobyname): Don't try to be fancy with return
 | |
| 	values.
 | |
| 	(cygwin_getprotobynumber): Ditto.
 | |
| 
 | |
| 2005-03-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::utimes): Handle opening
 | |
| 	directories under 9x gracefully.
 | |
| 
 | |
| 2005-03-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::connect): Always set sun_path
 | |
| 	in case of a successful or pending connect.
 | |
| 	(fhandler_socket::accept): Don't run secret event and eid credential
 | |
| 	transactions if OS accept returned WSAEWOULDBLOCK.
 | |
| 
 | |
| 2005-03-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_tape.cc (get_ll): This is a generally useful function so
 | |
| 	move it
 | |
| 	* winsup.h (get_ll): to here.
 | |
| 	* security.cc (get_token_group_sidlist): Use get_ll to figure out the
 | |
| 	long long version of the luid since QuadPart is not part of the
 | |
| 	standard Windows API.
 | |
| 
 | |
| 2005-03-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dir.cc: Rename opendir_* to dirent_* throughout.
 | |
| 	(opendir_states): Move and rename.
 | |
| 	* fhandler.h (dirent_states): to here.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::readdir): Use raw readdir
 | |
| 	when skipping through entries since it is keeping track of "." and
 | |
| 	"..".
 | |
| 	(fhandler_cygdrive::seekdir): Use fhandler_disk_file::readdir to do
 | |
| 	everything.
 | |
| 	* fhandler_virtual.cc (fhandler_virtual::opendir): Set flag indicating
 | |
| 	that we provide .  and ..
 | |
| 	(fhandler_virtual::seekdir): Ditto.
 | |
| 	(fhandler_virtual::rewinddir): Ditto.
 | |
| 	* fhandler_registry.cc (fhandler_registry::rewinddir): Ditto.
 | |
| 
 | |
| 2005-03-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.cc (free_local): New macro.
 | |
| 	(_cygtls::remove): Use free_local to free known-malloced local
 | |
| 	variables.
 | |
| 	* cygtls.h: Mark some variables as "malloced".
 | |
| 	* net.cc (enum struct_type): Rename from is_* to t_* for clarity.
 | |
| 	(dump_protoent): Delete.
 | |
| 	(dup_ent): New macro.
 | |
| 	(__dup_ent): Renamed from dup_ent.  Change arguments for convenience.
 | |
| 	Replace first argument with newly alloced value.  Allocate a rounded
 | |
| 	number of bytes in an attempt to try to reuse space.  Subsume
 | |
| 	"dump_protent".
 | |
| 	(cygwin_getprotobyname): Simplify using new dup_ent functionality.
 | |
| 	(cygwin_getprotobynumber): Ditto.
 | |
| 	(cygwin_getservbyname): Ditto.
 | |
| 	(cygwin_getservbyport): Ditto.
 | |
| 	(cygwin_gethostname): Ditto.
 | |
| 	(cygwin_gethostbyname): Ditto.
 | |
| 	* tlsoffsets.h: Regenerate.
 | |
| 
 | |
| 	* syslog.cc (openlog): Use NULL rather than 0, for consistency with the
 | |
| 	rest of cygwin.
 | |
| 	(pass_handler::initialize): Use unbuffered I/O in pass one.
 | |
| 
 | |
| 2005-03-15  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* errno.cc (errmap): Correct typo in previous change.
 | |
| 
 | |
| 2005-03-15  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.cc (_cygtls::remove): Free process_ident, if it exists.
 | |
| 
 | |
| 	* errno.cc (errmap): ERROR_DISK_CORRUPT -> EIO.
 | |
| 
 | |
| 2005-03-11  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.h (pathconv_arg): Define PC_NO_ACCESS_CHECK.
 | |
| 	(path_types): Define PATH_NO_ACCESS_CHECK == PC_NO_ACCESS_CHECK.
 | |
| 	* path.cc (symlink_info::check_sysfile): Move to symlink_info class and
 | |
| 	eliminate arguments that are part of class.  Use set_error.
 | |
| 	(symlink_info::check_shortcut): Ditto.
 | |
| 	(symlink_info::set_error): New function.
 | |
| 	(path_conv::check): Pass PC_NO_ACCESS_CHECK to symlink_info::check.
 | |
| 	(symlink_info::check): Preserve PC_NO_ACCESS_CHECK in pflags.  Use
 | |
| 	set_error.
 | |
| 
 | |
| 2005-03-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (is_floppy): New function.
 | |
| 	(setmntent): Drop floppy drives on A: and B: from logical drive DWORD.
 | |
| 	* syscalls.cc (sync): Don't sync floppies on A: and B:.
 | |
| 
 | |
| 2005-03-10  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* autoload.cc (LoadDLLprime): Use nocopy segment or forked processes
 | |
| 	will not initialize properly.
 | |
| 
 | |
| 2005-03-10  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* autoload.cc (LoadDLLprime): Scrap use of .linkonce and just use an
 | |
| 	ifdef guard to load .foo_init into data segment.
 | |
| 
 | |
| 	* dcrt0.cc (initial_env): Allow colon or space as CYGWIN_DEBUG
 | |
| 	separator for consistency.
 | |
| 
 | |
| 2005-03-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.h (pinfo::pinfo): Clear more elements in the constructor.
 | |
| 
 | |
| 2005-03-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* net.cc (dup_ent): Revert older stupid test for null.  Don't copy name
 | |
| 	if it is NULL.
 | |
| 
 | |
| 2005-03-09  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::eid_pipe_name): Fix format
 | |
| 	string.
 | |
| 	(fhandler_socket::connect): Set sun_path before running eid credential
 | |
| 	transaction.  Run transaction only if OS connect was successful.
 | |
| 	(fhandler_socket::accept): Run transaction only if OS accept was
 | |
| 	successful.
 | |
| 
 | |
| 2005-03-09  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* signal.cc (sigprocmask): Rename first parameter to "how".
 | |
| 	(handle_sigprocmask): Ditto.  Check "how" for being a valid "how" value.
 | |
| 	Fix call order in case of wrong "how" value.
 | |
| 
 | |
| 2005-03-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* net.cc (dup_ent): Revert previous stupid change.
 | |
| 
 | |
| 2005-03-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* net.cc (dup_ent): Avoid dereferencing a null pointer in a debug_printf.
 | |
| 
 | |
| 2005-03-09  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Treat ENOSHARE similarly to ENOENT when
 | |
| 	determining if there was a problem with a symlink.
 | |
| 
 | |
| 2005-03-08  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::listen): Don't limit the number
 | |
| 	of pipe instances.
 | |
| 
 | |
| 2005-03-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::exit): Right shift exit value by eight when not
 | |
| 	started in a cygwin environment.
 | |
| 
 | |
| 2005-03-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (mmap64): Handle MAP_AUTOGROW flag.
 | |
| 	(fhandler_disk_file::mmap): Ditto. Clean conditional for readability.
 | |
| 	* include/sys/mman.h: Add MAP_AUTOGROW flag.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 
 | |
| 2005-03-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_0): Eliminate muto::init call.
 | |
| 	* sync.h (locker): New, currently unused class.
 | |
| 	(muto::init): Eliminate.
 | |
| 	* sync.cc (muto::init): Ditto.
 | |
| 	(muto::init): Eliminate critical section lock and instead use name as a
 | |
| 	guard to prevent against multiple attempts to initialize the same muto.
 | |
| 
 | |
| 	* pinfo.cc (pinfo::init): Set myself procinfo when not execing and pid
 | |
| 	matches windows pid or cygwin pid.
 | |
| 
 | |
| 2005-03-06  Pavel Tsekov  <ptsekov@gmx.net>
 | |
| 
 | |
| 	* path.cc (mount_info::read_cygdrive_info_from_registry): Use the user
 | |
| 	prefix if it exists.
 | |
| 
 | |
| 2005-03-06  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sync.h (sync::init_lock): Declare new static member.
 | |
| 	(sync::init()): Declare new static function.
 | |
| 	* sync.cc (sync::init): Define.
 | |
| 	(sync::init): Lock attempt to initialize a muto to stop multiple
 | |
| 	threads from colliding.
 | |
| 	* dcrt0.cc (dll_crt0_0): Initialize muto environment.
 | |
| 
 | |
| 2005-03-06  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.cc (special_name): Reorganize to always detect the use of
 | |
| 	special names first, before detecting special characters.
 | |
| 
 | |
| 2005-03-04  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_clipboard.cc: Use int for cygnativeformat rather than UINT
 | |
| 	as that is what is returned by GetPriorityClipboardFormat.
 | |
| 	(fhandler_dev_clipboard::read): Ditto for the format variable.
 | |
| 
 | |
| 2005-03-04  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::open_9x): Satisfy query_open values.
 | |
| 
 | |
| 2005-03-04  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::ioctl): Only cancel
 | |
| 	WSAAsyncSelect when async mode is on.
 | |
| 
 | |
| 2005-03-03  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (utmpxname): Export.
 | |
| 	* syscalls.cc (utmpxname): Create export alias to utmpname.
 | |
| 	* include/utmpx.h: Define ut_name and ut_xtime if not already defined.
 | |
| 	(utmpxname): Add prototype.
 | |
| 	* include/sys/utmp.h: Only define ut_name if not already defined.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 
 | |
| 2005-03-03  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::detach): Use a slightly higher priority when
 | |
| 	waiting for thread signalling.
 | |
| 
 | |
| 2005-03-02  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* autoload.cc (std_dll_init): Save and restore fpu control register
 | |
| 	around LoadAddress to prevent loaded dlls (like msvcrt.dll) from
 | |
| 	setting unwanted stuff.
 | |
| 
 | |
| 2005-03-02  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.cc (_cygtls::remove): Don't attempt any removal activities if
 | |
| 	exitsock is zero.
 | |
| 
 | |
| 2005-03-02  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.cc (_cygtls::init_thread): Move exitsock setting later.  It
 | |
| 	should always be set.
 | |
| 	(_cygtls::remove): Detect zero exitsock.  Not quite sure why this is needed.
 | |
| 
 | |
| 2005-03-02  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* autoload.cc (LoadDLLprime): Mask error code to low-order 16 bits.
 | |
| 	(noload): Preserve sign when returning error code.
 | |
| 
 | |
| 2005-03-02  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* spawn.cc (do_cleanup): Properly restore SIGINT/SIGQUIT even if they
 | |
| 	had previously been SIG_DFL.
 | |
| 
 | |
| 2005-03-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): Replace
 | |
| 	GetSystemTime/SystemTimeToFileTime with GetSystemTimeAsFileTime.
 | |
| 	* times.cc (time_as_timestruc_t): Ditto.
 | |
| 	(time): Ditto.
 | |
| 
 | |
| 2005-03-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump DLL minor number to 14.
 | |
| 
 | |
| 2005-03-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_clipboard.cc (fhandler_dev_clipboard::write): Never set
 | |
| 	errno to 0.
 | |
| 	(fhandler_dev_clipboard::read): Ditto.
 | |
| 	* fhandler_windows.cc (fhandler_windows::read): Ditto.
 | |
| 	* scandir.cc (scandir): Ditto.
 | |
| 	* syscalls.cc (_fstat64_r): Ditto.
 | |
| 	(_fstat_r): Ditto.
 | |
| 	(_stat64_r): Ditto.
 | |
| 	(_stat_r): Ditto.
 | |
| 
 | |
| 	* mmap.cc (mmap64): Fix /dev/zero mapping.
 | |
| 
 | |
| 2005-02-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_socket): Declare new method
 | |
| 	set_socketpair_eids.
 | |
| 	* fhandler_socket.cc (fhandler_socket::set_socketpair_eids): New method.
 | |
| 	(fhandler_socket::dup): Duplicate sec_pipe if necessary.
 | |
| 	(fhandler_socket::listen): Only create sec_pipe if named pipes are
 | |
| 	available. Initialized sec_peer_pid to 0 as on Linux.
 | |
| 	(fhandler_socket::connect): Only run eid credential transaction if
 | |
| 	named pipes are available.  Fake otherwise. Initialized sec_peer_pid
 | |
| 	to 0 as on Linux.
 | |
| 	(fhandler_socket::accept): Ditto.
 | |
| 	(fhandler_socket::close): Move closing sec_pipe handle from here...
 | |
| 	(fhandler_socket::~fhandler_socket): ... to here.
 | |
| 	* net.cc (socketpair): Set eid credentials by calling
 | |
| 	fhandler_socket::set_socketpair_eids() on both socket ends.
 | |
| 	* wincap.h (wincaps::has_named_pipes): New element.
 | |
| 	* wincap.cc: Implement above element throughout.
 | |
| 
 | |
| 2005-02-26  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.cc (_pinfo::set_ctty): Move function
 | |
| 	* pinfo.cc (_pinfo::set_ctty): to here.
 | |
| 
 | |
| 	* fhandler_mem.cc (fhandler_dev_mem::fstat): Don't fill out structure
 | |
| 	if this is an on-disk device rather than an "auto" device.
 | |
| 	* fhandler_raw.cc (fhandler_dev_raw::fstat): Ditto.
 | |
| 
 | |
| 	* path.cc (normalize_posix_path): Don't treat a standalone '//' as
 | |
| 	introducing a UNC path.
 | |
| 	(normalize_win32_path): Ditto.
 | |
| 
 | |
| 2005-02-26  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* debug.cc (delete_handle): Report on handle value in debugging output.
 | |
| 
 | |
| 	* pinfo.h (_pinfo::exists): Declare "new" function.
 | |
| 	(_pinfo::kill): Ditto.
 | |
| 	* fhandler_termios.cc (tty_min::kill_pgrp): Use _pinfo::exists rather
 | |
| 	than proc_exists.
 | |
| 	* pinfo.cc (pinfo::init): Ditto.  Don't do a low_priority_sleep(0) when
 | |
| 	looping to find exec'ed procinfo.
 | |
| 	(pinfo::release): Be more careful about unmapping and closing.
 | |
| 	* signal.cc (_pinfo::kill): Rename from kill_worker.  Accommodate entry
 | |
| 	into _pinfo class.
 | |
| 	(kill0): Use _pinfo::kill rather than kill_worker.
 | |
| 	(kill_pgrp): Ditto.  Use _pinfo::exists rather than proc_exists.
 | |
| 	* sigproc.cc (_pinfo::exists): Rename from proc_exists.
 | |
| 	(pid_exists): Use _pinfo::exists rather than proc_exists.
 | |
| 	(remove_proc): Ditto.
 | |
| 	* sigproc.h (proc_exists): Delete declaration.
 | |
| 
 | |
| 2005-02-25  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_base): Declare fixup_mmap_after_fork
 | |
| 	with additional flags parameter.  Change offset parameter to _off64_t.
 | |
| 	(class fhandler_disk_file): Ditto.
 | |
| 	(class fhandler_dev_mem): Ditto.
 | |
| 	* fhandler_mem.cc (fhandler_dev_mem::fixup_mmap_after_fork):
 | |
| 	Accommodate new parameters.
 | |
| 	* mmap.cc: Include ntdll.h.
 | |
| 	(class mmap_record): Add flags member.
 | |
| 	(mmap_record::mmap_record): Add flags parameter.
 | |
| 	(mmap_record::get_flags): New method.
 | |
| 	(class map): Add next_anon_addr member to store next anonymous mapping
 | |
| 	address suggestion.
 | |
| 	(map::get_next_anon_addr): New method.
 | |
| 	(map::set_next_anon_addr): New method.
 | |
| 	(mmap64): Don't align offset and length to granularity in case of
 | |
| 	MAP_ANONYMOUS on NT.  Check for already existing mapping only on 9x.
 | |
| 	Call mmap_record::mmap_record with additional flags argument.
 | |
| 	(fhandler_base::fixup_mmap_after_fork): Accommodate new parameters.
 | |
| 	(fhandler_disk_file::mmap): Use NtMapViewOfSection with
 | |
| 	AT_ROUND_TO_PAGE flag for anonymous mappings on NT.  If addr is NULL,
 | |
| 	try to map adjacent to previous mapping.
 | |
| 	(fhandler_disk_file::fixup_mmap_after_fork): Add flags argument.
 | |
| 	Change offset parameter to _off64_t.  Use NtMapViewOfSection to
 | |
| 	re-create anonymous mappings on NT.
 | |
| 	(fixup_mmaps_after_fork): Accommodate new parameters when calling
 | |
| 	fhandler's fixup_mmaps_after_fork function.
 | |
| 	* ntdll.h (AT_ROUND_TO_PAGE): New define.
 | |
| 
 | |
| 2005-02-25  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (mmap64): Handle anonymous MAP_FIXED request on
 | |
| 	non-granulation boundary.
 | |
| 
 | |
| 2005-02-25  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (class mmap_record): Declare new map_pages method with
 | |
| 	address parameter.
 | |
| 	(mmap_record::map_pages): New method with address parameter.
 | |
| 	(mmap64): Evaluate access mode before checking if already existing
 | |
| 	mapping can be used.
 | |
| 	Only use existing mapping if requested access mode matches the one
 | |
| 	in the existing mapping.
 | |
| 	Add check for existing mapping for anonymous MAP_FIXED case.
 | |
| 
 | |
| 2005-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* localtime.cc: Implement setting __tzrule's offset member using
 | |
| 	newlib's __gettzinfo () interface.
 | |
| 	(__tzrule): Remove.
 | |
| 	(timezone): Define as long according to POSIX.
 | |
| 
 | |
| 2005-02-23  Eric Blake  <ebb9@byu.net>
 | |
| 
 | |
| 	* devices.in (parsedisk): Fix typo.
 | |
| 	* devices.cc: Regenerate.
 | |
| 
 | |
| 2005-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (getpeereid): Export.
 | |
| 	* fhandler.h (class fhandler_socket): Add pipe and id members to
 | |
| 	exchange eid credentials for AF_LOCAL sockets.
 | |
| 	(eid_pipe_name): Declare new method.
 | |
| 	(getpeereid): Ditto.
 | |
| 	* fhandler_socket.cc (fhandler_socket::eid_pipe_name): New method.
 | |
| 	(fhandler_socket::fhandler_socket): Initialize sec_pipe.
 | |
| 	(fhandler_socket::connect): Exchange eid credentials with accepting
 | |
| 	socket process.
 | |
| 	(fhandler_socket::listen): Prepare eid credential transaction.
 | |
| 	(fhandler_socket::accept): Exchange eid credentials with connecting
 | |
| 	socket process.
 | |
| 	(fhandler_socket::close): Close eid credentials pipe if open.
 | |
| 	(fhandler_socket::getpeereid): New method.
 | |
| 	* net.cc (cygwin_getsockopt): Add SO_PEERCRED handling.
 | |
| 	(getpeereid): New function.
 | |
| 	* include/asm/socket.h (SO_PEERCRED): Define.
 | |
| 	* include/cygwin/socket.h (struct ucred): Define new type.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 
 | |
| 2005-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/sys/statvfs.h (ST_RDONLY): Define.
 | |
| 	(ST_NOSUID): Define.
 | |
| 
 | |
| 2005-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (fstatvfs): Export.
 | |
| 	(statvfs): Export.
 | |
| 	* syscalls.cc: Include sys/statvfs.h.
 | |
| 	(statvfs): New function.  Move statfs functionality here.
 | |
| 	(fstatvfs): New function.
 | |
| 	(statfs): Just call statvfs and copy structure.  Check validity of
 | |
| 	incoming struct statfs pointer.
 | |
| 	* include/cygwin/types.h (fsblkcnt_t): Define.
 | |
| 	(fsfilcnt_t): Define.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 	* include/sys/statvfs.h: New file.
 | |
| 
 | |
| 2005-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* devices.h: Switch FH_ZERO and FH_PORT as on Linux.  Add FH_FULL.
 | |
| 	* devices.in: Add /dev/full.
 | |
| 	* devices.cc: Regenerate.
 | |
| 	* dtable.cc (build_fh_pc): Add FH_FULL.
 | |
| 	* fhandler.cc (fhandler_base::fstat): Set FH_FULL permission bits
 | |
| 	correctly.
 | |
| 	* fhandler_zero.cc (fhandler_dev_zero::write): Set errno to ENOSPC
 | |
| 	and return -1 if device is FH_FULL.
 | |
| 
 | |
| 2005-02-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_cygdrive::closedir): Return 0 when
 | |
| 	closing cygdrive_root.
 | |
| 
 | |
| 2005-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (basename): Export.
 | |
| 	(dirname): Export.
 | |
| 	* path.cc (basename): New function.
 | |
| 	(dirname): New function.
 | |
| 	* include/libgen.h: New file.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 
 | |
| 2005-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* select.cc (peek_pipe): Disable new pipe code until there's
 | |
| 	a working substitute.
 | |
| 
 | |
| 2005-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (fdatasync): Export.
 | |
| 	* fhandler.cc (fhandler_base::fsync): Return with EINVAL if no
 | |
| 	handle is available.
 | |
| 	* syscalls.cc (fdatasync): Create export alias to fsync.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 
 | |
| 2005-02-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::fstat_helper): Declare with additional
 | |
| 	dwVolumeSerialNumber argument.  Drop default values for last three
 | |
| 	arguments.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Pass
 | |
| 	dwVolumeSerialNumber from GetFileInformationByHandle to fstat_helper.
 | |
| 	(fhandler_base::fstat_by_name): Pass pc.volser () to fstat_helper.
 | |
| 	Accommodate dropping default values for last three arguments of
 | |
| 	fstat_helper.
 | |
| 	(fhandler_base::fstat_helper): Add dwVolumeSerialNumber argument.
 | |
| 	Use for st_dev member unless 0 in which case pc.volser () is used.
 | |
| 
 | |
| 2005-02-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (FindFirstVolumeA): Add.
 | |
| 	(FindNextVolumeA): Add.
 | |
| 	(FindVolumeClose): Add.
 | |
| 	(GetVolumePathNamesForVolumeNameA): Add.
 | |
| 	* fhandler.h (class fhandler_base): Declare new method fsync.
 | |
| 	* fhandler.cc (fhandler_base::fsync): New method.
 | |
| 	* syscalls.cc (fsync): Move functionality into fhandler method fsync.
 | |
| 	Just call this method from here.
 | |
| 	(sync_worker): New static function.
 | |
| 	(sync): Fill with life for NT systems.
 | |
| 	* wincap.h (wincaps::has_guid_volumes): New element.
 | |
| 	* wincap.cc: Implement above element throughout.
 | |
| 
 | |
| 2005-02-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (enum query_state): Add query_write_attributes state.
 | |
| 	(fhandler_base::status.query_open): Add a bit to make room for more
 | |
| 	states.
 | |
| 	(class fhandler_base): Declare new method utimes.
 | |
| 	(class fhandler_socket): Ditto.
 | |
| 	(class fhandler_disk_file): Ditto.
 | |
| 	(fhandler_disk_file::fhandler_disk_file): Add constructor with
 | |
| 	path_conv parameter.
 | |
| 	* fhandler.cc (fhandler_base::open): Add query_write_attributes
 | |
| 	handling.
 | |
| 	(fhandler_base::utimes): New method.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::link): Simplify.
 | |
| 	Open file with query_write_attributes instead of query_write_control.
 | |
| 	(fhandler_disk_file::utimes): New method.
 | |
| 	(fhandler_disk_file::fhandler_disk_file): Add constructor with
 | |
| 	path_conv parameter setting pc member immediately.
 | |
| 	* fhandler_socket.cc (fhandler_socket::fchmod): Use new
 | |
| 	fhandler_disk_file constructor.
 | |
| 	(fhandler_socket::fchown): Ditto.
 | |
| 	(fhandler_socket::facl): Ditto.
 | |
| 	(fhandler_socket::link): Ditto.
 | |
| 	(fhandler_socket::utimes): New method.
 | |
| 	* times.cc: Include dtable.h.
 | |
| 	(timeval_to_filetime): Make non-static.
 | |
| 	(utimes): Move functionality into fhandler method utimes. Just call
 | |
| 	this method from here.
 | |
| 	* winsup.h: Simplify declarations of time helper functions.
 | |
| 	(timeval_to_filetime): Add extern declaration.
 | |
| 
 | |
| 2005-02-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_base): Declare new method link.
 | |
| 	(class fhandler_socket): Ditto.
 | |
| 	(class fhandler_disk_file): Ditto.
 | |
| 	* fhandler.cc (fhandler_base::open): Add FILE_WRITE_ATTRIBUTES
 | |
| 	to query_write_control access flags.
 | |
| 	(fhandler_base::link): New method.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't try to
 | |
| 	open with O_WRONLY since query_write_control includes
 | |
| 	FILE_WRITE_ATTRIBUTES.
 | |
| 	(fhandler_disk_file::fchown): Ditto.
 | |
| 	(fhandler_disk_file::facl): Ditto.
 | |
| 	(fhandler_disk_file::link): New method.  Touch st_ctime on successful
 | |
| 	link.
 | |
| 	* fhandler_socket.cc (fhandler_socket::link): New method.
 | |
| 	* syscalls.cc (link): Move functionality into fhandler method link.
 | |
| 	Just call this method from here.
 | |
| 
 | |
| 2005-02-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_socket): Declare new methods fchown,
 | |
| 	fchmod and facl.
 | |
| 	* fhandler_socket.cc (fhandler_socket::fstat): Handle AF_LOCAL
 | |
| 	sockets.
 | |
| 	(fhandler_socket::fchmod): New method.
 | |
| 	(fhandler_socket::fchown): New method.
 | |
| 	(fhandler_socket::facl): New method.
 | |
| 
 | |
| 2005-02-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* localtime.cc: Temporary implementation of setting __tzrule's offset
 | |
| 	member to be used by strftime.
 | |
| 	(__tzrule): New global variable.
 | |
| 	(tzparse): Set __tzrule's offset member appropriately.
 | |
| 
 | |
| 2005-02-17  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Set fs flag when a unix-domain socket
 | |
| 	is detected.
 | |
| 
 | |
| 2005-02-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstat): Set st_ctime if
 | |
| 	has_changed flag is set.
 | |
| 	(fhandler_disk_file::touch_ctime): Reset has_changed flag on success.
 | |
| 
 | |
| 2005-02-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* times.cc (utimes): Open files with FILE_WRITE_ATTRIBUTES first,
 | |
| 	if that fails, try opeing with GENERIC_WRITE.  Fix comments.
 | |
| 
 | |
| 2005-02-15  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.h (path_conv::issocket): Return true if device == FH_UNIX rather
 | |
| 	than expecting path_conv to set a flag.
 | |
| 
 | |
| 2005-02-11  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::raw_write): Mark as changed on
 | |
| 	successful write.
 | |
| 	* fhandler.h (fhandler_base::status_flags): Add 'has_changed' flag.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Call
 | |
| 	fhandler_disk_file's own open and close instead of open_fs and
 | |
| 	close_fs.  Mark as changed on success.
 | |
| 	(fhandler_disk_file::fchown): Ditto.
 | |
| 	(fhandler_disk_file::facl): Ditto.
 | |
| 	(fhandler_disk_file::ftruncate): Ditto.
 | |
| 	(fhandler_base::open_fs): Mark as changed when O_TRUNC flag on existing
 | |
| 	file is set.
 | |
| 	(fhandler_disk_file::close): Set st_ctime if has_changed flag is set.
 | |
| 
 | |
| 2005-02-11  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::release): Reset ev here if it exists.
 | |
| 	(cygthread::terminate_thread): Eliminate racy code which reset ev and
 | |
| 	thread_sync.  Remove a few nonsensical inuse checks.  Exit at the
 | |
| 	bottom.
 | |
| 	(cygthread::detach): Rewrite to again try to ensure that we don't say
 | |
| 	we're signalled when we are not signalled.
 | |
| 	* fhandler.cc (fhandler_base::raw_read): Revert to signalling read
 | |
| 	success quickly.
 | |
| 	* pipe.cc (fhandler_pipe::close): Use base method to close handle.
 | |
| 	* sigproc.h (WAIT_SIG_PRIORITY): Just trundle along at normal priority
 | |
| 	to allow the pipe thread to do its thing if possible.
 | |
| 
 | |
| 	* pinfo.h (pinfo::zap_cwd): Declare new function.
 | |
| 	(pinfo::zap_cwd): Move 'cd out of the way code' here.
 | |
| 	(pinfo::exit): Use it here.
 | |
| 	* spawn.cc (spawn_guts): And here.
 | |
| 
 | |
| 2005-02-11  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* times.cc (utimes): Open files with GENERIC_WRITE on file systems
 | |
| 	not supporting ACLs.
 | |
| 
 | |
| 2005-02-09  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Fix checking
 | |
| 	lseek return code.
 | |
| 
 | |
| 2005-02-08  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* times.cc (timeval_to_filetime): Define first parameter const.
 | |
| 	(utimes): Define second parameter to const according to SUSv3.
 | |
| 	(utime): Ditto.
 | |
| 	* include/sys/utime.h (utime) : Change declaration accordingly.
 | |
| 
 | |
| 2005-02-08  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::detach): Just test thread handle after
 | |
| 	signal arrived, don't wait infinitely for it.
 | |
| 
 | |
| 2005-02-08  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pipe.cc (fhandler_pipe::read): Remove hold over from old read_state
 | |
| 	implementation.
 | |
| 
 | |
| 2005-02-06  Yitzchak Scott-Thoennes <sthoenna@efn.org>
 | |
| 
 | |
| 	* net.cc (cygwin_gethostbyname): Be more picky about what's a numeric
 | |
| 	address string, and use tls in that case too.
 | |
| 
 | |
| 2005-02-07  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* exceptions.cc: Make windows_system_directory non-static.
 | |
| 	* pinfo.cc (pinfo::exit): Change innocuous cd'ed location to one that
 | |
| 	is more likely to exist.
 | |
| 
 | |
| 2005-02-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Leave symlink expansion loop in case
 | |
| 	a not-ENOENT error happens.
 | |
| 
 | |
| 	* cygheap.h (cygheap_fdmanip::fhandler_pipe *): New cast operator.
 | |
| 	* pinfo.cc (_pinfo::commune_recv): Add PICOM_PIPE_FHANDLER handling.
 | |
| 	(_pinfo::commune_send): Ditto.
 | |
| 	(_pinfo::pipe_fhandler): New method.
 | |
| 	* pinfo.h (enum picom): Add PICOM_PIPE_FHANDLER.
 | |
| 	(_pinfo::pipe_fhandler): Declare.
 | |
| 	* pipe.cc (fhandler_pipe::open): Rewrite.  Allow to open foreign
 | |
| 	pipe handles.
 | |
| 
 | |
| 2005-02-03  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygthread.h (cygthread::terminate_thread): Reflect return value.
 | |
| 	* cygthread.cc (cygthread::detach): Be more careful about ensuring that
 | |
| 	sigwait is properly waited for to avoid later missynchronization.
 | |
| 	(cygthread::terminate_thread): Return true if thread was actually
 | |
| 	terminated and all handles were closed.
 | |
| 	* fhandler_base.cc (fhandler_base::raw_read): Use signal_read_state
 | |
| 	rather than raw calls to win32 api.
 | |
| 	(fhandler_base::read): Ditto.
 | |
| 	* fhandler.h (fhandler_pipe::fixup_after_exec): Use method to create
 | |
| 	read_state signalling.
 | |
| 	(fhandler_pipe::create): Ditto.
 | |
| 
 | |
| 	* Makefile.in: Make some more files -fomit-frame-pointer.
 | |
| 
 | |
| 2005-02-02  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::ftruncate): Define new virtual method.
 | |
| 	(fhandler_disk_file::ftruncate): Ditto.
 | |
| 	* fhandler.cc (fhandler_base::ftruncate): New method.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Ditto.
 | |
| 	* syscalls.cc (ftruncate64): Move functionality into fhandlers.
 | |
| 	Call fhandler method from here.
 | |
| 
 | |
| 2005-02-02  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* pipe.cc (fhandler_pipe::dup): Fix conditionals in case of error.
 | |
| 
 | |
| 2005-02-02  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* times.cc (utimes): Mark st_ctime for update according to SUSv3.
 | |
| 
 | |
| 2005-02-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* fhandler_proc.cc (format_proc_partitions): Remove PartitionType check
 | |
| 	since it could skip over partitions that are actually interesting.
 | |
| 
 | |
| 2005-02-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::terminate_thread): Wait briefly for
 | |
| 	notification event in the event that the thread was actually in the
 | |
| 	process of exiting.
 | |
| 
 | |
| 	* pipe.cc (fhandler_pipe::dup): read_state is not supposed to be
 | |
| 	inheritable.  Fix that.
 | |
| 
 | |
| 	* path.cc (path_conv::check): Set symlen = 0 to avoid a compiler
 | |
| 	warning.
 | |
| 
 | |
| 	* devices.h (devices::parsedisk): Declare new function.
 | |
| 	* devices.in (devices::parsedisk): Define new function.
 | |
| 	* dtable.cc (dtable::init_std_file_from_handle): Use device numbers
 | |
| 	rather than name.
 | |
| 	* fhandler_proc.cc (format_proc_partitions): Use parsedisk to generate
 | |
| 	disk names from numeric codes.  (This was broken on two of my
 | |
| 	systems previously and is still broken now)
 | |
| 
 | |
| 2005-02-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* pipe.cc (fhandler_pipe::open):  Allow re-opening of /proc/<pid>/fd
 | |
| 	pipes of the current process.
 | |
| 
 | |
| 2005-02-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::get_proc_fd_name): Don't generate
 | |
| 	"device:" entry.
 | |
| 	* fhandler.h (fhandler_socket::open): New method.
 | |
| 	(fhandler_pipe::open): New method.
 | |
| 	* fhandler_proc.cc (fhandler_proc::exists): Return -2 in case of
 | |
| 	/proc/self.
 | |
| 	* fhandler_process.cc (fhandler_process::exists): Return -2 in
 | |
| 	case of symlinks, -3 for pipes and -4 for sockets.
 | |
| 	(fhandler_process::fstat): Handle pipes and sockets.
 | |
| 	(fhandler_process::open): Handle opening /proc/<pid>/fd.
 | |
| 	(fhandler_process::fill_filebuf): Generate empty names for
 | |
| 	non exisiting file descriptors.
 | |
| 	* fhandler_socket.cc (fhandler_socket::get_proc_fd_name): Always
 | |
| 	generate "socket:[number]" strings as on Linux.
 | |
| 	(fhandler_socket::open): New method.
 | |
| 	(fhandler_socket::fstat): Always return socket type.
 | |
| 	* path.cc (symlink_info::set): Remove unused second parameter.
 | |
| 	(path_conv::check): Handle pipes and sockets in /proc.
 | |
| 	Set correct device type for AF_LOCAL sockets.
 | |
| 	* pinfo.cc (_pinfo::commune_recv): Generate empty names for
 | |
| 	non exisiting file descriptors.
 | |
| 	(_pinfo::fd): Ditto.
 | |
| 	* pipe.cc (fhandler_pipe::open): New method.
 | |
| 
 | |
| 2005-01-31  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* path.h (path_conv::set_name): Declare new function.
 | |
| 	* path.cc (path_conv::set_name): Define new function.
 | |
| 	* fhandler.h (fhandler_dev_null::open): Declare new function.
 | |
| 	* fhandler.cc (fhandler_dev_null::open): Define new function.
 | |
| 
 | |
| 2005-01-31  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* smallprint.c (rnarg): Use long rather than unsigned long so that we
 | |
| 	get proper sign extension.
 | |
| 
 | |
| 2005-01-31  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* environ.cc (set_traverse): New function.
 | |
| 	(parse_thing): Add "traverse" option.  Sort options alphabetically.
 | |
| 	(environ_init): On NT, switch on traverse checking by default.
 | |
| 
 | |
| 2005-01-31  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* smallprint.c (__rn): Regparmize.
 | |
| 
 | |
| 2005-01-31  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* smallprint.c (rnarg): New macro.
 | |
| 	(rnargLL): Ditto.
 | |
| 	(__rn): Rename from 'rn', add a mask argument, and use the mask
 | |
| 	argument to control how many significant digits to care about.
 | |
| 	(__small_vsprintf): Use __rn, rnarg, rnargLL, as appropriate.
 | |
| 
 | |
| 2005-01-31  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::exit): Only return low-order 16 bits when exiting.
 | |
| 
 | |
| 2005-01-31  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_process.cc (format_process_maps): Get destbuf argument by
 | |
| 	reference.  Allow resizing of destbuf as necessary.  Fix string
 | |
| 	handling.
 | |
| 
 | |
| 2005-01-31  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygheap.h (class cygheap_fdenum): New class to enumerate used
 | |
| 	fhandlers.
 | |
| 	* dtable.h (class dtable): Add cygheap_fdenum as friend class.
 | |
| 	* fhandler.h (fhandler_base::get_proc_fd_name): New virtual method
 | |
| 	to return a name for /proc/<pid>/fd.
 | |
| 	(fhandler_socket::get_proc_fd_name): Ditto.
 | |
| 	(fhandler_pipe::get_proc_fd_name): Ditto.
 | |
| 	(fhandler_virtual::opendir): Make virtual method.
 | |
| 	(fhandler_process::opendir): New method.
 | |
| 	* fhandler.cc (fhandler_base::get_proc_fd_name): New method.
 | |
| 	* fhandler_process.cc: Include ctype.h.
 | |
| 	(PROCESS_FD): Define.
 | |
| 	(process_listing): Add "fd".
 | |
| 	(fhandler_process::exists): Fix comment.  Return 1 in case of "fd"
 | |
| 	directory. Handle files below "fd".
 | |
| 	(fhandler_process::fstat): Drop "self" handling.  Set correct link
 | |
| 	count for directories.
 | |
| 	(fhandler_process::opendir): New method to handle "fd" directory.
 | |
| 	(fhandler_process::readdir): Add "fd" handling.
 | |
| 	(fhandler_process::open): Drop "self" handling.
 | |
| 	(fhandler_process::fill_filebuf): Ditto.  Add "fd" handling.  Fix
 | |
| 	"maps" output string.
 | |
| 	* fhandler_registry.cc (fhandler_registry::fstat): Set correct link
 | |
| 	count for directories.
 | |
| 	* fhandler_socket.cc (fhandler_socket::get_proc_fd_name): New method.
 | |
| 	* path.cc (symlink_info::set): Fix thinko.
 | |
| 	* pinfo.cc (_pinfo::commune_recv): Rename pathbuf to path throughout.
 | |
| 	Drop local path variable in PICOM_FIFO case.  Fix debug output.
 | |
| 	Close handles as early as possible. Add PICOM_FDS and PICOM_FD
 | |
| 	handling.
 | |
| 	(_pinfo::commune_send): Add PICOM_FDS and PICOM_FD handling.
 | |
| 	(_pinfo::fd): New method.
 | |
| 	(_pinfo::fds): New method.
 | |
| 	* pinfo.h (enum picom): Add PICOM_FDS and PICOM_FD.
 | |
| 	(_pinfo::fd): Declare.
 | |
| 	(_pinfo::fds): Declare.
 | |
| 	* pipe.cc (fhandler_pipe::get_proc_fd_name): New method.
 | |
| 
 | |
| 2005-01-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* smallprint.c (rn): Change uval to unsigned long long to fix 64 bit
 | |
| 	handling.
 | |
| 	* fhandler_process.cc (format_process_maps): Print major, minor and
 | |
| 	inode numbers correctly.
 | |
| 
 | |
| 2005-01-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (GetModuleFileNameExA): Add.
 | |
| 	(GetModuleInformation): Add.
 | |
| 	(QueryWorkingSet): Add.
 | |
| 	* fhandler.h (fhandler_virtual::get_filebuf): New method.
 | |
| 	* fhandler_proc.cc (PROC_SELF): Define.
 | |
| 	(proc_fhandlers): Change type of self to FH_PROC.
 | |
| 	(fhandler_proc::exists): Return -3 if self.
 | |
| 	(fhandler_proc::fstat): Handle self as symlink.
 | |
| 	(fhandler_proc::fill_filebuf): Handle self.
 | |
| 	* fhandler_process.cc: Include psapi.h.
 | |
| 	(PROCESS_EXENAME): Remove.
 | |
| 	(PROCESS_MAPS): Define.
 | |
| 	(PROCESS_ROOT): Define.
 | |
| 	(PROCESS_EXE): Define.
 | |
| 	(PROCESS_CWD): Define.
 | |
| 	(process_listing): Remove "exename", add "maps, "root", "exe" and
 | |
| 	"cwd" elements.
 | |
| 	(fhandler_process::exists): Return -2 for symlinks.
 | |
| 	(fhandler_process::fstat): Handle symlinks.
 | |
| 	(fill_filebuf): Evaluate pid if pid is 0.  Use exename handling for
 | |
| 	exe.  Handle maps, root and cwd.
 | |
| 	(format_process_maps): New function evaluating "maps".
 | |
| 	* path.cc (symlink_info::set): New method to fill symlink_info
 | |
| 	with data matching virtual symlinks.
 | |
| 	(path_conv::check): Handle virtual symlinks.
 | |
| 	* pinfo.cc (_pinfo::commune_recv): Add PICOM_CWD and PICOM_ROOT
 | |
| 	handling.
 | |
| 	(_pinfo::commune_send): Ditto.
 | |
| 	(_pinfo::root): New function.
 | |
| 	(_pinfo::cwd): New function.
 | |
| 	* pinfo.h (enum picom): Add PICOM_CWD and PICOM_ROOT.
 | |
| 	(_pinfo::root): Declare.
 | |
| 	(_pinfo::cwd): Declare.
 | |
| 
 | |
| 2005-01-29  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygthread.cc (new): Add a little more debugging.
 | |
| 	* thread.cc (pthread_null::exit): Add a _my_tls.remove() for safety.
 | |
| 
 | |
| 2005-01-28  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygtls.cc (cygtls::call2): Move socket cleanup.
 | |
| 	(cygtls::remove): Move socket cleanup here.  Don't use _my_tls to
 | |
| 	reference it.
 | |
| 
 | |
| 2005-01-26  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::init): Avoid a compiler warning.
 | |
| 
 | |
| 2005-01-25  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (setpriority): Implement PRIO_PGRP, PRIO_USER and
 | |
| 	setting priority in other Cygwin processes.
 | |
| 	(getpriority): Implement PRIO_PGRP, PRIO_USER and getting nice value
 | |
| 	from other processes.
 | |
| 
 | |
| 2005-01-26  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Return ENOTDIR rather than ENOENT
 | |
| 	when a component is not a directory. Remove unreachable code.
 | |
| 	(digits): Delete.
 | |
| 
 | |
| 2005-01-25  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.h (pinfo::init): Make third parameter non-optional and
 | |
| 	propagate change throughout.
 | |
| 	* pinfo.cc (set_myself): Pass INVALID_HANDLE_POINTER if h is NULL.
 | |
| 	(pinfo::init): Make third parameter non-optional.  Eliminate use of
 | |
| 	PID_EXECED as an argument.  Put setting of handle back inside loop but
 | |
| 	reorganize to try to open it only when necessary.
 | |
| 
 | |
| 2005-01-25  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din: Export getpriority and setpriority.
 | |
| 	* fork.cc (fork_parent): Copy parent's nice value into child.
 | |
| 	* spawn.cc (spawn_guts): Ditto.
 | |
| 	* miscfuncs.cc (winprio_to_nice): New function.
 | |
| 	(nice_to_winprio): Ditto.
 | |
| 	* pinfo.cc (pinfo_init): If parent is not a Cygwin process, set
 | |
| 	default nice value according to current Win32 priority class.
 | |
| 	* pinfo.h (class _pinfo): Add nice member.
 | |
| 	* syscalls.cc (setpriority): New function, only implementing
 | |
| 	PRIO_PROCESS for now.
 | |
| 	(getpriority): Ditto.
 | |
| 	(nice): Just call setpriority.
 | |
| 	* wincap.h (wincaps::has_extended_priority_class): New element.
 | |
| 	* wincap.cc: Implement above element throughout.
 | |
| 	* winsup.h: Add prototypes for winprio_to_nice and nice_to_winprio.
 | |
| 	* include/limits.h (NZERO): New define.
 | |
| 	* include/cygwin/types.h (id_t): New datatype.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 	* include/sys/resource.h: Add PRIO_XXX defines and prototypes for
 | |
| 	getpriority and setpriority.
 | |
| 
 | |
| 2005-01-25  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (realpath): Allow to expand with .exe suffix.
 | |
| 
 | |
| 2005-01-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* spawn.cc (spawn_guts): Perform same "cd" as in pinfo::exit below to
 | |
| 	make sure that a stub process does not keep the current working
 | |
| 	directory busy after the "execed" process has exited.
 | |
| 
 | |
| 2005-01-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::init): Move everything but the MapViewOfFileEx out
 | |
| 	of the loop since trying multiple times to call CreateFileMapping
 | |
| 	doesn't make much sense.  Try to structure the loop a little better so
 | |
| 	that exiting with a break does the right thing.
 | |
| 	(pinfo::release): Release shared memory area if it exists and close
 | |
| 	handle if it exists.
 | |
| 
 | |
| 2005-01-22  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::maybe_set_exit_code_from_windows): Make sure that
 | |
| 	process has exited before getting an error code.
 | |
| 	(pinfo::exit): "cd" to innocuous location before exiting to make sure
 | |
| 	that process does not keep the current working directory busy while it
 | |
| 	is in the process of really exiting.
 | |
| 
 | |
| 2005-01-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (CoInitialize): Remove.
 | |
| 	(CoUninitialize): Remove.
 | |
| 	(CoCreateInstance): Remove.
 | |
| 	(CoTaskMemFree): Add.
 | |
| 	(SHGetDesktopFolder): Add.
 | |
| 	* path.cc (shortcut_header): Remove.
 | |
| 	(shortcut_initalized): Remove.
 | |
| 	(GUID_shortcut): New static GUID.
 | |
| 	(struct win_shortcut_hdr): New struct describing Windows shortcut
 | |
| 	header structure.
 | |
| 	(symlink_worker): Rewrite creating Windows shortcuts.  Create
 | |
| 	ITEMIDLIST if target exists.  Only write once.
 | |
| 	(cmp_shortcut_header): Use win_shortcut_hdr structure for comparison.
 | |
| 	(check_shortcut): Rewrite to read only once from file.  Allow skipping
 | |
| 	an ITIMIDLIST in the file.
 | |
| 
 | |
| 2005-01-16  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.h (maybe_set_exit_code_from_windows): Renamed from
 | |
| 	set_exit_state.
 | |
| 	* pinfo.cc (pinfo::exit): Use renamed function.
 | |
| 	(proc_waiter): Ditto.  Make a copy of input argument to avoid problems
 | |
| 	when procs array is shuffled.  Flag when copy is made so that
 | |
| 	remove_proc knows when it is safe to reshuffle.
 | |
| 	* sigproc.cc (proc_terminate): Don't flag process_state as PID_EXITED.
 | |
| 	(remove_proc): Wait for waiter to finish copying pinfo element before
 | |
| 	moving it (an actual wait should be an extremely rare event).
 | |
| 
 | |
| 2005-01-15  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* init.cc (dll_entry): Remove unused extern.
 | |
| 
 | |
| 	* include/sys/cygwin.h: Remove PID_ZOMBIE.
 | |
| 	* pinfo.h: Rename EXITCODE_* defines.
 | |
| 	(pinfo::set_exit_state): Remove parameter.
 | |
| 	* pinfo.cc (set_exit_state): Remove parameter.  Reverse sense of test
 | |
| 	so that exitcode is checked for having been set rather than not having
 | |
| 	been set.  Set flag when exitcode has been established.  Don't set
 | |
| 	PID_STATE here.
 | |
| 	(pinfo::init): Remove exitcode initialization.
 | |
| 	(pinfo::exit): Reflect change in EXITCODE_* naming.  Set flag when
 | |
| 	exitcode has been established.  Reflect change in arguments to
 | |
| 	set_process_state.
 | |
| 	(proc_waiter): Reflect change in arguments to set_process_state.  Set
 | |
| 	process_state here and only here.
 | |
| 	* fhandler_process.cc (fhandler_process::fill_filebuf): Reflect removal
 | |
| 	of PID_ZOMBIE define.
 | |
| 	(format_process_stat): Ditto.
 | |
| 	(format_process_status): Ditto.
 | |
| 	* sigproc.cc (pid_exists): Ditto.
 | |
| 	(stopped_or_terminated): Ditto.  Make sure that only low-order 16 bits of
 | |
| 	exitcode are used.
 | |
| 	* spawn.cc (spawn_guts): Reflect change in EXITCODE_* naming.
 | |
| 
 | |
| 2005-01-15  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* sigproc.cc (sig_send): Don't complain if attempt to send signal to
 | |
| 	myself fails after I've "execed".
 | |
| 
 | |
| 2005-01-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::facl): Pretend successful
 | |
| 	SETACL if no acls are available.
 | |
| 	* fhandler.cc (fhandler_base::facl): Implement to return sensible
 | |
| 	values on GETACL and GETACLCNT.  Pretend successful SETACL.
 | |
| 	* fhandler_virtual.cc (fhandler_virtual::facl): Ditto.
 | |
| 
 | |
| 2005-01-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_disk_file::touch_ctime): Declare.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): New method
 | |
| 	to set file's ctime.
 | |
| 	(fhandler_disk_file::fchmod): Try opening file for writing first.
 | |
| 	Set file's ctime on success.
 | |
| 	(fhandler_disk_file::fchown): Ditto.
 | |
| 	(fhandler_disk_file::facl): Ditto.
 | |
| 
 | |
| 2005-01-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::exit): Don't access self after releasing it.
 | |
| 	* path.h (path_conv::path_conv): Fill path with native device
 | |
| 	name in case of device argument.
 | |
| 
 | |
| 2005-01-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_serial.cc (fhandler_serial::dup): Call overlapped_setup
 | |
| 	for child, not for parent.
 | |
| 
 | |
| 2005-01-13  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* init.cc (dll_entry): Nuke attempt to set exit code since parent will
 | |
| 	use windows exit code if needed.
 | |
| 	* pinfo.cc (pinfo::exit): Move release() here to minimize pid creation
 | |
| 	race (suggested by Pierre Humblet).
 | |
| 
 | |
| 2005-01-12  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	Reorganize header file inclusion throughout so that cygerrno.h comes
 | |
| 	first.
 | |
| 	* fhandler.h (select_record::thread_errno): Save any encountered errno
 | |
| 	here.
 | |
| 	(select_record::set_select_errno): New function.
 | |
| 	(select_record::saw_error): New function.
 | |
| 	(select_record::select_record): Initialize thread_errno to zero.
 | |
| 	* select.cc (set_handle_or_return_if_not_open): Set thread_errno on
 | |
| 	failure.
 | |
| 	(select_stuff::wait): Record errno for later resurrection in calling
 | |
| 	thread.
 | |
| 	(peek_serial): Ditto.
 | |
| 
 | |
| 2005-01-12  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* syscalls.cc (system): Use "/bin/sh" as per linux and (sorta) SUSv3.
 | |
| 
 | |
| 2005-01-12  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::exit): Don't assume that this == myself.
 | |
| 
 | |
| 2005-01-11  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (pinfo::init): Don't close input handle on temporary (?)
 | |
| 	failure.
 | |
| 
 | |
| 2005-01-11  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.h (_pinfo::set_exit_state): Declare new function.
 | |
| 	(pinfo::exit): Move here from _pinfo::exit.
 | |
| 	* sigproc.cc (child_info::sync): Use new function to set exitcode and
 | |
| 	process_state.
 | |
| 	* pinfo.cc (_pinfo::exit): Ditto.
 | |
| 	(proc_waiter): Ditto.
 | |
| 	(_pinfo::set_exit_state): Define new function.
 | |
| 	(_pinfo::dup_proc_pipe): Close handle when there is no parent process
 | |
| 	around to care about the exit value.
 | |
| 	* dcrt0.cc (dll_crt0_0): Move subproc_ready synchronization later to
 | |
| 	make sure that myself is still mapped in parent.
 | |
| 	(do_exit): Reflect movement to pinfo::exit.
 | |
| 	(__api_fatal): Ditto.
 | |
| 	* exceptions.cc (signal_exit): Ditto.
 | |
| 	* errno.cc (errmap): Map PROC_NOT_FOUND.
 | |
| 	* init.cc (dll_entry): Release myself before exiting.
 | |
| 	* sigproc.cc (proc_can_be_signalled): Set errno appropriately.
 | |
| 	(sig_send): Ditto.  Also remove ill-advised test for !myself->sendsig
 | |
| 	since this is an indication of a process which is still initializating
 | |
| 	-- it is not an error.
 | |
| 	(child_info::sync): Don't set exitcode here.  Assume that will happen
 | |
| 	in proc_waiter, if necessary.
 | |
| 	* spawn.cc (spawn_guts): Delay "wait_for_myself" logic until later.
 | |
| 	Don't wait at all if the process has already exited.  Reflect movement
 | |
| 	to pinfo::exit.
 | |
| 
 | |
| 2005-01-11  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* environ.cc (build_env): Disallow empty strings and strings starting
 | |
| 	with '=' in Win32 environment.
 | |
| 
 | |
| 2005-01-08  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* syscalls.cc (seteuid32): Only change the default dacl when
 | |
| 	seteuid succeeds. Do not close HKCU.
 | |
| 
 | |
| 2005-01-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_process.cc: Use strcasematch instead of strcasecmp
 | |
| 	throughout.
 | |
| 
 | |
| 2005-01-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (rename): Fix behaviour in case of renaming directories
 | |
| 	according to SUSv3.
 | |
| 
 | |
| 2005-01-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::open_fs): Don't allow
 | |
| 	opening directories for writing.
 | |
| 
 | |
| 2005-01-06  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* timer.cc (timer_thread): Pass sigev pointer value as per SuSv3 rather
 | |
| 	than pointer to sigev.
 | |
| 
 | |
| 2005-01-05  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* dcrt0.cc (multiple_cygwin_problem): Reorganize error message to not
 | |
| 	always talk about a "version" when it's not a version.
 | |
| 	(dll_crt0_0): Change info passed to multiple_cygwin_problem to be a
 | |
| 	little more precise.
 | |
| 	* shared.cc (user_shared_initialize): Ditto.
 | |
| 	(shared_info::initialize): Ditto.
 | |
| 
 | |
| 2005-01-03  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* pinfo.cc (_pinfo::dup_proc_pipe): Can't close proc pipe when execing
 | |
| 	or we will suffer an exit code race.
 | |
| 
 | |
| 2005-01-03  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* signal.cc (abort): Call _GLOBAL_REENT's __cleanup.
 | |
| 
 | |
| 2005-01-03  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (setmode): Call _fwalk with _GLOBAL_REENT.
 | |
| 
 | |
| 2005-01-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::stub): Set inuse to false when exiting.
 | |
| 	(cygthread::cygthread): Actually pass name as argument to debugging
 | |
| 	output to avoid SEGV when strace'ing.
 | |
| 	(cygthread::release): Don't set stack_ptr to NULL, since it is only set
 | |
| 	once on first entry to a stub not on each stub iteration.
 | |
| 	(cygthead::exit_thread): Remove obsolete function.
 | |
| 	* cygthread.h (cygthread::exit_thread): Ditto.
 | |
| 
 | |
| 2005-01-01  Christopher Faylor  <cgf@timesys.com>
 | |
| 
 | |
| 	* shared.cc (open_shared): Don't attempt VirtualAlloc magic if first
 | |
| 	attempt to map memory fails.
 |