Pierre Humblet
927761a425
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 23:32:18 +00:00
Corinna Vinschen
833db5481f
* 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 20:08:34 +00:00
Corinna Vinschen
c429beb296
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2011-08-16 14:48:38 +00:00
Corinna Vinschen
6bc64eac26
* 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-16 14:44:26 +00:00
Corinna Vinschen
56c387b1b3
* pipe.cc (pipe): Just call _pipe with O_BINARY mode. Move code to
...
generate normalized pathnames from here...
(_pipe): ...to here.
2011-08-15 16:05:13 +00:00
Corinna Vinschen
f8b8b1be3c
* 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-13 10:28:15 +00:00
Christopher Faylor
e1d5167d20
* 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 16:55:35 +00:00
Corinna Vinschen
ad39174691
* fhandler_proc.cc (fhandler_proc::closedir): Don't free, but delete
...
instead.
Also fix previous ChangeLog entry.
2011-08-12 12:35:37 +00:00
Corinna Vinschen
1f08558f14
* 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.
(fhandler_proc::closedir): New method.
2011-08-12 12:31:08 +00:00
Corinna Vinschen
6e2c582323
* 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 16:43:26 +00:00
Corinna Vinschen
3b7cd74bfd
* (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-11 07:28:42 +00:00
Corinna Vinschen
d10f0e106e
* 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-10 13:13:09 +00:00
Corinna Vinschen
afe817741c
* 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 12:00:27 +00:00
Corinna Vinschen
c29da54058
* 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-09 09:14:28 +00:00
Corinna Vinschen
f0b7368c68
* resource.cc (getrlimit): Just return RLIM_INFINITY in a request for
...
RLIMIT_AS.
2011-08-07 19:49:08 +00:00
Corinna Vinschen
60b55c4c18
* fhandler_process.cc (format_process_maps): Actually print info about
...
the application heap of the printed process, not of the current process.
2011-08-07 11:04:32 +00:00
Corinna Vinschen
a5408d982c
* net.cc (socketpair): Release sb0 if there's no space left for sb1.
2011-08-04 08:22:11 +00:00
Yaakov Selkowitz
bfc071dbce
* 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 19:17:02 +00:00
Christopher Faylor
2964913236
* 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 17:58:59 +00:00
Yaakov Selkowitz
f0968c1e7e
* 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-03 16:40:48 +00:00
Corinna Vinschen
d32e0bfc08
* 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-08-01 17:01:38 +00:00
Christopher Faylor
ab0887572f
* dll_init.cc (dll_list::load_after_fork_impl): Add a hint to an error message.
2011-08-01 13:11:37 +00:00
Christopher Faylor
dc3dc49831
* sigproc.cc (pending_signals::pending): Define new function.
...
(sig_dispatch_pending): Avoid calling sig_send if there are no pending signals.
2011-08-01 00:02:04 +00:00
Corinna Vinschen
c114604529
* 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-31 12:37:52 +00:00
Christopher Faylor
6c6fe41781
add missing entry
2011-07-30 21:09:20 +00:00
Christopher Faylor
53ad6f1394
* 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, 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 20:50:23 +00:00
Christopher Faylor
f7e198a665
* fhandler.h (fhandler_base_overlapped::size): Declare/define size() function
...
for consistency.
(fhandler_termios::size): Ditto.
(fhandler_pty_common::size): Ditto.
2011-07-30 20:01:27 +00:00
Corinna Vinschen
9e242ba461
* fhandler_registry.cc (fhandler_registry::dup): Duplicate value_name.
2011-07-30 08:09:44 +00:00
Corinna Vinschen
c487f2fef5
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-29 12:47:54 +00:00
Corinna Vinschen
303dc0230d
* 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 13:30:41 +00:00
Corinna Vinschen
f4529884e5
* ntdll.h: Fix typo in comment.
...
* path.cc: Ditto.
2011-07-26 09:54:11 +00:00
Corinna Vinschen
f4fc0c59e3
* 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-25 15:19:35 +00:00
Corinna Vinschen
cfb517f39a
* 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-22 18:50:42 +00:00
Christopher Faylor
e9b5cc32f7
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 20:21:46 +00:00
Corinna Vinschen
37aeec7f72
* 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 17:52:05 +00:00
Corinna Vinschen
86719a10d0
* 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 15:23:24 +00:00
Yaakov Selkowitz
8a7b0a00df
* 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-21 09:39:22 +00:00
Yaakov Selkowitz
7ec669539f
* 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 23:08:09 +00:00
Corinna Vinschen
b6c42976eb
* 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-18 08:43:49 +00:00
Corinna Vinschen
8924483160
* 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-14 10:02:11 +00:00
Corinna Vinschen
f55fc99c77
* fhandler_serial.cc (fhandler_serial::raw_read): Handle non-blocking
...
case more thoroughly.
2011-07-13 18:59:41 +00:00
Christopher Faylor
b4efd5410c
* setup_handler (setup_handler): Change break to goto out, missed in 2011-07-06
...
changes.
2011-07-13 17:53:21 +00:00
Christopher Faylor
c57fc872f5
* 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-11 00:03:55 +00:00
Corinna Vinschen
071bf81128
* include/netdb.h (gethostbyname2): Declare.
2011-07-10 13:22:48 +00:00
Eric Blake
14295a59d3
pthread_sigmask: fix return value to match POSIX
...
* signal.cc (handle_sigprocmask): Return error rather than setting
errno, for pthread_sigmask.
(sigprocmask): Adjust caller.
2011-07-10 00:01:33 +00:00
Corinna Vinschen
66965620fc
* miscfuncs.cc (yield): Drop thread priority only once.
2011-07-07 06:21:24 +00:00
Christopher Faylor
57e64035f8
* 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 18:44:06 +00:00
Corinna Vinschen
5e6a91549e
* sched.c (sched_yield): Just call SwitchToThread because yield now
...
potentially switches CPU.
2011-07-06 18:35:44 +00:00
Christopher Faylor
51b5e9211d
* 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 18:14:22 +00:00
Christopher Faylor
d1204b6378
* 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 16:33:30 +00:00