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
Corinna Vinschen
49e6e30f7a
* fhandler_tty.cc (fhandler_pty_master::setup): Fix crash in debug
...
output.
2011-06-22 07:37:49 +00:00
Corinna Vinschen
787908c173
* path.cc (normalize_win32_path): Skip all slashes after recognizing
...
a ".." path component. Add comment.
2011-06-18 08:36:59 +00:00
Corinna Vinschen
c36cd56c54
* 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 11:04:44 +00:00
Corinna Vinschen
a716252619
* 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 08:30:27 +00:00
Corinna Vinschen
2ae8e0e482
* dtable.cc (handle_to_fn): Accommodate name change of pty named pipes,
...
otherwise ptys are not recognized.
2011-06-17 08:27:32 +00:00
Christopher Faylor
6f294f8601
* 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-16 23:00:00 +00:00
Christopher Faylor
4d046729d1
* errno.cc (EIO): Lowercase "o" representative string.
2011-06-15 17:36:10 +00:00
Christopher Faylor
c75b5b2d13
* 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-14 21:48:43 +00:00
Christopher Faylor
0fdbb2d0cd
* fhandler_tty_slave.cc (fhandler_tty_slave::fhandler_tty_slave): Revert
...
previous change since unit 0 is perfectly valid.
2011-06-13 23:49:00 +00:00
Christopher Faylor
c3a9063f83
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-12 20:15:26 +00:00
Christopher Faylor
1516a0b4d7
* 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-10 15:06:13 +00:00
Christopher Faylor
b6510ccdcd
* 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 21:20:27 +00:00
Christopher Faylor
e254790b66
* environ.cc (envcache): Delete.
...
(known): Remove envcache.
(getwinenv): Don't honor envcache setting.
2011-06-09 19:08:22 +00:00
Christopher Faylor
b9cf88ddba
* 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-09 17:50:41 +00:00
Christopher Faylor
bb37277ac2
* environ.cc (tty_is_gone): Add missing space to message.
2011-06-08 19:51:15 +00:00
Christopher Faylor
022e15dc60
* 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-08 19:27:48 +00:00
Christopher Faylor
0791c40b20
* 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-07 20:55:10 +00:00