summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
Commit message (Collapse)AuthorAgeFilesLines
* *** empty log message ***Corinna Vinschen2012-04-051-0/+5
|
* * passwd.cc (pwdgrp::read_passwd): Fix pretty_ls entry tyo containCorinna Vinschen2012-04-052-1/+6
| | | | the required number of colons.
* * fhandler.h (fhandler_pty_common::bytes_available): Declare new function.Christopher Faylor2012-04-054-70/+98
| | | | | | | | | | | | | | | (fhandler_pty_master::flush_to_slave): Ditto. * fhandler_tty.cc (bytes_available): Define new function. (fhandler_pty_common::bytes_available): Ditto. (handler_pty_master::flush_to_slave): Ditto. (fhandler_pty_master::process_slave_output): Call flush_to_slave () here. Use bytes_available () rather than PeekNamedPipe. Cleanup sloppy logic. (fhandler_pty_slave::read): Use bytes_available () rather than PeekNamedPipe. (fhandler_pty_slave::ioctl): Ditto. (fhandler_pty_master::ioctl): Ditto. (fhandler_pty_master::cleanup): Remove ancient #if 0. * select.cc (peek_pipe): Call flush_to_slave whenever we're checking for a pty master.
* * fhandler_nodevice.cc (fhandler_nodevice::open): Convert EROFS toCorinna Vinschen2012-04-043-3/+17
| | | | | | ENOENT if non-existent file got opened for reading only. Explain why. * path.cc (path_conv::check): Stick to ENOENT if file has been opened for informational purposes only. Add to comment.
* * path.cc (path_conv::check): Convert device type to FH_FS forCorinna Vinschen2012-04-042-0/+19
| | | | | non-existant files on /dev, unless /dev itself doesn't exist on disk. Add comment to explain why.
* * hookapi.cc (rvadelta): Compute max_size using SizeOfRawData ratherCorinna Vinschen2012-04-042-1/+6
| | | | than VirtualSize.
* * passwd.cc (_getpass_close_fd): New static pthread cleanup handler.Corinna Vinschen2012-04-042-12/+40
| | | | | | (getpass): Rework to use /dev/tty in the first place. Install _getpass_close_fd as pthread cleanup handler. Flush prompt explicitely. Lock input and switch off signal input handling when reading password.
* * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 13.Corinna Vinschen2012-04-032-1/+5
|
* * syscalls.cc (fhandler_base::stat_fixup): Replace string comparisonCorinna Vinschen2012-04-032-1/+6
| | | | with new device::is_dev_resident() call.
* * devices.h (lives_in_dev): New field.Christopher Faylor2012-04-025-3294/+3372
| | | | | | | | | | | | | | | | (dev_on_fs): Set bit size. (is_dev_resident): Define new method. * devices.in: Use different method for labelling requested name for dev storage: prefix it with a ='. Use an actual ':' to denote an internal device. (exists_console): Avoid repeated test. (exists_ntdev_silent): Rename from the less-descriptive exists_ntdevs. (dev_dev_storage): Delete unneeded define. * gendevices: Add a flag to each line denoting whether the device lives in /dev space. (generate): Handle special ":" case here for internal devices. Parse =something_dev as requiring a storage location. Tack the rest of the line back onto the reformulated "$rest". * devices.cc: Regenerate.
* * devices.h (device::get_device): New method.Corinna Vinschen2012-04-024-5/+17
| | | | | | * fhandler_dev.cc (fhandler_dev::readdir): Set st_ino to device number. * syscalls.cc (fhandler_base::stat_fixup): Ditto. Fix link count for CD-ROM devices. Fix typo in comment.
* * fhandler.h (fhandler_base::stat_fixup): Rename fromCorinna Vinschen2012-04-023-5/+18
| | | | | | fhandler_base::set_ino_and_dev. * syscalls.cc (fhandler_base::stat_fixup): Ditto. Accommodate name change throughout. Fixup link count of console devices.
* * devices.h (FH_CYGDRIVE): Define as DEV_VIRTFS_MAJOR class device.Corinna Vinschen2012-04-025-9/+18
| | | | | | | | | (DEV_CYGDRIVE_MAJOR): Remove. (iscygdrive_dev): Define. * dtable.cc (fh_alloc): Accommodate above change. * path.cc (path_conv::check): Use iscygdrive_dev to check for cygdrive. * syscalls.cc (fhandler_base::set_ino_and_dev): Drop check for DEV_CYGDRIVE_MAJOR from conditional.
* * devices.h (FH_DEV): Define as DEV_VIRTFS_MAJOR class device.Corinna Vinschen2012-04-024-7/+13
| | | | | | | (DEV_DEV_MAJOR): Remove. * dtable.cc (fh_alloc): Accommodate above change. * syscalls.cc (set_ino_and_dev): Drop check for DEV_DEV_MAJOR from conditional.
* * fhandler.h (fhandler_base::set_ino_and_dev): Declare.Corinna Vinschen2012-04-023-16/+44
| | | | | | | | * syscalls.cc (fhandler_base::set_ino_and_dev): New method to set st_ino, st_dev, and st_rdev for devices in a single spot. (fstat64): Call fhandler_base::set_ino_and_dev instead of setting st_ino, st_dev, and st_rdev here. (stat_worker): Ditto.
* * fhandler.h (fhandler_dev::open): Declare.Corinna Vinschen2012-04-026-3/+113
| | | | | | | | | | | | | | | | (fhandler_dev::close): Declare. (fhandler_dev::fstat): Declare. (fhandler_dev::fstatvfs): Declare. (fhandler_cygdrive::fstatvfs): Declare. * fhandler_dev.cc (fhandler_dev::open): New method. (fhandler_dev::close): Ditto. (fhandler_dev::fstat): Ditto. (fhandler_dev::fstatvfs): Ditto. * fhandler_disk_file.cc (fhandler_base::fstat_helper): Don't fill st_rdev. (fhandler_cygdrive::fstatvfs): New method. * path.h (path_conv::fs_got_fs): New method. * mount.h (fs_info::got_fs): Change type to bool, make public.
* * mount.cc (fillout_mntent): Use "none" rather than 0 when checkingCorinna Vinschen2012-04-022-1/+6
| | | | FS type.
* * dtable.cc (dtable::fixup_close): Define new function.Christopher Faylor2012-04-014-14/+47
| | | | | | | | | | | (dtable::fixup_after_exec): Use fixup_close() and detect when it was not possible to open an inherited file handle. (dtable::fixup_after_fork): Defensively close any file handles which were not, for some reason, inheritable. * dtable.h: Make #pragma once. (dtable::fixup_close): Declare new function. * fhandler_console.cc (fhandler_console::set_unit): Set I/O handles to NULL when this function fails.
* * fhandler_dev.cc (fhandler_dev::readdir): Fix formatting. SimplifyCorinna Vinschen2012-04-012-41/+25
| | | | | code. Use device::type() to fetch dirent compatible device type. Add comment.
* * devices.h (device::exists_func): Redefine field.Christopher Faylor2012-04-016-8387/+7578
| | | | | | | | | | | | (device::dev_on_fs): Remove unneeded bit field. Just make a normal boolean. (device::exists): Redefine function. * devices.in: Move previous functions earlier since they are now only defined static. Rename some functions due to an as-yet unresolved bug in gendevices. Rename posix part of internal-only devices with a double-slash. gendevices will eventuall translate that to a ":". (device::parse): Rework to use dev pointer and dev_storage_end. * devices.cc: Regenerate. * gendevices: Translate "// to ": after shilka processing.
* * devices.cc: Regenerate.Corinna Vinschen2012-03-316-2740/+2842
| | | | | | | | | | | | | | | | | | | | | | | | | * devices.h (device::exists_func): New member function pointer, replacing noexpose. (device::expose): Remove. (device::exists_never): Declare. (device::exists_ptys): Declare. (device::exists_cons): Declare. (device::exists_console): Declare. (device::exists_nt_dev): Declare. (device::exists): Declare. * devices.in (dev_storage): Replace former noexpose values with pointers to matching exists_XXX method. (device::exists_never): New method. (device::exists_ptys): New method. (device::exists_cons): New method. (device::exists_console): New method. (device::exists_nt_dev): New method. (device::exists): New method. * fhandler_dev.cc (fhandler_dev::readdir): Replace call to device::expose with call to device::exists and drop all further existence filtering since it's done in device::exists now. * path.cc (path_conv::check): Replace call to device::expose with call to device::exists.
* update copyrightChristopher Faylor2012-03-311-1/+1
|
* (Interim checkin while we work on this)Christopher Faylor2012-03-319-285/+317
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * devices.cc: Regenerate. * devices.h (device::noexpose): New field. (device::dev_on_fs): Make a bit field. (get_major): Use proper type for declaration. (expose): New field. (ext_dev_storage): Delete declaration. (dev_storage_size): Ditto. (dev_storage): New declaration. (dev_storage_end): Ditto. * devices.in: Mark /dev/ptym*, /dev/com*, /dev/pipe, /dev/fifo, and "/dev" as "no expose". * fhandler.h (fhandler_dev::lastrealpos): Delete declaration. (fhandler_dev::devidx): Declare new field. * fhandler_disk_file.cc: Move fhandler_dev functions into fhandler_dev.cc. * fhandler_dev.cc: Add includes needed for functions moved from fhandler_disk_file.cc. (dev_storage_scan_start): Define place to start listing devices. (dev_storage_size): Define size of array to scan. (fhandler_dev::fhandler_dev): Move here from fhandler_disk_file.cc. (fhandler_dev::opendir): Ditto. (fhandler_dev::readdir): Just check devidx for non-NULL to determine when to go to disk for /dev content. Use dev_storage rather than ext_dev_storage. Iterate over dev_storage using devidx pointer. Use accessor functions rather than raw references to the device struct. Only increment dir->__d_position when we are actually going to be returning something. Add debug_printf for exit. (fhandler_dev::rewinddir): Set devidx as appropriate depending on whether there's a /dev on disk or not. * gendevices: Don't mark dev_storage static but do put it in the _RDATA section. * path.cc (path_conv::check): Use new "device::expose()" function to decide to forbid programs from referencing internal device types.
* *** empty log message ***Corinna Vinschen2012-03-301-1/+1
|
* * posix.sgml (std-notes): Change description of flock restrictions.Corinna Vinschen2012-03-303-4/+23
|
* * devices.h (DEV_TTY_MAJOR): Define, use throughout where appropriate.Corinna Vinschen2012-03-303-37/+96
| | | | | | | (DEV_VIRTFS_MAJOR): Ditto. * fhandler_dev.cc (fhandler_dev::readdir): Add comments. Tweak tests for invisible devices. Don't print comX devices, only ttySX. Drop requirement to call stat64.
* *** empty log message ***Corinna Vinschen2012-03-291-0/+7
|
* * Makefile.in (DLL_OFILES): Add fhandler_dev.o.Corinna Vinschen2012-03-2912-37/+325
| | | | | | | | | | | | | | | | | | | | | | | * devices.h (DEV_DEV_MAJOR): Define. (FH_DEV): Redefine in terms of DEV_DEV_MAJOR. (ext_dev_storage): Declare. (dev_storage_size): Declare. (dev_dev_storage): Declare. (dev_dev): Define. (isdev_dev): Define. * devices.in (dev_dev_storage): Activate. (ext_dev_storage): Define as externally available pointer to dev_storage. (dev_storage_size): Define to contain number of dev_storage elements. * dir.cc (rmdir): Handle /dev as always not empty. * dtable.cc (fh_alloc): Handle DEV_DEV_MAJOR. * fhandler.h (fhandler_dev): New class, derived from fhandler_disk_file. (fhandler_union): Add fhandler_dev member. * fhandler_disk_file.cc (class __DIR_mounts): Handle /dev directory to make sure it always exists. * fhandler_dev.cc: New file implementing /dev. * globals.cc (ro_u_dev): New R/O unicode string. * path.cc (path_conv::check): Handle FH_DEV device.
* * fhandler_console.cc (fhandler_console::set_unit): Don't succeed unless we areChristopher Faylor2012-03-292-2/+13
| | | | opening a console actually associated with this process.
* * sec_acl.cc (acl32): Fix potnetial crash if build_fh_name returns NULL.Corinna Vinschen2012-03-292-4/+8
|
* * exceptions.cc (ctrl_c_handler): Don't generate a SIGINT if we've execed aChristopher Faylor2012-03-292-2/+9
| | | | non-cygwin process. Let the Windows process deal with it itself.
* * sigproc.cc (proc_terminate): Avoid releasing myself.Christopher Faylor2012-03-282-1/+6
|
* * times.cc (clock_setres): Set minperiod to period.Corinna Vinschen2012-03-282-1/+5
|
* Fix copyright.Corinna Vinschen2012-03-271-1/+1
|
* * fhandler_process.cc (process_tab): Add entry for mountinfo.Corinna Vinschen2012-03-272-9/+69
| | | | | | | | | | | | | | (format_process_mountstuff): New function, derived from format_process_mounts. Only open another user's user_info shared memory area if the process is owned by another user. Actually access the opened shared user_info to get the right mount table. For other users, don't print remote cygdrive mount points. Print mountinfo or mounts output depending on the bool mountinfo argument. (format_process_mounts): Just call format_process_mountstuff with mountinfo set to false. (format_process_mountinfo): Ditto with mountinfo set to true. * new-features.sgml (ov-new1.7.11): Add mountinfo.
* * times.cc (clock_setres): Revert previous change.Corinna Vinschen2012-03-272-4/+5
|
* * fhandler.h (class fhandler_dev_clipboard): Add fstat method.Corinna Vinschen2012-03-263-14/+72
| | | | | | | | | * fhandler_clipboard.cc (cygcb_t): New type for Cygwin-specific clipboard format. (set_clipboard): Use new clipboard format to allow setting a timestamp. (fhandler_dev_clipboard::fstat): New method. Read modification and access timestamp as well as length from clipboard data. (fhandler_dev_clipboard::read): Use new clipboard format.
* * hires.h (hires_ms::dmsecs): Drop unused method.Corinna Vinschen2012-03-263-27/+26
| | | | | | | | | | * times.cc (JITTER): Remove. (gtod): Revert to process-local variable. (hires_ms::nsecs): Just return system time to disallow discrepancy with the OS. (hires_ms::resolution): Return coarsest timer value from OS. Add comment to explain why. (clock_setres): Ditto.
* * child_info.h: Reset magic number.Christopher Faylor2012-03-212-1/+5
|
* * child_info.h (child_info::postfork): Define new function.Christopher Faylor2012-03-216-12/+28
| | | | | | | | | | | | * fork.cc (frok::parent): Call postfork to do all of the manipulation required prior to calling pinfo::remember. * pinfo.h (pinfo::set_rd_proc_pipe): Just set pinfo's rd_proc_pipe. Don't bother setting it to NULL. * sigproc.cc (child_info_spawn::wait_for_myself): Call postfork to set up myself for waiting. * spawn.cc (child_info_spawn::worker): Avoid now-unnecessary global lock. Consistently test mode rather than chtype when making wr_proc_pipe decisions. Call postfork() to set up stuff prior to pinfo::remember.
* * cygtls.cc (well_known_dlls): Add advapi32.dll.Corinna Vinschen2012-03-212-0/+5
|
* * child_info.h: Reset magic number.Christopher Faylor2012-03-215-14/+31
| | | | | | | | | | | (child_info_spawn::wait_for_myself): Move function to sigproc.cc. * pinfo.cc (is_toplevel_proc): Delete unneeded variable. * sigproc.cc (child_info_spawn::wait_for_myself): Move function from header to here. Do all setup required to properly wait for top-level execed process to exit. * spawn.cc (child_info_spawn::worker): Attempt to properly handle _P_DETACH. Set wr_proc_pipe if top-level process even when execing. Just call wait_for_myself() to... wait for myself. Don't call cleanup twice.
* * pinfo.cc (proc_waiter): Remove debugging.Christopher Faylor2012-03-212-1/+4
|
* * dtable.cc (set_std_handle): Call SetStdHandle with NULL if fd is closed.Christopher Faylor2012-03-204-14/+25
| | | | | | (dtable::release): "Close" standard handle if appropriate. * dcrt0.cc (dll_crt0_0): Fix minor switch formatting problem. * fork.cc (frok::parent): Make minor comment indentation change.
* * syscalls.cc (lseek): Fix debug output.Corinna Vinschen2012-03-202-1/+8
|
* * ntdll.h (SharedUserData): Add volatile qualifier. This fixes aCorinna Vinschen2012-03-203-6/+17
| | | | possible infinite loop in hires_ms::timeGetTime_ns.
* * child_info.h (CURR_CHILD_INFO_MAGIC): Reset.Christopher Faylor2012-03-209-111/+148
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (child_info::rd_proc_pipe): Declare new field. (child_info::wr_proc_pipe): Ditto. (child_info::prefork): Declare new function, derived from previous pinfo version. * dcrt0.cc (child_info_fork::handle_fork): Close previous wr_proc_pipe when appropriate and assign new one from passed-in child_info block. (child_info_spawn::handle_spawn): Assign our wr_proc_pipe handle from passed-in child_info block. * fork.cc (child_info::prefork): Define new function. (frok::child): Clear rd_proc_pipe and wr_proc_pipe so they will not be closed by the child_info destructor. (frok::parent): Use child_info prefork handling, outside of retry loop. Set rd_proc_pipe in child's pinfo after successful CreateProcess. Eliminate postfork call. * globals.cc (my_wr_proc_pipe): Define/declare new variable. * pinfo.cc (pinfo::pending_rd_proc_pipe): Delete. (pinfo::pending_wr_proc_pipe): Ditto. (pinfo::prefork): Ditto. (pinfo::postfork): Ditto. (pinfo::postexec): Ditto. (pinfo::wait): Assume that rd_proc_pipe is set up correctly prior to call. (_pinfo::alert_parent): Replace "wr_proc_pipe" with "my_wr_proc_pipe". * pinfo.h (_pinfo::_wr_proc_pipe): Delete declaration. (_pinfo::set_rd_proc_pipe): Define new function. (pinfo::pending_rd_proc_pipe): Delete declaration. (pinfo::pending_wr_proc_pipe): Ditto. (pinfo::prefork): Ditto. (pinfo::postfork): Ditto. (pinfo::postexec): Ditto. (pinfo::wr_proc_pipe): Ditto. * sigproc.cc (child_info::child_info): Clear rd_proc_pipe and wr_proc_pipe. (child_info::cleanup): Close rd_proc_pipe and wr_proc_pipe if necessary. (child_info_fork::child_info_fork): Set forker_finished to NULL by default. (child_info_spawn::child_info_spawn): Use my_wr_proc_pipe rather than myself->wr_proc_pipe. (child_info::sync): Ditto. (child_info_spawn::cleanup): Call child_info::cleanup. * spawn.cc (child_info_spawn::worker): Remove call to myself.prefork(). Set wr_proc_pipe when execing or set up new rd_proc_pipe/wr_proc_pipe via child_info::prefork when spawning. Remove call to pinfo::postexec. Set rd_proc_pipe in child pinfo when spawning. Use my_wr_proc_pipe rather than myself->wr_proc_pipe. Remove call to postfork.
* * pinfo.cc (pinfo_init): Cosmetic change: unset "destroy" for myself.Christopher Faylor2012-03-203-8/+28
| | | | | | | | | (pinfo::wait): Change some comments. (pinfo::prefork): Move a comment. (pinfo::postfork): Set pending_*_pipe variables to NULL if closed. (pinfo::postexec): Use right name when closing handle. (_pinfo::alert_parent): Ditto. * sigproc.h (hold_everything): Remove debugging label.
* * cygserver_ipc.h: Include sigproc.h for signal_arrived declaration.Christopher Faylor2012-03-192-1/+6
|
* * cygprops.h: Use #pragma once.Christopher Faylor2012-03-195-22/+33
| | | | | | | * mkglobals_h: Ditto for generated globals.h file. * globals.cc: Use specific NO_GLOBALS_H flag to control inclusion of globals.h. * winsup.h: Honor NO_GLOBALS_H to control inclusion of globals.h. Make clear_procimptoken extern inline so that it is only defined when needed.