| 2011-12-30 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * cygwin.din (getpt): Export. |
| * posix.sgml (std-gnu): Add getpt. |
| * tty.cc (getpt): New function. |
| * include/cygwin/stdlib.h [!__STRICT_ANSI__] (getpt): Declare. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| |
| 2011-12-30 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * thread.cc: Mark pthread_rwlock_timedrdlock and |
| pthread_rwlock_timedwrlock as not yet implemented in the list of |
| cancellation points. |
| |
| 2011-12-24 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler_dsp.cc (fhandler_dev_dsp::fhandler_dev_dsp): Set up device. |
| |
| * syscalls.cc (open): Very minor formatting tweak. |
| |
| 2011-12-24 Corinna Vinschen <vinschen@redhat.com> |
| |
| * path.cc (struct symlink_info): Add bool argument to declaration of |
| check_reparse_point. |
| (symlink_info::check_reparse_point): Add bool argument to indicate |
| remote drive. Handle STATUS_PENDING. Don't evaluate junctions on |
| remote drives. Fix comments. |
| (symlink_info::check): Drop check for is_remote_drive and associated |
| comment here. Add fs.is_remote_drive as second parameter to |
| check_reparse_point call. |
| |
| 2011-12-23 Corinna Vinschen <vinschen@redhat.com> |
| |
| * pinfo.cc (pinfo_basic::pinfo_basic): Fix formatting. Set uid and gid |
| to default values to accommodate early initialization of shared user |
| info. Add comment. |
| |
| 2011-12-22 Corinna Vinschen <vinschen@redhat.com> |
| |
| * spawn.cc (child_info_spawn::worker): Add CREATE_BREAKAWAY_FROM_JOB |
| to c_flags only if current process is member of a job and breakaway |
| is allowed. |
| |
| 2011-12-22 Corinna Vinschen <vinschen@redhat.com> |
| |
| * external.cc (cygwin_internal): Implement CW_ALLOC_DRIVE_MAP, |
| CW_MAP_DRIVE_MAP, CW_FREE_DRIVE_MAP. |
| * fhandler_process.cc: Include mount.h. |
| (get_volume_path_names_for_volume_name): Move to mount.cc. |
| (struct dos_drive_mappings): Ditto. |
| * mount.cc (get_volume_path_names_for_volume_name): Move here. |
| (dos_drive_mappings::dos_drive_mappings): Ditto. |
| (dos_drive_mappings::fixup_if_match): Ditto. |
| (dos_drive_mappings::~dos_drive_mappings): Ditto. |
| * mount.h (class dos_drive_mappings): Declare her. |
| * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_ALLOC_DRIVE_MAP, |
| CW_MAP_DRIVE_MAP, CW_FREE_DRIVE_MAP. |
| * include/cygwin/version.h: Bump API minor number. |
| |
| 2011-12-22 Corinna Vinschen <vinschen@redhat.com> |
| |
| * fhandler_process.cc: Drop unneeded includes. |
| |
| 2011-12-22 Corinna Vinschen <vinschen@redhat.com> |
| |
| Throughout use wincap.allocation_granularity instead of getpagesize. |
| Throughout use wincap.page_size instead of getsystempagesize. |
| Throughout use "status" as variable name to hold NTSTATUS values. |
| * fhandler_mem.cc: Check for NT_SUCCESS rather than for STATUS_SUCCESS. |
| Fix debug_printf output. Rectify long statements. Fix comment |
| formatting. |
| * fhandler_proc.cc: Ditto. |
| (format_proc_swaps): Drop useless test for ERROR_PROC_NOT_FOUND. |
| * fhandler_process.cc: Ditto as in fhandler_mem.cc. |
| (get_process_state): Rearrange allocation loop. Use malloc/realloc. |
| (get_mem_values): Fix potential NULL pointer usage. Drop unused |
| variable. |
| * pinfo.cc (winpids::enum_processes): Handle low memory gracefully. |
| * sec_auth.cc (get_priv_list): Drop local variable ret. |
| * shared.cc (memory_init): Drop outdated call to getpagesize. |
| * syscalls.cc (getsystempagesize): Remove. |
| * sysconf.cc: Check for NT_SUCCESS rather than for STATUS_SUCCESS. |
| (sysinfo): Constify sizeof_stodi. Drop useless test for |
| ERROR_PROC_NOT_FOUND. |
| * thread.cc (pthread_getattr_np): Cast pointers to uintptr_t rather |
| than to int for pointer arithmetic. |
| * winsup.h (getsystempagesize): Drop declaration. |
| |
| 2011-12-21 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Use correct |
| value in switch statement. |
| |
| 2011-12-21 Corinna Vinschen <vinschen@redhat.com> |
| |
| * dcrt0.cc (_dll_crt0): Rephrase comments. Set $ebp to NULL, as in |
| the pthread stack setup. |
| * wow64.cc (wow64_revert_to_original_stack): Rephrase some comments. |
| Return _tlsbase-16 rather than _main_tls-4 so as not to waste stack. |
| |
| 2011-12-19 Corinna Vinschen <vinschen@redhat.com> |
| |
| * syscalls.cc (rename): Fix typo in comment. Fix condition to handle |
| the case oldpath is no .lnk symlink and newpath points to an existing |
| .lnk symlink or .exe file and no explicit .lnk suffix has been given |
| in oldpath. Add a comment to explain. |
| |
| 2011-12-19 Corinna Vinschen <vinschen@redhat.com> |
| |
| * dcrt0.cc (dll_crt0_0): Check for wincap.wow64_has_secondary_stack |
| rather than for wincap.is_wow64. Accommodate name change from |
| wow64_has_64bit_parent to wow64_needs_stack_adjustment. Align comment. |
| (_dll_crt0): Ditto. |
| * wincap.h (wincaps::wow64_has_secondary_stack): New element. |
| * wincap.cc: Implement above element throughout. |
| (wincapc::init): Set wow64_has_secondary_stack to false on non-64 bit |
| systems. |
| * wow64.cc (wow64_needs_stack_adjustment): Rename (hopefully the last |
| time) from wow64_has_64bit_parent. |
| (wow64_eval_expected_main_stack): Fix comment to reflect real life. |
| (wow64_test_for_64bit_parent): Fix comment. |
| * wow64.h (wow64_needs_stack_adjustment): Accommodate new name. |
| |
| 2011-12-17 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.cc (fhandler_base::close): Move setting isclosed() from here |
| to closed(). |
| (fhandler_base_overlapped::close): Correct comment. |
| (fhandler_base_overlapped::destroy_overlapped): Signal overlapped event |
| before closing it to potentially wake up a waiting thread. |
| (fhandler_base_overlapped::wait_overlapped): Expand setting of err when |
| closed to encompass non-signal event. Test for a cancel event before |
| making nonblocking decisions. |
| * syscalls.cc (close): Set closed flag here so that any concurrently |
| executing functions will be notified ASAP. |
| |
| 2011-12-17 Corinna Vinschen <vinschen@redhat.com> |
| |
| * dcrt0.cc (_dll_crt0): Fix formatting. |
| |
| 2011-12-17 Corinna Vinschen <vinschen@redhat.com> |
| |
| * wow64.cc (wow64_revert_to_original_stack): Fix comment. |
| * wow64.h (wow64_respawn_process): Declare noreturn. |
| |
| 2011-12-17 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * exceptions.cc (set_signal_mask): Remove useless debugging output. |
| |
| * fhandler.cc (fhandler_base::write): Ditto. |
| (fhandler_base_overlapped::close): Cancel any ongoing I/O before |
| closing. |
| * syscalls.cc (write): Default to always reporting all writes in strace |
| output via syscall_printf. |
| * wait.cc (wait4): Fix debugging output. Use standard syscall leaver |
| output. |
| |
| 2011-12-16 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| Implement fhandler reference counting. |
| * cygheap.h (cygheap_fdmanip::release): Make virtual. |
| (cygheap_fdnew::~cygheap_fdnew): New destructor increments reference |
| count when fd has been allocated. |
| (cygheap_fdget::fh): New (old?) field. |
| (cygheap_fdget::cygheap_fdget): Increment reference count when we've |
| found an active fd. Set fh appropriately. |
| (cygheap_fdget::~cygheap_fdget): Decrement reference count when |
| appropriate. Delete fh if reference count goes to zero. |
| (cygheap_fdget::release): New function. Do more bookkeping on release. |
| * dtable.cc (dtable::release): Change from void to boolean return. |
| Only delete the fhandler when its reference count is <= 0 (this should |
| be a fairly unusual case). Return true if fhandler has been deleted. |
| (cygwin_attach_handle_to_fd): Increment reference count when fh is |
| assigned. |
| (dtable::init_std_file_from_handle): Ditto. |
| * dtable.h (dtable::release): Change return to boolean. |
| * fhandler.cc (fhandler_base::fhandler_base): Set new isclosed flag to |
| false. Set _refcnt to zero. |
| (fhandler_base::close): Simplify paranoid debugging output. Set new |
| isclosed() flag. |
| (fhandler_base_overlapped::wait_overlapped): Use isclosed() flag to |
| avoid querying the overlapped structure. |
| * fhandler.h (fhandler_base::_refcnt): New field. |
| (fhandler_base::refcnt): New function. |
| (fhandler_base::isclosed): Implement. |
| (fhandler_base::fhandler_base): Set isclosed to false. |
| |
| * syscalls.cc: Remove space after function before parentheses for |
| several strace printfs. |
| (dup): Add standard strace "leaver" code. |
| (dup2): Ditto. |
| (dup3): Ditto. |
| (remove): Ditto. |
| (getpid): Ditto. |
| (getppid): Ditto. |
| (lseek64): Fix strace debugging to correctly use %R. |
| |
| * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Avoid sending |
| signals to other processes if we're debugging since it can cause a |
| deadlock with the calling debugger. |
| |
| * exceptions.cc (_cygtls::call_signal_handler): Add debugging-only |
| strace output. |
| |
| 2011-12-16 Corinna Vinschen <vinschen@redhat.com> |
| |
| * dcrt0.cc (child_info_fork::alloc_stack): Correctly check if the |
| parent stack fits into the child stack. Align comment. |
| * wow64.cc (wow64_eval_expected_main_stack): New function to fetch |
| expected addresses of main thread stack from PE/COFF image header |
| values. |
| (wow64_test_for_64bit_parent): Fix comment. Check current stack |
| against real expected main thread stack addresses. |
| (wow64_revert_to_original_stack): Fix and add comments. Check memory |
| against real expected main thread stack addresses. Use orignal stack |
| if reserved area is >= 256K. |
| |
| 2011-12-16 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * gendef (sigdelayed): Remember to pop all of the saved registers. |
| (sigreturn): Add "leave" label. |
| |
| 2011-12-16 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Fix |
| unresolved access of wores in successful situations. |
| |
| 2011-12-16 Corinna Vinschen <vinschen@redhat.com> |
| |
| * Makefile.in (DLL_OFILES): Add wow64.o. |
| * dcrt0.cc (CYGWIN_GUARD): Drop execute permission for stack, it's |
| not used for stacks by the OS either. |
| (child_info_fork::alloc_stack_hard_way): Ditto. |
| (child_info_fork::alloc_stack): Don't alloc_stack_hard_way under WOW64 |
| if forked from a 64 bit parent. Set child's StackBase to parent's |
| StackBase. Add comments to explain why. |
| (wow64_respawn): Move to wow64.cc. |
| (wow64_started_from_native64): Move to wow64.cc. |
| (respawn_wow64_process): Move to wow64.cc. |
| (dll_crt0_0): Drop wow64_test_stack_marker and move stack test into |
| wow64_test_for_64bit_parent function. Don't return early if WOW64 |
| process has been started from native 64 bit process. |
| (_dll_crt0): Implement moving stack for WOW64 processes started from |
| native 64 bit process. |
| * wow64.cc: New file. |
| (wow64_has_64bit_parent): Rename from wow64_respawn. |
| (wow64_test_for_64bit_parent): Rename from wow64_started_from_native64. |
| Change comment. |
| (wow64_revert_to_original_stack): New function. |
| (wow64_respawn_process): Rename from respawn_wow64_process for symmetry. |
| * wow64.h: New file. |
| |
| 2011-12-16 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * exceptions.cc (_cygtls::call_signal_handler): Fix debugging to not go |
| to console. |
| * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Add temporary |
| kludge to work around problem of make closing an fhandle while it is |
| being read. |
| * gendef (sigdelayed): Don't call a function if sig has been cleared. |
| |
| * sigproc.h (cygwait): Simplify slightly. |
| |
| 2011-12-14 Corinna Vinschen <vinschen@redhat.com> |
| |
| * autoload.cc (GetSystemWow64DirectoryW): Define. |
| (GetVolumePathNamesForVolumeNameW): Define. |
| * fhandler_process.cc (get_volume_path_names_for_volume_name): New |
| static function to workaround missing GetVolumePathNamesForVolumeNameW |
| function in Windows 2000. |
| (dos_drive_mappings::dos_drive_mappings): Call |
| get_volume_path_names_for_volume_name instead of |
| GetVolumePathNamesForVolumeNameW. |
| |
| 2011-12-13 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dcrt0.cc (init_windows_system_directory): Record |
| system_wow64_directory information. |
| * exceptions.cc (_cygtls::inside_kernel): Modernize comment. Consider |
| executing a DLL from the Wow64 directory as being "in the kernel". |
| (_cygtls::call_signal_handler): For now, only deal with main_tls |
| signals if main_tls is known to be executing in the cygwin DLL. To |
| more closely emulate linux, consider the operation to be restartable if |
| not executing in the main thread. |
| * globals.cc (windows_system_directory): Remove NO_COPY. |
| (windows_system_directory_length): Ditto. |
| (system_wow64_directory): New variable. |
| (system_wow64_directory_length): Ditto. |
| |
| * select.cc (cygwin_select): Don't issue a EINTR on non-main threads |
| since that seems to be what Linux does. Add missing break to signal |
| case/switch. |
| (select_stuff::wait): Don't issue a EINTR on non-main threads since |
| that seems to be what Linux does. Remove now-unneeded accommodation |
| for WAIT_IO_COMPLETION. Add a comment. |
| * sigproc.h (cygwait): Ditto. Don't return if signal_received noticed |
| and it's not the main thread. |
| |
| * signal.cc (sigprocmask): Add standard syscall debug stuff. |
| * thread.cc (pthread_sigmask): Ditto. |
| |
| 2011-12-13 Corinna Vinschen <vinschen@redhat.com> |
| |
| * netdb.cc (open_system_file): Avoid MS-DOS path warning. |
| |
| 2011-12-13 Corinna Vinschen <vinschen@redhat.com> |
| |
| * path.cc (conv_path_list): Fix a condition. |
| (cygwin_conv_path): Revert WIN_A conversion to current locale codeset. |
| |
| 2011-12-13 Corinna Vinschen <vinschen@redhat.com> |
| |
| * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Call |
| file_get_fnoi instead of NtQueryInformationFile. |
| * path.cc (file_get_fnoi): New helper function to collect a |
| FILE_NETWORK_OPEN_INFORMATION block. |
| (symlink_info::check): Call file_get_fnoi rather than |
| NtQueryInformationFile to collect a FILE_NETWORK_OPEN_INFORMATION block. |
| * path.h (file_get_fnoi): Declare. |
| |
| 2011-12-13 Dave Korn <dave.korn.cygwin@gmail.com> |
| |
| * times.cc (hires_ns::resolution): Don't return less than 1. |
| |
| 2011-12-12 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * cygthread.h (cygthread::name): Very minor formatting tweak. |
| |
| * exceptions.cc (_cygtls::call_signal_handler): Add paranoid debugging |
| output. |
| |
| * sigproc.h (cygwait): Call signal handler when signal is detected and |
| loop as appropriate. |
| * fhandler.h (fhandler_base_overlapped::wait_return): Remove |
| overlapped_signal. |
| * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Remove |
| restartable signal accommodations in light of cygwait improvements. |
| (fhandler_base_overlapped::raw_read): Remove now-obsolete signal loop |
| behavior. |
| (fhandler_base_overlapped::raw_write): Ditto. |
| * fhandler_console.cc (fhandler_console::read): Ditto. |
| * fhandler_serial.cc (fhandler_serial::raw_read): Ditto. |
| (fhandler_serial::raw_write): Ditto. |
| * fhandler_tty.cc (fhandler_pty_slave::read): Ditto. |
| |
| * ioctl.cc (ioctl): Add standard syscall introducer and leaver debug |
| output. |
| |
| 2011-12-12 Corinna Vinschen <vinschen@redhat.com> |
| |
| * fhandler_process.cc (dos_drive_mappings): Partially rewrite to |
| handle volumes mounted into juntion points correctly. |
| |
| 2011-12-12 Corinna Vinschen <vinschen@redhat.com> |
| |
| * fhandler_process.cc (dos_drive_mappings::dos_drive_mappings): Fully |
| resolve symbolic links returned by QueryDosDeviceW. Explain why. |
| |
| 2011-12-12 Corinna Vinschen <vinschen@redhat.com> |
| |
| * mount.cc (fs_info::update): Set has_buggy_reopen for Netapps as well. |
| |
| 2011-12-12 Corinna Vinschen <vinschen@redhat.com> |
| Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dcrt0.cc (wow64_respawn): New static variable. |
| (wow64_started_from_native64): New function to check if a WOW64 |
| process got started from a native 64 bit process. |
| (respawn_wow64_process): New function to respawn process. |
| (dll_crt0_0): When started from a native parent, check if parent |
| is a 64 bit process. If so, return early. |
| (_dll_crt0): Respawn WOW64 process here if required. |
| * init.cc (respawn_wow64_process): Remove. |
| (dll_entry): Rename wow64_test_stack_marker to test_stack_marker. |
| Drop WOW64 test here. |
| |
| 2011-12-11 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * pipe.cc (fhandler_pipe::create): Use debug_printf to print debugging |
| info since this isn't a "syscall". |
| (pipe_worker): New function created from _pipe(). |
| (_pipe): Use pipe_worker to create a pipe. Use standard syscall strace |
| reporting on exit. |
| (pipe): Ditto. |
| (pipe2): Ditto. |
| |
| 2011-12-10 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * select.cc (select_stuff::wait): Very minor formatting fix. |
| (peek_windows): Report on HWND handle used in queries. |
| * select.h: Update copyright. |
| * sigproc.h (cygwait): Eliminate multi-argument variety since more |
| general implementation may cause odd problems in select. Also force to |
| always be inline. |
| |
| 2011-12-10 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.h (cygwait): Delete duplicate va_start and add matching |
| va_end. |
| |
| 2011-12-10 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.h (cygwait): Tweak test for cancellable event to make it a |
| little more clear. |
| |
| 2011-12-09 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * exceptions.cc (ctrl_c_handler): YA in a series or reversions. Put |
| back _my_tls.remove along with a comment. |
| (sigpacket::process): Remove code which now causes a gdb deadlock. |
| * sigproc.cc (_cygtls::signal_exit): Signal debugger with signal number |
| earlier. |
| |
| 2011-12-09 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dllfixdbg: Work around annoying gdb warning about missing |
| .gnu_debuglink. |
| |
| 2011-12-09 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| Rename cygWFMO to cygwait throughout and use the magic of polymorphism |
| to "wait for stuff". |
| * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Use |
| simplified arg form of cygwait. |
| * fhandler_console.cc (fhandler_console::read): Ditto. |
| * fhandler_audio.cc (fhandler_dev_dsp::Audio_out::waitforspac): Ditto. |
| (fhandler_dev_dsp::Audio_in::waitfordata): Ditto. |
| * fhandler_fifo.cc (fhandler_fifo::wait): Ditto. |
| * fhandler_serial.cc (fhandler_serial::raw_read): Ditto. |
| (fhandler_serial::raw_write): Ditto. |
| * select.cc (cygwin_select): Ditto. |
| * sigproc.h (cygwait): Rename from cygWFMO. Define two argument and |
| single argument forms of this function. |
| |
| * fhandler_tty.cc (fhandler_pty_slave::open): Use method to query if |
| tty is open. |
| (fhandler_pty_slave::read): Send SIGHUP when master is detected as |
| closed. |
| (fhandler_pty_common::close): Close input_available_event in callers |
| since master may need to signal it first. |
| (fhandler_pty_master::close): Lie and set input_available_event when |
| closing, then close input_available_event. |
| (fhandler_pty_slave::close): Close input_available_event explicitly |
| here. |
| * tty.h (tty::is_master_closed): Declare new method. |
| |
| 2011-12-09 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.cc (signal_exit): Revert reversion of 2011-12-04 change |
| since, otherwise, you see hangs when the signal pipe is closed. |
| |
| 2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * select.cc (cygwin_select): Fifth time is the charm. |
| |
| 2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * select.cc (cygwin_select): Make sure that 0 is returned when sel.wait |
| times out. |
| |
| 2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * include/sys/wait.h: Add in all c++ functions. |
| |
| 2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * select.cc (select_stuff::wait): Temporarily disallow APCS. |
| |
| 2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * include/sys/wait.h: Ensure that C++ functions are only used when |
| using C++. |
| |
| 2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * select.cc (cygwin_select): Make sure that poll is called when |
| appropriate. |
| |
| 2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dll_init.cc (dll_dllcrt0): Don't try to initialize dll data if we're |
| dynamically loaded since fork() doesn't work in that scenario anyway. |
| (dll_dllcrt0_1): Don't accommodate dynamically loaded dlls. |
| * exceptions.cc (ctrl_c_handler): Don't lock the process; there's too |
| much risk of deadlock. |
| * sigproc.cc (_cygtls::remove_wq): Don't try to remove anything from |
| the waitq if there is obviously nothing there. |
| * strace.cc (strace::activate): Allow stracing dynamically loaded |
| cygwin1.dll. |
| |
| 2011-12-07 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler_termios.cc (tty_min::kill_pgrp): Don't send __SIGSETPGRP |
| to ourselves since presumably we are already initialized. |
| |
| 2011-12-07 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * select.cc (cygwin_select): Add common introducer and leaver debug |
| output. |
| (select_stuff::poll): Remove unneeded debugging. |
| |
| 2011-12-07 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * exceptions.cc (ctrl_c_handler): Remove _my_tls.remove since it can |
| cause deadlocks during exec and will eventually be handled anyway. |
| |
| 2011-12-07 Corinna Vinschen <vinschen@redhat.com> |
| |
| * spawn.cc (child_info_spawn::worker): Add CREATE_BREAKAWAY_FROM_JOB |
| to all spawned processes. Explain why. |
| |
| 2011-12-06 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler_fifo.cc (fhandler_fifo::wait): Fix stupid typo and actually |
| wait for the handle. |
| |
| 2011-12-05 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.cc (close_my_readsig): New function. |
| (_cygtls::signal_exit): Close my_readsig via close_my_readsig(), |
| avoiding communication with the signal pipe. |
| (wait_sig): Close my_readsig via close_my_readsig(). |
| |
| 2011-12-05 Corinna Vinschen <vinschen@redhat.com> |
| |
| * mmap.cc (mlock): Replace LOCK_VM_IN_WSL with correct MAP_PROCESS. |
| (munlock): Ditto. |
| * ntdll.h: Rearrange to have all preprocessor definitions at the start |
| of the file. Add comments to each definition block. |
| (MAP_PROCESS): Rename from LOCK_VM_IN_WSL. |
| (MAP_SYSTEM): Rename from LOCK_VM_IN_RAM. |
| |
| 2011-12-04 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.h (cygWFMO): Don't assume that cancellable event is always |
| available. |
| * fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::waitforspace): Use |
| cygWFMO instead of WaitForMultipleObjects. |
| (fhandler_dev_dsp::Audio_in::waitfordata): Ditto. |
| * fhandler_fifo.cc (fhandler_fifo::wait): Ditto. |
| * fhandler_serial.cc (fhandler_serial::raw_read): Ditto. |
| (fhandler_serial::raw_write): Ditto. |
| * fhandler_tty.cc (fhandler_pty_slave::read): Ditto. |
| * select.cc (cygwin_select): Ditto for degenerate case. |
| |
| 2011-12-04 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.h (cygWFMO): Move inside "INSIDE_CYGWIN" #ifdef. |
| |
| 2011-12-04 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * exceptions.cc (exception::handle): Drop abbreviation for "exception" |
| since I never remember what it stands for. |
| (sig_handle_tty_stop): Remove obsolete call to reset_signal_arrived. |
| (_cygtls::call_signal_handler): Rework to grab signal information from |
| _main_tls if none is set for _my_tls. Try harder to keep thread |
| locked. |
| (reset_signal_arrived): Delete. |
| * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Use new |
| cygWFMO call to wait for an event + standard cygwin stuff. Modify |
| debug output to acccomodate new function. |
| * fhandler_console.cc (fhandler_console::read): Replace |
| WaitForMultipleObjects with cygWFMO. |
| * fhandler_socket.cc (get_inet_addr): Add comment. |
| * gendef (_sigdelayed): Remove call to reset_signal_arrived. |
| * sigproc.cc (_cygtls::signal_exit): Don't close my_readsig here unless |
| we're in the signal thread. |
| (create_signal_arrived): Create signal_arrived as auto-reset so that only |
| one thread is woken when a signal arrives. |
| * sigproc.h (cygWFMO): New function. |
| (reset_signal_arrived): Delete declaration. |
| |
| 2011-12-03 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * mmap.cc (mlock): Add standard syscall return value debugging output. |
| (munlock): Ditto. |
| (posix_madvise): Ditto. |
| |
| * signal.cc: Remove obsolete sigcatchers stuff throughout. |
| (sigaction_worker): Add function name parameter and use it to show |
| standard syscall return value debugging output. Also add fault |
| protection. |
| (sigaction): Accommodate extra argument to sigaction_worker. |
| (siginterrupt): Ditto. |
| * syscalls.cc (read): Remove obsolete sigcatchers stuff. |
| (readv): Ditto. |
| |
| 2011-12-03 Corinna Vinschen <vinschen@redhat.com> |
| |
| * mmap.cc (mlock): Drop requesting SE_LOCK_MEMORY_PRIVILEGE. Drop |
| outdated comment. Call NtLockVirtualMemory with LOCK_VM_IN_WSL flag. |
| (munlock): Drop requesting SE_LOCK_MEMORY_PRIVILEGE. Call |
| NtUnlockVirtualMemory with LOCK_VM_IN_WSL flag. |
| |
| 2011-12-03 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| Throughout, remove extra space after function name from debugging |
| output. |
| Throughout, change syscalls to report on return values using new %R |
| format option. |
| * smallprint.cc (__small_vsprintf): Add parsing for %R to report on |
| return values and possible errno from syscalls. |
| |
| * errno.cc (errmap): Add PRIVILEGE_NOT_HELD. |
| |
| * fhandler_tty.cc (fhandler_pty_master::setup): When creating a thread |
| use shorter name to reduce debuggging output. |
| * select.cc (start_thread_pipe): Ditto. |
| (start_thread_serial): Ditto. |
| (start_thread_socket): Ditto. |
| (start_thread_mailslot): Ditto. |
| * sigproc.cc (talktome): Ditto. |
| |
| 2011-12-03 Corinna Vinschen <vinschen@redhat.com> |
| |
| * fhandler.cc (fhandler_base::open): Fix comment a bit more. |
| |
| 2011-12-03 Corinna Vinschen <vinschen@redhat.com> |
| |
| * fhandler.cc (fhandler_base::open): Fix typos in comment. |
| |
| 2011-12-02 Corinna Vinschen <vinschen@redhat.com> |
| |
| * path.cc (conv_path_list): Take cygwin_conv_path_t as third parameter. |
| Allow all types of CCP conversions. Accommodate throughout. |
| (cygwin_conv_path): Use current ANSI or OEM codepage for WIN_A |
| conversions, depending on current file API codepage setting. |
| (cygwin_conv_path_list): Allow all CCP conversion types. |
| * include/sys/cygwin.h (CCP_CONVTYPE_MASK): Add to cygwin_conv_path_t |
| enum for convenience. |
| |
| 2011-11-29 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.cc (get_proc_lock): Remove extra NULL check. Return false on |
| failure. |
| |
| 2011-11-29 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sync.cc: Fix comment. |
| |
| 2011-11-29 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dll_init.cc (dll_list::reserve_space): Use %p rather than %lx to show |
| reserved space. |
| |
| 2011-11-29 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.cc (remove_proc): Don't terminate the currently executing |
| thread. |
| |
| 2011-11-28 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * cygheap.cc (cygheap_fixup_in_child): Accommodate new HEAP_3* |
| classifications for cleanup-after-fork. |
| * cygheap_malloc.h (cygheap_types): Add HEAP_2_MAX, HEAP_3_FHANDLER. |
| * fhandler.h: Throughout, change clone to take a cmalloc id. |
| (fhandler_base::delete): Inline. |
| (fhandler_base_overlapped): Mark flush_async_io as a friend. |
| (fhandler_base_overlapped::asio_done): Declare new static member. |
| (fhandler_base_overlapped::asio_close_counter): Ditto. |
| (fhandler_base_overlapped::check_later): Declare new function. |
| (fhandler_base_overlapped::flush_all_async_io): Ditto. |
| * fhandler.cc (fhandler_base_overlapped::asio_done): Declare. |
| (fhandler_base_overlapped::asio_close_counter): Ditto. |
| (flush_async_io): Declare new thread function. |
| (fhandler_base_overlapped::flush_all_async_io): Declare new function. |
| (fhandler_base_overlapped::check_later): Ditto. |
| (fhandler_base_overlapped::close): Call check_later to close |
| nonblocking fd asynchronously. Assume that this completed |
| successfully. |
| * select.cc (pipe_data_available): Don't consider data to be |
| "available" if fd still has unflushed I/O. |
| * syscalls.cc (close_all_files): Call |
| fhandler_base_overlapped::flush_all_async_io to make sure that all |
| nonblocking pipe I/O has completed. |
| |
| 2011-11-28 Corinna Vinschen <vinschen@redhat.com> |
| |
| * external.cc (fillout_pinfo): Store program name as POSIX path in |
| ep.progname_long. |
| |
| 2011-11-28 Corinna Vinschen <vinschen@redhat.com> |
| |
| * pinfo.cc (pinfo::exit): Call TerminateProcess to avoid potential |
| busy loop in ntdll.dll when calling ExitProcess. Only call ExitProcess |
| as a fallback. |
| |
| 2011-11-27 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * init.cc (dll_entry): Revert previous change since it caused |
| inexplicable fork problems. |
| |
| 2011-11-26 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * init.cc (dll_entry): Don't bother calling through thread removal |
| cleanup if we are exiting. |
| |
| 2011-11-26 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * exceptions.cc (stackdump): Make global. |
| (signal_exit): Move to sigproc.cc. |
| * sigproc.cc (signal_exit): Move here. Declare stackdump extern. Set |
| my_sendsig to indicate that signals are no longer available. |
| (my_readsig): Make Static again. |
| (sig_send): Interpret ERROR_BROKEN_PIPE as ESRCH. Remove special-case |
| EACCESS errno setting, just setting errno generally, even for "its_me" |
| case. |
| |
| 2011-11-25 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * exceptions.cc (sigpacket::process): Move signal_exit processing |
| into... |
| (_cygtls::signal_exit): ...here. Close my_readsig and comment on why. |
| * pinfo.cc (pinfo::exit): Move sigproc_terminate earlier. Set exiting |
| flag in lock_process. |
| * sigproc.cc (my_readsig): Make global. |
| * sync.cc (muto::exiting_thread): Delete. |
| (muto::acquire): Delete #if 0'ed code. |
| * sync.h (muto::exiting_thread): Delete. |
| (set_exiting_thread): Ditto. |
| (lock_process::lock_process): Don't worry about setting the exiting |
| thread since it had no meaning. |
| |
| 2011-11-24 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * cygthread.cc (cygthread::name): Default name to "main" if we are early |
| in the process of setting up the DLL and no name is known. |
| * dcrt0.cc (initial_env): Remove CYGWIN_SLEEP stuff. |
| (get_cygwin_startup_info): Activate strace here as appropriate. |
| (dll_crt0_0): Move get_cygwin_startup_info as early as possible to |
| avoid missing strace output. |
| * fork.cc (frok::child): Move debugging statement to point where ppid |
| will be set. |
| * pinfo.cc (pinfo::thisproc): Remove obsolete call to strace.hello. |
| Tweak debug output slightly. |
| * select.cc (select_stuff::wait): Allow APCS to be triggered while |
| waiting since we use them now. Report when that happens. |
| * sigproc.cc (child_info::child_info): Use strace.active() rather than |
| strace.attached(). |
| * spawn.cc (child_info_spawn::worker): Only write strace child pid |
| when we know it's a cygwin process. Accommodate change to write_child |
| argument list. |
| * strace.cc (strace::hello): Delete. Move functionality... |
| (strace::activate): ...to here. |
| (mypid): Just use raw GetCurrentProcessId () if myself isn't set. |
| (strace::write_childpid): Don't wait for subproc_ready. Remove arg |
| which was required for it. |
| * include/sys/strace.h (strace::hello): Delete. |
| (strace::write_childpid): Delete first argument. |
| |
| 2011-11-23 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * child_info.h (CURR_CHILD_INFO_MAGIC): Reset for previous changes. |
| |
| * dcrt0.cc (get_cygwin_startup_info): Signal readiness when stracing |
| since strace::write_child relies on it. Use strace.activate to notify |
| strace process, passing in arg indicating whether we're forked. |
| * sigproc.cc (wait_sig): Accommodate new strace::activate argument. |
| * spawn.cc (child_info_spawn::worker): Oops. Previous suspended test |
| was actually correct. Revert and document. |
| * strace.cc (strace::activate): Send additional flag indicating whether |
| this is an attempt to activate a forked process. |
| (strace::hello): Report on windows pid. |
| * include/sys/strace.h (strace::strace): Make a dummy. |
| (strace::activate): Modify declaration to accept an argument. |
| (strace::write_childpid): Set regparm. |
| |
| 2011-11-23 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * pipe.cc (fhandler_pipe::create): Avoid derefencing a NULL pointer. |
| |
| * child_info.h (child_info): Reorganize some elements so that the ones |
| which are initialized in a constructor are all together. |
| * sigproc.cc (child_info::child_info): Initialize values via the |
| constructor rather than as C statements and make sure that flags is set |
| to zero initially. |
| |
| * spawn.cc (child_info_spawn::worker): Use iscygwin() test for |
| determining when to send strace info since it is more foolproof than |
| checking the suspend state. |
| |
| 2011-11-23 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.h (fhandler_pipe::create): Rename from the misnamed |
| "create_selectable". Change return to DWORD. |
| (fhandler_pty_common::pipesize): New constant. |
| * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Reflect |
| create_selectable name change. |
| * miscfuncs.cc (CreatePipeOverlapped): Ditto. |
| * pipe.cc (fhandler_pipe::create): Ditto. |
| (fhandler_pipe::create): Rename from the misnamed "create_selectable". |
| Return DWORD. Only set pipe size to default when it is passed in as |
| zero. |
| * fhandler_tty.cc (fhandler_pty_master::setup): Ditto. Use |
| fhandler_pty_common::pipesize rather than a raw constant. |
| * tty.cc (tty::not_allocated): Ditto. |
| |
| * sigproc.cc (sigproc_init): Use fhandler_pipe::create to create the |
| signal pipe to get a more appropriate message based pipe. |
| |
| 2011-11-21 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.cc (remove_proc): Don't do busy loop when exiting since it |
| doesn't matter. |
| |
| 2011-11-21 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.cc (remove_proc): Don't do busy loop when execing since |
| thread could have been terminated prior to setting flag. |
| |
| * signal.cc (sigwaitinfo): Zero event before closing to signal other |
| threads that it is no longer available. |
| |
| 2011-11-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * shared.cc (get_shared_parent_dir): Use global shared_parent_dir |
| instead of local dir variable and create handle not inheritable to |
| avoid accumulating stray handles in child processes. |
| (get_session_parent_dir): Ditto with session_parent_dir variable. |
| |
| 2011-11-17 Corinna Vinschen <corinna@vinschen.de> |
| |
| * shared.cc (shared_info::create): Open global shared data section |
| non-inheritable to avoid accumulating stray handles in child processes. |
| |
| 2011-11-15 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * child_info.h (CURR_CHILD_INFO_MAGIC): Reset. |
| (cygheap_exec_info::nchildren): Move from child_info_spawn. |
| (cygheap_exec_info::cchildren): Ditto. |
| (cygheap_exec_info::record_children): Declare new function. |
| (cygheap_exec_info::reattach_children): Ditto. |
| (cygheap_exec_info::alloc): Ditto. |
| (child_info_spawn::nchildren): Move to cygheap_exec_info. |
| (child_info_spawn::cchildren): Ditto. |
| * sigproc.cc (cygheap_exec_info::alloc): Define new function. |
| (child_info_spawn::cleanup): Accommodate move of children info to |
| cygheap_exec_info. |
| (cygheap_exec_info::record_children): Define new function. |
| (cygheap_exec_info::reattach_children): Ditto. |
| (child_info_spawn::record_children): Use |
| cygheap_exec_info function to accomplish this task. |
| (child_info_spawn::reattach_children): Ditto. |
| * spawn.cc (child_info_spawn::worker): Allocate moreinfo using |
| cygheap_exec_info::alloc. |
| |
| * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Use abort for the |
| error to avoid a retry. |
| |
| 2011-11-14 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * pinfo.cc (_pinfo::dup_proc_pipe): Fatalize a warning when debugging. |
| |
| 2011-11-13 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| Remove erroneously checked-in debugging statements. |
| * cygheap.cc (cygheap_fixup_in_child): Here. |
| * debug.cc (delete_handle): Here. |
| * sigproc.cc (child_info_spawn::cleanup): Here. |
| * spawn.cc (child_info_spawn::worker): Here. |
| |
| 2011-11-13 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| Throughout, change "sig %d" in strace output to "signal %d" for |
| consistency. |
| * assert.cc (__assert_func): Output assertion string to strace too. |
| * fork.cc (frok::parent): Report ASAP on forked pid in debugging output. |
| * pinfo.cc (pinfo::_pinfo_release): Define new function. |
| (pinfo::init): Use _pinfo_release() rather than release() to release |
| shared memory stuff. |
| (pinfo::wait): Shorten name of process waiting thread for more concise |
| debugging. |
| (pinfo::release): Use pinfo_release to release shared memory part of |
| struct. |
| * pinfo.h (pinfo::__pinfo_release): Declare. |
| |
| 2011-11-10 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| Throughout use "have_execed" macro rather than "hExeced" global handle. |
| Throughout rename _PROC_* to _CH_*. |
| * child_info.h: Include "pinfo.h". |
| (child_info_types): Rename _PROC_* -> _CH_* to avoid confusion with |
| similarly named constants. |
| (_PROC_*): Delete unneeded aliases. |
| (PROC_*): Ditto. |
| (CURR_CHILD_INFO_MAGIC): Ditto. |
| (cchildren): Define using "pinfo_minimal". |
| (child_info::set_saw_ctrl_c): Move to |
| (child_info_spawn::set_saw_ctrl_c): Here. |
| (child_info_spawn::lock): New field. |
| (child_info_spawn::hExeced): Ditto. |
| (child_info_spawn::ev): Ditto. |
| (child_info_spawn::~child_info_spawn): Move to sigproc.cc. |
| (child_info_spawn::child_info_spawn): Ditto. |
| (child_info_spawn::cleanup): Declare new function. |
| (child_info_spawn::set_saw_ctrl_c): Move to this class. Set flag only |
| when execed and return true when we have set the flag. |
| (child_info_spawn::child_info_spawn::signal_myself_exited): New function. |
| (child_info_spawn::wait_for_myself): Ditto. |
| (child_info_spawn::has_execed_cygwin): Ditto. |
| (child_info_spawn::has_execed): Ditto. Replaces "hExeced" test. |
| (child_info_spawn::operator HANDLE&): New operator. |
| (child_info_spawn::worker): Define old "spawn_guts" as class member. |
| (ch_spawn): Declare. |
| (have_execed): Define. |
| (have_execed_cygwin): Ditto. |
| * cygheap.h: Update comment. |
| * dcrt0.cc (get_cygwin_startup_info): Use _CH_* enums. |
| (child_info_spawn::handle_spawn): Ditto. |
| (dll_crt0_0): Ditto. |
| (multiple_cygwin_problem): Ditto. |
| * exceptions.cc (chExeced): Delete obsolete declaration. |
| (ctrl_c_handler): Reference set_saw_ctrl_c via new ch_spawn global. |
| * globals.cc (hExeced): Delete. |
| * pinfo.cc (pinfo::thisproc): Refer to cygheap as ::cygheap for |
| consistency in handle naming when -DDEBUGGING. |
| (pinfo::init): Accommodate case where myself.h is known but h0 is |
| passed in. |
| (pinfo::pinfo): New constructor for setting up a pinfo passed in by |
| previous exec'or. |
| (pinfo::proc_waiter): Don't handle subprocess if we're in the process |
| of exiting due to an exec of a cygwin process. Don't close |
| rd_proc_pipe here. Close it when we actually are finished with the |
| process. Use new ch_spawn.signal_myself_exited function to let exec |
| stub know that subprocess has exited. |
| (pinfo::wait): Clarify debugging output. |
| (pinfo::release): Use "close_h" to close all handles to avoid races. |
| (winpids::add): Assume that elements of the array do not need to be |
| zeroed and are properly initialized or suffer problems on |
| pinfo::release. Don't close hProcess since release does that now. |
| * pinfo.h: Update comment. |
| (pinfo_minimal): Move some elements from pinfo here so that |
| child_info_spawn can use them. |
| (pinfo): Inherit from pinfo_minimal. |
| (pinfo::pinfo): Modify to accommodate new pinfo_minimal. |
| (pinfo::allow_remove): New function. |
| * sigproc.cc (proc_subproc): Use boolean values for true/false. |
| Implement PROC_EXEC_CLEANUP. |
| (proc_terminate): Set ppid = 1 since the procs list will only be |
| iterated when the process has not execed. Don't do any cleanup here |
| since it is now handled in pinfo::release. |
| (sigproc_init): Initialize sync_proc_subproc earlier. |
| (child_info::child_info): Assume that all important fields are properly |
| initialized and avoid memset(). |
| (child_info_spawn::child_info_spawn): Specifically test for execing and |
| then set up appropriate fields in the struct. |
| (child_info_spawn::cleanup): Define new function. |
| (child_info_spawn::record_children): Specifically test for being execed |
| here. Fill in pinfo_minimal part of children array. |
| (child_info_spawn::reattach_children): Use constructor to duplicate |
| information for previous exec'or. Add more debugging output. |
| (remove_proc): Force deletion of thread when exiting due to exec. Rely |
| on pinfo::cleanup in release. |
| * sigproc.h (PROC_EXEC_CLEANUP): New enum. |
| (PROC_DETACHED_CHILD): Delete. |
| * spawn.cc (chExeced): Delete. |
| (child_info_spawn::worker): Rename from spawn_guts. Use elements of |
| child_info_spawn throughout rather than ch.whatever. Use ::cygheap to |
| refer to global rather than element of child_info. Use |
| wait_for_myself() rather than waitpid(). Call |
| child_info_spawn::cleanup on function return. |
| (spawnve): Reflect movement of spawn_guts functionality into |
| child_info_spawn::worker. |
| * syscalls.cc (popen): Ditto. |
| * winsup.h (spawn_guts): Delete declaration. |
| |
| 2011-11-08 Corinna Vinschen <corinna@vinschen.de> |
| |
| * posix.sgml (std-gnu): Add ptsname_r. |
| |
| 2011-11-08 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.h (__ptsname): New macro. |
| * dtable.cc (decode_tty): Use __ptsname to generate the slave pty name. |
| * fhandler_tty.cc (fhandler_pty_master::ptsname_r): Ditto. |
| * bsdlib.cc: Add needed includes for openpty() changes. |
| (openpty): Use __ptsname to generate the slave pty name. Close slave |
| fd when aslave == NULL. |
| |
| 2011-11-08 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * include/cygwin/stdlib.h: Update copyright. |
| |
| 2011-11-07 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * cygwin.din (ptsname_r): Export. |
| * fhandler.cc (fhandler_base::ptsname_r): Define. |
| * fhandler.h (fhandler_base::ptsname): Delete. |
| (fhandler_base::ptsname_r): Declare. |
| (fhandler_pty_master::ptsname_r): Declare. |
| * fhandler_tty.cc (fhandler_pty_master::ptsname): Delete. |
| (fhandler_pty_master::ptsname_r): New reentrant function derived from |
| previous ptsname. |
| * syscalls.cc (ptsname_r): Implement new function with functionality |
| similar to Linux. |
| (ptsname): Use ptsname_r () to fill out buf. |
| * include/cygwin/stdlib.h (ptsname_r): Declare. |
| * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 255 to |
| reflect export of ptsname_r. |
| |
| * pinfo.cc (pinfo::wait): Return bool rather than int. |
| * pinfo.h (info::wait): Ditto. |
| (pinfo::reattach): Define !defined(_SIGPROC_H) case for consistency. |
| * sigproc.cc (child_info_spawn::reattach_children): Use correct |
| dwProcessId rather than pid when duplicating handle. |
| |
| 2011-11-07 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.cc (CHUNK_SIZE): Drop NO_COPY. |
| |
| 2011-11-07 Corinna Vinschen <corinna@vinschen.de> |
| |
| * syscalls.cc (check_dir_not_empty): Check surplus directory entries |
| by calling NtQueryAttributesFile. Make STATUS_DIRECTORY_NOT_EMPTY |
| return value dependent on its status code. Add long comment to explain. |
| (unlink_nt): Add comment to explain flaw in checking the sharing mode. |
| Set status to STATUS_SUCCESS instead of 0. Add a retry loop to setting |
| the delete disposition and trying to move a directory to bin to |
| workaround rare cases of lingering, already deleted subdirectory |
| entries. Add long comment to explain. |
| (rename): Set status to STATUS_SUCCESS instead of 0. |
| |
| 2011-11-05 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * pinfo.cc (status_exit): Recognize STATUS_ILLEGAL_INSTRUCTION. |
| (child_info::proc_retry): Ditto. |
| |
| 2011-11-05 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * pinfo.cc (status_exit): Return complete error code. Handle |
| STATUS_ACCESS_VIOLATION correctly. |
| (pinfo::set_exit_code): Set self->exitcode directly from status_exit. |
| |
| 2011-11-04 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * pinfo.h (pinfo::reattach): Only set destroy to false when |
| proc_subproc succeeds. Return true for success. |
| * sigproc.cc (child_info_spawn::reattach_children): Try harder to clean |
| up on error by detecting reattach failures too. |
| |
| 2011-11-04 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.cc (child_info_spawn::reattach_children): Clean up handle |
| when can't open parent process or suffer handle leak. |
| |
| 2011-11-03 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.cc (child_info::sync): Report on exit code in strace output. |
| (child_info::proc_retry): Don't consider STATUS_ACCESS_VIOLATION as a |
| restartable event. |
| |
| 2011-11-03 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.cc (child_info_spawn::reattach_children): Avoid issuing an |
| error when we can't duplicate from "parent" since it is probably ok if |
| children of the previous owner of the pid disappear. |
| |
| 2011-11-03 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.cc (off_current): Define local in fhandler_base::raw_write. |
| Drop erroneous NO_COPY, add _RDATA to make R/O. |
| (off_append): Ditto. |
| * globals.cc (_RDATA): Move definition from here... |
| * winsup.h: ...to here. |
| |
| 2011-10-30 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.h (fhandler_pipe::create_selectable): Remove optional |
| argument, take an options argument for CreateNamedPipe/CreateFile. |
| Change handle arguments to expect pointers. |
| (fhandler_fifo::fifo_state): Delete. |
| (fhandler_fifo::dummy_client): Ditto. |
| (fhandler_fifo::open_nonserver): Ditto. |
| (fhandler_fifo::wait_state): Ditto. |
| (fhandler_fifo::raw_write): Ditto. |
| (fhandler_fifo::read_ready): New field. |
| (fhandler_fifo::write_ready): Ditto. |
| (fhandler_fifo::wait): Modify argument. |
| (fhandler_fifo::fifo_name): Add a new argument. |
| (fhandler_fifo::fixup_after_fork): New function. |
| * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Remove |
| initialization of expunged elements. Initialize new handles to NULL. |
| (fhandler_fifo::open_nonserver): Delete. |
| (fnevent): New macro for creating a named event. |
| (fnpipe): New macro for creating a unique named pipe name. |
| (create_pipe): New macro for simplification of named pipe creation. |
| (fhandler_fifo::fifo_name): Use new argument when creating a shared |
| name. |
| (fhandler_fifo::open): Rewrite. Use events to synchronize. |
| (fhandler_fifo::wait): Rewrite to wait for new fifo events which are |
| supplied as a parameter. |
| (fhandler_fifo::raw_read): Rewrite to use handle mechanism to detect |
| client-side disconnect. |
| (fhandler_fifo::raw_write): Delete. |
| (fhandler_fifo::close): Remove accommodations for expunged fields. |
| Close event handles. |
| (fhandler_fifo::dup): Remove accommodations for expunged fields. |
| Duplicate event handles. |
| (fhandler_fifo::fixup_after_fork): New function. Perform fixups on |
| event handles. |
| (fhandler_fifo::set_close_on_exec): Remove accommodations for expunged |
| fields. Set inheritance for new handle fields. |
| * miscfuncs.cc (CreatePipeOverlapped): Accommodate changes in |
| fhandler_pipe::create_selectable. |
| * tty.cc (tty::not_allocated): Ditto. |
| * pipe.cc (fhandler_pipe::create): Ditto. |
| (fhandler_pipe::create_selectable): Accept an extra open_mode argument. |
| Pass arguments by reference and allow opening one end of the pipe at a |
| time. |
| |
| * sys/strace.h (debug_only_printf): Define new macro which calls |
| debug_printf only when DEBUGGING is defined. |
| |
| 2011-10-28 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * exceptions.cc (sigpacket::process): Avoid a potential deadlock when |
| exiting due to a signal. |
| |
| 2011-10-28 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygwin.din (getgrouplist): Export. |
| * grp.cc (get_groups): New static function to run the core functionality |
| of initgroups and getgrouplist. |
| (initgroups32): Call get_groups and just create supplementary group |
| list in cygheap. Rename name of first argument to "user". Add an |
| assertion to test for a NULL user name. |
| (initgroups): Rename name of first argument to "user". |
| (getgrouplist): New function. |
| * posix.sgml (std-bsd): Add getgrouplist. |
| * include/cygwin/grp.h (getgrouplist): Declare. |
| * include/cygwin/version.h: Bump API minor number. |
| |
| 2011-10-25 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * child_info.h (cchildren): New struct. |
| (child_info_spawn::nchildren): Rename from nprocs. |
| (child_info_spawn::children): Change type to cchildren for more |
| bookkeeping possibilities. |
| (child_info_spawn::child_info_spawn): Clear nchildren. |
| (child_info_spawn::record_children): Declare new function. |
| (child_info_spawn::reattach_children): Ditto. |
| * dcrt0.cc (child_info_spawn::handle_spawn): Call reattach_children to |
| gather list of processes we are potentially waiting for. |
| * pinfo.h (pinfo::pinfo): Make sure that rd_proc_pipe is always cleared. |
| (pinfo::reattach): New function. |
| * sigproc.cc: Move pinfo.h earlier so that it can be used in sigproc.h. |
| (get_proc_lock): Don't bother with a lock during DLL initialization. |
| (proc_subproc): Handle PROC_REATTACH_CHILD. |
| (proc_terminate): Orphan children only when we are not an execed |
| process or when the pid is about to be occupied by a non-cygwin |
| process. |
| (child_info_spawn::record_children): Define new function. |
| (child_info_spawn::reattach_children): Ditto. |
| * sigproc.h (procstuff): Define PROC_REATTACH_CHILD and renumber other |
| elements. |
| * spawn.cc (spawn_guts): Record any to-be-waited-for subprocesses if |
| about to exec a cygwin process. |
| |
| * sigproc.cc (sig_send): Fix harmless transposition of fifth and six |
| arguments to DuplicateHandle(). |
| (child_info::child_info): Ditto. |
| |
| * globals.cc (hExeced): Make NO_COPY. |
| |
| 2011-10-25 Corinna Vinschen <corinna@vinschen.de> |
| |
| * hookapi.cc (hook_or_detect_cygwin): Take additional handle |
| to a file mapping as parameter. If this handle is not NULL, |
| create another file mapping for the IAT. |
| * spawn.cc (av::fixup): Only map the first 64K of an image and |
| keep the mapping handle to use as argument to hook_or_detect_cygwin. |
| * winsup.h (hook_or_detect_cygwin): Add mapping handle as default |
| parameter in declaration. |
| |
| 2011-10-24 Corinna Vinschen <corinna@vinschen.de> |
| |
| * syscalls.cc (unlink_nt): Fix a bug which overwrites the NT status |
| value in case setting the delete disposition returns with |
| STATUS_DIRECTORY_NOT_EMPTY. |
| |
| 2011-10-24 Corinna Vinschen <corinna@vinschen.de> |
| |
| * shared.cc (open_shared): Fix memory reservation of essential shared |
| memory regions. Drop delta computations since delta is always 0 in |
| non-relocated case. Add a comment. |
| |
| 2011-10-23 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler_tty.cc (fhandler_pty_slave::read): Use consistent way for |
| testing ReadFile return. |
| * pipe.cc (fhandler_pipe::create_selectable): Open the write side of |
| the pipe in message-mode to force writing as "chunks". Explain why. |
| |
| 2011-10-23 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * path.cc (path_conv::get_nt_native_path): Avoid dereferencing path |
| when it is NULL. |
| |
| 2011-10-21 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dtable.cc (dtable::delete_archetype): Improve debugging output. |
| (dtable::init_std_file_from_handle): Close console handle early, before |
| initialization. Build up openflags for passing to open_setup, just to |
| be safe. |
| (last_tty_dev): New variable. |
| (fh_last_tty_dev): New macro. |
| (fh_alloc): Try again to keep track of previously opened tty, this time |
| by just saving the device and using that to potentially open an |
| archetype. Avoid setting the "/dev/tty" name if the creation of the |
| fhandler failed. |
| (build_fh_pc): Remove unused second argument. Reorganize how and where |
| the name is set. Set last_tty_dev as appropriate. Avoid a NULL |
| dereference in a debug printf. |
| * dtable.h (build_fh_pc): Reflect removal of second parameter. |
| * fhandler.cc (fhandler_base::reset): Use new '<<' operator to copy pc |
| since it preserves any potentially previously set name. |
| (fhandler_base::set_name): Ditto. |
| * fhandler.h (fhandler_*::clone): Throughout use ccalloc to allocate |
| new fhandler, primarily to make sure that pc field is properly zeroed. |
| (fhandler_termios::last): Eliminate. |
| (fhandler_termios): Remove setting of last. |
| (fhandler_base::~fhandler_termios): Ditto. |
| * fhandler_console.cc (fhandler_console::open): Don't make decisions |
| about opening close-on-exec handles here since it makes no sense for |
| archetypes. |
| (fhandler_console::init): Assume that input handle has already been |
| opened. |
| * fhandler_termios.cc (fhandler_termios::last): Delete. |
| * path.h (path_conv::eq_worker): New function. Move bulk of operator = |
| here. |
| (operator <<): New function. |
| (operator =): Use eq_worker to perform old functionality. |
| |
| * child_info.h (NPROCS): Move here from sigproc.cc. |
| (child_info::nprocs): New field. Not used yet. |
| (child_info::children):: Ditto. |
| |
| 2011-10-21 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Check invalid |
| success only on Samba shares. |
| * mount.cc (fs_info::update): Drop has_buggy_basic_info flag for |
| NcFsd. |
| * syscalls.cc (unlink_nt): Fix typo in comment. |
| |
| 2011-10-21 Corinna Vinschen <corinna@vinschen.de> |
| |
| * globals.cc (ro_u_ncfsd): New R/O unicode string. |
| * mount.cc (fs_info::update): Check for "NcFsd" FS. Set flags and |
| change comments accordingly. |
| (fs_names): Add entry for NcFsd FS. |
| * mount.h (enum fs_info_type): Add ncfsd. |
| (class fs_info): Add ncfsd flag and accessor methods. |
| * path.h (class path_conv): Add fs_is_ncfsd method. |
| * syscalls.cc (unlink_nt): Experimentally try delete-on-close on NcFsd |
| in STATUS_CANNOT_DELETE case. |
| |
| 2011-10-20 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.h (fhandler*::copyto): Free path_conv strings first. |
| * path.h (cfree_and_null): Rename and expand from cfree_maybe. |
| (path_conv &operator =): Call free_strings rather than freeing strings |
| directly. |
| |
| 2011-10-20 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| Throughout change TTY_* to PTY_*, tty_* to pty_*, and ttym_* to ptmx_*. |
| * devices.cc: Regenerate. |
| * dtable.cc: (fh_alloc): Preserve /dev/tty name when that's what we |
| opened. |
| (build_fh_pc): Preserve any existing name. |
| * fhandler.cc (fhandler_base::open_with_arch): Ditto. |
| * fhandler_tty.cc (fhandler_pty_master::fhandler_pty_master): Force the |
| name to /dev/ptmx while preserving other pty master device information. |
| * path.h (cfree_maybe): New macro. |
| (path_conv::operator =): Free any allocated strings in target. |
| (path_conv::free_strings): Delete unused function. |
| |
| * sigproc.cc (proc_terminate): Remove previous accommodation for execed |
| processes since it didn't have the desired effect. Change comment to a |
| FIXME. |
| |
| * spawn.cc (chExeced): Mark NO_COPY. |
| (exe_suffixes): Ditto. |
| |
| 2011-10-20 Corinna Vinschen <corinna@vinschen.de> |
| |
| * syscalls.cc (try_to_bin): Improve debug output. |
| (check_dir_not_empty): Take additional path_conv argument. Improve |
| debug output. Change syscall_printf to debug_printf. |
| (unlink_nt): Improve debug output. Change syscall_printf to |
| debug_printf. |
| (unlink): Change syscall_printf to debug_printf. |
| |
| * cygthread.h: Fix copyright dates. |
| |
| 2011-10-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * path.cc: Extend two comments. Mention the name RtlpCurDirRef |
| for reference. |
| |
| 2011-10-17 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dcrt0.cc (dll_crt0_1): Copy argv before passing to main(). |
| |
| 2011-10-17 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.cc (proc_terminate): Avoid setting ppid to 1 if we're execing. |
| |
| 2011-10-15 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * cygerrno.h (__set_errno): Modify debugging output to make searching |
| strace logs easier. |
| |
| Throughout, change /dev/tty* to /dev/pty*. |
| Throughout, add flags argument to fhandler_*::dup methods. |
| * devices.in: Rename (temporarily?) /dev/ttyN to /dev/ptyN. Add |
| /dev/ptymN devices for pty masters. |
| * devices.cc: Regenerate. |
| * devices.h (MAX_CONSOLES): Set to max number supported by devices.in. |
| (fh_devices::FH_PTMX): Rename from FH_PTYM. |
| (device::operator int): Return by reference. |
| * dtable.cc (fh_alloc): Take pc as an argument rather than just the |
| device. This makes debugging easier since more information is |
| available. Actually implement handling for already-allocated pty |
| master devices. Make different decisions when generating fhandler for |
| not-opened devices. Add kludge to deal with opening /dev/tty. |
| (cnew_no_ctor): New macro. |
| (build_fh_pc): Make debugging output more verbose. Use new clone() |
| fhandler interface to duplicate archetypes. Reset last term opened. |
| (dtable::dup_worker): Use Use new clone() fhandler interface to |
| duplicate archetypes. Pass flags to child dup handler. |
| (dtable::dup3): Set O_NOCTTY flag if newfd is not stdin/stdout/stderr. |
| * fhandler.cc (fhandler_base::reset): Rename from operator =() and |
| reduce functionality and sense of copy direction. |
| (fhandler_base::open_with_arch): Use published interface to query |
| io_handle(). Use new copyto() fhandler method to copy from/to found |
| archetype. |
| * fhandler.h: Throughout, delete size(), add copyout, clone, and |
| fhandler_* (void *) methods. |
| (fhandler_base::reset): Rename from operator =(). |
| (fhandler_termios::is_dev_tty): Delete. |
| (fhandler_termios): change "protected" region to "private". |
| (fhandler_termios::is_dev_tty): Delete. |
| (fhandler_termios): Rearrange protected/public. |
| (fhandler_termios::fhandler_termios): Remember last fhandler_termios |
| "opened". |
| (fhandler_termios::~fhandler_termios): Forget last fhandler_termios |
| opened. |
| (ioctl): Rename from ioctl_termios. Take a void * argument. Reflect |
| argument change in pinfo::set_ctty. |
| (fhandler_console::dup): Declare new function. Set ctty here if |
| appropriate. |
| (fhandler_pty_master::from_master): Privatize. |
| (fhandler_pty_master::to_master): Ditto. |
| (fhandler_pty_master::dwProcessId): Ditto. |
| (fhandler_pty_master::fhandler_pty_master): Add an `int' argument. |
| (fhandler_pty_master::open_setup): Declare new function. |
| (fhandler_pty_master::~fhandler_pty_master): Declare new method. |
| (fhandler_nodevice): Remove commented out function declaration. |
| * fhandler_console.cc: Use get_ttyp() instead of tc() throughout. |
| (fhandler_console::dup): Define new function to set controlling ctty on |
| dup, as appropriate. |
| (fhandler_console::ioctl): Reflect ioctl_termios name change. |
| (fhandler_console::setup): Rename from get_tty_stuff. |
| (fhandler_console::open_setup): Reflect argument change in |
| pinfo::set_ctty. |
| (fhandler_console::fhandler_console): Set _tc here. |
| * fhandler_termios.cc (handler_termios::ioctl): Rename. Take a void * |
| arg like other ioctl functions. |
| * fhandler_tty.cc (fhandler_pty_slave::dup): Call myself->set_ctty to |
| potentially reset the controlling terminal. |
| (fhandler_pty_slave::ioctl): Reflect name/arg change for ioctl_termios. |
| (fhandler_pty_slave::fhandler_pty_slave): Take a "unit" argument. Call |
| setup() here so that we will know the unit number of this fhandler as |
| soon as possible. Set the unit as appropriate. |
| (handler_pty_master::open): Move most stuff to constructor and |
| open_setup. |
| (handler_pty_slave::open_setup): Reflect argument change in |
| pinfo::set_ctty. |
| (handler_pty_master::open_setup): Define new function. |
| (fhandler_pty_master::cleanup): Clear handles as a flag that the |
| destructor does not have to do "close" operations. |
| (fhandler_pty_master::close): Ditto. |
| (fhandler_pty_master::~fhandler_pty_master): Define new method. |
| (fhandler_pty_master::ioctl): Reflect name/arg change for |
| ioctl_termios. |
| (fhandler_pty_master::setup): Allocate tty here. Rely on handles being |
| returned from allocated test rather than opening them here. Avoid |
| setting _need_nl here since it is already zeroed in the constructor. |
| Set up device information with DEV_TTYM_MAJOR. |
| * path.h (path_conv &operator =): Take a const argument. |
| (path_conv::dup): Ditto. |
| (pathconv_arg::PC_OPEN): New enum. |
| (pathconv_arg::PC_CTTY): Ditto. |
| (path_types::PATH_CTTY): Ditto. |
| (path_types::PATH_OPEN): Ditto. |
| (path_conv::isopen): New method. |
| (path_conv::isctty_capable): Ditto. |
| * path.cc (path_conv::check): Set PATH_OPEN and PATH_CTTY as |
| appropriate. |
| * pipe.cc (fhandler_pipe::open): Use copyto to copy pipe handle. |
| * syscall.cc (open): Reinstate fd > 2 check to disallow resetting ctty |
| on non-std* handles. |
| * tty.cc (tty_list::allocate): Pass out handles for allocated tty. use |
| `not_allocated' to find unallocated ttys. Avoid keeping the lock since |
| the allocation of the tty should be sufficient to prevent multiple |
| access. |
| (tty::not_allocated): Clarify comment. Rename. Return handles when an |
| unused tty is found. Simply test for existing tty. |
| (tty::exists): Rewrite to use `not_allocated'. |
| * tty.h (NTTYS): Reset down to actual number supported by devices.in. |
| (tty::not_allocated): Declare new function. |
| (tty_list::allocate): Pass out read/write tty handles. Zero them when |
| not found. |
| * fhandler_proc.cc: Reflect name change from FH_PTYM -> FH_PTMX. |
| * pinfo.h (pinfo::set_ctty): Reduce/reorder arguments passed in. |
| * pinfo.cc (pinfo::set_ctty): Ditto. Just use tc() built into the |
| passed-in fhandler_termios pointer. Return true if ctty is assigned. |
| * syscalls.cc (open): Call build_fh_pc with PC_OPEN flag. Set PC_CTTY |
| if appropriate. |
| (stat_worker): Remove is_dev_tty () stuff. |
| |
| 2011-10-15 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_process.cc (dos_drive_mappings::fixup_if_match): Convert |
| native NT network paths into DOS UNC paths. |
| |
| 2011-10-15 Corinna Vinschen <corinna@vinschen.de> |
| |
| * sec_auth.cc (get_token_group_sidlist): Add CONSOLE LOGON SID on |
| systems supporting it. Never add SERVICE SID but keep code in for |
| future reference. Explain why. |
| (get_priv_list): Add cygpsid pointer parameter. Point it to the |
| mandatory integrity SID which matches account and privileges. |
| (create_token): Fetch mandatory integrity SID from call to |
| get_priv_list. |
| (lsaauth): Call get_priv_list with additional NULL pointer. Change |
| comment accordingly. |
| * sec_helper.cc (well_known_console_logon_sid): New static SID. |
| (cygpriv): Change to structure containing extra flag to store info |
| about required integrity level. |
| (privilege_luid): Accommodate changes to cygpriv. Return integrity |
| level in new high_integrity parameter. |
| (privilege_name): Accommodate changes to cygpriv. |
| (set_privilege): Drop trailing \n from debug output. |
| (set_cygwin_privileges): Don't set SE_CREATE_GLOBAL_PRIVILEGE anymore |
| since it's just not needed, but keep code in for future reference. |
| Change comment accordingly. |
| * security.h (well_known_console_logon_sid): Declare. |
| (privilege_luid): Align declaration to above change. |
| * wincap.h (wincaps::has_console_logon_sid): New element. |
| * wincap.cc: Implement above element throughout. |
| |
| 2011-10-13 Corinna Vinschen <corinna@vinschen.de> |
| |
| * path.cc (find_fast_cwd_pointer): Allow 'push crit-sect-addr' instead |
| of 'mov edi, crit-sect-addr; push edi' and set rcall accordingly. |
| |
| 2011-10-13 Corinna Vinschen <corinna@vinschen.de> |
| |
| * path.cc (copy_cwd_str): Move up in file to be accessible from |
| class fcwd_access_t. |
| (class fcwd_access_t): New class to consolidate and hide the details |
| of the various FAST_CWD implementations. Add implementation for |
| Windows 8 Developer Preview. |
| (fast_cwd_version): Make static private member of fcwd_access_t. |
| (fast_cwd_ptr): Change base type to fcwd_access_t. |
| (find_fast_cwd_pointer): Return fcwd_access_t**. |
| (find_fast_cwd): Ditto. Rip out all FAST_CWD implementations and use |
| fcwd_access_t methods instead. |
| (cwdstuff::override_win32_cwd): Ditto. |
| |
| 2011-10-12 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_console.cc (fhandler_console::cursor_set): Disable forcing |
| y to the current winBottom position. Explain why. |
| |
| 2011-10-11 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * cygwin.din: Remove some _tc* exports. Add tcgetsid(). |
| * dtable.cc (fh_alloc): Revert ill-advised setting of major/minor. Use |
| new is_dev_tty to remember that this device was opened as /dev/tty. |
| * fhandler.cc (fhandler_base::fstat): Remove leftover debugging |
| statement. |
| (fhandler_base::tcgetsid): New function. |
| * fhandler.h ((fhandler_base::tcgetsid): Declare new function. |
| (fhandler_base::is_dev_tty): Ditto. |
| (fhandler_termios): Rearrange protected/public. |
| (fhandler_termios::fhandler_termios): Remember last fhandler_termios |
| "opened". |
| (fhandler_termios::~fhandler_termios): Forget last fhandler_termios |
| opened. |
| (fhandler_termios::opened_as_dev_tty): Declare new field. |
| (fhandler_termios::is_dev_tty): Declare new function. |
| (fhandler_termios::tcgetsid): Ditto. |
| (fhandler_pty_common::use_archetype): Move here from subclass. |
| (fhandler_pty_slave::use_archetype): Move up. |
| (fhandler_pty_master::use_archetype): Ditto. |
| * fhandler_console.cc (fhandler_console::ioctl): Rename second argument |
| from `buf' to `arg' for consistency. Call ioctl_termios for common |
| fhandler_termios ioctl handling. |
| * fhandler_tty.cc (fhandler_pty_slave::ioctl): Call ioctl_termios for |
| common fhandler_termios ioctl handling. |
| (fhandler_pty_master::ioctl): Ditto. |
| * fhandler_termios.cc (fhandler_termios::tcgetsid): Implement new |
| function. |
| (fhandler_termios::ioctl_termios): Ditto. Implements TIOCSCTTY |
| handling. |
| * syscalls.cc (stat_worker): Set /dev/tty device info when appropriate. |
| * termios.cc (tcgetpgrp): Avoid extraneous "isatty" check. |
| (tcgetsid): Implement new function. |
| * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 253. |
| * include/sys/termios.h (TIOCSCTTY): Define. |
| |
| 2011-10-11 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dtable.cc (fh_alloc): Don't parse /dev/tty if ctty is < 0. Reset |
| major/minor from the specific tty to those for /dev/tty. |
| |
| 2011-10-10 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * syscalls.cc (open): Add temporary kludge to avoid assigning the |
| controlling tty on open unless the open is for stdin/stdout/stderr. |
| * tty.cc (tty_list::connect): Set ENXIO when can't find a tty. |
| |
| 2011-10-10 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.h (fhandler_process::closedir): Declare. |
| * fhandler_process.cc (fhandler_process::closedir): New function to |
| avoid a SEGV in fhandler_proc::closedir. |
| |
| 2011-10-10 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler_tty.cc (fhandler_pty_slave::open): Clarify debugging output. |
| (fhandler_pty_slave::open): Change ENOENT to ENXIO when can't open a |
| tty. |
| |
| 2011-10-07 Corinna Vinschen <corinna@vinschen.de> |
| Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.h (fhandler_console::tc_getpgid): New function. |
| * spawn.cc (spawn_guts): Add logic to put pure-windows processes "in |
| the background" when they are started that way. |
| |
| 2011-10-07 Corinna Vinschen <corinna@vinschen.de> |
| |
| * include/sys/cygwin.h (cygwin_getinfo_types): Define values |
| additionally as preprocessor symbols. |
| |
| 2011-10-06 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Send __SIGSETPGRP |
| pseudo signal to process group instead of just calling |
| init_console_handler. |
| * sigproc.cc (wait_sig): Call init_console_handler here on __SIGSETPGRP |
| signal. |
| * sigproc.h (__SIGSETPGRP): Define. |
| |
| 2011-10-06 Christian Franke <franke@computer.org> |
| |
| * include/cygwin/wait.h: Use new __wait_status_to_int() |
| macro to access status value in W*() status checks. |
| Fix status description. |
| * include/sys/wait.h: Allow `int' and `union wait' as |
| wait status parameter. Change __wait_status_to_int() |
| macro and wait () prototypes accordingly. Add inline |
| functions for C++. Remove extra `;'. |
| |
| 2011-10-05 Corinna Vinschen <corinna@vinschen.de> |
| |
| * external.cc (create_winenv): Rename from sync_winenv. Take |
| environment pointer as parameter and return pointer to corresponding |
| win32 environment block if != NULL. Otherwise just sync as before. |
| (cygwin_internal): Add CW_CVT_ENV_TO_WINENV case. |
| * include/cygwin/version.h: Bump API minor number. |
| * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_CVT_ENV_TO_WINENV. |
| |
| 2011-10-04 Corinna Vinschen <corinna@vinschen.de> |
| |
| * net.cc (socketpair): Bind first socket to loopback only as well. |
| |
| 2011-09-21 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * tty.cc (grantpt): Check for valid fd. |
| (unlockpt): Ditto. |
| |
| 2011-09-02 Corinna Vinschen <corinna@vinschen.de> |
| |
| * net.cc (cygwin_getsockopt): Drop erroneous double conversion of error |
| code returned by SOL_SOCKET/SO_ERROR. Fix error handling. |
| |
| 2011-09-01 Corinna Vinschen <corinna@vinschen.de> |
| |
| * lc_msg.h: Regenerate. |
| |
| 2011-09-01 Corinna Vinschen <corinna@vinschen.de> |
| |
| * dlfcn.cc (gfpod_helper): Helper function to search DLL using |
| a given DLL name. Change default search path to allow /usr/bin. |
| (get_full_path_of_dll): Find DLLs even if the caller used a ".so" |
| suffix or a "lib" prefix for the DLL. |
| |
| 2011-08-31 Corinna Vinschen <corinna@vinschen.de> |
| |
| * flock.cc (inode_t::unlock_and_remove_if_unused): Rename from |
| unlock_and_remove. |
| |
| 2011-08-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * flock.cc (LOCK_OBJ_NAME_LEN): Change to accommodate extra lf_ver |
| field. |
| (class lockf_t): Add lf_ver field. |
| (lockf_t::lockf_t): Initialize lf_ver to 0. |
| (class inode_t): Change i_wait to i_cnt. Change comment to explain |
| change in usage. |
| (inode_t:use): Rename from wait. Make private. |
| (inode_t::unuse): Rename from unwait. Make private. |
| (inode_t::inuse): Rename from waiting. Make private. |
| (inode_t::notused): New public method to set use count to 0. |
| (inode_t::unlock_and_remove): New method to unlock node and to delete |
| it if it's unused in current process. |
| (fhandler_base::del_my_locks): Drop global list lock. Drop variable |
| no_locks_left. Simpify unlocking and removing node by just calling |
| unlock_and_remove. |
| (fixup_lockf_after_exec): Call notused method for each node. |
| (inode_t::get): Call use method. Lock node only if outside of list |
| lock. |
| (inode_t::get_all_locks_list): Accommodate additional lf_ver field |
| when creating lockf_t structure from object name. |
| (lockf_t::create_lock_obj_attr): Accommodate additional lf_ver field |
| when creating object name from lockf_t structure. Handle |
| STATUS_OBJECT_NAME_COLLISION gracefully in F_POSIX case as well. |
| Change comment accordingly. Increment lf_ver field rather than high |
| byte of lf_wid field. Simplify comment. |
| (fhandler_disk_file::lock): Always call unlock_and_remove rather than |
| just UNLOCK on node. |
| (lf_setlock): Move ret definition where it's used. Drop unneeded |
| tests for obj being not NULL. Only check for deadlock condition if the |
| lock we're trying to establish is a POSIX lock. Revamp object |
| collecting and wait code to cover all cases. Don't return with EDEADLK |
| if blocking process can't be opened for synchronization in F_POSIX case, |
| rather just wait like in F_FLOCK case. Change system_printf to |
| debug_printf in that case. Only run WaitForMultipleObjects with high |
| priority. Close obj and process handles prior to locking node. |
| |
| 2011-08-27 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.cc (fhandler_base::open): Fix typo in comment. |
| (fhandler_base::close): Move call to del_my_locks from here... |
| * fhandler_disk_file.cc (fhandler_disk_file::open): ...to here. |
| * flock.cc (struct lockfattr_t): New type. |
| (lockf_t::close_lock_obj): New method, use throughout. |
| (lockf_t::create_lock_obj_attr): New method. |
| (lockf_t::create_lock_obj): Use create_lock_obj_attr method. Handle |
| STATUS_OBJECT_NAME_COLLISION in F_FLOCK case gracefully. Add lengthy |
| comments to explain why and how. |
| (lockf_t::open_lock_obj): Use create_lock_obj_attr method. |
| (lockf_t::del_lock_obj): Call NtSetEvent rather than SetEvent for |
| symmetry. |
| (fhandler_disk_file::lock): Define n only where it's used. Call |
| need_fork_fixup only if call was successful. Handle EINTR and |
| ECANCELED return values from lf_setlock. |
| (lf_setlock): Drop WAIT_UNLOCKED and WAIT_PROC_EXITED. Don't wait |
| for event object handle count to become <= 1 in F_LOCK case. |
| Simplify WFMO return value handling. Don't handle signal and cancel |
| events here; just return with appropriate error code instead. |
| (lf_getblock): Ignore locks for which the handle can't be opened. |
| Use IsEventSignalled. |
| * ntdll.h (STATUS_INVALID_INFO_CLASS): Undef if defined elsewhere to |
| make sure the definition is casted to NTSTATUS. |
| (STATUS_INVALID_HANDLE): Define and ditto. |
| (STATUS_OBJECT_NAME_COLLISION): Define. |
| (NtSetEvent): Declare. |
| |
| 2011-08-25 Rafal Zwierz <rzwierz@googlemail.com> |
| |
| * cygthread.cc (cygthread::simplestub): Notify that the thread has |
| detached also in freerange thread case. |
| |
| 2011-08-25 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.cc (fhandler_base::open): Never open files with |
| FILE_OVERWITE/FILE_OVERWRITE_IF. Set file size to 0 explicitely if |
| regular, existing file has been opened for writing with O_TRUNC flag |
| set. Explain why. |
| |
| 2011-08-24 Corinna Vinschen <corinna@vinschen.de> |
| |
| * thread.cc (pthread::pthread): Drop setting parent_tls. Call |
| sigprocmask to copy parent thread signal mask into new parent_sigmask |
| member. |
| (pthread::thread_init_wrapper): Copy _my_tls.sigmask from new |
| parent_sigmask member. |
| * thread.h (class pthread): Drop parent_tls. Add parent_sigmask. |
| |
| 2011-08-24 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * thread.cc (pthread::exit): Create dummy tls structure to hold |
| _main_tls contents if we've asked _main_tls to exit. |
| |
| 2011-08-23 Corinna Vinschen <corinna@vinschen.de> |
| |
| * poll.cc (poll): Don't return prematurely if invalid fds have been |
| encountered. Enforce timeout set to 0 in case of invalid fds. Take |
| number of invalid fds into account when returning. |
| |
| 2011-08-23 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_socket.cc (fhandler_socket::send_internal): Fix setting |
| nosignal flag. Convert ECONNABORTED on connection-oriented socket |
| to EPIPE, too. |
| |
| 2011-08-21 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dtable.cc (conv_start_chars): Remove unneeded section attribute. |
| |
| 2011-08-20 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * include/paths.h (_PATH_MAILDIR): Define. |
| (_PATH_SHELLS): Define. |
| |
| 2011-08-20 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_process.cc (format_process_maps): Define page protection |
| shortcuts RO, X, and WC. Use in creating access flag string. Don't |
| set type flag to 's' for copy-on-write pages, as on Linux. |
| |
| 2011-08-19 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * devices.h (fh_devices): Define DEV_MISC_MAJOR, DEV_MEM_MAJOR, |
| DEV_SOUND_MAJOR. Use throughout. |
| * fhandler_proc.cc (proc_tab): Add /proc/devices and /proc/misc |
| virtual files. |
| (format_proc_devices): New function. |
| (format_proc_misc): New function. |
| |
| 2011-08-19 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dtable.cc: Mark some const variables as static. |
| * environ.cc (conv_start_chars): Move to shared cygwin region and |
| initialize at compile time. |
| (match_first_char): New generic function for querying conv_start_chars. |
| (posify_maybe): Rename from posify. |
| (environ_init): Remove conv_envvars initialization. Don't check |
| conv_start_chars, just allow posify_maybe to make the decision. |
| * fhandler_console.cc (__vt100_conv): Fix formatting. Mark as const. |
| |
| 2011-08-19 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_console.cc (fhandler_console::read): Recognize backspace key |
| using the device independent key code, rather than the device dependent |
| scan code. |
| |
| 2011-08-18 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dcrt0.cc (dll_crt0_0): Remove unneeded __stdcall decoration. |
| * init.cc: Reflect change to dll_crt0_0 in declaration. |
| |
| 2011-08-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * dtable.cc (dtable::get_debugger_info): Add missing braces. |
| (dtable::stdio_init): Fix incorrect negation of not_open(2) condition. |
| |
| 2011-08-16 Pierre Humblet <Pierre.Humblet@ieee.org> |
| |
| * net.cc (gethostby_helper): Remove DEBUGGING code from and |
| streamline the second pass. |
| |
| 2011-08-16 Corinna Vinschen <corinna@vinschen.de> |
| |
| * dlfcn.cc (dlopen): Reimplement RTLD_NODELETE for Windows 2000 using |
| internal datastructures. Explain the code. |
| * ntdll.h (struct _LDR_DATA_TABLE_ENTRY): Define. |
| (struct _PEB_LDR_DATA): Define. |
| (struct _PEB): Change PVOID LoaderData to PPEB_LDR_DATA Ldr. |
| |
| * fhandler_process.cc (format_process_maps): Call NtQueryVirtualMemory |
| with valid return length pointer. Explain why. |
| |
| 2011-08-16 Corinna Vinschen <corinna@vinschen.de> |
| |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| |
| 2011-08-16 Corinna Vinschen <corinna@vinschen.de> |
| |
| * autoload.cc (GetModuleHandleExW): Define. |
| * dlfcn.cc: Throughout mark exported symbols as extern "C". |
| (dlopen): Unignore flags argument. Define ret to NULL. Fix typo in |
| comment. Support Glibc flags RTLD_NOLOAD and RTLD_NODELETE. |
| * include/dlfcn.h: Clean up comments. |
| (RTLD_NODELETE): Define. |
| (RTLD_NOLOAD): Define. |
| (RTLD_DEEPBIND): Define. |
| |
| 2011-08-15 Corinna Vinschen <corinna@vinschen.de> |
| |
| * pipe.cc (pipe): Just call _pipe with O_BINARY mode. Move code to |
| generate normalized pathnames from here... |
| (_pipe): ...to here. |
| |
| 2011-08-13 Corinna Vinschen <corinna@vinschen.de> |
| |
| * miscfuncs.cc (CreatePipeOverlapped): New function. |
| (ReadPipeOverlapped): Ditto. |
| (WritePipeOverlapped): Ditto. |
| * miscfuncs.h: Declare new functions. |
| * pinfo.cc (commune_process): Call WritePipeOverlapped instead of |
| WriteFile. Set timeout to 1 sec. |
| (_pinfo::commune_request): Call ReadPipeOverlapped instead of ReadFile. |
| Set timeout to 0.5 secs. |
| * sigproc.cc (sig_send): Create pipe using CreatePipeOverlapped. |
| |
| 2011-08-12 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * miscfuncs.cc (create_pipe): Delete obsolete function. |
| * miscfuncs.h (create_pipe): Delete define. |
| |
| * pipe.c (fhandler_pipe::create_selectable): Delete obsolete comment. |
| |
| 2011-08-12 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_proc.cc (fhandler_proc::closedir): Don't free, but delete |
| instead. |
| |
| 2011-08-12 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.h (fhandler_proc::opendir): Declare. |
| (fhandler_proc::closedir): Declare. |
| * fhandler_proc.cc (fhandler_proc::opendir): New method. Fetch list |
| of active processes here once to avoid potential duplicates and store |
| in dir->__handle. |
| (fhandler_proc::closedir): New method. Free dir->__handle. |
| (fhandler_proc::readdir): Convert pinfo into a reference to the winpids |
| entry in dir->__handle. |
| |
| 2011-08-11 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_proc.cc (fhandler_proc::get_proc_fhandler): Don't allow to |
| access process info by using the Windows PID. |
| * fhandler_process.cc (fhandler_process::fstat): Ditto. |
| (fhandler_process::fill_filebuf): Ditto. |
| |
| 2011-08-11 Corinna Vinschen <corinna@vinschen.de> |
| |
| * (winpids::add): Make sure to store always a Windows PID in |
| pidlist, even if pid is a Cygwin PID. |
| (winpids::enum_processes): Fetch Cygwin processes from listing of |
| shared cygwin object dir in the native NT namespace. Only if winpid |
| is true, fetch Windows processes using an additional call to |
| NtQuerySystemInformation. |
| |
| 2011-08-10 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_process.cc (format_process_status): Always print process name |
| even for zombies. |
| (get_mem_values): Fix loop fetching working set list to avoid out of |
| memory conditions. Return all mem values set to 0 for zombies. |
| * ntdll.h (STATUS_PROCESS_IS_TERMINATING): Define. |
| |
| 2011-08-09 Corinna Vinschen <corinna@vinschen.de> |
| |
| * heap.cc (eval_initial_heap_size): New function fetching the heap |
| size from the LoaderFlags field in the PE/COFF header. |
| (heap_init): Call eval_initial_heap_size rather than |
| cygwin_shared->heap_chunk_size to fetch the initial heap size. |
| * shared.cc (shared_info::heap_chunk_size): Remove. |
| * shared_info.h (class shared_info): Drop heap_chunk member. |
| (CURR_SHARED_MAGIC): Update. |
| |
| 2011-08-09 Corinna Vinschen <corinna@vinschen.de> |
| |
| * ntdll.h (STATUS_NOT_FOUND): Define. |
| * ntea.cc (read_ea): Return correct ENOTSUP rather than EOPNOTSUPP. |
| Handle STATUS_INVALID_DEVICE_REQUEST and STATUS_NOT_FOUND. Explain |
| why. Convert conditional to switch statement. |
| (write_ea): Return correct ENOTSUP rather than EOPNOTSUPP. Handle |
| STATUS_INVALID_DEVICE_REQUEST. Convert conditional to switch statement. |
| |
| 2011-08-07 Corinna Vinschen <corinna@vinschen.de> |
| |
| * resource.cc (getrlimit): Just return RLIM_INFINITY in a request for |
| RLIMIT_AS. |
| |
| 2011-08-07 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_process.cc (format_process_maps): Actually print info about |
| the application heap of the printed process, not of the current process. |
| |
| 2011-08-04 Corinna Vinschen <corinna@vinschen.de> |
| |
| * net.cc (socketpair): Release sb0 if there's no space left for sb1. |
| |
| 2011-08-03 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * cygwin.din (clock_nanosleep): Export. |
| * posix.sgml (std-notimpl): Move clock_nanosleep from here... |
| (std-susv4): ... to here. |
| (std-notes): Note limitations of clock_nanosleep. |
| * signal.cc (clock_nanosleep): Renamed from nanosleep, adding clock_id |
| and flags arguments and changing return values throughout. |
| Improve checks for illegal rqtp values. Add support for |
| CLOCK_MONOTONIC and TIMER_ABSTIME. |
| (nanosleep): Rewrite in terms of clock_nanosleep. |
| (sleep): Ditto. |
| (usleep): Ditto. |
| * thread.cc: Mark clock_nanosleep in list of cancellation points. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| |
| 2011-08-03 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dll_init.cc: Use fabort in favor of api_fatal and fork_info->abort |
| where appropriate throughout. |
| (fabort): Define. |
| (dll_list::topsort): Don't print sorting information. Fix formatting. |
| (dll_list::topsort_visit): Fix formatting. |
| (dll_list::load_after_fork_impl): Perform comment fixups. |
| * sigproc.cc (child_info_fork::abort): (for now?) Always print cause of |
| fork failure. |
| * include/sys/strace.h (strace_vprintf): Remove _STRACE_NOTALL when |
| printing. We really do want to see this. |
| |
| 2011-08-03 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * cygtls.h (struct _local_storage): Add cw_timer member. |
| * cygtls.cc (_cygtls::init_thread): Initialize locals.cw_timer. |
| (_cygtls::fixup_after_fork): Ditto. |
| * tlsoffsets.h: Regenerate. |
| * ntdll.h (enum _TIMER_INFORMATION_CLASS): Define. |
| (struct _TIMER_BASIC_INFORMATION): Define. |
| (NtQueryTimer): Declare function. |
| * thread.h (cancelable_wait): Change timeout argument to |
| PLARGE_INTEGER and provide NULL default. |
| (fast_mutex::lock): Adjust accordingly. |
| (pthread_cond::wait): Change timeout argument to PLARGE_INTEGER |
| and default to NULL. |
| * thread.cc (cancelable_wait): Change timeout argument to |
| PLARGE_INTEGER. Initialize _cygtls.locals.cw_timer if needed. |
| Use NT waitable timers for handling timeout. Return remaining time |
| to timeout argument if timeout was relative. |
| (pthread_cond::wait): Change timeout argument to PLARGE_INTEGER. |
| Adjust to change in cancelable_wait. |
| (pthread_mutex::lock): Adjust to change in cancelable_wait. |
| (pthread_spinlock::lock): Ditto. |
| (pthread::join): Ditto. |
| (__pthread_cond_dowait): Change waitlength argument to PLARGE_INTEGER. |
| Adjust to changes in cancelable_wait and pthread_cond::wait. |
| (pthread_cond_timedwait): Adjust to change in __pthread_cond_dowait. |
| (pthread_cond_wait): Ditto. |
| (semaphore::_timedwait): Adjust to change in cancelable_wait. |
| (semaphore::_wait): Ditto. |
| * exceptions.cc (handle_sigsuspend): Ditto. |
| * signal.cc (nanosleep): Ditto. |
| * wait.cc (wait4): Ditto. Fix copyright dates. |
| * times.cc (FACTOR, NSPERSEC): Move from here... |
| * hires.h (FACTOR, NSPERSEC): ...to here. |
| |
| 2011-08-01 Corinna Vinschen <corinna@vinschen.de> |
| |
| * syscalls.cc (faccessat): Fix parens in flag expression when calling |
| build_fh_name. |
| |
| * fhandler_disk_file.cc (fhandler_disk_file::mkdir): Fix typo in |
| comment. |
| * fhandler_socket.cc (fhandler_socket::bind): Ditto. |
| * path.cc (symlink_worker): Ditto. |
| |
| 2011-07-31 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dll_init.cc (dll_list::load_after_fork_impl): Add a hint to an error |
| message. |
| |
| 2011-07-31 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * sigproc.cc (pending_signals::pending): Define new function. |
| (sig_dispatch_pending): Avoid calling sig_send if there are no pending |
| signals. |
| |
| 2011-07-31 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.h (class fhandler_dev_mem): Remove dup method declaration. |
| * fhandler_clipboard.cc (fhandler_dev_clipboard::dup): Accommodate the |
| fact that the entire fhandler gets copied over to the child in |
| operator =. |
| * fhandler_floppy.cc (fhandler_dev_floppy::dup): Ditto. |
| * fhandler_raw.cc (fhandler_dev_raw::dup): Ditto. |
| * fhandler_serial.cc (fhandler_serial::dup): Ditto. |
| * fhandler_socket.cc (fhandler_socket::dup): Ditto. |
| * fhandler_virtual.cc (fhandler_virtual::dup): Ditto. |
| * fhandler_mem.cc (fhandler_dev_mem::dup): Ditto. Remove entirely. |
| |
| 2011-07-30 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * cygthread.cc (cygthread::async_create): Define new function. |
| * cygthread.h (cygthread::create): Use correct regparm. |
| (cygthread::standalone): Delete from class and from all constructors. |
| (cygthread::cygthread): Use three only arguments for detached threads, |
| (cygthread::async_create): Declare. |
| and start the thread via QueueUserAPC/async_create. |
| * dcrt0.cc (dll_crt0_0): Remove handling for |
| wincap.has_buggy_thread_startup. |
| (dll_crt0_1): Ditto. |
| * wincap.cc: Ditto throughout. |
| * wincap.h: Ditto. |
| |
| 2011-07-30 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.h (fhandler_base_overlapped::size): Declare/define size() |
| function for consistency. |
| (fhandler_termios::size): Ditto. |
| (fhandler_pty_common::size): Ditto. |
| |
| 2011-07-30 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_registry.cc (fhandler_registry::dup): Duplicate value_name. |
| |
| 2011-07-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| Throughout change "WinSock" to "Winsock" in comments. |
| * fhandler_socket.cc (fhandler_socket::sendmsg): Add missing call to |
| get_inet_addr to convert AF_LOCAL to AF_INET sockets. |
| * net.cc (cygwin_socket): Workaround UDP Winsock problem. Add comment |
| to explain why. |
| * select.cc: Include winsock2.h rather than winsock.h. |
| |
| 2011-07-26 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_disk_file.cc (__DIR_mounts::eval_ino): Create path_conv |
| with PC_KEEP_HANDLE flag. |
| * path.h (path_conv::operator =): Duplicate UNICODE path as well. |
| * security.cc (check_file_access): Use path_conv handle if available. |
| * syscalls.cc (access): Create fhandler with PC_KEEP_HANDLE flag set. |
| (euidaccess): Ditto. |
| (faccessat): Ditto. |
| |
| 2011-07-26 Corinna Vinschen <corinna@vinschen.de> |
| |
| * ntdll.h: Fix typo in comment. |
| * path.cc: Ditto. |
| |
| 2011-07-25 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_console.cc (fhandler_console::ioctl): Fetch console events |
| using PeekConsoleInput and return only key down events in buf. |
| * fhandler_tty.cc (fhandler_pty_slave::ioctl): Always return EINVAL |
| if PeekNamedPipe fails. |
| (fhandler_pty_master::ioctl): Ditto. |
| |
| 2011-07-22 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_tty.cc (fhandler_pty_slave::ioctl): Drop FIONBIO case. |
| Handle FIONREAD. |
| (fhandler_pty_master::ioctl): Ditto. Call fhandler_base::ioctl to |
| decode default condition. |
| * fhandler_console.cc (fhandler_console::ioctl): Handle FIONREAD. |
| |
| 2011-07-21 Christopher Faylor <me.cygwin2011@cgf.cx> |
| Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.cc: Add #include for asm/socket.h for dealing with FIONREAD. |
| (fhandler_base::ioctl): Special-case errno for FIONREAD. |
| * fhandler_dsp.cc (fhandler_dev_dsp::ioctl): Rename parameter for |
| consistency. Call fhandler_base::ioctl to decode default condition. |
| * fhandler_serial.cc (fhandler_serial::ioctl): Ditto. |
| * fhandler_tty.cc (fhandler_pty_slave::ioctl): Call |
| fhandler_base::ioctl to decode default condition. |
| * fhandler_windows.cc (fhandler_windows::ioctl): Ditto. |
| |
| 2011-07-21 Corinna Vinschen <corinna@vinschen.de> |
| |
| * heap.cc (eval_start_address): Simplify test for large address |
| awareness of executable, which works for 32 and 64 bit systems. |
| Change comment accordingly. |
| |
| 2011-07-21 Corinna Vinschen <corinna@vinschen.de> |
| |
| * heap.cc (eval_start_address): New static function to evaluate the |
| best start address for the application heap. |
| (heap_init): Call eval_start_address to fetch the start value for |
| start_address. Move preceeding comment to eval_start_address. |
| |
| 2011-07-21 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * cygwin.din (pthread_condattr_getclock): Export. |
| (pthread_condattr_setclock): Export. |
| * posix.sgml (std-notimpl): Move pthread_condattr_getclock and |
| pthread_condattr_setclock from here... |
| (std-susv4): ... to here. |
| * sysconf.cc (sca): Set _SC_CLOCK_SELECTION to _POSIX_CLOCK_SELECTION. |
| * thread.cc: (pthread_condattr::pthread_condattr): Initialize clock_id. |
| (pthread_cond::pthread_cond): Initialize clock_id. |
| (pthread_cond_timedwait): Use clock_gettime() instead of gettimeofday() |
| in order to support all allowed clocks. |
| (pthread_condattr_getclock): New function. |
| (pthread_condattr_setclock): New function. |
| * thread.h (class pthread_condattr): Add clock_id member. |
| (class pthread_cond): Ditto. |
| * include/pthread.h: Remove obsolete comment. |
| (pthread_condattr_getclock): Declare. |
| (pthread_condattr_setclock): Declare. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| |
| 2011-07-18 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * sysconf.cc (sca): Return -1 for _SC_THREAD_ROBUST_PRIO_INHERIT, |
| _SC_THREAD_ROBUST_PRIO_PROTECT, and _SC_XOPEN_UUCP. |
| (SC_MAX): Redefine accordingly. |
| (csa): Return strings for _CS_POSIX_V7_THREADS_CFLAGS, |
| _CS_POSIX_V7_THREADS_LDFLAGS, and _CS_V7_ENV. |
| (CS_MAX): Redefine accordingly. |
| * include/limits.h (LONG_BIT): Define. |
| (WORD_BIT): Define. |
| |
| 2011-07-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * heap.cc (heap_init): Change type of largest_found to PVOID. Start |
| querying memory at 0x20000000. Use largest_found pointer when trying |
| to allocate largest free memory area found. |
| |
| 2011-07-14 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_console.cc (fhandler_console::input_tcsetattr): Revert to |
| setting ENABLE_PROCESSED_INPUT depending on ISIG and IGNBRK. |
| (fhandler_console::tcgetattr): Set ISIG depending on |
| ENABLE_PROCESSED_INPUT as well. |
| |
| 2011-07-13 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_serial.cc (fhandler_serial::raw_read): Handle non-blocking |
| case more thoroughly. |
| |
| 2011-07-13 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * setup_handler (setup_handler): Change break to goto out, missed in |
| 2011-07-06 changes. |
| |
| 2011-07-10 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler_tty.cc (fhandler_pty_slave::ioctl): Remove erroneous support |
| for TIOCLINUX for pty. Get rid of unneeded EINVAL handling in wake of |
| tty removal. Remove now-unneeded variable. |
| |
| 2011-07-10 Corinna Vinschen <corinna@vinschen.de> |
| |
| * include/netdb.h (gethostbyname2): Declare. |
| |
| 2011-07-09 Eric Blake <eblake@redhat.com> |
| |
| * signal.cc (handle_sigprocmask): Return error rather than setting |
| errno, for pthread_sigmask. |
| (sigprocmask): Adjust caller. |
| |
| 2011-07-07 Corinna Vinschen <corinna@vinschen.de> |
| |
| * miscfuncs.cc (yield): Drop thread priority only once. |
| |
| 2011-07-06 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * exceptions.cc (_cygtls::interrupt_now): Back out previous change |
| since it could theoretically cause a non-CTRL-C-able program if a |
| program has suffered memory corruption. |
| (setup_handler): Ditto. |
| |
| 2011-07-06 Corinna Vinschen <corinna@vinschen.de> |
| |
| * sched.c (sched_yield): Just call SwitchToThread because yield now |
| potentially switches CPU. |
| |
| 2011-07-06 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * exceptions.cc (_cygtls::interrupt_now): Don't check for spinning |
| here. |
| (setup_handler): Check for spinning here, assuming that it is |
| transitory and should not affect the retry loop. |
| |
| 2011-07-06 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * exceptions.cc (CALL_HANDLER_RETRY_INNER): Rename to reflect different |
| functionality. |
| (CALL_HANDLER_RETRY_OUTER): New define. |
| (setup_handler): Add outer loop to signal handler to try harder to |
| deliver the signal. |
| * miscfuncs.cc (yield): Drop priority and use SleepEx() to force thread |
| rescheduling rather than relying on SwitchToThread(). |
| |
| 2011-07-06 Corinna Vinschen <corinna@vinschen.de> |
| |
| * sigproc.cc (wait_sig): Fix debug output. |
| |
| 2011-07-05 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_console.cc (fhandler_console::input_tcsetattr): Make |
| ENABLE_PROCESSED_INPUT flag only depending on value of IGNBRK. |
| (fhandler_console::tcgetattr): Don't set ISIG depending on |
| ENABLE_PROCESSED_INPUT, set IGNBRK instead. |
| |
| 2011-07-05 Corinna Vinschen <corinna@vinschen.de> |
| |
| * security.cc (get_file_sd): Fix comment. |
| |
| 2011-07-05 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.cc (fhandler_base::open): Never create files with WRITE_DAC |
| access. Explain why. |
| * fhandler_disk_file.cc (fhandler_base::fstat_helper): Improve debug |
| output. |
| |
| 2011-07-05 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.cc (fhandler_base::open): Don't open file with WRITE_DAC |
| access on remote filesystem. Explain why. |
| * fhandler_disk_file.cc (fhandler_disk_file::mkdir): Ditto for |
| directories. |
| * fhandler_socket.cc (fhandler_socket::bind): Ditto for sockets. |
| * path.cc (symlink_worker): Ditto for symlinks. |
| |
| 2011-07-04 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * environ.cc (tty_is_gone): Wrap warning at 80 characters. |
| |
| 2011-07-04 Corinna Vinschen <corinna@vinschen.de> |
| |
| Throughout, open console handles with sharing for reading and writing. |
| * dcrt0.cc (insert_file): Open file with full sharing allowed. |
| * hookapi.cc (find_first_notloaded_dll): Ditto. |
| * spawn.cc (av::fixup): Ditto. |
| |
| 2011-07-04 Corinna Vinschen <corinna@vinschen.de> |
| |
| * dtable.cc (dtable::init_std_file_from_handle): Change test for console |
| device in call to fh->init to avoid conhost crash on W7. |
| |
| 2011-07-04 Corinna Vinschen <corinna@vinschen.de> |
| |
| * environ.cc (environ_init): Reinstantiate on-the-fly CYGWIN variable |
| test and call to parse_options if found. |
| |
| 2011-07-04 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.cc (fhandler_base::open_with_arch): Call close_on_exec last |
| to avoid setting close_on_exec for archetype. |
| * fhandler_tty.cc (fhandler_pty_master::setup): Protect {from,to}_pty |
| handles. Use consistent naming in debug output. Use inheritable |
| handles and... |
| (fhandler_pty_master::fixup_after_fork): ...avoid duplicating handles |
| here. |
| (fhandler_pty_slave::open): Don't set close_on_exec flag here. |
| |
| 2011-07-01 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dtable.cc (cnew): Fix whitespace. |
| |
| 2011-07-01 Corinna Vinschen <corinna@vinschen.de> |
| |
| * include/sys/param.h (NGROUPS): Redefine as NGROUPS_MAX. |
| (MAXHOSTNAMELEN): Redefine with same value as MAX_HOSTNAME_LEN. Change |
| comment. |
| (MAXPATHLEN): Improve comment. |
| (MAXSYMLINKS): Define and add comment. |
| |
| 2011-07-01 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.cc (fhandler_base::open): Move NFS-specific code into the |
| code block handling FH_FS stuff. |
| |
| 2011-06-30 Ryan Johnson <ryan.johnson@cs.utoronto.ca> |
| |
| * dtable.cc (fh_oom): Remove. |
| (fh_calloc): Remove. |
| (cnew): Redefine to handle NULL returns from cmalloc. |
| (build_fh_name): Accommodate new definition of cnew. Remove unneeded |
| test for fh_oom. |
| (fh_alloc): Ditto. |
| |
| 2011-06-30 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_console.cc (fhandler_console::read): Add comment. |
| (fhandler_console::input_tcsetattr): Don't set ENABLE_PROCESSED_INPUT |
| if IGNBRK flag is set. |
| |
| 2011-06-30 Corinna Vinschen <corinna@vinschen.de> |
| |
| * dtable.cc (fh_oom): New static fhandler storage. |
| (fh_calloc): New static function. Add a comment to explain why this |
| is needed. |
| (cnew): Call fh_calloc as placement argument. |
| (build_fh_name): Check return code from cnew against address of |
| fh_oom to test for out of memory condition. |
| (fh_alloc): Ditto. |
| (build_fh_pc): Avoid a crash due to useing a NULL fhandler. |
| * pipe.cc (fhandler_pipe::create): Check if build_fh_dev returned a |
| valid pointer before using it. |
| |
| 2011-06-28 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_process.cc (heap_info::fill_if_match): Rename info to |
| note that this heap is a Windows heap. |
| (format_process_maps): Print info about application heap. |
| |
| 2011-06-24 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_console.cc (fhandler_console::read): Don't generate ^@ on |
| Ctrl+Alt+Space. |
| |
| 2011-06-22 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_tty.cc (fhandler_pty_master::setup): Create pty pipes |
| non-inheritable. |
| |
| 2011-06-22 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_tty.cc (fhandler_pty_master::setup): Fix crash in debug |
| output. |
| |
| 2011-06-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * path.cc (normalize_win32_path): Skip all slashes after recognizing |
| a ".." path component. Add comment. |
| |
| 2011-06-17 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.cc (fhandler_base::open): Drop local create_options variable. |
| Use options member instead. |
| * fhandler.h (class fhandler_base): Change type of access member to |
| ACCESS_MASK. Change get_access and set_access methods accordingly. |
| Add options member. Add get_options and set_options methods. |
| (class fhandler_disk_file): Add prw_handle. |
| (fhandler_disk_file::prw_open): Declare. |
| (fhandler_disk_file::close): Declare. |
| (fhandler_disk_file::dup): Declare. |
| (fhandler_disk_file::fixup_after_fork): Declare. |
| * fhandler_disk_file.cc (fhandler_disk_file::fhandler_disk_file): |
| Initialize prw_handle to NULL. |
| (fhandler_disk_file::close): Close prw_handle. |
| (fhandler_disk_file::dup): New method. |
| (fhandler_disk_file::fixup_after_fork): Set prw_handle to NULL since |
| prw_handle is not inherited. |
| (fhandler_disk_file::prw_open): New method. Add long comment to |
| explain current behaviour. |
| (fhandler_disk_file::pread): Revert previous change. Change to use |
| prw_handle if possible. |
| (fhandler_disk_file::pwrite): Change to use prw_handle if possible. |
| |
| 2011-06-17 Corinna Vinschen <corinna@vinschen.de> |
| |
| * dcrt0.cc (dll_crt0_1): Call strace.dll_info after call to pinfo_init. |
| * strace.cc (strace::hello): Drop printing DLL information here since |
| application info is not always available at this point. |
| (strace::dll_info): New method to print DLL info. |
| * include/sys/strace.h (strace::dll_info): Declare. |
| |
| 2011-06-17 Corinna Vinschen <corinna@vinschen.de> |
| |
| * dtable.cc (handle_to_fn): Accommodate name change of pty named pipes, |
| otherwise ptys are not recognized. |
| |
| 2011-06-16 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler_console.cc (fhandler_console::set_unit): Set |
| pc.file_attributes() to reflect existence. |
| * fhandler.h (fhandler_pty_common::fhandler_pty_common): Ditto. |
| * pinfo.cc (_pinfo::set_ctty): Output device numbers in hex. |
| |
| 2011-06-15 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * errno.cc (EIO): Lowercase "o" representative string. |
| |
| 2011-06-14 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * cygheap.h (init_cygheap::ctty_on_hold): Remove conditionalized |
| variable. |
| * dcrt0.cc (do_exit): Remove code which handled CYGWIN=tty style ttys. |
| * devices.in: Remove "/dev/ttym". |
| * dtable.cc: Rename tty to pty where appropriate throughout. |
| (dtable::stdio_init): Use new t->is_console rather than using |
| now-deleted hwnd element in tty structure. |
| (dtable::init_std_file_from_handle): Remove code which handled |
| CYGWIN=tty style ttys. |
| (fh_alloc): Ditto. |
| * fhandler.h: Rename tty to pty where appropriate. |
| (fhandler_pty_common): Delete output_done_event, ioctl_request_event, |
| ioctl_done_event. |
| (fhandler_pty_master::setup): Delete argument. |
| (fhandler_tty_master): Delete. |
| (fhandler_union): Delete __tty_master. |
| * fhandler_console.cc (use_tty): Delete. |
| (fhandler_console::get_tty_stuff): Set is_console to true rather than |
| calling sethwnd. |
| (fhandler_console::send_winch_maybe): Remove CYGWIN=tty considerations. |
| (fhandler_console::input_tcsetattr): Ditto. |
| * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Use new |
| t->is_console rather than using now-deleted hwnd element in tty |
| structure. |
| * fhandler_tty.cc: Rename tty to pty where appropriate throughout. |
| (tty_master): Delete. |
| (process_input): Ditto. |
| (process_output): Ditto. |
| (process_ioctl): Ditto. |
| (fhandler_tty_master::*): Ditto. |
| (fhandler_pty_master::process_slave_output): Remove CYGWIN=tty |
| considerations. |
| (fhandler_pty_slave::open): Ditto for *_done_event. |
| (fhandler_pty_slave::write): Ditto. |
| (fhandler_pty_slave::ioctl): Ditto. |
| (fhandler_pty_slave::fch_open_handles): Ditto. |
| (fhandler_pty_slave::fch_set_sd): Ditto. |
| (fhandler_pty_slave::fch_close_handles): Ditto. |
| (fhandler_pty_common::close): Ditto. |
| (fhandler_pty_master::setup): Ditto. Remove now-unneeded ispty |
| parameter. |
| (fhandler_pty_master::open): Reflect argument removal for |
| tty::allocate. |
| * select.cc: Rename tty to pty where appropriate throughout. |
| * sigproc.cc (proc_subproc): Remove CYGWIN=tty considerations. |
| * tty.cc (ttyslot): Accommodate CYGWIN=tty removal. |
| (tty_list::init_session): Ditto. |
| (tty_list::attach): Ditto. |
| (tty::create_master): Delete. |
| (tty_list::terminate): Ditto. |
| (tty_list::allocate): Delete "with_console" parameter. Remove |
| CYGWIN=tty considerations. |
| (tty::init): Set is_console = false. Use 'false' for was_opened since |
| it is a boolean. |
| * tty.h (*_{DONE,REQUEST}_EVENT): Delete. |
| (tty_min::is_console): Declare new field which replaces hwnd. |
| (tty_min::gethwnd): Delete. |
| (tty_min::sethwnd): Ditto. |
| (tty_list::allocate): Delete parameter. |
| (tty_list::terminate): Delete declaration. |
| * include/sys/cygwin.h (PID_USETTY): Redefine to PID_UNUSED1 and change |
| comment to reflect its availability. |
| |
| 2011-06-13 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler_tty_slave.cc (fhandler_tty_slave::fhandler_tty_slave): |
| Revert previous change since unit 0 is perfectly valid. |
| |
| 2011-06-12 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| Rename FH_BAD to FH_NADA throughout. |
| * devices.h (FH_ERROR): New value. |
| (iscons_dev): Extend to detect all the console device types. |
| * devices.in: Set aside storage for FH_ERROR. |
| * dtable.cc (dtable::init_std_file_from_handle): Use iscons_dev to |
| detect when device is a console. |
| (fh_alloc): Pass device to console constructor. |
| (build_fh_pc): Short circuit when we detect that the constructor saw an |
| error. |
| * fhandler.h (fhandler_console::fhandler_console): Accept fh_devices |
| parameter. |
| (get_tty_stuff): Change to void. |
| * fhandler_console (fhandler_console::set_unit): Set device to FH_ERROR |
| on attempt to access anything other than the current console. |
| (fhandler_console::get_tty_stuff): Change to void return. |
| (fhandler_console::open): Return EPERM on FH_ERROR device type. |
| (fhandler_console::fhandler_console): Set the device type appropriately |
| before calling get_tty_stuff and rely on that function to reset it if |
| necessary. |
| |
| 2011-06-10 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * environ.cc (create_upcaseenv): Delete. |
| (ucenv): Don't honor create_upcaseenv. |
| (environ_init): Remove early retrieval of CYGWIN environment variable. |
| Change comment to reflect new behavior. |
| |
| 2011-06-09 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * child_info.h (CURR_CHILD_INFO_MAGIC): Reset. |
| (child_info::old_title): Delete. |
| (child_info::~child_info_spawn): Remove recording of old_title. |
| * dcrt0.cc (title_buf): Delete. |
| (child_info_spawn::handle_spawn): Remove recording of old_title. |
| (dll_crt0_1): Get rid of all title handling. |
| (do_exit): Ditto. |
| * environ.cc (known): Delete strip_title and title. |
| * fhandler_console.cc (fhandler_console::write): Remove recording of |
| old_title. |
| * globals.cc (exit_states): Remove ES_TITLE. |
| (display_title): Delete. |
| (strip_title_path): Delete. |
| (old_title): Delete. |
| * spawn.cc (spawn_guts): Remove old_title accommodation. |
| |
| 2011-06-09 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * environ.cc (envcache): Delete. |
| (known): Remove envcache. |
| (getwinenv): Don't honor envcache setting. |
| |
| 2011-06-09 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * environ.c: Move code earlier to allow: |
| (_addenv): Call parse_options() when CYGWIN environment variable is |
| being changed. |
| (parse_options): Change parameter to 'const'. |
| |
| 2011-06-08 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * environ.cc (tty_is_gone): Add missing space to message. |
| |
| 2011-06-08 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * environ.cc (settings::set_process_state): Delete. |
| (tty_is_gone): New function. |
| (known): Change "tty" to call tty_is_gone(). Remove unneeded '&' from |
| beginning of function address. |
| (parse_options): Remove set_process_state handling. |
| * shared_info.h (CURR_USER_MAGIC): Reset. |
| (user_info::warned_notty): New member. |
| |
| 2011-06-07 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler_console.cc (fhandler_console::open_shared_console): |
| Semi-revert to using fixed location for console stuff. |
| * shared.cc (offsets): Ditto. Comment. |
| * shared_info (shared_locations): Re-add SH_SHARED_CONSOLE. |
| |
| 2011-06-05 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler_disk_file.cc (fhandler_disk_file::pread): Reset windows file |
| position pointer back to previous location after successful read. |
| |
| 2011-06-04 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler_console.cc (fhandler_console::open_shared_console): Don't |
| zero handle to open_shared since it is supposed to be an input. |
| (enum_windows): Set handle input to open_shared to NULL since it does |
| not represent any previously opened shared region. |
| * shared.cc (open_shared): Tweak debugging output. |
| |
| 2011-06-03 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * ntdll.h (FILE_PIPE_*): Define constants. |
| * select.cc (pipe_data_available): Detect closing state. |
| |
| 2011-06-03 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * pinfo.cc (_pinfo::set_ctty): Don't reset myself->{pgid,sid} if |
| terminal has no pgid or sid settings. |
| |
| 2011-06-03 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Only raise |
| SIGPIPE when writing. |
| |
| * fhandler.h: Include "tty.h". |
| (fhandler_termios::_tc): Rename from tc. |
| (fhandler_termios::tc): New method. |
| (fhandler_termios::tcinit): Remove an argument. |
| (fhandler_termios::get_ttyp): Use method to retrieve value. |
| (fhandler_console::console_state): Move here. |
| (fhandler_console::dev_state): Delete. |
| (fhandler_console::shared_console_info): Define. |
| (fhandler_console::open_shared_console): Move this function under |
| fhandler_console umbrella. |
| (fhandler_console::tc): Define. Return static value. |
| (fhandler_console::focus_aware): Accommodate deletion of dev_state. |
| (fhandler_console): Add tty_list::get_cttyp as a friend. |
| * fhandler_console.cc (dev_state): Redefine as a pointer within |
| shared_console_info and change dev-> to dev. throughout. |
| (fhandler_console::shared_console_info): Move into fhandler_console. |
| (fhandler_console::open_shared_console): Move into fhandler_console |
| change argument to simple bool. |
| (enum_windows): Accommodate changes to console_state and |
| open_shared_console. |
| (console_unit::console_unit): Ditto. |
| (fhandler_console::get_tty_stuff): Accommodate change to dev_state. |
| (tty_list::get_cttyp): Accommodate change to |
| handler_console::shared_console_info. |
| (fhandler_console::read): Accommodate change from tc to tc (). |
| (fhandler_console::set_input_state): Ditto. |
| (fhandler_console::open): Accommodate tcinit argument change and change |
| from tc to tc(). |
| (fhandler_console::input_tcsetattr): Accomodate change from tc to tc(). |
| (fhandler_console::input_tcsetattr): Ditto. |
| (fhandler_console::write_normal): Ditto. |
| (fhandler_console::init): Ditto. |
| (fhandler_console::igncr_enabled): Ditto. |
| * fhandler_termios.cc (fhandler_termios::tcinit): Remove first argument. |
| Expect tc() to have been set up first. Use tc() rather than tc. |
| (fhandler_termios::tcsetpgrp): Accomodate change from tc to tc(). |
| (fhandler_termios::tcgetpgrp): Ditto. |
| (fhandler_termios::bg_check): Ditto. |
| (fhandler_termios::line_edit: Ditto. |
| (fhandler_tty_master::set_winsize): Ditto. |
| (fhandler_tty_slave::open): Ditto. |
| (fhandler_tty_slave::init): Ditto. |
| (fhandler_pty_master::write): Ditto. |
| (fhandler_pty_master::setup): Ditto. Accommodate change in arguments |
| to tcinit. |
| (fhandler_tty_slave::fch_open_handles): Set _tc directly. |
| (tty_min::is_orphaned_process_group): Don't assume that parent pid |
| exists. |
| * pinfo.cc (_pinfo::set_ctty): Reset myself->{pgid,sid} here if we were |
| started by a non-Cygwin process but the tty exists. |
| * shared_info.h (console_state): Delete from here. |
| * tty.h: Make multiple inclusion safe. |
| |
| 2011-05-31 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * exceptions.cc (ctrl_c_handler): Simplify test for no parent tty. |
| * fhandler_console.cc (fhandler_console::get_tty_stuff): Return NULL if |
| ctty is not tty/console. Improve test for slave tty/pty device. |
| |
| 2011-05-31 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * external.cc (fillout_pinfo): Don't truncate ctty if it's < 0. |
| |
| * select.cc (pipe_data_available): Avoid printing debug info by default |
| or suffer very large strace files. |
| |
| 2011-05-31 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * select.cc (pipe_data_available): New function - uses |
| NtQueryInformationFile to return information about pipes. |
| (peek_pipe): Rewrite to use pipe_data_available for both read and write |
| tests. |
| |
| 2011-05-30 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dtable.cc (dtable::select_write): Add missing argument to |
| debug_printf. |
| |
| * fhandler.cc (fhandler_base_overlapped::setup_overlapped): Explicitly |
| set io_pending to false. |
| (fhandler_base_overlapped::has_ongoing_io): Call GetOverlappedResult |
| to force completion of I/O. |
| (fhandler_base_overlapped::wait_overlapped): Rewrite to correctly deal |
| with nonblocking reads and to make more race proof. |
| (fhandler_base_overlapped::raw_write): Deal with new enum values. |
| (fhandler_base_overlapped::raw_read): Ditto. Don't deal with ongoing |
| I/O here since it makes no sense in the read context. |
| * fhandler.h (enum wait_return): Add overlapped_unknown, |
| overlapped_nonblocking_no_data. |
| * pipe.cc (pipe): Add debugging output. |
| |
| 2011-05-30 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dll_init.cc (dll_list::append): Eliminate increment of unused tot |
| variable. |
| * dll_init.h (dll_list::tot): Delete. |
| (dll_list::populate_all_deps): Delete undefined function. |
| |
| * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Move EPIPE |
| handling under error condition. |
| |
| 2011-05-30 Ryan Johnson <ryan.johnson@cs.utoronto.ca> |
| |
| * dll_init.cc (reserve_upto): Remove. |
| (release_upto): Ditto. |
| (dll_list::reserve_space): New function to reserve space needed by |
| DLL_LOAD dlls early in the fork process. |
| (dll_list::load_after_fork): Rewrite to use recursion to |
| track reservations it makes while trying to make dlls land where they |
| belong. |
| (dll_list::load_after_fork_impl): New function used by load_after_fork. |
| (dll_list::alloc): Initialize image base field. |
| * dll_init.h (dll_list::prefered_base): New field. |
| (dll_list::reserve_space): Declare new function. |
| (dll_list::load_after_fork): Declare new function. |
| * fork.cc (frok::child): call dll_list::reserve_space early, so we can |
| retry if it fails. |
| |
| 2011-05-30 Tor Perkins <cygwin@noid.net> |
| |
| * fhandler_termios.cc (fhandler_termios::bg_check): Do not return EIO |
| when a process group has no leader as this is allowed and does not |
| imply an orphaned process group. Add a test for orphaned process |
| groups. |
| (tty_min::is_orphaned_process_group): Define new function. |
| * tty.h (tty_min::is_orphaned_process_group): Define new function. |
| |
| 2011-05-30 Ryan Johnson <ryan.johnson@cs.utoronto.ca> |
| |
| * dll_init.cc (dll_list::find_by_modname): New function to search the |
| dll list for a module name only (no path). |
| (dll_list::alloc): Initialize newly-added members of struct dll. |
| (dll_list::append): New function to factor out the append operation |
| (used by dll_list::topsort). |
| (dll_list::populate_deps): New function to identify dll dependencies. |
| (dll_list::topsort): New function to sort the dll list topologically by |
| dependencies. |
| (dll_list::topsort_visit): New helper function for the above. |
| * dll_init.h (dll::ndeps): New class member. |
| (dll::deps): Ditto. |
| (dll::modname): Ditto. |
| (dll_list::find_by_modname): New function related to topsort. |
| (dll_list::populate_all_deps): Ditto. |
| (dll_list::populate_deps): Ditto. |
| (dll_list::topsort): Ditto. |
| (dll_list::topsort_visit): Ditto. |
| (dll_list::append): Ditto. |
| (pefile): New struct allowing simple introspection of dll images. |
| * fork.cc (fork): Topologically sort the dll list before forking |
| |
| 2011-05-30 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * child_info.h (CURR_CHILD_INFO_MAGIC): Refresh. |
| (child_info::refresh_cygheap): New function. |
| * spawn.cc (spawn_guts): Call refresh_cygheap before creating a new |
| process to ensure that cygheap_max is up-to-date. |
| * fork.cc (frok::parent): Ditto. |
| |
| 2011-05-30 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * cygheap.cc (cygheap_dummy): Rename from cygheap_at_start. |
| (cygheap): Accommodate name change to cygheap_dummy. |
| (cygheap_init): Ditto. |
| (cygheap_fixup_in_child): Simplify slightly. |
| * fork.cc (fork): Add an advisory comment. |
| |
| 2011-05-29 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.cc (fhandler_overlapped::wait_overlapped): Make sure that |
| I/O is cancelled on signal. |
| |
| 2011-05-28 Ryan Johnson <ryan.johnson@cs.utoronto.ca> |
| |
| * dll_init.cc (dll_list::alloc): Initialize dll::image_size. |
| (reserve_at): Don't reserve space needed by the target dll if the |
| latter overlaps the free region to be blocked. |
| (dll_list::load_after_fork): Use new version of reserve_at. |
| * dll_init.h (dll::image_size): New member. |
| (pefile): New struct. |
| |
| 2011-05-28 Christopher Faylor <me.cygwin2011@cgf.cx> |
| Ryan Johnson <ryan.johnson@cs.utoronto.ca> |
| |
| * dll_init.c (dll_list::load_after_fork): Don't clear in_forkee here. |
| * fork.cc (frok::errmsg): Rename from 'error'. |
| (frok::error): New function. Handle conditional printing of error |
| messages. |
| (frok::parent): Record hchild handle for use by error function. Use |
| throughout. Use error function rather than setting error pointer |
| directly. |
| (fork): Clear is_forkee here. Accommodate rename of 'error' to |
| 'errmsg'. |
| * sigproc.cc (child_info::proc_retry): Detect EXITCODE_FORK_FAILED. |
| |
| 2011-05-28 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.cc (handler_base_overlapped::wait_overlapped): Rework to |
| attempt to properly set errno and bytes read for non-blocking case. |
| Change to just rely on res to indicate error conditions. |
| |
| 2011-05-28 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Don't set |
| io_pending unless ReadFile has returned an error. (this is a partial fix, |
| accidentally checked in) |
| |
| 2011-05-28 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * autoload.cc: Call _api_fatal in asm. |
| * child_info.h: Redefine CURR_CHILD_INFO_MAGIC. |
| (child_info_fork::abort): Rename from handle_failure. Change |
| arguments. |
| * cygtls.h (_local_storage::ttybuf): New field. |
| * dcrt0.cc (vapi_fatal): Split api_fatal. Add "in forked process" to |
| message when appropriate. |
| (api_fatal): Use vapi_fatal. |
| * devices.h: Make multiple inclusion safe. |
| (fh_devices): Add FH_CONS* stuff. Reorder slightly. |
| (device): Eliminate anonymous union. Add more ways to access |
| minor/major. |
| (device::setunit): Accommodate no-longer-anonymous union. |
| (device::is_fs): Ditto. |
| (device::is_fs_special): Ditto. |
| (device::major): New function. |
| (device::minor): Ditto. |
| (device::is_device): New function. |
| (device::not_device): Ditto. |
| (device::operator int): New operator. |
| (device::operator fh_devices): Ditto. |
| (device::operator bool): Ditto. |
| (device::operator DWORD): Ditto. |
| (device::operator =): Ditto. |
| (isproc_dev): New function. |
| (isprocsys_dev): Ditto. |
| (iscons_dev): Ditto. |
| (istty_slave_dev): Ditto. |
| * devices.in: Add new "/dev/cons*" strings. Accommodate |
| no-longer-anonymous union throughout. |
| (BRACK): Use more precise method for initialization. |
| * devices.cc: Regenerate. |
| * dtable.cc (dtable::stdio_init): Use get_cttyp instead of get_tty. |
| (dtable::find_archetype): Use new DWORD operator in device to test |
| archetypes. |
| (dtable::init_std_file_from_handle): Use different method to initialize |
| 'dev'. Adapt to different ctty handling and accommodate /dev/cons*. |
| (fh_alloc): Accommodate no-longer-anonymous union. Adapt to new |
| /dev/cons*. |
| (build_fh_pc): Make debugging output more useful. |
| * exceptions.cc (ctrl_c_handler): Use get_cttyp instead of get_tty. |
| * external.cc (fillout_pinfo): Accommodate new cons* stuff. |
| * fhandler.cc (fhandler_base::read): Eliminate is_slow() test. |
| * fhandler.h (fhandler_base::*): Adapt to changes in device.h. |
| (fhandler_*::is_slow): Delete. |
| ( fhandler_proc::get_proc_fhandler): Return fh_devices type. |
| * fhandler_console.cc (open_shared_console): New function. |
| (console_unit): New class. |
| (console_unit::console_unit): New constructor. |
| (enum_windows): New function. Declare as friend to console_unit. |
| (fhandler_console::set_unit): New function. |
| (fhandler_console::get_tty_stuff): Call set_unit to set the unit number |
| and determine if initialization is needed. Eliminate flags parameter. |
| (tty_list::get_cttyp): Rename (sorta) from get_tty. Return pointer to |
| correct tty_min. |
| (fhandler_console::open): Adapt to elimination of argument to |
| get_tty_stuff. |
| (fhandler_console::output_tcsetattr): Properly detect error condition. |
| (fhandler_console::fixup_after_fork_exec): Adapt to get_tty_stuff() |
| setting tc automatically. |
| * fhandler_proc.cc: Use FH_BAD rather than 0 throughout where using |
| fh_devices enum. |
| (fhandler_proc::get_proc_fhandler): Return fh_devices. Adapt to |
| devices.h changes. |
| * fhandler_process.cc: Adapt to devices.h changes. Use FH_BAD rather |
| than 0 throughout where using fh_devices enum. |
| * fhandler_procnet.cc: Ditto. |
| * fhandler_procsys.cc: Ditto. |
| * fhandler_procsysvipc.cc: Ditto. |
| * fhandler_tape.cc (fhandler_dev_tape::fhandler_dev_tape): Ditto. |
| * fhandler_termios.cc (handler_termios::bg_check): Use tc->ttyname() |
| rather than assuming that we can construct a tty. |
| * fhandler_tty.cc (fhandler_tty_master::fhandler_tty_master): Just |
| return get_minor() of dev. |
| (fhandler_pty_master::process_slave_output): Add slightly more |
| debugging info. |
| (fhandler_tty_slave::fhandler_tty_slave): Change name from ntty to |
| unit. |
| (fhandler_pty_master::open): Ditto. |
| (fhandler_tty_slave::ioctl): Adapt to change which causes ctty to |
| represent a complete device. |
| (fhandler_tty_master::init_console): Add debugging for failure path. |
| (fhandler_pty_master::setup): Use get_unit() to retrieve unit number |
| rather than relying on raw ntty. |
| (fhandler_pty_master::setup): Ditto. |
| * fhandler_virtual.h (virt_tab_t): Redefine fhandler as fh_devices. |
| * fork.cc: Remove obsolete vfork stuff. |
| (frok::child): Don't assume that a ctty == 0 is valid. |
| * mount.cc (mount_info::conv_to_win32_path): Adapt to device struct |
| changes. |
| (mount_info::conv_to_win32_path): Ditto. |
| * path.cc (path_conv::check): Retrive major/minor numbers via a method |
| rather than accessing them directly from device. Rely on dev operators |
| to set/retrieve device information as required by device struct change. |
| * path.h (isproc_dev): Move to devices.h. |
| (isprocsys_dev): Ditto. |
| (isvirtual_dev): Ditto. |
| (path_conv:{isdevice,isfifo,isspecial,iscygdrive,issocket,get_devn,get_unitn}): |
| Use device methods to access/manipulate devices. |
| * pinfo.cc (pinfo::exit): Don't assume that ctty == 0 is valid. Use |
| iscons_dev to determine if a device is a console. |
| (_pinfo::_ctty): Use device::parse to generate tty/cons name. |
| (_pinfo::set_ctty): Don't assume that ctty == 0 is valid. Remove |
| redundant info from debugging. |
| * shared.cc (offsets): Remove console offset. |
| * shared_info.h (shared_locations): Ditto. |
| * syscalls.cc (umask): Use device methods to manipulate device |
| information. |
| (ctermid): Use device::parse to generate term device name. |
| * tlsoffsets.h: Regenerate. |
| * tty.cc (ttyslot): Return minor number of ctty since ctty now |
| represents a full device. |
| (tty::create_master): Set ctty to a complete device. |
| (tty_list::attach): Rework to detect new /dev/cons* stuff. |
| (tty_list::terminate): Adapt to changes to ctty. |
| (tty_list::init): Adapt to change to setntty - pass in device major |
| number. |
| (tty::exists): Use get_unit() to retrive tty unit number. |
| (tty::open_mutex): Ditto. |
| (tty::open_inuse): Ditto. |
| (tty::create_inuse): Ditto. |
| (tty::get_event): Ditto. |
| (tty_min::ttyname): Define new function. |
| * tty.h (tty_min::ntty): Redefine as fh_devices. |
| (tty::exists): Use get_unit() to retrive tty unit number. |
| (tty::open_mutex): Ditto. |
| (tty::open_inuse): Ditto. |
| (tty::create_inuse): Ditto. |
| (tty::get_event): Ditto. |
| (tty_min::ttyname): Declare new function. |
| (tty::getntty): Declare as const. |
| (tty_list::operator []): Assure that only minor part of argument is |
| used. |
| |
| * dll_init.cc (dll_list::alloc): Detect mismatch of data segments early |
| issuing an explicit error message if necessary. |
| * heap.cc (heap_init): Adapt to changes from fork->handle_failure to |
| fork->abort. |
| * pinfo.h (EXITCODE_FORK_FAILED): New enum. (from Ryan Johnson) |
| * sigproc.cc (child_info_fork::abort): Rename from handle_failure. |
| Change arguments to allow passing in a printf-like message. |
| * winsup.h (api_fatal): Delete macro definition. |
| (api_fatal): Redefine from __api_fatal. |
| (vapi_fatal): Declare new function. |
| * include/sys/strace.h (strace_vprintf): Define new macro. |
| |
| * ntdll.h (_SYSTEM_INFORMATION_CLASS): Add SystemHandleInformation. |
| |
| 2011-05-27 Corinna Vinschen <corinna@vinschen.de> |
| |
| * shared.cc (offsets): Reorder so that console_state is lowest in |
| memory. Explain why. |
| (open_shared): Accommodate reordering of offsets array. |
| * shared_info.h (shared_locations): Reorder SH_SHARED_CONSOLE after |
| SH_MYSELF. |
| |
| 2011-05-26 Corinna Vinschen <corinna@vinschen.de> |
| |
| * mount.h (MAX_MOUNTS): Raise to 64. |
| |
| 2011-05-25 Eric Blake <eblake@redhat.com> |
| |
| * cygtls.h (strerror_r_buf): New buffer. |
| * errno.cc (strerror): Move guts... |
| (_strerror_r): ...to new function demanded by newlib. |
| (strerror_r): Don't clobber strerror buffer. |
| (_user_strerror): Drop unused declaration. |
| * tlsoffsets.h: Regenerate. |
| |
| 2011-05-25 Corinna Vinschen <corinna@vinschen.de> |
| |
| * init.cc (dll_entry): Reinstantiate wow64_test_stack_marker and |
| previous stack tests. |
| |
| 2011-05-25 Corinna Vinschen <corinna@vinschen.de> |
| |
| * posix.sgml (std-notes): Add missing <para>. |
| |
| 2011-05-24 Corinna Vinschen <corinna@vinschen.de> |
| |
| * mount.cc (mount_info::conv_to_win32_path): Remove unused code. |
| * mount.h (class mount_info): Remove sys_mount_table_counter member. |
| * shared_info.h (class shared_info): Ditto. |
| (CURR_SHARED_MAGIC): Update. |
| |
| 2011-05-24 Corinna Vinschen <corinna@vinschen.de> |
| |
| * pinfo.h (struct _pinfo): Reduce size of progname array slightly. |
| Explain why. |
| |
| 2011-05-23 Eric Blake <eblake@redhat.com> |
| |
| * errno.cc (strerror): Print unknown errno as int. |
| (__xpg_strerror_r): Likewise, and don't clobber strerror buffer. |
| * cygtls.h (strerror_buf): Resize to allow '-'. |
| |
| 2011-05-23 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_process.cc (thread_info::fill_if_match): Reformat. |
| (format_process_maps): Ditto. Fetch pointer to procinfo structure |
| from mapped process. Print info about global shared Cygwin regions. |
| |
| 2011-05-21 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_process.cc (struct dos_drive_mappings): Use malloc/free |
| rather than cmalloc/cfree. Check return value from malloc before |
| using it. |
| (struct heap_info): Ditto. |
| (struct thread_info): Ditto. Rename from stack_info. Rename members |
| and local variables accordingly. |
| (thread_info::thread_info): Store stack and TEB addresses. |
| (thread_info::fill_if_match): Print "teb" if a TEB address has been |
| found. Special case for WOW64, explain why. |
| (format_process_maps): Fetch PEB address. Print MEM_RESERVE regions |
| with equal signs to distinguish them from PAGE_NOACCESS regions. Fix |
| printing of 'p' and 's' to differ between MEM_PRIVATE and MEM_MAPPED |
| pages, as on Linux. Print 'g' instead of 'p for PAGE_GUARD pages. |
| Print PEB and SharedUserData area if recognized. |
| |
| 2011-05-20 Corinna Vinschen <corinna@vinschen.de> |
| |
| * miscfuncs.cc (CygwinCreateThread): Fix condition for adding the |
| guardsize to the stacksize. Fix accompanying comment. |
| |
| 2011-05-20 Corinna Vinschen <corinna@vinschen.de> |
| |
| * miscfuncs.cc (CygwinCreateThread): Add accidentally missing comment. |
| |
| 2011-05-20 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_process.cc (struct heap_info): Change type of base and end |
| members to char *. Print "shared" rather than "share". |
| (struct stack_info): New class to fetch process stack information. |
| (format_process_maps): Initialize and check for stack information. |
| |
| 2011-05-20 Corinna Vinschen <corinna@vinschen.de> |
| |
| * miscfuncs.cc (thread_wrapper): Remove statements added for debugging |
| purposes. |
| |
| 2011-05-20 Corinna Vinschen <corinna@vinschen.de> |
| |
| * child_info.h (CURR_CHILD_INFO_MAGIC): Update. |
| (class child_info_fork): Remove stacksize, add stackaddr and guardsize |
| members. |
| * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Partial rewrite |
| to regenerate the stack exactly as in the parent. |
| (child_info_fork::alloc_stack): Set stackaddr to 0, rather than |
| stacksize. |
| (dll_crt0_1): Check for stackaddr before changing the stack addresses |
| in the TEB. |
| * fork.cc (frok::child): Check for stackaddr here. |
| (frok::parent): Set ch.stackaddr and ch.guardsize if not called from |
| the main thread. |
| * init.cc (dll_entry): Replace pointer to NT_TIB with pointer to TEB. |
| Fix incorrectly changed address test before removing _my_tls. |
| Set StackLimit to NULL on Windows 2000. Explain why. |
| * miscfuncs.cc (struct thread_wrapper_arg): Store stackbase rather |
| than stacksize, store commitaddr, remove guardsize. Store all pointers |
| as char * for easier address arithmetic. |
| (thread_wrapper): Rewrite to remove OS stack before calling thread |
| function. Add lots of comments to explain what we do. |
| (CygwinCreateThread): Reserve our own stack in case we got no |
| application stack. Add comments. |
| * ntdll.h (struct _TEB): Extend defintion up to DeallocationStack |
| member. |
| * thread.cc (pthread_attr::pthread_attr): Use "(size_t) -1" |
| rather then 0xffffffff. |
| * wincap.h (wincaps::has_stack_size_param_is_a_reservation): New |
| element. |
| * wincap.cc: Implement above element throughout. |
| |
| 2011-05-19 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * thread.cc: Mark psiginfo and psignal as available in list of |
| optional cancellation points. |
| |
| 2011-05-19 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * cygwin.din (__fpurge): Export. |
| * posix.sgml (std-solaris): Add __fpurge. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| |
| 2011-05-18 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * posix.sgml (std-susv4): Remove chroot, futimes, hstrerror. |
| (std-deprec): Add chroot. |
| (std-bsd): Add futimes, hstrerror. |
| (std-notimpl): Add clock_nanosleep, nexttoward, nexttowardf. |
| Remove initstate, which is implemented and listed in std-susv4. |
| |
| 2011-05-17 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * cygwin.din (error): Export. |
| (error_at_line): Export. |
| (error_message_count): Export. |
| (error_one_per_line): Export. |
| (error_print_progname): Export. |
| * errno.cc (error_message_count): Define. |
| (error_one_per_line): Define. |
| (error_print_progname): Define. |
| (_verror): New static function. |
| (error): New function. |
| (error_at_line): New function. |
| * posix.sgml (std-gnu): Add error, error_at_line. |
| * include/error.h: New header. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| |
| 2011-05-17 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * cygwin.din (clock_getcpuclockid): Export. |
| (pthread_getcpuclockid): Export. |
| * hires.h (PID_TO_CLOCKID): New macro. |
| (CLOCKID_TO_PID): New macro. |
| (CLOCKID_IS_PROCESS): New macro. |
| (THREADID_TO_CLOCKID): New macro. |
| (CLOCKID_TO_THREADID): New macro. |
| (CLOCKID_IS_THREAD): New macro. |
| * ntdll.h (enum _THREAD_INFORMATION_CLASS): Add ThreadTimes. |
| * posix.sgml (std-notimpl): Add clock_getcpuclockid and |
| pthread_getcpuclockid from here... |
| (std-susv4): ... to here. |
| (std-notes): Remove limitations of clock_getres and clock_gettime. |
| Note limitation of timer_create to CLOCK_REALTIME. |
| * sysconf.cc (sca): Set _SC_CPUTIME to _POSIX_CPUTIME, and |
| _SC_THREAD_CPUTIME to _POSIX_THREAD_CPUTIME. |
| * thread.cc (pthread_getcpuclockid): New function. |
| * timer.cc (timer_create): Set errno to ENOTSUP for CPU-time clocks. |
| * times.cc (clock_gettime): Handle CLOCK_PROCESS_CPUTIME_ID and |
| CLOCK_THREAD_CPUTIME_ID. |
| (clock_getres): Ditto. |
| (clock_settime): Set errno to EPERM for CPU-time clocks. |
| (clock_getcpuclockid): New function. |
| * include/pthread.h (pthread_getcpuclockid): Declare. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| |
| 2011-05-17 Corinna Vinschen <corinna@vinschen.de> |
| |
| * miscfuncs.cc (thread_wrapper): Remove unused _cygtls record. |
| * mmap.cc (is_mmapped_region): Avoid crash if no mmaps exist. |
| |
| 2011-05-16 Corinna Vinschen <corinna@vinschen.de> |
| |
| * globals.cc (__getlogin_username): Remove. |
| * uinfo.cc (getlogin_r): Fetch username from cygheap. |
| (getlogin): Add static buffer username and fetch username from |
| getlogin_r. |
| |
| 2011-05-16 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygtls.h (struct _local_storage): Remove unused members rarg and |
| _localtime_buf. Remove username in favor of a global buffer. Reorder |
| slightly to keep the net.cc stuff together. |
| * globals.cc (__getlogin_username): New global char buffer. |
| * tlsoffsets.h: Regenerate. |
| * uinfo.cc (getlogin): Copy username into __getlogin_username. |
| |
| 2011-05-16 Corinna Vinschen <corinna@vinschen.de> |
| |
| * heap.cc (heap_init): Rewrite initial heap allocation to use addresses |
| beyond 0x20000000. Explain why and how. |
| * shared.cc (shared_info::heap_slop_size): Remove. |
| * shared_info.h (class shared_info): Remove heap_slop_inited and |
| heap_slop members. Remove heap_slop_size declaration. |
| (CURR_SHARED_MAGIC): Update. |
| * wincap.cc: Throughout, drop heapslop. |
| * wincap.h (struct wincaps): Drop heapslop. |
| |
| 2011-05-16 Corinna Vinschen <corinna@vinschen.de> |
| |
| * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Check if the |
| requested stack is application-provided within the user heap or an |
| mmapped region. If so, just use it. Add comment to explain why. |
| * miscfuncs.cc (thread_wrapper): If an application-provided stack |
| has been given, implement cygtls area at the stackbase. Fix comment. |
| * mmap.cc (is_mmapped_region): New function. |
| * winsup.h (is_mmapped_region): Declare. |
| |
| 2011-05-15 Corinna Vinschen <corinna@vinschen.de> |
| |
| * miscfuncs.cc (thread_wrapper): Add comments to assembler code. |
| |
| 2011-05-15 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygwin.din (pthread_attr_getguardsize): Export. |
| (pthread_attr_setguardsize): Export. |
| (pthread_attr_setstack): Export. |
| (pthread_attr_setstackaddr): Export. |
| * init.cc (dll_entry): Remove wow64_test_stack_marker. Check for |
| unusual stack address by testing stack addresses from current TEB. |
| Check validity of _my_tls by testing if it's within the stack as |
| given in current TEB. |
| * miscfuncs.cc (struct thread_wrapper_arg): New structure used to |
| push all required information to thread_wrapper function. |
| (thread_wrapper): Wrapper function for actual thread function. |
| If an application stack has been given, change %ebp and %esp so that |
| the thread function runs on that stack. If the thread has been created |
| by CygwinCreateThread, set up the POSIX guard pages if necessary. |
| (CygwinCreateThread): New function. |
| * miscfuncs.h (CygwinCreateThread): Declare. |
| * ntdll.h (struct _TEB): Define all members up to Peb. |
| * posix.sgml (std-susv4): Move pthread_attr_getguardsize, |
| pthread_attr_setguardsize and pthread_attr_setstack here. |
| (std-deprec): Add pthread_attr_setstackaddr. |
| * sysconf.cc (sca): Set _SC_THREAD_ATTR_STACKADDR to |
| _POSIX_THREAD_ATTR_STACKADDR. |
| * thread.cc (pthread::precreate): Copy pthread_attr stackaddr and |
| guardsize members. |
| (pthread::create): Call CygwinCreateThread. |
| (pthread_attr::pthread_attr): Initialize guardsize. |
| (pthread_attr_setstack): New function. |
| (pthread_attr_setstackaddr): New function. |
| (pthread_attr_setguardsize): New function. |
| (pthread_attr_getguardsize): New function. |
| (pthread_getattr_np): Copy attr.guardsize. |
| * thread.h (pthread_attr): Add member guardsize. |
| * include/pthread.h (pthread_attr_getguardsize): Declare. |
| (pthread_attr_setguardsize): Declare. |
| * include/cygwin/version.h: Bump API minor number. |
| |
| 2011-05-13 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_process.cc (struct heap_info::heap): Convert base to |
| uintptr_t. Add heap_id, end, flags members. |
| (heap_info::heap_vm_chunks): Rename from heaps. |
| (heap_info::heap_info): Rearrange using RtlQueryProcessDebugInformation |
| to get information of heap virtual memory blocks. Store heap id and |
| flags, as well as end address of each block. |
| (heap_info::fill_if_match): Check incoming base address against full |
| address range of heap chunks. Convert flag values in extra heap |
| information. |
| (format_process_maps): Change order so that heap check is done before |
| MEM_MAPPED check since there are shareable heaps. |
| * ntdll.h (PDI_HEAP_BLOCKS): Define. |
| (HEAP_FLAG_NOSERIALIZE): Define. |
| (HEAP_FLAG_GROWABLE): Define. |
| (HEAP_FLAG_EXCEPTIONS): Define. |
| (HEAP_FLAG_NONDEFAULT): Define. |
| (HEAP_FLAG_SHAREABLE): Define. |
| (HEAP_FLAG_EXECUTABLE): Define. |
| (HEAP_FLAG_DEBUGGED): Define. |
| (struct _DEBUG_HEAP_ARRAY): Define. |
| (struct _DEBUG_HEAP_BLOCK): Define. |
| |
| 2011-05-12 Corinna Vinschen <corinna@vinschen.de> |
| |
| Based on newlib patch to strptime by Peter Rosin <peda@lysator.liu.se>: |
| * libc/time/strptime.c (is_leap_year): New static function. |
| (first_day): Ditto. |
| (__strptime): Fill in tm_yday when all of tm_year, tm_mon and tm_mday |
| are updated. Fill in tm_mon, tm_mday and tm_wday when both of tm_year |
| and tm_yday are updated. |
| |
| 2011-05-12 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * fhandler_proc.cc (format_proc_meminfo): Rewrite to use sysinfo(). |
| Support RAM and swap space larger than 4GB. |
| Remove output elements not found with modern Linux kernels. |
| (format_proc_swaps): Support paging files larger than 4GB. |
| |
| 2011-05-11 Corinna Vinschen <corinna@vinschen.de> |
| |
| * autoload.cc: Remove useless comment. |
| |
| 2011-05-11 Corinna Vinschen <corinna@vinschen.de> |
| |
| * autoload.cc (EnumProcessModules): Remove. |
| * dlfcn.cc (dlopen): Make sure errno is set if an error occurs. |
| (dlsym): Rewrite using RtlQueryProcessDebugInformation instead of |
| EnumProcessModules. |
| * ntdll.h (struct _DEBUG_MODULE_ARRAY): Define. |
| (RtlCreateQueryDebugBuffer): Declare. |
| (RtlDestroyQueryDebugBuffer): Declare. |
| (RtlQueryProcessDebugInformation): Declare. |
| |
| 2011-05-11 Corinna Vinschen <corinna@vinschen.de> |
| |
| * autoload.cc (GetModuleFileNameExW): Remove. |
| * autoload.cc (GetModuleInformation): Remove. |
| |
| 2011-05-11 Corinna Vinschen <corinna@vinschen.de> |
| |
| * autoload.cc (QueryWorkingSet): Remove. |
| |
| 2011-05-11 Ryan Johnson <ryan.johnson@cs.utoronto.ca> |
| |
| * fhandler_process.cc (format_process_maps): Rework to report |
| all mapped address space in a process (committed or reserved), |
| identifying the nature of the mapping (mapped file/image, heap, |
| shared memory) when possible. |
| (dos_drive_mappings): New helper classes. |
| (heap_info): Ditto. |
| * ntdll.h (struct _MEMORY_SECTION_NAME): Define. |
| |
| 2011-05-11 Corinna Vinschen <corinna@vinschen.de> |
| |
| * autoload.cc (GetProcessMemoryInfo): Remove. |
| * resource.cc (fill_rusage): Call NtQueryInformationProcess rather than |
| GetProcessMemoryInfo to drop a psapi dependency. |
| |
| 2011-05-11 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_socket.cc (get_inet_addr): Rearrange for better readability. |
| Make waiting loop interruptible and cancelable. Check for SYSTEM DOS |
| flag before reading the file. Change return value to return 0 on |
| success, SOCKET_ERROR on failure. |
| (fhandler_socket::bind): Only set R/O DOS flag on filesystems not |
| supporting ACLs. |
| (fhandler_socket::connect): Accommodate changed return values from |
| get_inet_addr. Use SOCKET_ERROR instead of -1. |
| (fhandler_socket::sendto): Accommodate changed return values from |
| get_inet_addr. |
| * syslog.cc (connect_syslogd): Ditto. |
| |
| 2011-05-10 Christian Franke <franke@computer.org> |
| |
| * security.cc (check_registry_access): Handle missing |
| security descriptor of HKEY_PERFORMANCE_DATA. |
| |
| 2011-05-10 Corinna Vinschen <corinna@vinschen.de> |
| |
| * lc_msg.h: Regenerate. |
| |
| 2011-05-10 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_proc.cc (format_proc_uptime): Don't call GetSystemInfo. |
| Fetch CPU count from wincap. |
| (format_proc_stat): Ditto. |
| * globals.cc (system_info): Move to wincap. |
| * heap.cc (heap_init): Fetch page size from wincap. |
| * syscalls.cc (getpagesize): Fetch allocation granularity from wincap. |
| (getsystempagesize): Fetch page size from wincap. |
| * wincap.cc (wincap_2003): Default is_server to false. |
| (wincapc::init): Call GetSystemInfo here. Always set is_server value. |
| * wincap.h (class wincapc): Add system_info as private member. |
| (wincapc::cpu_count): New public method. |
| (wincapc::page_size): Ditto. |
| (wincapc::allocation_granularity): Ditto. |
| |
| 2011-05-10 Corinna Vinschen <corinna@vinschen.de> |
| |
| * environ.cc (set_chunksize): Remove. |
| (parse_thing): Remove forkchunk entry. |
| * fork.cc (child_copy): Drop handling external chunksize setting. |
| * wincap.cc: Througout, drop chunksize. |
| (wincapc::set_chunksize): Remove. |
| * wincap.h (struct wincaps): Drop chunksize and declaration of |
| set_chunksize. |
| |
| 2011-05-08 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * times.cc (settimeofday): Add EFAULT handler. |
| Set errno to EINVAL if tv.tv_nsec is invalid, and to EPERM if |
| SetSystemTime fails. Return -1 in case of failure, all for |
| compatibility with BSD and Linux. |
| (clock_settime): New function. |
| * cygwin.din (clock_settime): Export. |
| * posix.sgml (std-susv4): Add clock_settime. |
| Move clock_setres from here... |
| (std-deprec): ... to here. |
| (std-notes): Correct limitation of clock_setres to only CLOCK_REALTIME. |
| Add limitation of clock_settime to only CLOCK_REALTIME. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| |
| 2011-05-07 Corinna Vinschen <corinna@vinschen.de> |
| |
| * registry.cc (get_registry_hive_path): Change system_printf to |
| debug_printf. |
| (load_registry_hive): Ditto. |
| |
| 2011-05-06 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.h (fhandler_base::close_with_arch): Make non-virtual. |
| (fhandler_base::open_fs): Move closer to it's close counterpart. |
| |
| 2011-05-06 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.cc (fhandler_base::dup): Avoid duping a handle when an |
| fhandler has an archetype. |
| * fhandler_console.cc (fhandler_console::invisible_console): Move to |
| the top. |
| (fhandler_console::set_close_on_exec): Don't set close-on-exec on |
| handle since it's an archetype and you don't know how many things could |
| be using it. |
| |
| 2011-05-06 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.h (fhandler_dev_dsp): Cosmetic change. |
| |
| * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Put back |
| Sleep(10) for tty_master case. |
| |
| * sigproc.cc (stopped_or_terminated): Don't consider a pid which has |
| been reaped to be terminated. |
| |
| 2011-05-06 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * sysconf.cc (sysinfo): New function. |
| * cygwin.din (sysinfo): Export. |
| * posix.sgml (std-gnu): Add sysinfo. |
| * include/sys/sysinfo.h (struct sysinfo): Define. |
| (sysinfo): Declare. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| |
| 2011-05-06 Corinna Vinschen <corinna@vinschen.de> |
| |
| * libc/minires-os-if.c (get_dns_info): Drop printing uninitialized |
| value of dwRetVal in debug output. |
| |
| 2011-05-06 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.h (fhandler_socket::read): Declare. |
| (fhandler_socket::write): Declare. |
| * fhandler_procsys.cc (fhandler_procsys::read): Add FIXME comment. |
| (fhandler_procsys::write): Ditto. |
| * fhandler_socket.cc (fhandler_socket::read): New method. |
| (fhandler_socket::write): New method. |
| * syscalls.cc: Rearrange order of read/write functions. |
| (read): Call fhandler read method directly instead of just readv. |
| (readv): Remove EINTR loop. This is done in all affected fhandler's |
| now. |
| (write): Call fhandler write method directly instead of just writev. |
| Fix debug output. |
| |
| 2011-05-05 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * cygheap.cc (cygheap::close_ctty): Close ctty via close_with_arch(). |
| * debug.cc (close_handle): Call debugger on failure. |
| * devices.in (device::tty_to_real_device): Delete. |
| * devices.h (device::tty_to_real_device): Ditto. |
| * devices.cc: Regenerate. |
| * dtable.cc: Delete old ifdef'ed vfork code. |
| (dtable::release): Don't handle archetype here. |
| (dtable::init_std_file_from_handle): Consolidate console tests. |
| Generate major/minor for tty ASAP. Fix incorrect setting of DEV_TTYS* |
| for serial. |
| (fh_alloc): New function derived from build_fh_pc. Pass current tty |
| when building tty. |
| (build_pc_pc): Use fh_alloc to create. Set name from fh->dev if |
| appropriate. Generate an archetype or point to one here. |
| (dtable::dup_worker): Deal with archetypes. Rely on = operator copying |
| whole class rather than just fhandler_base. |
| (dtable::fixup_after_exec): Call close_with_arch to handle closing of |
| fhandlers with archetypes. |
| * fhandler.cc (fhandler_base::operator =): Call memcpy with fhandler's |
| size() rather than sizeof fhandler_base. |
| (fhandler_base::open_with_arch): New function. Handles opening of |
| fhandler's with archetypes, dealing with usecounts, etc. |
| (fhandler_base::close_with_arch): Ditto for close. |
| * fhandler.h: Many changes for archetypes. |
| (fhandler_base::set_name): Set both normalized path and regular path. |
| (fhandler_base::open_with_arch): New function. |
| (fhandler_base::open_setup): Ditto. |
| (fhandler_base::use_archetype): Ditto. |
| (fhandler_base::_archetype_usecount): Ditto. |
| (fhandler_*::size): Ditto. |
| (fhandler_dev_tape::open): Remove virtual decoration. |
| (fhandler_console::use_archetype): New function. Return true. |
| (fhandler_console::open_setup): New function. |
| (fhandler_console::dup): Delete. |
| (fhandler_tty_slave::fhandler_tty_slave): Redeclare to take an |
| argument. |
| (fhandler_tty_slave::use_archetype): New function. Return true. |
| (fhandler_tty_slave::cleanup): New function. |
| (fhandler_pty_master::use_archetype): New function. Return true. |
| (fhandler_pty_master::cleanup): New function. |
| (fhandler_pty_master::is_tty_master): New function. Return false. |
| (fhandler_tty_master::is_tty_master): New function. Return true. |
| (fhandler_dev_dsp::fhandler_dev_dsp): New function. Return true. |
| (report_tty_counts): Only report on archetype's usecount if there is |
| one. |
| * fhandler_console.cc (fhandler_console::get_tty_stuff): Remove |
| handling of setsid, set_ctty, set_flags, and manage_console_count. |
| (fhandler_console::open_setup): New function. Implement functionality |
| removed from get_tty_stuff. |
| (fhandler_console::dup): Delete. |
| (fhandler_console::output_tcsetattr): Set errno on error. |
| (fhandler_console::fhandler_console): Set device early. |
| (fhandler_console::init): Use open_with_arch to open console handles. |
| (fhandler_console::fixup_after_fork_exec): Nuke most of the stuff for |
| dealing with console handles. |
| * fhandler_dsp.cc (fhandler_dev_dsp::open): Remove archetype handling. |
| (fhandler_dev_dsp::write): Ditto. |
| (fhandler_dev_dsp::read): Ditto. |
| (fhandler_dev_dsp::close): Ditto. |
| (fhandler_dev_dsp::dup): Ditto. |
| (fhandler_dev_dsp::ioctl): Ditto. |
| (fhandler_dev_dsp::fixup_after_fork): Ditto. |
| (fhandler_dev_dsp::fixup_after_exec): Ditto. |
| * fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Add a |
| little more debugging. |
| (fhandler_tty_common::__release_output_mutex): Ditto. |
| (fhandler_pty_master::process_slave_output): Ditto. Don't do signal |
| handling or pthread_cancel handling in the tty master thread. |
| (process_output): Minor reorg. |
| (fhandler_tty_slave::fhandler_tty_slave): Set device based on new ntty |
| argument. |
| (fhandler_tty_slave::open): Remove archetype handling. Move some |
| processing into open_setup(). |
| (fhandler_tty_slave::open_setup): New function. |
| (fhandler_tty_slave::cleanup): New function. |
| (fhandler_tty_slave::close): Remove archetype handling. Move some |
| processing into cleanup(). |
| (fhandler_tty_slave::init): Rename argument from f to h. Open device |
| using open_with_arch(). Remove archetype handling. |
| (fhandler_pty_master::dup): Ditto. |
| (fhandler_pty_master::open): Ditto. |
| (fhandler_pty_master::close): Ditto. Move some handling to cleanup(). |
| (fhandler_pty_master::cleanup): New function. |
| (fhandler_tty_master::init_console): Give unique name to captive |
| console fhandler. |
| * pinfo.cc (_pinfo::set_ctty): Rename argument from arch to fh. |
| Eliminate archetype assumption. |
| * syscalls.cc (close_all_files): Use close_with_arch for closing. |
| (open): Use open_with_arch() rather than open(). |
| (close): Use close_with_arch() rather than close(). |
| |
| 2011-05-05 Corinna Vinschen <corinna@vinschen.de> |
| |
| * pinfo.h (class push_process_state): New class to push a process state |
| flag temporarily into myself->process_state. |
| * fhandler_console.cc (fhandler_console::read): Add push_process_state |
| handler. |
| (fhandler_console::write): Call bg_check from here. Add |
| push_process_state handler. |
| * fhandler_tty.cc (fhandler_tty_slave::write): Ditto. |
| (fhandler_tty_slave::read): Ditto. |
| (fhandler_pty_master::write): Ditto. |
| (fhandler_pty_master::read): Ditto. |
| * syscalls.cc (readv): Remove bg_check call and setting process state. |
| (writev): Ditto. |
| |
| 2011-05-05 Corinna Vinschen <corinna@vinschen.de> |
| |
| * syscalls.cc (readv): Add myfault handler. Don't check repeatedly |
| open state of file handler. Streamline loop. |
| (writev): Add myfault handler. |
| |
| 2011-05-05 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.cc (fhandler_base_overlapped::raw_read): Rename from |
| read_overlapped. |
| (fhandler_base_overlapped::raw_e): Rename from write_overlapped. |
| * fhandler.h (fhandler_*::raw_read): Add reparm decoration. |
| (fhandler_*::raw_write): Ditto. |
| (fhandler_base_overlapped::raw_read): Rename from read_overlapped. |
| (fhandler_base_overlapped::raw_write): Rename from write_overlapped. |
| (fhandler_pipe::raw_read): Delete. |
| (fhandler_pipe::raw_write): Ditto. |
| (fhandler_mailslot::raw_read): Ditto. |
| * fhandler_fifo.cc (fhandler_fifo::raw_read): Reflect read_overlapped |
| -> raw_read rename. |
| (fhandler_fifo::raw_write): Ditto. |
| * fhandler_mailslot.cc (fhandler_mailslot::raw_read): Delete. |
| (fhandler_mailslot::raw_write): Reflect read_overlapped -> raw_read |
| rename. |
| * pipe.cc (fhandler_pipe::raw_read): Delete. |
| (fhandler_pipe::raw_write): Ditto. |
| |
| 2011-05-05 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fork.cc (fork): Clear PID_REAPED. |
| * pinfo.cc (pinfo_init): Ditto. |
| (pinfo::init): Check for PID_REAPED. |
| * sigproc.cc (stopped_or_terminated): Ditto. |
| |
| 2011-05-05 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * pinfo.cc (_pinfo::exists): Check for PID_REAPED. |
| |
| 2011-05-05 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_disk_file.cc (fhandler_disk_file::pread): Correctly return |
| with errno set to EBADF if file open mode is incorrect. |
| (fhandler_disk_file::pwrite): Ditto. |
| |
| 2011-05-05 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.cc (is_at_eof): Drop static storage class. Drop err |
| parameter since we don't change the Win32 error here anymore. |
| (fhandler_base::raw_read): Accommodate change to is_at_eof. |
| |
| * fhandler_disk_file.cc (fhandler_disk_file::pread): In binary mode use |
| direct call to NtReadFile, rather than lseek/read. |
| (fhandler_disk_file::pwrite): In binary mode use direct call to |
| NtWriteFile, rather than lseek/write. |
| |
| 2011-05-05 Corinna Vinschen <corinna@vinschen.de> |
| |
| * dcrt0.cc (dll_crt0_1): Reset locale to "C" even when dynamically |
| loaded. |
| |
| 2011-05-05 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * posix.sgml (std-notimpl): Remove bsd_signal, setcontext, and |
| swapcontext, marked obsolete in SUSv3 and not present in SUSv4. |
| |
| 2011-05-05 Christian Franke <franke@computer.org> |
| |
| * fhandler_registry.cc (fhandler_registry::exists): Fix regression |
| in EACCES handling. |
| (fhandler_registry::open): Fix "%val" case. |
| |
| 2011-05-04 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * signal.cc (_pinfo::kill): Return success on kill(0) only if pid |
| exists or is in PID_EXITED state. Report pid 0 when pid does not exist |
| rather than pid -1. Make debug output reflect actual function call. |
| * sigproc.cc (stopped_or_terminated): Set process state to reaped when |
| we've finished waiting for it. |
| * include/sys/cygwin.h (PID_REAPED): New enum. |
| |
| 2011-05-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * cygwin.din (psiginfo): Export. |
| (psignal): Export. |
| (sys_siglist): Export. |
| * posix.sgml (std-notimpl): Move psiginfo and psignal from here... |
| (std-susv4): ... to here. |
| (std-deprec): Add sys_siglist. |
| * strsig.cc (sys_siglist): New array. |
| (psiginfo): New function. |
| * include/cygwin/signal.h (sys_siglist): Declare. |
| (psiginfo): Declare. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| |
| 2011-05-04 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dll_list::detach (dll_list::detach): Avoid doing anything with detach |
| during a failing fork. |
| |
| 2011-05-04 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dll_init.cc (dll_global_dtors): Avoid calling destructors during |
| failing fork(). |
| |
| 2011-05-04 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.h (class fhandler_base): Remove uninterruptible_io status |
| flag. |
| (fhandler_base::ready_for_read): Remove declaration. |
| (fhandler_socket::ready_for_read): Ditto. |
| (fhandler_pipe::ready_for_read): Ditto. |
| (fhandler_tty_master::is_slow): Remove. |
| * fhandler_console.cc (fhandler_console::open): Drop setting |
| uninterruptible_io. |
| * fhandler_serial.cc (fhandler_serial::open): Ditto. |
| * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Ditto. |
| (fhandler_tty_master::init_console): Ditto. |
| * pipe.cc (fhandler_pipe::fhandler_pipe): Ditto. |
| (fhandler_pipe::open): Ditto. |
| (_pipe): Ditto. |
| * select.cc (fhandler_pipe::ready_for_read): Remove. |
| (fhandler_base::ready_for_read): Remove. |
| * syscalls.cc (readv): Drop unneeded wait variable. Remove entire test |
| which might lead to calling ready_for_read. Remove now unused label |
| out. |
| |
| 2011-05-04 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.h (class fhandler_mailslot): Move down in file and change |
| parent class to fhandler_base_overlapped. Remove declaration of |
| method write. Add declaraiotns for raw_read and raw_write. |
| * fhandler_mailslot.cc (fhandler_mailslot::fhandler_mailslot): Call |
| fhandler_base_overlapped constructor. |
| (fhandler_mailslot::fstat): Call fhandler_base_overlapped::fstat. |
| (fhandler_mailslot::open): Drop FILE_SYNCHRONOUS_IO_NONALERT flag from |
| call to NtOpenFile. |
| (fhandler_mailslot::raw_read): New method. |
| (fhandler_mailslot::raw_write): Ditto. Take over length algorithm from |
| former write method. |
| (fhandler_mailslot::write): Remove. |
| (fhandler_mailslot::ioctl): Call fhandler_base_overlapped::ioctl. |
| |
| 2011-05-04 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.h (fhandler_dev_tape::_lock): Add bool parameter. |
| * fhandler_tape.cc (lock): Call _lock with false argument. |
| (_lock): Take bool cancelable parameter. Handle O_NONBLOCK. |
| Make cancelable if cancelabe parameter is true. |
| (fhandler_dev_tape::raw_read): Call _lock with true argument. |
| (fhandler_dev_tape::raw_write): Ditto. |
| |
| 2011-05-04 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_dsp.cc (fhandler_dev_dsp::Audio): Add fh member. |
| (fhandler_dev_dsp::Audio_out::Audio_out): Take pointer to encapsulating |
| fhandler_dev_dsp as parameter. |
| (fhandler_dev_dsp::Audio_in::Audio_in): Ditto. |
| (fhandler_dev_dsp::Audio::Audio): Take pointer to encapsulating |
| fhandler_dev_dsp as parameter and store in fh. |
| (fhandler_dev_dsp::Audio_out::write): Change return type to int and |
| return number of bytes written. Return -1 if waitforspace returns false |
| and no bytes have been written so far. |
| (fhandler_dev_dsp::Audio_out::waitforspace): Change return type to bool. |
| Handle O_NONBLOCK. Make waiting loop interruptible and cancelable. |
| Return false in any of these cases, otherwise true. |
| (fhandler_dev_dsp::Audio_in::read): Set returned nBytes to -1 if |
| waitfordata returns false and nothing has been read so far. |
| (fhandler_dev_dsp::Audio_in::waitfordata): Change return type to bool. |
| Handle O_NONBLOCK. Make waiting loop interruptible and cancelable. |
| Return false in any of these cases, otherwise true. |
| (fhandler_dev_dsp::write): Call Audio_out constructor with this as |
| parameter. |
| (fhandler_dev_dsp::read): Call Audio_in constructor with this as |
| parameter. |
| |
| 2011-05-04 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * thread.h (pthread::static_cancel_self): Mark as noreturn. |
| (pthread::cancel_self): Ditto. |
| * thread.cc (pthread::cancel_self): Explicitly use pthread::exit to |
| avoid a "function returns" error. |
| |
| 2011-05-04 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * pinfo.h (pinfo::pinfo): Set procinfo to NULL to avoid potential |
| cleanup of uninitialized garbage. (Suggested by Ryan Johnson) |
| |
| 2011-05-03 Corinna Vinschen <corinna@vinschen.de> |
| |
| * select.cc (cygwin_select): Make degenerate case cancelable. |
| (select_stuff::destroy): New inline method to delete memory taken |
| by select_stuff. |
| (select_stuff::~select_stuff): Call destroy. |
| (select_stuff::wait): Add case to allow canceling select. |
| * select.h (select_stuff::destroy): Declare. |
| * thread.cc: Mark poll, pselect and poll as cancelable. |
| |
| 2011-05-03 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Make |
| cancelable. Remove test for main thread, always add signal_arrived |
| to waited objects. |
| |
| 2011-05-03 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_tty.cc (fhandler_tty_slave::read): Set WFMO timeout to 0 for |
| nonblocking case. Drop useless waiter variable. Rewrite wait for |
| input_available_event to use a switch statement. Handle timeout and |
| failure more gracefully. Make restartable and cancelable. Rewrite |
| wait for input_mutex to use WFMO and a switch statement. Handle |
| timeout and failure more gracefully. Make restartable and cancelable. |
| |
| 2011-05-02 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * signal.cc (_pinfo::kill): Avoid referencing 'pid' after ESRCH. |
| |
| 2011-05-02 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * cygwin.din (pthread_attr_getstack): Export. |
| (pthread_attr_getstackaddr): Export. |
| (pthread_getattr_np): Export. |
| * ntdll.h (enum _THREAD_INFORMATION_CLASS): Add ThreadBasicInformation. |
| (struct _THREAD_BASIC_INFORMATION): Define. |
| (NtQueryInformationThread): Declare. |
| * posix.sgml (std-susv4): Add pthread_attr_getstack. |
| (std-gnu): Add pthread_getattr_np. |
| (std-deprec): Add pthread_attr_getstackaddr. |
| (std-notimpl): Remove pthread_attr_[gs]etstackaddr, as they were |
| removed from SUSv4. |
| * thread.cc (pthread_attr::pthread_attr): Initialize stackaddr. |
| (pthread_attr_getstack): New function. |
| (pthread_attr_getstackaddr): New function. |
| (pthread_attr_setstacksize): Return EINVAL if passed size less than |
| PTHREAD_STACK_MIN, as required by POSIX. |
| (pthread_getattr_np): New function. |
| * thread.h (class pthread_attr): Add stackaddr member. |
| * include/pthread.h (pthread_attr_getstack): Declare. |
| (pthread_attr_getstackaddr): Declare unconditionally. |
| (pthread_attr_setstack): Declare inside false conditional for reference. |
| (pthread_getattr_np): Declare. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| |
| 2011-05-02 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * Makefile.in: Allow CFLAGS to be overridden from the environment. |
| |
| 2011-05-02 Corinna Vinschen <corinna@vinschen.de> |
| |
| * thread.cc (cancelable_wait): Remove test for main thread. |
| * fhandler_fifo.cc (fhandler_fifo::open_nonserver): Ditto. |
| |
| 2011-05-02 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_tty.cc (andler_pty_master::process_slave_output): Make |
| interruptible and cancelable. Fix nonblocking case. |
| |
| 2011-05-02 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_console.cc (fhandler_console::read): Make restartable and |
| cancelable. |
| |
| 2011-05-02 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * strace.cc (strace::vprntf): Avoid closing unopened handle. |
| |
| 2011-05-02 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * sysconf.cc (sca): Set _SC_SPIN_LOCKS to _POSIX_SPIN_LOCKS. |
| |
| 2011-05-02 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dll_init.cc (dll_list::alloc): Reset 'p' in forked process. |
| |
| * select.cc (select_stuff::wait): Move cleanup() closer to WFMO to |
| minimize unavoidable (?) race. |
| |
| 2011-05-02 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_serial.cc (fhandler_serial::raw_read): Add restartability |
| after a signal. Add cancelability. |
| (fhandler_serial::raw_write): Wait for write to succeed if O_NONBLOCK |
| is not set. Add signal handling and cancelability. |
| |
| 2011-05-01 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_windows.cc (fhandler_windows::read): Use |
| pthread::get_cancel_event to fetch thread's cancel event. |
| * flock.cc (lf_setlock): Ditto. |
| * posix_ipc.cc (ipc_cond_timedwait): Ditto. |
| * thread.cc (pthread::get_cancel_event): New static method. |
| * thread.h (pthread::get_cancel_event): Declare. |
| |
| 2011-05-01 Corinna Vinschen <corinna@vinschen.de> |
| |
| * libc/minires-os-if.c (get_dns_info): Remove unnecessary test for |
| existence of DnsQuery_A. |
| |
| 2011-05-01 Corinna Vinschen <corinna@vinschen.de> |
| |
| Throughout, use user32 UNICODE functions rather than ANSI functions. |
| * autoload.cc: Convert all definitions for ANSI user32 functions to |
| definitions for the corresponding UNICODE function. |
| (SendMessageA): Remove. |
| (SendNotifyMessageW): Define. |
| * fhandler.h (fhandler_windows::is_slow): Remove. |
| * fhandler_windows.cc (fhandler_windows::write): Use SendNotifyMessageW |
| call rather than SendMessage to make function always return immediately. |
| (fhandler_windows::read): Make function interruptible and a cancellation |
| point. Handle O_NONBLOCK. |
| * select.cc (peek_serial): Don't wait for signal_arrived here. |
| * window.cc (wininfo::winthread): Call CreateWindowExW directly rather |
| than CreateWindow wrapper. |
| |
| 2011-05-01 Corinna Vinschen <corinna@vinschen.de> |
| |
| * net.cc (fdsock): Drop setting uninterruptible_io to true. |
| |
| 2011-05-01 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.h (fhandler_socket::is_slow): Remove. |
| |
| 2011-04-30 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fcntl.cc (fcntl64): Call pthread_testcancel. |
| * fhandler_socket.cc (fhandler_socket::connect): Ditto. |
| (fhandler_socket::accept4): Ditto. |
| (fhandler_socket::recvfrom): Ditto. |
| (fhandler_socket::recvmsg): Ditto. |
| (fhandler_socket::sendto): Ditto. |
| (fhandler_socket::sendmsg): Ditto. |
| * flock.cc (lf_setlock): Allow to cancel thread running blocking |
| file lock. Try to make code more readable. |
| (lockf): Call pthread_testcancel. |
| * mmap.cc (msync): Ditto. |
| * posix_ipc.cc (ipc_cond_timedwait): Call pthread::static_cancel_self |
| rather than pthread_testcancel. |
| * select.cc (cygwin_select): Call pthread_testcancel. |
| * syscalls.cc (pread): Ditto. |
| (pwrite): Ditto. |
| (readv): Ditto. |
| (writev): Ditto. |
| (open): Ditto. |
| (close): Ditto. |
| (fsync): Ditto. |
| * termios.cc (tcdrain): Ditto. |
| * thread.cc: Align list of cancellation points with above changes. |
| Mark not-implemented functions, too. |
| (cancelable_wait): Don't set unused object indices to WAIT_FAILED |
| since that could result in wrong behaviour. Set them to the invalid |
| value WAIT_TIMEOUT + 1 instead. |
| |
| 2011-04-30 Corinna Vinschen <corinna@vinschen.de> |
| |
| * thread.h (class pthread): Add bool member canceled. |
| * thread.cc (pthread::pthread): Initialize canceled to false. |
| (pthread::cancel): Set canceled before setting cancel_event. |
| (pthread::testcancel): Check for canceled. Only wait for cancel_event |
| if canceled is true. Explain why. |
| (pthread::_fixup_after_fork): Set canceled to false. |
| |
| 2011-04-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * errno.cc (errmap): Sort. Map ERROR_EXE_MACHINE_TYPE_MISMATCH to |
| ENOEXEC. |
| |
| 2011-04-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * thread.cc: Update comment listing cancellation points per POSIX. |
| |
| 2011-04-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * advapi32.cc: Add comment. |
| (EqualSid): Remove. |
| (CopySid): Remove. |
| (AddAccessAllowedAce): Remove. |
| (AddAccessDeniedAce): Remove. |
| (MakeSelfRelativeSD): Remove. |
| * flock.cc: Replace above functions throughout with their ntdll.dll |
| equivalent. |
| * sec_acl.cc: Ditto. |
| * sec_auth.cc: Ditto. |
| * sec_helper.cc: Ditto. |
| * security.cc: Ditto. |
| * security.h: Ditto. |
| (RtlEqualSid): Declare. Explain why. |
| (RtlCopySid): Ditto. |
| |
| 2011-04-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * advapi32.cc (AccessCheck): Remove. |
| (PrivilegeCheck): Remove. |
| (OpenThreadToken): Remove. |
| * fhandler_tty.cc: Replace above functions throughout with their |
| ntdll.dll equivalent. |
| * security.cc: Ditto. |
| |
| 2011-04-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * ntdll.h (IsEventSignalled): New inline function. |
| * cygthread.cc (cygthread::terminate_thread): Use IsEventSignalled in |
| place of WaitForSingleObject on event with 0 timeout. |
| * fhandler.cc (fhandler_base_overlapped::has_ongoing_io): Ditto. |
| * fhandler_fifo.cc (fhandler_fifo::open_nonserver): Ditto. |
| (fhandler_fifo::wait): Ditto. |
| * fhandler_termios.cc (fhandler_termios::bg_check): Ditto. |
| * select.cc (verify_tty_slave): Ditto. |
| * thread.cc (pthread::testcancel): Ditto. |
| |
| 2011-04-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * advapi32.cc (GetTokenInformation): Remove. |
| (SetTokenInformation): Remove. |
| * grp.cc: Replace above functions throughout with their ntdll.dll |
| equivalent. |
| * sec_auth.cc: Ditto. |
| * syscalls.cc: Ditto. |
| * uinfo.cc: Ditto. |
| |
| 2011-04-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * posix_ipc.cc (ipc_cond_timedwait): Only wait for pthread's |
| cancel_event if thread's cancelability isn't disabled. |
| |
| 2011-04-28 Corinna Vinschen <corinna@vinschen.de> |
| |
| * advapi32.cc (SetSecurityDescriptorDacl): Remove. |
| (SetSecurityDescriptorGroup): Remove. |
| (SetSecurityDescriptorOwner): Remove. |
| * pinfo.cc: Replace above functions throughout with their ntdll.dll |
| equivalent. |
| * sec_acl.cc: Ditto. |
| * sec_helper.cc: Ditto. |
| * security.cc: Ditto. |
| |
| * sec_helper.cc (__sec_user): Remove old comment. |
| |
| 2011-04-28 Corinna Vinschen <corinna@vinschen.de> |
| |
| * posix_ipc.cc (ipc_cond_timedwait): Also wait for pthread's |
| cancel_event, if any. Call pthread_testcancel if cancel_event has been |
| signalled. |
| |
| 2011-04-28 Corinna Vinschen <corinna@vinschen.de> |
| |
| * posix_ipc.cc (ipc_cond_timedwait): Remove pthread_testcancel calls. |
| (_mq_send): Add pthread_testcancel call at start of function. |
| (_mq_receive): Ditto. |
| |
| 2011-04-28 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygerrno.h (geterrno_from_nt_status): Declare. |
| * errno.cc (geterrno_from_nt_status): Define. |
| * flock.cc: Fix copyright dates. |
| * ntdll.h (enum _TIMER_TYPE): Define. |
| (PTIMER_APC_ROUTINE): Define. |
| (NtCancelTimer): Declare. |
| (NtCreateTimer): Declare. |
| (NtSetTimer): Declare. |
| * posix_ipc.cc (ipc_cond_timedwait): Rewrite to make interruptible and |
| restartable. Call pthread_testcancel in case of timeout to enable |
| pthread_cancel on waiting thread. Replace WFMO timeout with waiting |
| for a waitable timer. Explain why. Replace single call to WFMO with |
| two calls, one for the event, one for the mutex. Don't lock mutex in |
| case of error. |
| (ipc_cond_signal): Make void function. |
| (ipc_cond_close): Ditto. |
| (_mq_send): Immediately return -1 in case of error from |
| ipc_cond_timedwait. |
| (_mq_receive): Ditto. |
| |
| 2011-04-28 Corinna Vinschen <corinna@vinschen.de> |
| |
| * advapi32.cc (GetSecurityDescriptorDacl): Remove. |
| (GetSecurityDescriptorGroup): Remove. |
| (GetSecurityDescriptorOwner): Remove. |
| * sec_acl.cc: Replace above functions throughout with their ntdll.dll |
| equivalent. Remove redundant debug output. |
| * sec_auth.cc: Ditto. |
| * security.cc: Ditto. |
| * uinfo.cc: Ditto. |
| |
| 2011-04-28 Corinna Vinschen <corinna@vinschen.de> |
| |
| * advapi32.cc (InitializeAcl): Remove. |
| (AddAce): Remove. |
| (FindFirstFreeAce): Remove. |
| (GetAce): Remove. |
| (InitializeSecurityDescriptor): Remove. |
| (OpenProcessToken): Remove. |
| * dcrt0.cc: Replace above functions throughout with their ntdll.dll |
| equivalent. |
| * fhandler_tty.cc: Ditto. |
| * flock.cc: Ditto. |
| * pinfo.cc: Ditto. Drop unnecessary error handling. |
| * sec_acl.cc: Ditto. |
| * sec_auth.cc: Ditto. |
| * sec_helper.cc: Ditto. |
| * security.cc: Ditto. |
| |
| 2011-04-28 Corinna Vinschen <corinna@vinschen.de> |
| |
| * advapi32.cc (InitializeSid): Remove. |
| (EqualPrefixSid): Remove. |
| (GetLengthSid): Remove. |
| (GetSidSubAuthority): Remove. |
| (GetSidSubAuthorityCount): Remove. |
| (GetSidIdentifierAuthority): Remove. |
| * fhandler_disk_file.cc: Replace above functions throughout with their |
| ntdll.dll equivalent. |
| * sec_auth.cc: Ditto. |
| * sec_helper.cc: Ditto. |
| * security.cc: Ditto. |
| |
| 2011-04-28 Corinna Vinschen <corinna@vinschen.de> |
| |
| * advapi32.cc (AllocateLocallyUniqueId): Remove. |
| * fhandler_disk_file.cc (fhandler_base::open_fs): Replace call to |
| AllocateLocallyUniqueId with call to NtAllocateLocallyUniqueId; |
| * posix_ipc.cc (mq_open): Ditto. Drop error handling for that call. |
| (sem_open): Ditto. |
| |
| 2011-04-28 Corinna Vinschen <corinna@vinschen.de> |
| |
| * autoload.cc (GetSecurityInfo): Remove. |
| * ntdll.h (RtlConvertToAutoInheritSecurityObject): Declare. |
| (RtlDeleteSecurityObject): Declare. |
| (RtlGetControlSecurityDescriptor): Declare. |
| (RtlLengthSecurityDescriptor): Declare. |
| * security.cc (file_mapping): New global variable. |
| (get_file_sd): Rewrite. Clean up code. Get rid of GetSecurityInfo |
| call. |
| (alloc_sd): Call RtlSetControlSecurityDescriptor to set |
| SE_DACL_PROTECTED flag. |
| (check_file_access): Remove mapping. Use file_mapping instead. |
| (check_registry_access): Rename mapping to reg_mapping. |
| * wincap.cc: Througout, drop use_get_sec_info_on_dirs, |
| * wincap.h (struct wincaps): Drop use_get_sec_info_on_dirs. |
| |
| 2011-04-24 Corinna Vinschen <corinna@vinschen.de> |
| |
| * include/fenv.h: Add missing _FENV_H_ define. |
| |
| 2011-04-23 Corinna Vinschen <corinna@vinschen.de> |
| |
| * registry.cc (reg_key::get_dword): Rename from get_int, use DWORD |
| rather than int type. Avoid compiler warning. |
| (reg_key::set_dword): Rename from set_int, use DWORD rather than int |
| type. Change return type to NTSTATUS. |
| (reg_key::get_string): Change return type to NTSTATUS. |
| (reg_key::set_string): Ditto. |
| * registry.h: Accommodate above changes. |
| * environ.cc (regopt): Test return value of reg_key::get_string as |
| NTSTATUS. |
| * sched.cc (sched_rr_get_interval): Change local int vars to DWORD. |
| Call reg_key::get_dword instead of reg_key::get_int. |
| * shared.cc (init_installation_root): Test return value of |
| reg_key::get_string as NTSTATUS. |
| (shared_info::heap_slop_size): Call reg_key::get_dword rather than |
| reg_key::get_int. |
| (shared_info::heap_chunk_size): Ditto. |
| * shared_info.h (CURR_SHARED_MAGIC): Update. |
| (class shared_info): Change heap_chunk and heap_slop to DWORD values. |
| |
| 2011-04-21 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygtls.cc (_cygtls::init_thread): Drop setting locals.process_logmask. |
| * cygtls.cc (_cygtls::remove): Always free mallocated TLS storage on |
| thread exit. Drop freeing locals.process_ident. |
| * cygtls.h (struct _local_storage): Remove syslog-related members. |
| * syslog.cc (syslog_globals): New static storage for global syslog |
| settings. Use throughout instead of _my_tls.locals. |
| (openlog): Set new syslog_globals.process_ident value more carefully. |
| * tlsoffsets.h: Regenerate. |
| |
| 2011-04-21 Thomas Stalder <cygwinml@gmail.com> |
| |
| * include/sys/poll.h: Include signal.h to get definition of sigset_t. |
| |
| 2011-04-20 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * cygheap.cc (init_cygheap::close_ctty): Avoid closing console-cttys |
| since they don't use archetypes and this will just result in double |
| frees. |
| * dll_init.cc (dll_list::protect): Define. |
| (dll_list::alloc): Guard list access. |
| (dll_list::detach): Ditto. |
| * dll_init.h (dll_list::protect): Declare new muto. |
| (dll_list::guard): Define/declare function to guard list access. |
| * fhandler_termios.cc (fhandler_termios::sigflush): Avoid SEGV in |
| pathological condition of get_ttyp() == NULL. |
| |
| 2011-04-20 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * select.cc (serial_cleanup): Make sure that device_specific_pipe is |
| always deleted regardless of whether it has a unique thread associated |
| with it |
| (socket_cleanup): Ditto. |
| (mailslot_cleanup): Ditto. |
| |
| 2011-04-20 Corinna Vinschen <corinna@vinschen.de> |
| |
| * devices.h: Renumber internal devices so that FH_PROCESS is part of |
| the /proc family of virtual devices. |
| (FH_PROC_MAX_MINOR): Define. |
| * path.h (isproc_dev): Use FH_PROC_MAX_MINOR rather than FH_PROC. |
| |
| 2011-04-19 Peter Rosin <peda@lysator.liu.se> |
| |
| * select.cc (pipe_cleanup): Make sure that device_specific_pipe is |
| always deleted regardless of whether it has a unique thread associated |
| with it. |
| |
| 2011-04-19 Jon TURNEY <jon.turney@dronecode.org.uk> |
| |
| * thread.cc (semaphore::init): We cannot reliably infer anything from |
| the existing contents of sem, so merely warn rather than return EBUSY |
| if it looks like we are reinitialising a semaphore. |
| |
| 2011-04-19 Corinna Vinschen <corinna@vinschen.de> |
| |
| * autoload.cc (GetConsoleWindow): Drop. |
| (GetSystemWindowsDirectoryW): Drop. |
| * fhandler_console.cc (beep): Call GetSystemWindowsDirectoryW instead of |
| GetWindowsDirectoryW. |
| * uinfo.cc (cygheap_user::env_systemroot): Call |
| GetSystemWindowsDirectoryW and convert to multibyte on the fly. |
| * winlean.h (GetWindowsDirectoryW): Redefine to something invalid. |
| Explain why. |
| |
| 2011-04-19 Corinna Vinschen <corinna@vinschen.de> |
| |
| * Makefile.in (DLL_IMPORTS): Drop advapi32.dll. |
| * autoload.cc: Enable autoloading advapi32 functions. |
| * environ.cc (regopt): Use wide char arguments in reg_key functions. |
| * fhandler_console.cc (beep): Ditto. Use WCHAR throughout. |
| * registry.cc (reg_key): Rewrite reg_key class to use native NT registry |
| functions. Use WCHAR string parameters throughout. Use PCWSTR rather |
| than const WCHAR. Drop multibyte char functionality. Drop unused |
| methods. |
| (get_registry_hive_path): Use RtlQueryRegistryValues to fetch path from |
| registry. |
| (load_registry_hive): Drop useless check for user hive being available. |
| Load hive using NtLoadKey. |
| * registry.h: Accommodate above changes. |
| * sched.cc (sched_rr_get_interval): Use wide char arguments in reg_key |
| functions. |
| * shared.cc (init_installation_root): Ditto. |
| (shared_info::init_obcaseinsensitive): Use RtlQueryRegistryValues to |
| fetch obcaseinsensitive value. |
| (shared_info::heap_slop_size): Use wide char arguments in reg_key |
| functions. |
| (shared_info::heap_chunk_size): Ditto. |
| * syscalls.cc (gethostid): Ditto. |
| * winsup.h (__WIDE): Define. |
| (_WIDE): Define. |
| * libc/minires-os-if.c (get_registry_dns_items): Don't fetch values |
| from registry. Just extract them from given UNICODE_STRING parameter. |
| (get_registry_dns): Fetch all registry values at once using |
| RtlQueryRegistryValues. |
| |
| 2011-04-19 Corinna Vinschen <corinna@vinschen.de> |
| |
| * net.cc (get_ipv4fromreg_ipcnt): Rearrange to fetch all registry |
| values at once using RtlQueryRegistryValues. |
| (get_ipv4fromreg): Ditto. |
| |
| 2011-04-19 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_registry.cc (fhandler_registry::fstat): Use RegQueryInfoKeyW. |
| |
| 2011-04-19 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_proc.cc (read_value): Remove definition. |
| (print): Simplify. |
| (format_proc_cpuinfo): Drop useless call to GetSystemInfo. Rearrange |
| to use Rtl registry functions. Rename dwOldThreadAffinityMask to |
| orig_affinity_mask. |
| |
| 2011-04-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * localtime.cc (tzload): Don't change global timezone information |
| when called from gmtime or gmtime_r. |
| (tzparse): Ditto. |
| |
| 2011-04-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygtls.cc (_cygtls::remove): Always close sockevt handle. |
| |
| 2011-04-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygwin.din (ppoll): Export. |
| * poll.cc (ppoll): Implement. |
| * posix.sgml (std-gnu): Add ppoll. |
| * include/cygwin/version.h: Bump API minor number. |
| * include/sys/poll.h (ppoll): Declare. |
| |
| 2011-04-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_socket.cc (fhandler_socket::evaluate_events): Handle the |
| FD_CLOSE event specially when called from accept. Explain why. |
| (fhandler_socket::shutdown): Fake success on not-connected socket and |
| trigger socket event if the read side of a socket is affected. Explain |
| why. |
| * poll.cc (poll): Check for saw_shutdown_read on sockets to generate |
| POLLHUP as well. |
| |
| 2011-04-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * Fix various copyrights. |
| |
| 2011-04-17 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * signal.cc (_pinfo::kill): Set this_process_state when process |
| exists. |
| |
| 2011-04-17 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * signal.cc (_pinfo::kill): Return 0 when attempting to test for |
| existence of an existed process which has not yet been reaped. |
| |
| 2011-04-17 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * cygheap.h (init_cygheap::ctty): Use base class so that console can |
| join in the fun. |
| * dtable.cc (dtable::stdio_init): Remove special-case call to |
| set_console_ctty (). |
| * exceptions.cc (sigpacket::process): Conditionally flush terminal |
| input on certain signals. |
| * fhandler.h (fhandler_console::get_tty_stuff): Make non-static. |
| (fhandler_termios::get_ttyp): Move here. |
| (fhandler_termios::sigflush): Declare. |
| (fhandler_tty_common::get_ttyp): Delete. |
| * fhandler_console.cc (fhandler_console::get_tty_stuff): Pass this as |
| "arch" argument. |
| (set_console_ctty): Delete. |
| (tty_list::get_tty): Just return pointer to shared console region, |
| delaying get_tty_stuff until open(). |
| (fhandler_console::init): Treat NULL handle as signifying that console |
| should be opened with O_NOCTTY flag. Rename handle argument to the |
| more common 'h'. |
| * fhandler_termios.cc (fhandler_termios::sigflush): Define. |
| * fhandler_tty.cc (handler_tty_master::init_console): Pass NULL as |
| first argument to fhandler_console::init. |
| * pinfo.cc (_pinfo::set_ctty): Change third parameter to |
| fhandler_termios *. Add extra debugging. |
| * pinfo.h (_pinfo::set_ctty): Change third parameter to |
| fhandler_termios *. |
| |
| * exceptions.cc (handle_sigsuspend): Don't special-case non-main threads. |
| |
| 2011-04-15 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * thread.cc (pthread_setschedprio): New function. |
| * include/pthread.h (pthread_setschedprio): Declare. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| * cygwin.din (pthread_setschedprio): Export. |
| * posix.sgml (std-notimpl) Move pthread_setschedprio from here... |
| (std-susv4) ...to here. |
| |
| 2011-04-10 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * fhandler_proc.cc (proc_tab): Add /proc/swaps virtual file. |
| (format_proc_swaps): New function. |
| |
| 2011-04-06 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * Makefile.in: Move srcdir definition before others which uses it. |
| |
| 2011-04-06 Jon TURNEY <jon.turney@dronecode.org.uk> |
| |
| * dll_init.cc (reserve_at, release_at): New functions. |
| (load_after_fork): If the DLL was loaded higher than the required |
| address, assume that it loaded at it's base address and also reserve |
| memory there to force it to be relocated. |
| |
| 2011-04-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * include/cygwin/types.h: Move #include <sys/sysmacros.h> to |
| end of header so that it gets the dev_t typedef. |
| * include/sys/sysmacros.h (gnu_dev_major, gnu_dev_minor, |
| gnu_dev_makedev): Prototype and define as inline functions. |
| (major, minor, makedev): Redefine in terms of gnu_dev_*. |
| |
| 2011-04-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * include/cygwin/types.h: Move multiple inclusion guards to |
| beginning and end of header. |
| |
| 2011-04-04 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * Makefile.in: Move Makefile.common include earlier to fix problems |
| with relative ${srcdir} path which confuses make. |
| |
| 2011-04-04 Corinna Vinschen <corinna@vinschen.de> |
| |
| Drop NT4 support. |
| * autoload.cc (DnsQuery_A): Fatal if not available. |
| (DnsRecordListFree): Ditto. |
| (DsGetDcNameW): Ditto. |
| (NetGetAnyDCName): Remove. |
| (NetGetDCName): Remove. |
| (EnumProcessModules): Fatal if not available. |
| (GetModuleFileNameExW): Ditto. |
| (GetModuleInformation): Ditto. |
| (GetProcessMemoryInfo): Ditto. |
| (QueryWorkingSet): Ditto. |
| (LsaRegisterLogonProcess): Ditto. |
| * fenv.cc (_feinitialise): Drop supports_sse condition. |
| * fhandler_disk_file.cc (path_conv::isgood_inode): Fix comment. |
| (fhandler_base::fstat_by_name): Drop has_fileid_dirinfo condition. |
| (fhandler_disk_file::opendir): Ditto. |
| * fhandler_netdrive.cc (fhandler_netdrive::readdir): Fix comment. |
| * fhandler_proc.cc (format_proc_partitions): Drop NT4-only code. |
| * fhandler_process.cc (get_process_state): Ditto. |
| * kernel32.cc (GetWindowsDirectoryW): Remove. |
| (GetWindowsDirectoryA): Remove. |
| * miscfuncs.cc (nice_to_winprio): Drop NT4-only code. |
| * mount.cc (fs_info::update): Fix comments. |
| * net.cc (get_2k_ifs): Drop NT4-only code. |
| * sec_auth.cc (get_logon_server): Ditto. |
| (lsaauth): Drop NT4-specific error handling. |
| * security.cc (alloc_sd): Set SE_DACL_PROTECTED unconditionally. |
| * select.cc (select_stuff::wait): Always use MWMO_INPUTAVAILABLE. |
| (peek_windows): Drop NT4-only condition in call to PeekMessage. |
| * syscalls.cc (gethostid): Remove NT4-only workaround. |
| * wincap.cc: Througout, drop has_dacl_protect, |
| has_broken_if_oper_status, has_process_io_counters, |
| has_terminal_services, has_extended_priority_class, has_guid_volumes, |
| has_fileid_dirinfo, has_mwmo_inputavailable and supports_sse from |
| wincaps. |
| (wincap_nt4sp4): Remove. |
| (wincap_minimal): Set to wincap_2000. |
| (wincapc::init): Rely on availability of OSVERSIONINFOEX structure. |
| Treat error from GetVersionEx as fatal. Treat NT4 as fatal. |
| * wincap.h (struct wincaps): Drop has_dacl_protect, |
| has_broken_if_oper_status, has_process_io_counters, |
| has_terminal_services, has_extended_priority_class, has_guid_volumes, |
| has_fileid_dirinfo, has_mwmo_inputavailable and supports_sse flags |
| and methods. |
| * winlean.h (GetWindowsDirectoryW) Define as GetSystemWindowsDirectoryW. |
| (GetWindowsDirectoryA): Define as GetSystemWindowsDirectoryA. |
| |
| 2011-04-04 Corinna Vinschen <corinna@vinschen.de> |
| |
| * dtable.cc (dtable::init_std_file_from_handle): Fix a comment to |
| reflect the current state. |
| |
| 2011-04-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * Makefile.in (fhandler_proc_CFLAGS): Define USERNAME, HOSTNAME, |
| and GCC_VERSION. |
| * fhandler_proc.cc (format_proc_version): Add build machine and GCC |
| version information as on Linux. |
| |
| 2011-04-04 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| Corinna Vinschen <corinna@vinschen.de> |
| |
| * devices.h (fh_devices): Define FH_PROC_MIN_MINOR. |
| Reorder major-0 devices so that all /proc directories fall |
| between FH_PROC and FH_PROC_MIN_MINOR. |
| * path.h (isproc_dev): Redefine accordingly. |
| |
| 2011-04-04 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygserver_setpwd.h (setlsapwd): Add username parameter to declaration. |
| * external.cc (cygwin_internal): In the CW_SET_PRIV_KEY case, fetch |
| additional username parameter. |
| * setlsapwd.cc (setlsapwd): Add username parameter. Allow admin to |
| set the hidden password for other users. |
| |
| 2011-04-04 Corinna Vinschen <corinna@vinschen.de> |
| |
| * sec_auth.cc (get_user_groups): Mark well-known groups as well-known. |
| (get_user_local_groups): Ditto. |
| (verify_token): Drop useless label. |
| * sec_helper.cc (cygsid::get_sid): Check for well-known SID if |
| well_known isn't set. |
| * security.h (well_known_sid_type): New inline function. |
| |
| 2011-04-02 Corinna Vinschen <corinna@vinschen.de> |
| |
| * autoload.cc (FindFirstVolumeA): Remove. |
| (FindNextVolumeA): Remove. |
| (FindVolumeClose): Remove. |
| (GetVolumeNameForVolumeMountPointA): Remove. |
| * ntdll.h (NtFlushBuffersFile): Declare. |
| * syscalls.cc (sync_worker): Rewrite using native NT functions. |
| (sync): Ditto. |
| |
| 2011-04-02 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_proc.cc (format_proc_partitions): Express length in WCHAR |
| size. |
| |
| 2011-04-02 Corinna Vinschen <corinna@vinschen.de> |
| |
| * autoload.cc (GetExtendedTcpTable): Remove. |
| (GetTcpTable): Remove. |
| (CharNextExA): Remove. |
| (FindWindowA): Remove. |
| (ShowWindowAsync): Remove. |
| * dcrt0.cc (disable_dep): Remove unused function. |
| (dll_crt0_0): Drop comment babbling about TS & DEP. |
| * fhandler_socket.cc (address_in_use): Remove unused function. |
| * wincap.cc: Throughout, drop ts_has_dep_problem from wincaps. |
| (wincapc::init): Drop code setting ts_has_dep_problem flag. |
| * wincap.h (struct wincaps): Drop ts_has_dep_problem flags and method. |
| |
| 2011-04-01 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| Implement /proc/sysvipc/* |
| * devices.in (dev_procsysvipc_storage): Add. |
| * devices.cc: Regenerate. |
| * devices.h (fh_devices): Add FH_PROCSYSVIPC. |
| * dtable.cc (build_fh_pc): Add case FH_PROCSYSVIPC. |
| * fhandler.h (class fhandler_procsysvipc): Declare. |
| (fhandler_union): Add __procsysvipc. |
| * fhandler_proc.cc (proc_tab): Add sysvipc virt_directory. |
| * fhandler_procsysvipc.cc: New file. |
| * Makefile.in (DLL_OFILES): Add fhandler_procsysvipc.o. |
| * path.h (isproc_dev): Add FH_PROCSYSVIPC to conditional. |
| |
| 2011-04-01 Corinna Vinschen <corinna@vinschen.de> |
| |
| * Makefile.in (DLL_OFILES): Add avapi32.o. |
| * advapi32.cc: New file. |
| * autoload.cc: Add block of remaining advapi32 functions used by |
| Cygwin. Keep commented out. Explain why. |
| |
| 2011-04-01 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * fhandler_proc.cc (format_proc_loadavg): Add running/total |
| processes as fourth component of output. |
| * fhandler_process.cc (get_process_state): Make non-static. |
| Add FIXME about generating an 'O' flag. |
| |
| 2011-04-01 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_random.cc (fhandler_dev_random::crypt_gen_random): |
| Use CryptAcquireContextW. |
| * ntdll.h (STATUS_PROCEDURE_NOT_FOUND): Define. |
| * sec_auth.cc (open_local_policy): Rename NTSTATUS variable ret to |
| status. Drop usage of LsaNtStatusToWinError. |
| (verify_token): Call NtQuerySecurityObject instead of |
| GetKernelObjectSecurity. |
| (create_token): Rename NTSTATUS variable ret to status. Rename ret2 to |
| sub_status. Drop usage of LsaNtStatusToWinError. In case LsaLogonUser |
| fails, report the sub_status as well. |
| |
| 2011-04-01 Corinna Vinschen <corinna@vinschen.de> |
| |
| * libc/strptime.c: Remove misleading comment. |
| |
| 2011-03-31 Corinna Vinschen <corinna@vinschen.de> |
| |
| * ntdll.h: Allow usage from plain C code. |
| (FSCTL_PIPE_IMPERSONATE): Define. |
| (enum _THREAD_INFORMATION_CLASS): Define. |
| (RTL_QUERY_REGISTRY_xxx): Define. |
| (RTL_REGISTRY_xxx): Define. |
| (PRTL_QUERY_REGISTRY_ROUTINE): Define. |
| (struct _RTL_QUERY_REGISTRY_TABLE): Define. |
| (enum _KEY_VALUE_INFORMATION_CLASS): Define. |
| (struct _KEY_VALUE_PARTIAL_INFORMATION): Define. |
| (NtAccessCheck): Declare. |
| (NtAllocateLocallyUniqueId): Declare. |
| (NtCreateKey): Declare. |
| (NtDuplicateToken): Declare. |
| (NtLoadKey): Declare. |
| (NtOpenKey): Declare. |
| (NtOpenProcessToken): Declare. |
| (NtOpenThreadToken): Declare. |
| (NtPrivilegeCheck): Declare. |
| (NtQueryInformationToken): Declare. |
| (NtQueryValueKey): Declare. |
| (NtSetInformationThread): Declare. |
| (NtSetInformationToken): Declare. |
| (NtSetValueKey): Declare. |
| (RtlAbsoluteToSelfRelativeSD): Declare. |
| (RtlAddAccessAllowedAce): Declare. |
| (RtlAddAccessDeniedAce): Declare. |
| (RtlAddAce): Declare. |
| (RtlCheckRegistryKey): Declare. |
| (RtlCopySid): Declare. |
| (RtlCreateAcl): Declare. |
| (RtlCreateRegistryKey): Declare. |
| (RtlCreateSecurityDescriptor): Declare. |
| (RtlEqualPrefixSid): Declare. |
| (RtlEqualSid): Declare. |
| (RtlFirstFreeAce): Declare. |
| (RtlGetAce): Declare. |
| (RtlGetDaclSecurityDescriptor): Declare. |
| (RtlGetGroupSecurityDescriptor): Declare. |
| (RtlGetOwnerSecurityDescriptor): Declare. |
| (RtlIdentifierAuthoritySid): Declare. |
| (RtlInitializeSid): Declare. |
| (RtlLengthSid): Declare. |
| (RtlQueryRegistryValues): Declare. |
| (RtlSetControlSecurityDescriptor): Declare. |
| (RtlSetDaclSecurityDescriptor): Declare. |
| (RtlSetGroupSecurityDescriptor): Declare. |
| (RtlSetOwnerSecurityDescriptor): Declare. |
| (RtlSubAuthorityCountSid): Declare. |
| (RtlSubAuthoritySid): Declare. |
| (RtlWriteRegistryValue): Declare. |
| |
| 2011-03-31 Corinna Vinschen <corinna@vinschen.de> |
| |
| * uinfo.cc (cygheap_user::init): Don't call GetUserName. Fetch username |
| from Windows environment instead. Explain why. |
| (cygheap_user::env_domain): Use MAX_DOMAIN_NAME_LEN rather than DNLEN |
| to specify the size of the domain name buffer. |
| |
| 2011-03-30 Corinna Vinschen <corinna@vinschen.de> |
| |
| * hires.h: Fix copyright. |
| * times.cc: Ditto. |
| (FACTOR): Add comment. |
| (NSPERSEC): Ditto. |
| (JITTER): New definition. Comment. |
| (systime_ns): Avoid gratuitous copying of the value returned by |
| GetSystemTimeAsFileTime. |
| (corelocaltime, localtime, gmtime): Remove very old, unused code block. |
| (cygwin_tzset): Remove. |
| (hires_ms::timeGetTime_ns): Add missing semicolon in comment. |
| (hires_ms::nsecs): Redefine check for difference between internal |
| timer value and system time. |
| |
| 2011-03-30 Corinna Vinschen <corinna@vinschen.de> |
| |
| * times.cc (hires_ms::resolution): Make sure resolution is never 0. |
| (clock_setres): Ditto. |
| |
| 2011-03-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygtls.h (struct _local_storage): Redefine process_ident as wchar_t |
| pointer. |
| * syslog.cc (CYGWIN_LOG_NAME): Convert to wide char constant. |
| (openlog): Convert incoming ident string to wide char. Fix formatting. |
| (vsyslog): Print ident string as wide char string. Convert message |
| string to wide char and call UNICODE Win32 Event functions to make sure |
| to use correct codeset. |
| * tlsoffset.h: Regenerate. |
| |
| 2011-03-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_socket.cc (get_inet_addr): Make externally available. |
| * autoload.cc (GetUdpTable): Define. |
| * syslog.cc (connect_syslogd): Use get_inet_addr rather than _stat64 |
| to check for local socket file. Create socket with type returned by |
| get_inet_addr. If connect on UDP socket works, test if there's |
| really a listening peer, otherwise fall back to Windows event log. |
| (try_connect_syslogd): Use syslogd_inited flag to check if syslogd |
| is available. |
| |
| 2011-03-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * uinfo.cc (cygheap_user::env_domain): Use LookupAccountSidW and |
| convert user and domain to multibyte strings to make sure to use |
| correct codeset. |
| |
| 2011-03-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * autoload.cc (UuidCreate): Remove. |
| (UuidCreateSequential): Remove. |
| * passwd.cc (internal_getpwsid): Avoid a strict-aliasing compiler |
| error with gcc 4.5.1. |
| * fhandler_floppy.cc (fhandler_dev_floppy::get_drive_info): Ditto. |
| * ntdll.h (NtAllocateUuids): Declare. |
| * syscalls.cc (gethostid): Use NtAllocateUuids function rather than |
| UuidCreateSequential/UuidCreate to get rid of rpcrt4 dependency. |
| |
| 2011-03-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygwin.din (pthread_spin_destroy): Export. |
| (pthread_spin_init): Export. |
| (pthread_spin_lock): Export. |
| (pthread_spin_trylock): Export. |
| (pthread_spin_unlock): Export. |
| * posix.sgml (std-susv4): Add pthread_spin_destroy, pthread_spin_init, |
| pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock. |
| (std-notimpl): Remove pthread_spin_[...]. |
| * pthread.cc (pthread_spin_init): New function. |
| * thread.cc (pthread_spinlock::is_good_object): New function. |
| (pthread_mutex::pthread_mutex): Rearrange initializers to accommodate |
| protected data in pthread_mutex. |
| (pthread_spinlock::pthread_spinlock): New constructor. |
| (pthread_spinlock::lock): New method. |
| (pthread_spinlock::unlock): New method. |
| (pthread_spinlock::init): New method. |
| (pthread_spin_lock): New function. |
| (pthread_spin_trylock): New function. |
| (pthread_spin_unlock): New function. |
| (pthread_spin_destroy): New function. |
| * thread.h (PTHREAD_SPINLOCK_MAGIC): Define. |
| (class pthread_mutex): Change access level of members shared with |
| derived classes to protected. |
| (pthread_mutex::set_shared): New protected method. |
| (class pthread_spinlock): New class, derived class of pthread_mutex. |
| * include/pthread.h (pthread_spin_destroy): Declare. |
| (pthread_spin_init): Declare. |
| (pthread_spin_lock): Declare. |
| (pthread_spin_trylock): Declare. |
| (pthread_spin_unlock): Declare. |
| * include/cygwin/types.h (pthread_spinlock_t): New typedef. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| |
| 2011-03-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * net.cc (SIO_BASE_HANDLE): Define. |
| (fdsock): If we got an LSP handle, try to create a copy of the base |
| handle instead. Change comment to explain. |
| |
| 2011-03-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * include/cygwin/version.h: Bump CYGWIN_VERSION_DLL_MINOR to 10. |
| |
| 2011-03-29 Corinna Vinschen <corinna@vinschen.de> |
| |
| * autoload.cc (winmm): Remove time functions. Don't treat |
| unloadable wave functions as fatal. |
| * hires.h (hires_ms::timeGetTime_ns): New private method. |
| (hires_ms::dmsecs): Call timeGetTime_ns here. |
| * ntdll.h (struct _KSYSTEM_TIME): Define. |
| (KUSER_SHARED_DATA): Redefine to allow access to InterruptTime. |
| (SharedUserData): Define here. |
| (NtQueryTimerResolution): Declare. |
| (NtSetTimerResolution): Declare. |
| * path.cc (SharedUserData): Move to ntdll.h. |
| * times.cc (hires_ms::timeGetTime_ns): New private method. |
| Use throughout instead of timeGetTime. Document entire functionality |
| of timeGetTime in case we need it. |
| (hires_ms::resolution): Try a call to NtQueryTimerResolution |
| to fetch current period. Fall back to heuristic if that fails. |
| Cast to DWORD in assignments to minperiod. |
| (clock_setres): Align period to possible values per a call to |
| NtQueryTimerResolution. Explain why. Replace calls to timeBeginPeriod |
| and timeEndPeriod with underlying call to NtSetTimerResolution. Use |
| status code from NtSetTimerResolution to compute errno. |
| Convert period to ULONGLONG and store 100ns value to simplify code. |
| |
| 2011-03-29 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| Corinna Vinschen <corinna@vinschen.de> |
| |
| * include/sys/xattr.h: New file. |
| |
| 2011-03-28 Jon TURNEY <jon.turney@dronecode.org.uk> |
| |
| * thread.cc (semaphore::init, destroy, close): Standards conformance |
| fix. On a failure, return -1 and set errno. |
| * thread.h (semaphore::terminate): Save errno since semaphore::close() |
| may now modify it. |
| |
| 2011-03-27 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * cygwin.din (strchrnul): Export. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| * posix.sgml (std-gnu): Add strchrnul. |
| |
| 2011-03-27 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * dll_init.cc (dll::init): Accommodate ill-behaved dlls who don't fill |
| out p.envptr. |
| |
| 2011-03-25 Corinna Vinschen <corinna@vinschen.de> |
| |
| * mmap.cc (mmap64): Add a cheat to let a certain autoconf test succeed |
| on 64 bit systems. Explain why. |
| |
| 2011-03-23 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * wincap.cc (wincap_2003): Set use_dont_resolve_hack to true. |
| |
| 2011-03-23 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * autoload.cc (dll_load): Change error message to make it clear if a |
| newer DLL is being run. |
| |
| 2011-03-20 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fenv.cc (_feinitialise): Don't use SSE instructions on systems not |
| supporting them. |
| * wincap.h (wincaps::supports_sse): New element. |
| * wincap.cc: Implement above element throughout. |
| |
| 2011-03-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygwin.sc: Raise default cygheap size to 2 Megs. |
| |
| 2011-03-18 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.h (DEFAULT_PIPEBUFSIZE): Reset to 64K. |
| |
| 2011-03-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * mmap.cc (mmap_record::alloc_fh): Initialize name strings in fdev to |
| empty strings or suffer a SEGV. Drop second parameter in call to |
| build_fh_dev. |
| |
| 2011-03-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * mmap.cc (class mmap_record): Pack 4 byte-aligned. Convert member dev |
| to plain int. |
| (mmap_record::alloc_fh): Create temporary device from dev and use in |
| call to build_fh_dev. |
| |
| 2011-03-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * mmap.cc (mmap_record::page_map): Define as variable array rather than |
| as pointer. |
| (mmap_record::alloc_page_map): Remove. |
| (mmap_record::free_page_map): Remove. |
| (mmap_record::init_page_map): New method. |
| (mmap_record::add_record): Take mmap_record parameter by reference |
| rather than by value. |
| (mmap_record::map_pages): Fix comment. |
| (mmap_list::add_record): Allocate space for mmap_record including the |
| page_map in a single ccalloc call. Call init_page_map afterwards. |
| (mmap_list::del_record): Remove call to mmap_record::free_page_map. |
| |
| 2011-03-16 Corinna Vinschen <corinna@vinschen.de> |
| |
| * crt0.c (mainCRTStartup): Move call to _feinitialise from here... |
| * dcrt0.cc (_dll_crt0): ...to here. |
| |
| 2011-03-16 Corinna Vinschen <corinna@vinschen.de> |
| |
| * winver.rc: Fix copyright dates. |
| |
| 2011-03-14 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Only use |
| file id as inode number if it masters the isgood_inode check. |
| |
| 2011-03-13 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Remove |
| special treatment for ERROR_NO_SYSTEM_RESOURCES. Cancel I/O and reset |
| the overlapped handle on error. |
| (fhandler_base_overlapped::write_overlapped): Limit writes to |
| max_atomic_write bytes in blocking case. Incorporate code from |
| now-defunct write_overlapped_fallback. Fix serious oversight where ptr |
| was not advanced as buffer was written. |
| (fhandler_base_overlapped::write_overlapped_fallback): Eliminate. |
| * fhandler.h (fhandler_base_overlapped::write_overlapped_fallback): |
| Ditto for declaration. |
| (DEFAULT_PIPEBUFSIZE): Lower size to slightly less than documented |
| worst-case atomic write size. |
| (fhandler_overlapped::wait_return): Remove unused element. |
| |
| 2011-03-09 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Handle |
| overlapped_fallback error condition like other error conditions. Set |
| res carefully and specifically for each condition rather than resorting |
| to a default. |
| (fhandler_base_overlapped::write_overlapped): Preserve errno in |
| overlapped_fallback condition. Correct write_overlapped_fallback to |
| avoid inappropriate looping. |
| (fhandler_base_overlapped::write_overlapped_fallback): Add some more |
| comments. |
| |
| 2011-03-09 Christopher Faylor <me.cygwin2011@cgf.cx> |
| |
| * fhandler.cc (fhandler_base_overlapped::write_overlapp): Oops! |
| Accommodate change in arguments to wait_overlapped. |
| |
| 2011-03-09 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * errno.cc (errmap): Change mapping of NO_SYSTEM_RESOURCES to EFBIG. |
| * fhandler.cc (MAX_OVERLAPPED_WRITE_LEN): New constant. |
| (MIN_OVERLAPPED_WRITE_LEN): Ditto. |
| (fhandler_base_overlapped::close): Accommodate change in arguments to |
| wait_overlapped. |
| (fhandler_base_overlapped::setup_overlapped): Add __stdcall and regparm |
| modifiers. |
| (fhandler_base_overlapped::destroy_overlapped): Ditto. |
| (fhandler_base_overlapped::has_ongoing_io): Ditto. |
| (fhandler_base_overlapped::wait_overlapped): Modify to return an enum |
| returning various states. Accept nonblocking parameter. |
| (fhandler_base_overlapped::read_overlapped): Add __stdcall and regparm |
| modifiers. Rework to attempt to be smarter about reacting to states |
| returned by wait_overlapped. |
| (fhandler_base_overlapped::write_overlapped): Ditto. Add fallback |
| option for when wait_overlapped detects that smaller chunks must be |
| written. |
| (fhandler_base_overlapped::write_overlapped_fallback): Ditto. |
| * fhandler.h (DEFAULT_PIPEBUFSIZE): Move definition here from pipe.cc. |
| (fhandler_base::has_ongoing_io): Define with __stdcall and regparm |
| modifiers. |
| (fhandler_base_overlapped::wait_return): New enum. |
| (fhandler_base_overlapped::max_atomic_write): New variable. |
| (fhandler_base_overlapped:: wait_overlapped): Accommodate changes |
| mentioned above to arguments and modifiers. |
| (fhandler_base_overlapped::setup_overlapped): Ditto for modifiers. |
| (fhandler_base_overlapped::read_overlapped): Ditto. |
| (fhandler_base_overlapped::write_overlapped): Ditto. |
| (fhandler_base_overlapped::destroy_overlapped): Ditto. |
| (fhandler_base_overlapped::has_ongoing_io): Ditto. |
| (fhandler_base_overlapped::fhandler_base_overlapped): Zero |
| max_atomic_write. |
| * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Set max_atomic_write |
| to the size of the DEFAULT_PIPEBUFSIZE. |
| (fhandler_fifo::wait): Accommodate change in arguments to |
| wait_overlapped. |
| * pipe.cc (fhandler_pipe::fhandler_pipe): Set max_atomic_write to the |
| size of the DEFAULT_PIPEBUFSIZE. |
| (fhandler_pipe::create_selectable): Allow minimum size of DEFAULT_PIPEBUFSIZE. |
| (DEFAULT_PIPEBUFSIZE): Delete here, move to fhandler.h. |
| |
| 2011-03-08 Corinna Vinschen <corinna@vinschen.de> |
| |
| * security.cc: Fix copyright dates. |
| |
| 2011-03-08 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.cc (fhandler_base::open): When creating a file on a |
| filesystem supporting ACLs, create the file with WRITE_DAC access. |
| Explain why. |
| * fhandler_disk_file.cc (fhandler_disk_file::mkdir): Ditto for |
| directories. |
| * fhandler_socket.cc (fhandler_socket::bind): Ditto for sockets. |
| * path.cc (symlink_worker): Ditto for symlinks. |
| * security.cc (get_file_sd): Always call GetSecurityInfo for directories |
| on XP and Server 2003. Improve comment to explain why. |
| (set_file_attribute): Explicitely cast mode_t value to bool in call to |
| get_file_sd. |
| * wincap.h (wincaps::use_get_sec_info_on_dirs): New element. |
| * wincap.cc: Implement above element throughout. |
| |
| 2011-03-04 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_procsys.cc (fhandler_procsys::exists): Rewrite. |
| (fhandler_procsys::fill_filebuf): Fill buffer with valid string even if |
| reading the symlink fails. |
| |
| 2011-03-03 Corinna Vinschen <corinna@vinschen.de> |
| |
| * posix_ipc.cc (ipc_cond_timedwait): If ipc_mutex_unlock fails, return |
| actual error number. |
| (_mq_send): Break loop if ipc_cond_timedwait returns with error. |
| (_mq_receive): Ditto. |
| |
| 2011-03-03 Corinna Vinschen <corinna@vinschen.de> |
| |
| * errno.cc (__xpg_strerror_r): Add accidentally missing condition. |
| |
| 2011-03-02 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_procsys.cc (fhandler_procsys::open): Call worker exists |
| method, rather than wrapper. |
| |
| 2011-03-01 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * autoload.cc (dll_load): Avoid in_forkee test since this apparently |
| fails even when not forked. |
| |
| 2011-03-01 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * include/cygwin/version.h: Bump CYGWIN_VERSION_DLL_MINOR to 9. |
| |
| 2011-02-28 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * autoload.cc (dll_load): Only perform DONT_RESOLVE_DLL_REFERENCES hack |
| on systems which need it. |
| * wincap.cc (use_dont_resolve_hack): Set as appropriate. |
| * wincap.h (use_dont_resolve_hack): Define. |
| |
| 2011-02-28 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * autoload.cc (dll_load): Make inline. Clarify logic. |
| |
| 2011-02-27 Corinna Vinschen <corinna@vinschen.de> |
| |
| * autoload.cc (dll_load): Only call LoadLibraryExW with |
| DONT_RESOLVE_DLL_REFERENCES if a normal LoadLibrary call failed with |
| ERROR_INVALID_ADDRESS. |
| (LsaRegisterLogonProcess): Align comment to previous change. |
| |
| 2011-02-26 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * autoload.cc: Use LoadDLLfuncEx3 for all winmm functions. Accommodate |
| changes to LoadDLLprime. |
| (LoadDLLprime): Take an extra argument indicating whether this dll |
| needs special handling on fork. Place this information in the "handle" |
| location. |
| (LoadDLLfuncEx3): Eliminate "func" handling. Pass new |
| no_resolve_on_fork argument to LoadDLLprime. |
| (dll_load): New function. |
| (std_dll_init): Accommodate changes to dll_info::handle. Use dll_load |
| to load DLL in both cases where it is used. |
| |
| 2011-02-26 Corinna Vinschen <corinna@vinschen.de> |
| |
| * autoload.cc: Make autoloaded ntdll function non-optional. Ditto for |
| secur32 functions, except for LsaRegisterLogonProcess. Change return |
| value to ERROR_PROC_NOT_FOUND. Explain why. |
| * sec_auth.cc (lsaauth): Handle ERROR_PROC_NOT_FOUND from call to |
| LsaRegisterLogonProcess when generating the errno value. |
| |
| 2011-02-22 Corinna Vinschen <corinna@vinschen.de> |
| |
| * dcrt0.cc: Fix copyright dates. |
| * winsup.h: Ditto. |
| * syscalls.cc (_read): Move EXPORT_ALIAS to its rightful place. |
| |
| 2011-02-21 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * cygwin.din: Mark __assert* and _abort as NOSIGFE. |
| |
| 2011-02-21 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_socket (fhandler_socket::readv): Call recv_internal directly, |
| rather than recvmsg. |
| (fhandler_socket::writev): Call send_internal directly, rather than |
| sendmsg. |
| * net.cc (cygwin_recv): Call fhandler_socket::recvfrom directly, rather |
| than cygwin_recvfrom. |
| (cygwin_send): Call fhandler_socket::sendto directly, rather than |
| cygwin_sendto. |
| |
| 2011-02-20 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * fhandler.cc (fhandler_base_overlapped::close): Finish any pending I/O |
| before closing. |
| (fhandler_base_overlapped::wait_overlapped): Defensively zero bytes |
| read. Add more info to debugging output. |
| |
| 2011-02-18 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * dcrt0.cc (dll_crt0_1): Add a CYGHEAP_DEBUG conditional for debugging |
| which allocates a lot of space at startup. |
| |
| 2011-02-18 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygwin.sc: Set alignment of .cygheap section to 64K. |
| |
| 2011-02-15 Corinna Vinschen <corinna@vinschen.de> |
| |
| * spawn.cc (spawn_guts): Only set PID_NOTCYGWIN in _P_OVERLAY mode. |
| Drop flag if creating new process failed. |
| |
| 2011-02-15 Corinna Vinschen <corinna@vinschen.de> |
| |
| * Throughout fix copyright dates. |
| |
| 2011-02-15 Corinna Vinschen <corinna@vinschen.de> |
| |
| * devices.in: Throughout use slashes instead of backslashes in the |
| native path of devices not backed by native NT devices. |
| * devices.cc: Regenerate. |
| * globals.cc (ro_u_pmem): Use correct case. |
| (ro_u_globalroot): New R/O unicode string. |
| * path.cc (path_conv::check): Fix incorrect handling of /proc/sys |
| block devices if they are just visited due to a component check. |
| (symlink_info::posixify): Fix typo in comment. |
| (cygwin_conv_path): Use ro_u_globalroot instead of string constant. |
| (fast_cwd_version): New shared variable to store FAST_CWD version |
| used on the system. |
| (find_fast_cwd_pointer): Rename from find_fast_cwd_pointers. Don't |
| set global fast_cwd_ptr pointer here. Return pointer value instead. |
| (find_fast_cwd): New function to set fast_cwd_ptr and fast_cwd_version. |
| (cwdstuff::override_win32_cwd): Call find_fast_cwd from here. |
| Check for fast_cwd_version to differ between old and new FAST_CWD |
| structure. Check old_cwd for NULL to avoid SEGV. Don't set CWD if |
| we have neitehr a valid fast_cwd_ptr, nor a valid CWD handle in the |
| process parameter block. |
| (cwdstuff::set): Create Win32 path taking /proc/sys paths into account. |
| * spawn.cc (spawn_guts): Recode creating runpath. Also take /proc/sys |
| paths into account. Drop special CWD handling when starting non-Cygwin |
| processes. |
| |
| 2011-02-15 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_procsys.cc (fhandler_procsys::opendir): Avoid SEGV if |
| opening object directory fails. |
| * fhandler_virtual.cc (fhandler_virtual::opendir): Don't leak memory. |
| |
| 2011-02-15 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Don't |
| append slash if there is one already. |
| |
| 2011-02-15 Corinna Vinschen <corinna@vinschen.de> |
| |
| Revert change from 2010-08-31: |
| * path.cc (normalize_posix_path): Drop support for //./ and //?/ |
| prefixes. |
| (path_conv::check): Ditto. |
| |
| 2011-02-15 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Use POSIX |
| path to check for symlink. |
| |
| 2011-02-14 Corinna Vinschen <corinna@vinschen.de> |
| |
| * config/i386/profile.h: Sync with Mingw. |
| |
| 2011-02-13 Corinna Vinschen <corinna@vinschen.de> |
| |
| * path.cc (struct _FAST_CWD): Redefine to new layout used since patch |
| for KB 2393802. Adjust comments throughout. |
| (struct _FAST_CWD_OLD): Rename former definition. |
| (cwdstuff::override_win32_cwd): Check if the OS is using the old or the |
| new FAST_CWD structure layout and handle accordingly. |
| |
| 2011-02-11 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * mkstatic: Make sure that we are not cd'ed to temporary directory on |
| exit to avoid bogus warnings on directory cleanup. |
| * speclib: Ditto. |
| * mkimport: Ditto. |
| |
| 2011-02-11 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * cygwin.sc: Eliminate __cygheap_mid. |
| * cygheap.cc: Ditto. |
| |
| 2011-02-11 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * cygheap.cc (_cygheap_mid): Drop unneeded section attribute. |
| (cygheap_init): Just zero cygheap structure. |
| * cygwin.sc: Keep 16 byte alignment but drop all other alignments |
| related to cygheap. Eliminate unused __cygheap_end1. |
| |
| 2011-02-11 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygwin.sc: Raise default cygheap size to 1 Meg. Set alignment to |
| standard 64K. |
| |
| 2011-02-11 Corinna Vinschen <corinna@vinschen.de> |
| |
| * include/endian.h: Move definitions of __BIG_ENDIAN, __LITTLE_ENDIAN, |
| and __BYTE_ORDER into ... |
| * include/bits/endian.h: New file. |
| * include/arpa/nameser_compat.h: Include endian.h rather than defining |
| BYTE_ORDER here. |
| * include/asm/byteorder.h: Include bits/endian.h. Drop definition of |
| __LITTLE_ENDIAN. |
| * include/netinet/ip.h: Include bits/endian.h. Drop definitions of |
| BIG_ENDIAN, LITTLE_ENDIAN, and BYTE_ORDER. Use underscored variants |
| of aforementioned constants. |
| * include/netinet/tcp.h: Ditto. |
| * include/sys/param.h: Drop disabled definitions of BIG_ENDIAN, |
| LITTLE_ENDIAN, and BYTE_ORDER. |
| |
| * include/netinet/ip.h: Reformat. Define setsockopt IP_TOS options |
| matching recent RFCs. Tweak comments. |
| |
| 2011-02-10 Eric Blake <eblake@redhat.com> |
| |
| * errno.cc (includes): Avoid compilation failure if <string.h> |
| settles on wrong strerror_r signature. |
| |
| * errno.cc (__xpg_strerror_r): New function. |
| (strerror_r): Update to copy newlib's fixes. |
| (strerror): Set errno on failure. |
| (_sys_errlist): Cause EINVAL failure for reserved values. |
| * cygwin.din: Export new function. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Combine |
| this into minor 236. |
| |
| 2011-02-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * cygwin.din (pthread_yield): Export as alias to sched_yield. |
| * include/pthread.h (pthread_yield): Declare. |
| * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. |
| * posix.sgml (std-deprec): Add pthread_yield. |
| |
| 2011-02-09 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * cygheap.cc: Add some __stdcall decoration where appropriate. |
| * lib/cygwin_crt0.c: __attribute -> __attribute__. |
| |
| 2011-02-09 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * hookapi.cc (hook_or_detect_cygwin): Prevent i from being considered |
| uninitialized by gcc. |
| |
| 2011-02-09 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * exception.h: Remove DEBUG_EXCEPTION left over debugging ifdef. |
| |
| 2011-02-08 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * dll_init.cc: Fix typo in comment. |
| |
| 2011-02-07 Corinna Vinschen <corinna@vinschen.de> |
| |
| * configure.in: Remove AC_ALLOCA test and test for __builtin_memset. |
| * configure: Regenerate. |
| |
| 2011-02-07 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_console.cc (fhandler_console::write_normal): Remove |
| erroneous premature return after collecting truncated multibyte |
| sequence in trunc_buf. Rather fall through to printing routine. |
| Fix return value to take trunc_buf content into account. Improve |
| comments. |
| |
| 2011-02-05 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * autoload.cc (wsock_init): Properly define WSAStartup function pointer |
| to avoid stack damage. |
| |
| 2011-02-02 Corinna Vinschen <corinna@vinschen.de> |
| |
| * libc/bsdlib.cc: Include err.h. |
| |
| 2011-02-02 Eric Blake <eblake@redhat.com> |
| |
| * include/err.h: Fix loss of semicolons in previous patch. |
| |
| 2011-02-02 Corinna Vinschen <corinna@vinschen.de> |
| |
| * include/err.h (err): Add noreturn attribute. |
| (errx): Ditto. |
| (verr): Ditto. |
| (verrx): Ditto. |
| |
| 2011-02-02 Corinna Vinschen <corinna@vinschen.de> |
| |
| * path.cc (conv_path_list): Remove enclosing quotes and trailing |
| backslashes from Win32 environment path lists. |
| |
| 2011-02-01 Christian Franke <franke@computer.org> |
| |
| * fhandler.cc (fhandler_base::fsync): Ignore ERROR_INVALID_FUNCTION |
| error from FlushFileBuffers(). |
| |
| 2011-01-31 Corinna Vinschen <corinna@vinschen.de> |
| |
| * syscalls.cc (utmp_data): Fix potential buffer overflow. |
| |
| 2011-01-31 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_socket.cc (address_in_use): Improve comment readability. |
| |
| 2011-01-30 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_socket.cc (address_in_use): Disable. Add comment. |
| (fhandler_socket::bind): Change comment to explain setting the |
| SO_EXCLUSIVEADDRUSE socket option. Remove code which checks for |
| address in use. |
| * net.cc (cygwin_setsockopt): Never set SO_REUSEADDR option. Improve |
| comment to compensate for the deleted comment in fhandler_socket::bind. |
| * wincap.cc: Throughout, drop has_enhanced_socket_security from wincaps. |
| * wincap.h (struct wincaps): Drop has_enhanced_socket_security flags |
| and method. |
| |
| 2011-01-28 Peter Foley <jpfoley2@verizon.net> |
| |
| * configure.in: Define LIBSERVER regardless of cross_host. |
| * configure: Regenerate. |
| |
| 2011-01-28 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_socket.cc (fhandler_socket::wait_for_events): Call |
| pthread_testcancel in case of timeout to enable pthread_cancel |
| on waiting thread. |
| |
| 2011-01-27 Corinna Vinschen <corinna@vinschen.de> |
| |
| * include/features.h (__STDC_ISO_10646__): Move to newlib's |
| sys/features.h. |
| |
| 2011-01-26 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Fix |
| computation of st_blocks. |
| (fhandler_base::fstat_helper): Fix formatting. |
| |
| 2011-01-24 Corinna Vinschen <corinna@vinschen.de> |
| |
| * include/features.h (__STDC_ISO_10646__): Define. Add comment. |
| |
| 2011-01-21 Corinna Vinschen <corinna@vinschen.de> |
| |
| * syscalls.cc (rename): Fix permission problem with symlinks on NFS. |
| Rework how NtOpenFile gets called to make it more readable. Change |
| comment. |
| |
| 2011-01-20 Corinna Vinschen <corinna@vinschen.de> |
| |
| * exec.cc: Include pinfo.h. |
| * winf.h: Move definitions of _P_PATH_TYPE_EXEC and _P_MODE from here... |
| * pinfo.h: ...to here. |
| (_P_PATH_TYPE_EXEC): Redefine to be bigger than _P_SYSTEM. |
| (_P_MODE): Redefine so as not to mask out _P_SYSTEM. |
| * spawn.cc (spawnlp): Add _P_PATH_TYPE_EXEC flag in call to spawnve. |
| (spawnlpe): Ditto. |
| (spawnvp): Ditto. |
| |
| 2011-01-19 Corinna Vinschen <corinna@vinschen.de> |
| |
| * spawn.cc (av::fixup): Reenable #! handling for all exec functions. |
| Return ENOEXEC in !p_type_exec case only for unrecognized files. |
| Fix comment formatting. |
| |
| 2011-01-19 Corinna Vinschen <corinna@vinschen.de> |
| |
| * exec.cc (execlp): Add missing _P_PATH_TYPE_EXEC flag in call to |
| spawnve. |
| |
| 2011-01-19 Corinna Vinschen <corinna@vinschen.de> |
| |
| * exec.cc: Rearrange functions in alphabetical order. |
| (_execve): Drop temporary define and drop export alias. |
| (execl): Call spawnve. |
| (execle): New function. |
| (execlp): New function. |
| (execv): Call spawnve. |
| (execve): Drop converting NULL envp to emtpy envp. |
| (execvp): Call spawnve. |
| (execvpe): Drop converting NULL envp to emtpy envp. Call spawnve. |
| (fexecve): Call spawnve. |
| * spawn.cc (spawnve): Convert NULL envp to emtpy envp. Remove outdated |
| comment. |
| (spawnlp): Call spawnve. |
| (spawnlpe): Ditto. |
| (spawnvp): Ditto. |
| (spawnvpe): Fix formatting. |
| |
| 2011-01-19 Corinna Vinschen <corinna@vinschen.de> |
| |
| * exec.cc (strccpy): Move function from here... |
| * strfuncs.cc (strccpy): ...to here. |
| * string.h (strccpy): Declare. |
| * winsup.h (strccpy): Drop declaration. |
| |
| 2011-01-19 Corinna Vinschen <corinna@vinschen.de> |
| |
| * errno.cc (errmap): Add error codes for invalid binaries. |
| * exec.cc (execvp): Call spawnve with _P_PATH_TYPE_EXEC flag |
| from here. |
| (execvpe): Ditto. |
| * spawn.cc (spawn_guts): Filter _P_PATH_TYPE_EXEC from mode and |
| store in p_type_exec. Call av::fixup with addtional p_type_exec |
| argument. |
| (spawnve): Check for filtered mode. |
| (spawnvpe): Add _P_PATH_TYPE_EXEC flag when calling spawnve. |
| (av::fixup): Accept additional bool parameter p_type_exec. Only check |
| for script if p_type_exec is true. |
| * winf.h (_P_PATH_TYPE_EXEC): Define. |
| (_P_MODE): Define. |
| (av::fixup): Declare with additional bool parameter. |
| |
| 2011-01-17 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_proc.cc (format_proc_partitions): Fix compiler warning. |
| |
| 2011-01-17 Corinna Vinschen <corinna@vinschen.de> |
| |
| * path.cc (path_conv::check): Don't follow reparse point symlinks if |
| PC_SYM_NOFOLLOW_REP flag is set. |
| (cygwin_conv_path): Set PC_SYM_NOFOLLOW_REP flag when converting from |
| POSIX to Win32. |
| * path.h (enum pathconv_arg): Define PC_SYM_NOFOLLOW_REP flag. |
| |
| 2011-01-17 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_proc.cc (proc_tab_cmp): Fix typo in comment. |
| (fhandler_proc::fill_filebuf): Handle return value of 0 from format |
| function as error. |
| (format_proc_stat): Set errno when returning 0 size. |
| (format_proc_partitions): Rewrite method to fetch partition info. |
| |
| 2011-01-13 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler_disk_file.cc (fhandler_base::fstat_helper): Always set |
| st_size of directories to 0. Explain why. |
| |
| 2011-01-12 Corinna Vinschen <corinna@vinschen.de> |
| |
| * posix.sgml: Add madvise to BSD list. |
| |
| 2011-01-12 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygwin.din (madvise): Export posix_madvise as madvise. |
| * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR. |
| * include/sys/mman.h: Define madvise constants, keep Linux-specific |
| constants undefined. |
| (madvise): Declare. |
| |
| 2011-01-12 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.h (struct part_t): New type. |
| (class fhandler_dev_floppy): Convert partitions to part_t pointer. |
| Add lock_partition method. |
| * fhandler_floppy.cc (fhandler_dev_floppy::lock_partition): New method |
| to implement ondemand partition locking. |
| (fhandler_dev_floppy::write_file): Call lock_partition from here if |
| writing failed due to a potential write restriction on a disk |
| partition. |
| (fhandler_dev_floppy::open): Don't lock partitions here. |
| (fhandler_dev_floppy::close): Keep track of partition handle reference |
| count. Close handles and remove partitions pointer ony if count is 0. |
| (fhandler_dev_floppy::dup): Just copy partitions pointer and increment |
| reference count. |
| |
| 2011-01-11 Corinna Vinschen <corinna@vinschen.de> |
| |
| * fhandler.h (MAX_PARTITIONS): New definition. |
| (class fhandler_dev_floppy): Add partitions array member. Add close |
| method. |
| * fhandler_floppy.cc (fhandler_dev_floppy::fhandler_dev_floppy): Zero |
| out partitions array. |
| (fhandler_dev_floppy::open): Fix "entire disk" condition for call to |
| DeviceIoControl (FSCTL_ALLOW_EXTENDED_DASD_IO). |
| When opening disks for writing, call DeviceIoControl (FSCTL_LOCK_VOLUME) |
| on all affected disk partitions starting with Vista. |
| (fhandler_dev_floppy::close): New method. |
| (fhandler_dev_floppy::dup): Duplicate handles in partitions, if any. |
| * wincap.h (wincaps::has_restricted_raw_disk_access): New element. |
| * wincap.cc: Implement above element throughout. |
| |
| 2011-01-11 Yaakov Selkowitz <yselkowitz@users.sourceforge.net> |
| |
| * termios.cc (cfgetospeed, cfgetispeed): Constify argument per POSIX. |
| * include/sys/termios.h (cfgetospeed, cfgetispeed): Declare functions. |
| Move macros after declarations and make conditional on !__cplusplus. |
| |
| 2011-01-11 Corinna Vinschen <corinna@vinschen.de> |
| |
| * cygtls.cc (_cygtls::init_thread): Call _REENT_INIT_PTR. Drop setting |
| current locale and calling srand48. |
| |
| 2011-01-02 Christopher Faylor <me+cygwin@cgf.cx> |
| |
| * ChangeLog-2010: Create from ChangeLog. |
| * ChangeLog: Start fresh. |