+2007-06-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din: Export stpcpy, stpncpy.
+ * posix.sgml: Add stpcpy and stpncpy to list of implemented
+ GNU extensions.
+ * include/cygwin/version.h: Bump API minor number.
+
+2007-06-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * shared_info.h (SHARED_INFO_CB): Accommodate change to shared_info.
+ (CURR_SHARED_MAGIC): Ditto.
+ (class shared_info): Add heap_slop_inited member.
+ * shared.cc (shared_info::heap_slop_size): Use heap_slop_inited to
+ track initializing heap_slop since 0 is a valid value for heap_slop.
+ Drop useless < 0 consideration.
+
+2007-06-27 Eric Blake <ebb9@byu.net>
+
+ * assert.cc (__assert_func): New function, to match newlib header
+ change.
+ * cygwin.din: Export __assert_func.
+ * include/cygwin/version.h: Bump API minor number.
+
+2007-06-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (WSAIoctl): Remove.
+ * cygwin.din: Export freeifaddrs, getifaddrs.
+ * fhandler_socket.cc (fhandler_socket::ioctl): Drop SOCKET parameter
+ from get_ifconf.
+ * net.cc: Include ifaddrs.h.
+ (in_are_prefix_equal): Match addresses in network byte order.
+ (ip_addr_prefix): Convert address into host byte order before
+ testing with IN_LOOPBACK.
+ (struct ifall): Define.
+ (get_xp_ifs): Replace get_xp_ifconf. Return struct ifall array.
+ (get_2k_ifs): Ditto, replace get_2k_ifconf.
+ (get_nt_ifs): Ditto, replace get_nt_ifconf.
+ (getifaddrs): New function.
+ (freeifaddrs): New function.
+ (get_ifconf): Call matching get_XX_ifs function and create
+ ifc content from here. Drop lo fake since it's now in get_nt_ifs.
+ * posix.sgml: Add freeifaddrs and getifaddrs to list of implemented
+ BSD functions.
+ * wincap.h (wincapc::has_broken_if_oper_status): New element.
+ * wincap.cc: Implement above element throughout.
+ * include/ifaddrs.h: New file.
+ * include/cygwin/version.h: Bump API minor number.
+
+2007-06-20 Eric Blake <ebb9@byu.net>
+
+ * cygwin.din: Export exp10, exp10f, pow10, pow10f, strcasestr,
+ funopen, fopencookie.
+ * include/cygwin/version.h: Bump API minor number.
+ * posix.sgml: Minor improvements.
+
+2007-06-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/if.h (IFF_POINTOPOINT): Fix typo.
+
+2007-06-16 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * include/search.h: Reinstate node_t definition.
+
+2007-06-16 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * include/sys/cdefs.h: Remove in favor of newlib version.
+
+2007-06-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (GetIpForwardTable): Define.
+ * fhandler_socket.cc (fhandler_socket::ioctl): Handle SIOCGIFDSTADDR.
+ * net.cc (get_routedst): New static function to get destination
+ address of point-to-point interfaces.
+ (get_xp_ifconf): Handle SIOCGIFDSTADDR.
+ (get_2k_ifconf): Ditto.
+ (get_nt_ifconf): Ditto.
+ (get_ifconf): Ditto.
+ * include/asm/socket.h (SIOCGIFDSTADDR): Define.
+ * include/cygwin/if.h (struct ifreq): Add ifru_dstaddr member.
+ (ifr_dstaddr): Define.
+ * include/cygwin/in.h: Cast ipv4 addresses correctly to in_addr_t in
+ definitions.
+
+2007-06-12 Christopher Faylor <me+cygwin@cgf.cx>
+
+ * signal.cc (usleep): Use useconds_t for the type as per POSIX.
+
+2007-06-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * Makefile.in (DLL_OFILES): Add xsique.o.
+ * cygwin.din (confstr): Make NOSIGFE.
+ (insque): Export.
+ (remque): Export.
+ * lsearch.cc: Remove superfluous _SEARCH_PRIVATE define.
+ * posix.sgml: Move insque to defined SUSv3 interfaces. Remove
+ comment for remque.
+ * include/search.h: Remove _SEARCH_PRIVATE guarded definitions.
+ Add struct qelem definition. Add insque and remque declarations.
+ * include/cygwin/version.h: Bump API minor number.
+ * include/sys/queue.h: Remove insque/remque definitions so as not
+ to collide with SUSv3 compatible declaration in search.h.
+ * libc/xsique.cc: New file implementing insque and remque.
+
+2007-06-12 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc (fhandler_base::fstat): Set pipe permission bits more
+ correctly.
+
+2007-06-11 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din (confstr): Export.
+ * posix.sgml (confstr): Move to list of implemented SUSv3 functions.
+ * sysconf.cc (confstr): Implement.
+ * include/cygwin/version.h: Bump API minor number.
+
+2007-06-05 Corinna Vinschen <corinna@vinschen.de>
+
+ * ansi.sgml: Delete.
+ * misc-std.sgml: Delete.
+ * posix.sgml: Rework entirely.
+
+2007-05-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * dtable.cc (dtable::set_file_pointers_for_exec): Call SetFilePointer
+ correctly for 64 bit file access. Comment out functionality.
+ * fhandler.cc (fhandler_base::open): Don't set append_mode.
+ (fhandler_base::write): Check for O_APPEND instead of append_mode.
+ Call SetFilePointer correctly for 64 bit file access. Handle
+ errors from SetFilePointer.
+ * fhandler.h (class fhandler_base): Drop append_mode status flag.
+ * fhandler_disk_file.cc (fhandler_base::fstat_helper): Handle
+ seeking correctly for 64 bit file access.
+
+2007-05-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (cwdstuff::set): Revert useless acquire check.
+
+2007-05-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (cwdstuff::set): Avoid double aquiring of cwd_lock.
+ Open directory with inheriting enabled.
+
+2007-05-21 Christian Franke <franke@computer.org>
+
+ * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Don't invalidate
+ devbuf if new position is within buffered range.
+
+2007-05-21 Eric Blake <ebb9@byu.net>
+
+ * include/search.h (hsearch_r): Provide declaration.
+
+2007-05-21 Christian Franke <franke@computer.org>
+ Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Set buf size to
+ sector size. Simplify non-sector aligned case. Handle errors from
+ raw_read.
+
+2007-05-15 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (adjust_socket_file_mode): New inline function.
+ (fhandler_socket::fchmod): Squeeze mode through adjust_socket_file_mode
+ before using it.
+ (fhandler_socket::bind): Ditto.
+
+2007-03-19 Ryan C. Gordon <icculus@icculus.org>
+
+ * path.cc (fs_info::update): Set and use is_cdrom.
+ * path.cc (fillout_mntent): Set ret.mnt_type to something more
+ Linux-like, based on data from fs_info. Move "system" and "user"
+ strings from mnt_type to mnt_opts.
+ * path.h (struct fs_info): Add is_cdrom field.
+ * path.h (fs_info::clear): Initialize is_cdrom.
+ * path.h (struct fs_info): Add IMPLEMENT_STATUS_FLAG(bool,is_cdrom).
+ * path.h (class path_conv): Add fs_is_cdrom method. Add missing
+ fs_is_netapp method.
+
+2007-05-14 Eric Blake <ebb9@byu.net>
+
+ * cygwin.din (asnprintf, dprint, _Exit, vasnprintf, vdprintf): Export.
+ * include/cygwin/version.h: Bump API minor number.
+
+2007-04-18 Brian Dessent <brian@dessent.net>
+
+ * cygwin.sc: Remove duplicated .debug_macinfo section.
+ * dllfixdbg: Also copy DWARF-2 sections into .dbg file.
+
+2007-04-06 Eric Blake <ebb9@byu.net>
+
+ * include/stdint.h (WINT_MIN): Fix sign.
+
+2007-04-04 Eric Blake <ebb9@byu.net>
+
+ * include/stdint.h (WINT_MIN, WINT_MAX): Fix definition.
+
+2007-03-30 Christopher Faylor <me@cgf.cx>
+
+ * external.cc (cygwin_internal): Implement CW_SET_DOS_FILE_WARNING.
+ * include/sys/cygwin.h: Define CW_SET_DOS_FILE_WARNING.
+
+2007-03-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygheap.cc (cygheap_init): Fix formatting. Remove comment. Set
+ shared_prefix depending only on terminal service capability.
+ * dcrt0.cc (dll_crt0_1): Don't call set_cygwin_privileges here.
+ * fhandler_fifo.cc (fhandler_fifo::open): Create the mutex as global
+ object.
+ * posix_ipc.cc (ipc_mutex_init): Use cygheap->shared_prefix.
+ (ipc_cond_init): Ditto.
+ * sec_helper.cc (privilege_name): Make static. Use LookupPrivilegeName
+ directly to be independent of the state of cygheap.
+ (set_privilege): Take a LUID as parameter instead of an index value.
+ Only print debug output in case of failure.
+ (set_cygwin_privileges): Add comment. Use LookupPrivilegeValue to
+ get privilege LUIDs.
+ (init_global_security): Call set_cygwin_privileges here.
+ * security.h (privilege_name): Drop declaration.
+ (set_privilege): Declare according to above change.
+ (set_process_privilege): Call privilege_luid to get LUID.
+ (_push_thread_privilege): Ditto.
+ * shared.cc (open_shared): Add comment. On systems supporting the
+ SeCreateGlobalPrivilege, try to create/open global shared memory first.
+ Fall back to local shared memory if that fails.
+ * thread.cc (semaphore::semaphore): Use cygheap->shared_prefix.
+ * wincap.h (wincapc::has_create_global_privilege): New element.
+ * wincap.cc: Implement above element throughout.
+
+2007-03-28 Christopher Faylor <me@cgf.cx>
+
+ * spawn.cc (spawn_guts): Start pure-windows processes in a suspended
+ state to avoid potential DuplicateHandle problems.
+
+2007-03-13 Eric Blake <ebb9@byu.net>
+
+ * include/cygwin/stat.h (S_TYPEISMQ, S_TYPEISSEM, S_TYPEISSHM):
+ Avoid compiler warnings.
+
+2007-03-07 Christopher Faylor <me@cgf.cx>
+
+ * signal.cc (handle_sigprocmask): Remove extraneous
+ sig_dispatch_pending.
+
+2007-03-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_proc.cc: Fix formatting. Drop setting errno when creating
+ proc file content.
+ (format_proc_uptime): Simplify.
+ (format_proc_cpuinfo): Align more closely to output of Linux 2.6 kernel.
+ Evaluate more data, especially for AMD CPUs.
+
+2007-03-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_base::fstat_helper): Add creation time parameter.
+ * glob.cc (stat32_to_stat64): Set st_birthtim to st_mtim.
+
+2007-03-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/stat.h (S_TYPEISMQ): Define.
+ (S_TYPEISSEM): Dttio.
+ (S_TYPEISSHM): Ditto.
+
+2007-03-06 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_mailslot.cc (fhandler_mailslot::fstat): Set new stat member
+ st_birthtim to useful value.
+ * fhandler_process.cc (fhandler_process::fstat): Ditto.
+ * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Take
+ additional parameter for creation time. Fill st_birthtim with it.
+ Accomodate additional creation time parameter throughout.
+ * fhandler_raw.cc (fhandler_dev_raw::fstat): Set new stat member
+ st_birthtim to useful value.
+ * fhandler.cc (fhandler_base::fstat): Ditto.
+ * fhandler_registry.cc (fhandler_registry::fstat): Ditto.
+ * include/cygwin/version.h: Bump API minor number.
+ * include/cygwin/stat.h (struct __stat64): Replace st_spare4 with
+ timestruc_t st_birthtim.
+ (struct stat): Ditto if __CYGWIN_USE_BIG_TYPES__ is defined.
+ (st_birthtime): Define if __CYGWIN_USE_BIG_TYPES__ is defined.
+
+2007-03-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * ntdll.h (struct _FILE_NAMES_INFORMATION): Define.
+ * syscalls.cc (unlink_nt): Check shared directory for being empty
+ before trying to move and mark for deletion.
+
+2007-03-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * security.cc (get_file_attribute): Avoid compiler warning.
+
+2007-03-01 Christopher Faylor <me@cgf.cx>
+
+ * fork.cc (fork): Reset child to true after fork since it may have been
+ reset by fork memory copies.
+
+2007-03-01 Christopher Faylor <me@cgf.cx>
+
+ * Makefile (DLL_OFILES): Remove ntea.o
+ * environ.cc (set_ntea): Delete.
+ (parse_thing): Delete "ntea" setting.
+ * fhandler.cc (fhandler_base::open): Remove allow_ntea considerations.
+ (check_posix_perm): Ditto.
+ * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Ditto.
+ (fhandler_base::open_fs): Ditto.
+ (fhandler_disk_file::mkdir): Ditto.
+ * path.cc (symlink_worker): Ditto.
+ * security.cc (get_file_attribute): Ditto.
+ (set_file_attribute): Ditto.
+ * security.h: Remove allow_ntea declaration.
+
+2007-02-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (close_user_proc_parms_cwd_handle): Remove.
+ (cwdstuff::init): Don't call close_user_proc_parms_cwd_handle.
+ Call set to set cwd with all-sharing handle.
+ (cwdstuff::set): Fix comment. Don't close cwd handle. Set in
+ user parameter block instead and close old cwd handle.
+ * syscalls.cc (rename): Call unlink_nt instead of RemoveDirectory or
+ DeleteFile to allow deleting shared files/directories.
+
+2007-02-27 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc(fhandler_base::open): Open with READ_CONTROL only in
+ case of query_open flag set to query_read_control. Add case for
+ new query_read_attributes flag.
+ (fhandler_base::fstatvfs): New method.
+ * fhandler.h (enum query_state): Add query_read_attributes flag.
+ (class fhandler_base): Declare new virtual fstatvfs method.
+ (class fhandler_socket): Ditto.
+ (class fhandler_pipe): Ditto.
+ (class fhandler_fifo): Ditto.
+ (class fhandler_disk_file): Ditto.
+ (class fhandler_virtual): Ditto.
+ * fhandler_disk_file.cc (fhandler_base::fstat_fs): Open with
+ query_read_attributes instead of query_read_control.
+ (fhandler_disk_file::fstatvfs): New method.
+ (fhandler_disk_file::facl): Open with query_read_attributes instead of
+ query_read_control.
+ * fhandler_fifo.cc (fhandler_fifo::fstatvfs): New method.
+ * fhandler_socket.cc (fhandler_socket::fstatvfs): New method.
+ (fhandler_socket::fchmod): Return with EBADF in the default case.
+ (fhandler_socket::fchown): Ditto.
+ (fhandler_socket::facl): Ditto.
+ * fhandler_virtual.cc (fhandler_virtual::fstatvfs): Ditto.
+ * ntdll.h (struct _FILE_FS_ATTRIBUTE_INFORMATION): Define.
+ (struct _FILE_FS_FULL_SIZE_INFORMATION): Define.
+ * pipe.cc (fhandler_pipe::fstatvfs): New method.
+ * syscalls.cc (fstatvfs): Just call the fhandler's fstatvfs.
+ (statvfs): Ditto.
+ (fstatfs): Call fstatvfs.
+ (statfs): Drop EFAULT handling.
+
+2007-02-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc (fhandler_base::fstat): Set all file times to arbitrary
+ fixed value.
+
+2007-02-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_registry.cc (registry_listing): Drop name of HKEY_DYN_DATA.
+ (registry_keys): Drop HKEY_DYN_DATA.
+ * net.cc: Fix comment.
+ * syslog.cc: Ditto.
+
+2007-02-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Drop comment.
+ * mmap.cc (gen_access): Remove.
+ (mmap_record::gen_access): Remove.
+ (mmap64): Don't mention 9x any longer.
+ * syscalls.cc (statvfs): Drop status code consideration for 9x.
+ * libc/minires-os-if.c (get_registry_dns_items): Don't mention 9x any
+ longer.
+ (get_registry_dns): Drop getting registry key on 9x. Drop is9x
+ variable.
+
+2007-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ Throughout remove all usage of wincap.has_security.
+ * environ.cc (environ_init): Drop setting allow_ntsec here.
+ * grp.cc (initgroups32): Drop usage of label "out".
+ * security.cc (allow_ntsec): Set to true by default.
+ * syscalls.cc (seteuid32): Remove label success_9x.
+ * wincap.cc: Remove has_security throughout.
+ * wincap.h: Ditto.
+
+2007-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (class fhandler_pipe): Remove members writepipe_exists,
+ orig_pid and id. Make hit_eof inline.
+ * fhandler_fifo.cc (fhandler_fifo::open): Drop handling of
+ writepipe_exists, orig_pid and id.
+ * pipe.cc: Ditto throughout.
+ (pipecount): Remove.
+ (pipeid_fmt): Remove.
+ (fhandler_pipe::hit_eof): Simplify. Move to fhandler.h.
+ (fhandler_pipe::dup): Drop leave label.
+ (fhandler_pipe::create): Drop has_unreliable_pipes case.
+ * wincap.cc: Remove has_unreliable_pipes throughout.
+ * wincap.h: Ditto.
+
+2007-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * devices.in: Change native device name to native NT device name for
+ /dev/null, /dev/comX and /dev/ttySx.
+ * devices.cc: Regenerate.
+ * fhandler.cc (fhandler_base::open_9x): Remove.
+ (fhandler_base::open): Don't test for DOS device name, don't call
+ open_9x.
+ (fhandler_dev_null::open): Remove.
+ * fhandler.h (class fhandler_base): Drop open_9x declaration.
+ (class fhandler_dev_null): Drop open declaration.
+
+2007-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_console.cc (fhandler_console::need_invisible): Drop
+ pty_needs_alloc_console check.
+ * spawn.cc (spawn_guts): Ditto.
+ (av::fixup): Remove setting iscui.
+ * syscalls.cc (rename): Drop has_move_file_ex checks. Remove 9x
+ specific code.
+ * wincap.cc: Remove has_move_file_ex and pty_needs_alloc_console
+ throughout.
+ * wincap.h: Ditto.
+
+2007-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * exceptions.cc (dummy_ctrl_c_handler): Remove.
+ (init_console_handler): Drop has_null_console_handler_routine checks.
+ * fhandler_raw.cc (fhandler_dev_raw::open): Drop has_raw_devices check.
+ * fhandler_serial.cc (fhandler_serial::open): Drop
+ .supports_reading_modem_output_lines check.
+ * miscfuncs.cc (low_priority_sleep): Drop has_switch_to_thread check.
+ * shared.cc (open_shared): Drop needs_memory_protection checks.
+ * spawn.cc (spawn_guts): Drop start_proc_suspended check.
+ * uname.cc (uname): Drop has_valid_processorlevel check.
+ * wincap.cc: Remove has_raw_devices, has_valid_processorlevel,
+ supports_reading_modem_output_lines, needs_memory_protection,
+ has_switch_to_thread, start_proc_suspended and
+ has_null_console_handler_routine throughout.
+ * wincap.h: Ditto.
+
+2007-02-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc (fhandler_base::lseek): Drop 9x considerations.
+ * fhandler_disk_file.cc (fhandler_disk_file::lock): Ditto.
+ * wincap.cc: Remove lock_file_highword and has_64bit_file_access
+ throughout.
+ * wincap.h: Ditto.
+
+2007-02-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygheap.h (struct cwdstuff): Remove sync member and keep_in_sync
+ accessors.
+ * external.cc (cygwin_internal): Drop call to cygheap->cwd.keep_in_sync.
+ * fhandler_disk_file.cc (fhandler_disk_file::link): Always presume
+ ability to create hard links.
+ * path.cc (cwdstuff::init): Drop 9x considerations.
+ (cwdstuff::keep_in_sync): Remove.
+ (cwdstuff::set): Take NT for granted.
+ * pinfo.h (cygwin_pid): Just return pid.
+ * wincap.cc: Remove has_hard_links, can_open_directories,
+ has_negative_pids, has_named_pipes, has_try_enter_critical_section,
+ cant_debug_dll_entry and detect_win16_exe throughout.
+ * wincap.h: Ditto.
+
+2007-02-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_console.cc (fhandler_console::read): Drop 9x specific
+ handling of AltGr key.
+ * mmap.cc: Take NT for granted throughout.
+ * wincap.cc: Remove map_view_of_file_ex_sucks, altgr_is_ctrl_alt,
+ has_working_copy_on_write, share_mmaps_only_by_name,
+ virtual_protect_works_on_shared_pages, has_mmap_alignment_bug and
+ has_working_virtual_lock throughout.
+ * wincap.h: Ditto.
+
+2007-02-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc (fhandler_base::set_no_inheritance): Always use
+ SetHandleInformation.
+ * fhandler_disk_file.cc (fhandler_disk_file::lock): Always use
+ UnlockFileEx/LockFileEx functions.
+ * net.cc (fdsock): Don't bother to duplicate socket for inheritance.
+ * sysconf.cc (get_nproc_values): Take NT for granted.
+ (get_avphys): Ditto.
+ * syslog.cc (WIN95_EVENT_LOG_PATH): Remove define.
+ (get_win95_event_log_path): Remove.
+ (vsyslog): Fix formatting. Take NT for granted.
+ * wincap.cc: Remove has_lock_file_ex, has_signal_object_and_wait,
+ has_eventlog, has_set_handle_information,
+ has_set_handle_information_on_console_handles and supports_smp
+ throughout.
+ * wincap.h: Ditto.
+
+2007-02-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * dir.cc (rmdir): Move existance check in front of
+ has_dot_last_component check. Simplify setting errno in latter case.
+
+2007-02-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.cc (fhandler_base::write): Remove wincap.has_lseek_bug case.
+ Simplify seek beyond EOF case.
+ * times.cc (times): Remove wincap.has_get_process_times case.
+ * wincap.cc: Remove has_delete_on_close, has_page_guard,
+ has_get_process_times and has_lseek_bug throughout.
+ * wincap.h: Ditto.
+
+2007-02-22 Corinna Vinschen <corinna@vinschen.de>
+
+ Throughout remove all usage of wincap.access_denied_on_delete.
+ * dir.cc (rmdir): Add existance check to be errno-compatible with Linux.
+ * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Drop test for
+ non-existent dir on 9x share.
+ * syscalls.cc (unlink): Add comment.
+ * wincap.cc: Remove access_denied_on_delete flag throughout.
+ * wincap.h: Ditto.
+
+2007-02-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::closedir): Fix bug
+ introduced by switching to NtClose.
+
+2007-02-22 Christopher Faylor <me@cgf.cx>
+
+ * dcrt0.cc (child_info_fork::alloc_stack_hard_way): Change sense of
+ guard test. Increase size of stack reserved and increase size before
+ the current stack pointer. Use pointers when doing arithmetic.
+ (dll_crt0_1): Initialize exception handler when we notice we're the
+ child of a fork from non-main thread.
+ * fork.cc (frok::parent): Make argument volatile.
+ (frok::child): Ditto.
+ (lock_signals): New class.
+ (lock_pthread): Ditto.
+ (hold_everhthing): Ditto.
+ (frok::parent): Move atforkprepare and atforkparent to lock_pthread
+ class.
+ (fork): Make ischild boolean. Use hold_everything variable within
+ limited scope to set various mutexes in such a way as to avoid
+ deadlocks.
+ * thread.h (pthread_mutex::tid): New variable, active when debugging
+ for tracking thread id of owner.
+ (pthread_mutex::set_owner): Set tid when debugging.
+ * thread.cc (pthread_mutex::pthread_mutex): Clear tid.
+ (pthread_mutex::_unlock): Ditto when unlocking.
+ (pthread_mutex::fixup_after_fork): Set tid to special value after
+ forking since owner is unknown.
+
+2007-02-22 Corinna Vinschen <corinna@vinschen.de>
+
+ Throughout replace all usage of wincap.shared with the constant
+ FILE_SHARE_VALID_FLAGS.
+ * fhandler.cc (fhandler_base::open_9x): Drop local variable shared.
+ * wincap.cc: Remove shared member throughout.
+ * wincap.h: Ditto.
+
+2007-02-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * Makefile.in (DLL_IMPORTS): Add libntdll.a.
+ * autoload.cc: Remove all symbols from advapi32.dll, kernel32.dll and
+ ntdll.dll available on all platforms since NT4.
+
+ Throughout remove all usage of wincap.is_winnt.
+ * dcrt0.cc (dll_crt0_0): Remove call to mmap_init.
+ * fhandler.h (class fhandler_base): Remove has_changed flag.
+ (fhandler_disk_file::touch_ctime): Remove declaration.
+ (fhandler_disk_file::readdir_9x): Ditto.
+ (fhandler_disk_file::touch_ctime): Remove.
+ (fhandler_disk_file::readdir_9x): Remove.
+ (fhandler_disk_file::closedir): Call NtClose instead of CloseHandle.
+ * mmap.cc: Throughout call CreateMapping and MapView directly.
+ (VirtualProt9x): Remove.
+ (VirtualProtNT): Remove.
+ (VirtualProtEx9x): Remove.
+ (VirtualProtExNT): Remove.
+ (VirtualProtect): Remove define.
+ (VirtualProtectEx): Remove define.
+ (CreateMapping9x): Remove.
+ (CreateMappingNT): Rename to CreateMapping.
+ (MapView9x): Remove.
+ (MapViewNT): Rename to MapView.
+ (struct mmap_func_t): Remove definition.
+ (mmap_funcs_9x): Remove.
+ (mmap_funcs_nt): Remove.
+ (mmap_func): Remove.
+ (mmap_init): Remove.
+ * net.cc (getdomainname): Drop comment. Use NT4 registry key only.
+ (get_95_ifconf): Remove.
+ * pinfo.cc (winpids::enumNT): Rename to winpids::enum_processes.
+ (winpids::enum9x): Remove.
+ (winpids::set): Just call enum_processes directly.
+ (winpids::enum_init): Ditto.
+ * pinfo.h (class winpids): Drop enum_processes pointer. Rename
+ enumNT to enum_processes. Drop enum9x declaration. Drop initialization
+ of enum_processes throughout.
+ * registry.cc (get_registry_hive_path): Just create NT key.
+ (load_registry_hive): Only load NT specific file.
+ * syscalls.cc (unlink_9x): Remove.
+ (unlink): Just call unlink_nt.
+ * wincap.cc: Remove is_winnt flag throughout.
+ * wincap.h: Ditto.
+ * winsup.h: Remove mmap_init declaration.
+
+2007-02-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * wincap.cc (wincap_unknown): Change settings for unknown to reflect
+ the capabilities of NT4.
+ (wincap_95): Remove.
+ (wincap_95osr2): Remove.
+ (wincap_98): Remove.
+ (wincap_98se): Remove.
+ (wincap_me): Remove.
+ (wincap_nt3): Remove.
+ (wincapc::init): Temporarily bail out on any 9x system.
+
+2007-02-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din (sem_unlink): Export.
+ * posix_ipc.cc: Include thread.h and semaphore.h. Remove TODO
+ comment.
+ (ipc_names): Add max_len member. Set to maximum length of the path
+ before tacking on the prefix path. Set prefix path for named semaphors
+ to /dev/shm, as on Linux.
+ (enum ipc_type_t): Change sem to semaphore to avoid name conflicts.
+ (check_path): Detect empty paths. Use ipc_names's max_len member.
+ Use __small_sprintf to create full object path name. Special case
+ semaphores.
+ (ipc_cond_init): Drop superfluous strcpy.
+ (class ipc_flock): New class to simplify file locking in subsequent
+ code.
+ (struct mq_hdr): Raise size of mqh_uname to allow adding a unique
+ LUID to the name.
+ (mq_open): Fix formatting. Create unique synchronization object names
+ using AllocateLocallyUniqueId.
+ (struct sem_finfo): New structure defining named semaphore file content.
+ (sem_open): Move here. Rework implementation to allow kernel
+ persistent implementation of POSIX named semaphores.
+ (_sem_close): Implement sem_close.
+ (sem_close): Move here. Just call _sem_close with do_close parameter
+ set to true.
+ (sem_unlink): New function.
+ * pthread.cc (mangle_sem_name): Remove.
+ (sem_open): Move to posix_ipc.cc.
+ (sem_close): Ditto.
+ * syscalls.cc (close_all_files): Call semaphore::terminate here.
+ * thread.cc: Fix formatting. Rearrange semaphore functions so that
+ they are close together.
+ (semaphore::semaphore): Rework to play nicely with new named semaphore
+ implementation.
+ (semaphore::_terminate): Call _sem_close if semaphore is a named
+ semaphore.
+ (semaphore::destroy): Don't destroy named semaphores. Return EINVAL
+ instead.
+ (semaphore::close): Only destroy named semaphores. Return EINVAL
+ otherwise.
+ (semaphore::open): Rework to play nicely with new named semaphore
+ implementation. Loop through existing semaphores to be able to
+ return same sem_t pointer as a former call on the same named semaphore.
+ (semaphore::getinternal): New function called from _sem_close.
+ * thread.h (class List): Make mx and head public.
+ (class semaphore): Fix formatting. Align method declarations with
+ implementation in thread.cc. Add members used for named semaphores.
+ (semaphore::terminate): New static method.
+ * include/semaphore.h: Redefine SEM_FAILED. Fix formatting.
+ (sem_unlink): Add declaration.
+ * include/cygwin/version.h: Bump API minor number.
+
+2007-02-20 Christopher Faylor <me@cgf.cx>
+
+ * exceptions.cc (_cygtls::signal_exit): Only call myself.exit when when
+ exit_state indicates that we've visited do_exit.
+ * sync.h (lock_process::lock_process): Use renamed exit_state -
+ ES_PROCESS_LOCKED.
+ * winsup.h: Rename ES_MUTO_SET to ES_PROCESS_LOCKED.
+
+2007-02-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::bind): Remove printing wrong
+ errno in debug output.
+
+2007-02-19 Christopher Faylor <me@cgf.cx>
+
+ Remove extraneous whitespace.
+ * pinfo.cc (commune_process): Use default argument to lock_process.
+ * sigproc.cc: Update copyright.
+ * select.cc: Ditto.
+
+2007-02-15 Corinna Vinschen <corinna@vinschen.de>
+
+ * posix_ipc.cc (mq_open): Avoid compiler warning. Initialize mqhdr
+ before using it in file exists case.
+ * include/mqueue.h (mqd_t): Make non-pointer type.
+
+2007-02-15 Corinna Vinschen <corinna@vinschen.de>
+
+ * posix_ipc.cc (ipc_mutex_init): Create global object name.
+ (ipc_cond_init): Ditto.
+ (struct mq_hdr): Add mqh_uname member to store synchronization object
+ name.
+ (mq_open): Create unique synchronization object name and store in
+ mq_hdr->mqh_uname. Use this name in calls to ipc_mutex_init and
+ ipc_cond_init.
+
+2007-02-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * Makefile.in (DLL_OFILES): Add posix_ipc.o.
+ * cygwin.din (mq_close): Export.
+ (mq_getattr): Export.
+ (mq_notify): Export.
+ (mq_open): Export.
+ (mq_receive): Export.
+ (mq_send): Export.
+ (mq_setattr): Export.
+ (mq_timedreceive): Export.
+ (mq_timedsend): Export.
+ (mq_unlink): Export.
+ * posix_ipc.cc: New file implementing the above functions. Move
+ shm_open and shm_unlink from syscalls.cc here.
+ * sysconf.cc (sca): Set value of _SC_MQ_OPEN_MAX to MQ_OPEN_MAX,
+ _SC_MQ_PRIO_MAX to MQ_PRIO_MAX, _SC_MESSAGE_PASSING to
+ _POSIX_MESSAGE_PASSING.
+ * include/limits.h (MQ_OPEN_MAX): Define.
+ (MQ_PRIO_MAX): Define.
+ * include/mqueue.h: New file.
+ * include/cygwin/version.h: Bump API minor number.
+
+2007-02-13 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/stdlib.h (valloc): Declare.
+ (memalign): Declare.
+
+2007-02-09 Pierre A. Humblet <Pierre.Humblet@ieee.org>
+
+ * libc/minires-os-if.c (write_record): Handle DNS_TYPE_SRV and
+ some obsolete types.
+
+2007-02-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * syscalls.cc (check_shm): New static function to do path checking
+ common to shm_open and shm_unlink. Check for /dev/shm existance.
+ (shm_open): Call check_shm.
+ (shm_unlink): Ditto.
+
+2007-02-08 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din (shm_open): Export.
+ (shm_unlink): Export.
+ * syscalls.cc (shm_open): New function.
+ (shm_unlink): New function.
+ * sysconf.cc (sca): Set value of _SC_SHARED_MEMORY_OBJECTS to
+ _POSIX_SHARED_MEMORY_OBJECTS.
+ * include/cygwin/version.h: Bump API minor number.
+ * include/sys/mman.h (shm_open): Add prototype.
+ (shm_unlink): Ditto.
+
+2007-02-08 Christopher Faylor <me@cgf.cx>
+ Corinna Vinschen <corinna@vinschen.de>
+
+ * cygmalloc.h (__set_ENOMEM): Declare.
+ (MALLOC_FAILURE_ACTION): Call __set_ENOMEM.
+ * malloc_wrapper.cc (malloc) Remove setting errno here.
+ (realloc): Ditto.
+ (calloc): Ditto.
+ (memalign): Ditto.
+ (valloc): Ditto.
+ (posix_memalign): Save and restore errno.
+
+2007-02-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygmalloc.h (MALLOC_FAILURE_ACTION): Move to correct #if branch.
+
+2007-02-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygmalloc.h (MALLOC_FAILURE_ACTION): Define empty.
+ * cygwin.din (posix_madvise): Export.
+ (posix_memalign): Export.
+ * fhandler.cc (fhandler_base::fpathconf): Return useful values in
+ _PC_VDISABLE, _PC_SYNC_IO and _PC_SYMLINK_MAX cases.
+ * malloc_wrapper.cc (malloc): Set errno here since it's not set in
+ dlmalloc.c anymore.
+ (realloc): Ditto.
+ (calloc): Ditto.
+ (memalign): Ditto.
+ (valloc): Ditto.
+ (posix_memalign): New function.
+ * mmap.cc (posix_madvise): New function.
+ * sysconf.cc (get_open_max): New function.
+ (get_page_size): Ditto.
+ (get_nproc_values): Ditto.
+ (get_avphys): Ditto.
+ (sc_type): New type.
+ (sca): New array to map _SC_xxx options to sysconf return values.
+ (sysconf): Reimplement using sca array.
+ * include/limits.h: Add all missing values as defined by SUSv3.
+ * include/pthread.h (PTHREAD_DESTRUCTOR_ITERATIONS): Move definition
+ to sys/limits.h.
+ (PTHREAD_KEYS_MAX): Ditto.
+ * include/semaphore.h (SEM_VALUE_MAX): Ditto.
+ * include/cygwin/stdlib.h (posix_memalign): Declare.
+ * include/cygwin/version.h: Bump API minor number.
+ * include/sys/mman.h: Add posix_madvise flags.
+ (posix_madvise): Declare.
+ * include/sys/termios.h (_POSIX_VDISABLE): Move definition to
+ sys/limits.h.
+
+2007-02-05 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_serial.cc (fhandler_serial::tcsetattr): Add support for
+ baud rates up to 3000000 baud. Add missing 128K and 256K cases.
+ (fhandler_serial::tcgetattr): Ditto.
+ * include/sys/termios.h: Add baud rate definitions from B460800 up to
+ B3000000.
+
+2007-02-02 Corinna Vinschen <corinna@vinschen.de>
+
+ * syscalls.cc (unlink_nt): Add missing assignment in case NtClose fails.
+
+2007-02-01 Corinna Vinschen <corinna@vinschen.de>
+
+ * net.cc (ga_dup): New function, taken from ga_clone with v4-in-v6
+ mapping addition.
+ (ga_clone): Just call ga_dup from here.
+ (ga_duplist): New function to duplicate list of struct addrinfo.
+ (ga_echeck): Don't check ai_flags, it already happened in
+ cygwin_getaddrinfo.
+ (cygwin_freeaddrinfo): Always call ipv4_freeaddrinfo.
+ (cygwin_getaddrinfo): Use new wincap.supports_all_posix_ai_flags
+ flag rather than wincap.has_gaa_on_link_prefix. Always duplicate
+ WinSock's addrinfo list to a self-allocated list. Handle AI_V4MAPPED
+ for pre-Vista platforms supporting getaddrinfo.
+ * wincap.h (wincapc::supports_all_posix_ai_flags): New element.
+ * wincap.cc: Implement above element throughout.
+ * include/netdb.h: Note how AI_ADDRCONFIG is not supported pre-Vista.
+ Remove superfluous comment.
+
+2007-02-01 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/cygwin/socket.h: Add IPv6 socket options.
+
+2007-01-31 Corinna Vinschen <corinna@vinschen.de>
+
+ * net.cc (cygwin_getaddrinfo): Fix thinko in AI_ADDRCONFIG handling.
+
+2007-01-31 Corinna Vinschen <corinna@vinschen.de>
+
+ * net.cc (cygwin_getaddrinfo): Check ai_flags for valid values.
+ Handle AI_NUMERICSERV. Handle AI_ADDRCONFIG behaviour on Vista.
+ * include/netdb.h (AI_NUMERICSERV): Add missing flag.
+
+2007-01-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::closedir): Add dir name
+ to debug output.
+ * syscalls.cc (try_to_bin): Enable code to move file to user specific
+ recycler dir to eliminate Vista problem.
+ (unlink_nt): Add comment that rename after opening for delete on close
+ only fails on XP.
+
+2007-01-30 Corinna Vinschen <corinna@vinschen.de>
+
+ * sigproc.cc (child_info::child_info): Set msv_count to non-zero
+ value only on systems requiring it.
+
+2007-01-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/ftw.h: Include sys/cdefs.h.
+
+2007-01-26 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Implement rmdir
+ on NT by calling unlink_nt. Check for directory here.
+ * syscalls.cc (try_to_bin): Fix buggy debug_printf statement.
+ (unlink_nt): Make non-static. Don't use delete-on-close semantics on
+ directories. Explain why.
+
+2007-01-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * net.cc (if_nametoindex): This time, really free IP_ADAPTER_ADDRESSES
+ memory.
+ (if_indextoname): Ditto.
+
+2007-01-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * security.h (pop_thread_privilege): Revert to previous state, not
+ to token used for impersonation.
+
+2007-01-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygheap.h (cygheap_user::deimpersonate): Always RevertToSelf.
+
+2007-01-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * net.cc (gai_errmap): Add EAI_OVERFLOW entry. Fix formatting.
+ (cygwin_gai_strerror): Drop using EAI_MAX.
+ (w32_to_gai_err): Ditto.
+ * include/netdb.h: Define EAI_OVERFLOW. Remove EAI_MAX.
+
+2007-01-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * include/netdb.h: Add AI_xxx flags available since Vista.
+
+2007-01-23 Corinna Vinschen <corinna@vinschen.de>
+
+ * net.cc (if_nametoindex): Free IP_ADAPTER_ADDRESSES memory.
+ (if_indextoname): Ditto.
+ (if_nameindex): Ditto. Remove duplicate indexed entries in result.
+
+2007-01-21 Corinna Vinschen <corinna@vinschen.de>
+
+ * autoload.cc (WSAIoctl): Define.
+ (SendARP): Define.
+ * cygwin.din: Export if_freenameindex, if_indextoname, if_nameindex and
+ if_nametoindex.
+ * fhandler_procnet.cc: Drop including wchar.h. Drop definitions of
+ GAA_FLAG_INCLUDE_ALL_INTERFACES, IP_ADAPTER_UNICAST_ADDRESS_VISTA.
+ (fhandler_procnet::exists): Check for has_gaa_prefixes. Call
+ get_adapters_addresses here.
+ (fhandler_procnet::readdir): Ditto.
+ (prefix): Move to net.cc.
+ (fhandler_procnet::fill_filebuf): Call get_adapters_addresses here.
+ Simplify allocation. Use AdapterName rather than FriendlyName as
+ interface name. Use IfIndex if available, Ipv6IfIndex otherwise.
+ (in6_are_prefix_equal): Move to net.cc.
+ * fhandler_socket.cc: Define old SIOCGxxx values.
+ (CONV_OLD_TO_NEW_SIO): Convert old SIOCGxxx value to new one.
+ (struct __old_ifreq): Define old struct ifreq.
+ (fhandler_socket::ioctl): Handle old SIOCGxxx values. Handle new
+ SIOCGIFFRNDLYNAM command. Simplify copying ifreq data to user space.
+ Call get_ifconf with additional SOCKET parameter.
+ * net.cc (IP_ADAPTER_UNICAST_ADDRESS_LH): Define.
+ (IP_ADAPTER_ADDRESSES_LH): Define.
+ (SIO_GET_INTERFACE_LIST): Define.
+ (sockaddr_in6_old): Define.
+ (sockaddr_gen): Define.
+ (INTERFACE_INFO): Define.
+ (IN_LOOPBACK): Define.
+ (in_are_prefix_equal): New static function.
+ (ip_addr_prefix): New function, replaces prefix function, add AF_INET
+ handling.
+ (GAA_FLAG_INCLUDE_ALL_INTERFACES): Define.
+ (get_adapters_addresses): New function.
+ (WS_IFF_xxx): Define Winsock interface flag values.
+ (convert_ifr_flags): New function to convert Winsock interface flag
+ values to Cygwin interface flag values.
+ (get_xp_ifconf): New get_ifconf implementation for XP SP1 and above.
+ (get_2k_ifconf): Fix interface index. Fix formatting.
+ (get_nt_ifconf): Fix formatting.
+ (get_95_ifconf): Ditto.
+ (get_ifconf): Take additional SOCKET parameter. Call get_xp_ifconf
+ on XP SP1 and above.
+ (if_nametoindex): New function.
+ (if_indextoname): New function.
+ (if_nameindex): New function.
+ (if_freenameindex): New function.
+ (in6_are_prefix_equal): Moved here from fhandler_procnet.cc.
+ * wincap.cc (wincap_xp): Define has_gaa_prefixes as true by default.
+ (wincapc::init): Assume has_osversioninfoex by default. Call
+ GetVersionEx with OSVERSIONINFOEX first. Call with OSVERSIONINFO only
+ if that fails. Simplify NT4 case and try to avoid strcmp. Check XP
+ Service Pack using version.wServicePackMajor to avoid strcmp.
+ * include/asm/socket.h (SIOCGIFFRNDLYNAM): Define.
+ * include/cygwin/if.h: Fix formatting.
+ (IFF_POINTTOPOINT): Define.
+ (IFF_NOARP): Define.
+ (IFF_LOWER_UP): Define.
+ (IFF_DORMANT): Define.
+ (struct if_nameindex): Define.
+ (IFRF_FRIENDLYNAMESIZ): Define.
+ (struct ifreq_frndlyname): Define.
+ (IFNAMSIZ): Redefine as 44.
+ (IF_NAMESIZE): Define.
+ (struct ifreq): Redefine ifru_flags as int. Define ifru_data. Pad size
+ to sizeof sockaddr_in6 for further extensions.
+ (ifr_data): Define.
+ (ifr_frndlyname): Define.
+ (if_nametoindex): Declare.
+ (if_indextoname): Declare.
+ (if_nameindex): Declare.
+ (if_freenameindex): Declare.
+ * include/cygwin/version.h: Bump API minor number.
+ (CYGWIN_VERSION_CHECK_FOR_OLD_IFREQ): Define check for old vs. new
+ ifreq structure.
+
2007-01-18 Corinna Vinschen <corinna@vinschen.de>
* spawn.cc (spawn_guts): Don't set cwd for non-Cygwin child processes