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
Corinna Vinschen
fa0b926af9
* sigproc.cc (wait_sig): Fix debug output.
2011-07-06 12:39:36 +00:00
Corinna Vinschen
7616b79e0d
* 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 18:01:13 +00:00
Corinna Vinschen
3fe31f2633
* security.cc (get_file_sd): Fix comment.
2011-07-05 15:42:43 +00:00
Corinna Vinschen
8c1f7cf707
* 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 12:02:10 +00:00
Corinna Vinschen
fcacca02dd
* 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-05 09:59:34 +00:00
Christopher Faylor
3dce4ce653
* environ.cc (tty_is_gone): Wrap warning at 80 characters.
2011-07-04 18:14:31 +00:00
Corinna Vinschen
fc3e7da6b0
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 15:25:36 +00:00
Corinna Vinschen
d3ed549d51
* 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 09:47:10 +00:00
Corinna Vinschen
d51a9c25bd
* environ.cc (environ_init): Reinstantiate on-the-fly CYGWIN variable
...
test and call to parse_options if found.
2011-07-04 09:39:20 +00:00
Christopher Faylor
b9a0725042
* 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-04 05:08:28 +00:00
Christopher Faylor
c38da4ee1d
* dtable.cc (cnew): Fix whitespace.
2011-07-01 22:04:20 +00:00
Corinna Vinschen
00994759b6
* 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 12:45:25 +00:00
Corinna Vinschen
9780b0da3c
* fhandler.cc (fhandler_base::open): Move NFS-specific code into the
...
code block handling FH_FS stuff.
2011-07-01 11:23:43 +00:00
Corinna Vinschen
3d938be6c5
* 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 14:04:51 +00:00
Corinna Vinschen
4b626add7e
* 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 13:55:57 +00:00
Corinna Vinschen
9e1fd6bcf7
* 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-30 09:37:36 +00:00
Corinna Vinschen
cb26eb6868
* 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-28 10:21:34 +00:00
Corinna Vinschen
b9a5b2c45f
* fhandler_console.cc (fhandler_console::read): Don't generate ^@ on
...
Ctrl+Alt+Space.
2011-06-24 08:25:19 +00:00
Corinna Vinschen
c80de4f912
* fhandler_tty.cc (fhandler_pty_master::setup): Create pty pipes
...
non-inheritable.
2011-06-22 07:58:01 +00:00