2007-01-11 Gisle Vanem <giva@users.sourceforge.net>
* include/winbase.h (struct _OVERLAPPED): Change type of
Internal, InternalHigh members to ULONG_PTR.
(PAPCFUNC): Change DWORD parameter to ULONG_PTR.
(CreateIoCompletionPort): Likewise.
(PostQueuedCompletionStatus): Likewise.
(QueueUserAPC): Likewise.
(GetQueuedCompletionStatus): Change PDWORD parm to PULONG_PTR.
(list::get_hash): Ditto.
(list::set): Add struct stat parameter. Use that instead of calling
fstat.
(map::get_list_by_fd): Ditto.
(map::add_list): Ditto.
(mmap_is_attached_or_noreserve): Call get_list_by_fd appropriately.
(mmap_worker): Add pameters for map list and file stat information.
Propagate to called functions.
(mmap64): Use fstat on files early. Replace call to GetFileSize.
Call get_list_by_fd and mmap_worker appropriately.
(RtlOemStringToUnicodeString): Define.
* ntdll.h (struct _RTL_USER_PROCESS_PARAMETERS): Define.
(struct _PEB): Redefine with a bit of content.
(RtlAnsiStringToUnicodeString): Declare.
(RtlOemStringToUnicodeString): Declare.
* path.cc: Include ntdll.h.
(_upp): New global variable pointing to user process parameter block.
(get_user_proc_parms): New static function to retrieve user process
parameter block.
(close_user_proc_parms_cwd_handle): New function to close handle to
current working directory in user process parameter block.
(cwdstuff::init): Drop redundant declaration of dynamically_loaded.
Set current dir only on 9x. Call close_user_proc_parms_cwd_handle
on NT instead.
(cwdstuff::keep_in_sync): Only on 9x.
(cwdstuff::set): Keep behaviour on 9x. On NT write cwd path into user
process parameter block and set cwd handle to NULL. Fix comments to
reflect new behaviour.
* net.cc (get_2k_ifconf): Ditto.
(get_nt_ifconf): Fake SIOCGIFINDEX.
(get_95_ifconf): Ditto.
(get_ifconf): Handle SIOCGIFINDEX. Fake it for loopback on systems
not supporting IP Helper Lib.
* include/asm/socket.h (SIOCGIFINDEX): Define.
* include/cygwin/if.h (struct ifreq): Add member for interface index.
(ifr_ifindex): Define.
* include/winbase.h (struct _OVERLAPPED): Change type of
Internal, InternalHigh members to ULONG_PTR.
(PAPCFUNC): Change DWORD parameter to ULONG_PTR.
(CreateIoCompletionPort): Likewise.
(PostQueuedCompletionStatus): Likewise.
(QueueUserAPC): Likewise.
(GetQueuedCompletionStatus): Change PDWORD parm to PULONG_PTR.
(get_special_folder): New function.
(get_user_folder): New function.
(dowin): Add -O and -F, better -D, -P error handling.
(main): Add -O and -F.
* utils.sgml (cygpath): Document -O and -F.
* sec_acl.cc (setacl): Ditto. Set to true if any ACE with write
permissions is created.
* fhandler_disk_file.cc (fhandler_disk_file::facl): Reset
FILE_ATTRIBUTE_READONLY if ACL contains an ACE with write permissions.
for SIOCGIFFLAGS here. Call get_ifconf instead.
* net.cc (get_2k_ifconf): Clean up code to generate interface name.
Handle SIOCGIFFLAGS here.
(get_nt_ifconf): Fake SIOCGIFFLAGS here.
(get_95_ifconf): Ditto.
(get_ifconf): Don't fake loopback on systems with IP Helper Lib.
Set MTU for loopback to a more "modern" value.
user information on NT4.
* sec_helper.cc (security_descriptor::malloc): Drop LocalAlloc
considerations.
(security_descriptor::realloc): Ditto.
(security_descriptor::free): Ditto.
* security.cc (get_reg_security): Reinstantiate.
(get_nt_object_security): Revert to using NtQuerySecurityObject.
* security.h (class security_descriptor): Drop type member.
Accommodate throughout.
(security_descriptor::size): Constify.
(security_descriptor::copy): Ditto.