summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
Commit message (Collapse)AuthorAgeFilesLines
* * fork.cc (fork_child): Call the __pthread_atforkchild function.Christopher Faylor2001-04-137-4/+163
| | | | | | | | | | | | (fork_parent): Call the __pthread_atforkparent function. * cygwin.din: Export pthread_atfork. * thread.h (callback): New class. (MTinterface): Use it. * thread.cc (__pthread_atforkprepare): New function. (__pthread_atforkparent): New function. (__pthread_atforkchild): New function. (__pthread_atfork): New function. * pthread.cc (pthread_atfork): New function.
* * path.cc (add_ext_from_sym): New define evaluating `known'suffix'.Corinna Vinschen2001-04-132-19/+15
| | | | (path_conv::check): Use add_ext_from_sym throughout.
* * dir.cc (mkdir): Check for case clash.Corinna Vinschen2001-04-128-45/+228
| | | | | | | | | | | | | | | | | | | | | | | | | | * environ.cc: Add extern declaration for `pcheck_case'. (check_case_init): New function. (struct parse_thing): Add "check_case" option. * errno.cc (_sys_nerrlist): Add text for ECASECLASH. (strerror): Add case branch for ECASECLASH. * fhandler.cc (fhandler_disk_file::open): Check for case clash. * path.cc: Add global variable `pcheck_case'. (struct symlink_info): Add member `case_clash' and method `case_check'. (path_prefix_p_): Call `pathnmatch' instead of `strncasematch'. (pathnmatch): New funtion. (pathmatch): Ditto. (path_conv::check): Add handling for case checking. (symlink): Check for case clash. (symlink_info::check): Add parameter for case checking. Handle case checking. (symlink_info::case_check): New method. (chdir): Don't use unconverted path if pcheck_case==PCHECK_STRICT. * path.h: Add extern declarations for `pathmatch' and `pathnmatch'. (enum case_checking): New enumeration type describing the case checking behaviour of path conversion routines. (class path_conv): Add member `case_clash'. * syscalls.cc (_link): Check for case clash.
* * syscalls.cc (mkfifo): New function stub.Christopher Faylor2001-04-122-0/+11
|
* * configure.in: Remove PTH_ALLOW.Christopher Faylor2001-04-122-73/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cygwin.din: Remove @PTH_ALLOW@ prefixes to pthread functions. Add new pthread exports. * pthread.cc: New wrapper functions for the above new exports. * sched.cc (valid_sched_parameters): New function. (sched_setparam): Use it. (sched_set_thread_priority): New function. Used by pthread_sched*. * thread.cc (pthread_key_destructor::InsertAfter): New function. (pthread_key_destructor::UnlinkNext): New function. (pthread_key_destructor::Next): New function. (pthread_key_destructor_list::Insert): New function. (pthread_key_destructor_list::Remove): New function. (pthread_key_destructor_list::Pop): New function. (pthread_key_destructor::pthread_key_destructor): New function. (pthread_key_destructor_list::IterateNull): New function. (MTinterface::Init): Initialise new member. (pthread::pthread): Initialise new members. (pthread::create): Copy new attributes. Set the new thread priority. (pthread_attr::pthread_attr): Initialise new members. (pthread_key::pthread_key): Setup destructor function. (pthread_key::~pthread_key): Remove destructor function. (pthread_mutexattr::pthread_mutexattr): New function. (pthread_mutexattr::~pthread_mutexattr): New function. (__pthread_once): New function. (__pthread_cleanup): New function. (__pthread_cancel): New function. (__pthread_setcancelstate): New function. (__pthread_setcanceltype): New function. (__pthread_testcancel): New function. (__pthread_attr_getinheritsched): New function. (__pthread_attr_getschedparam): New function. (__pthread_attr_getschedpolicy): New function. (__pthread_attr_getscope): New function. (__pthread_attr_setinheritsched): New function. (__pthread_attr_setschedparam): New function. (__pthread_attr_setschedpolicy): New function. (__pthread_attr_setscope): New function. (__pthread_exit): Call any key destructors on thread exit. (__pthread_join): Use the embedded attr values. (__pthread_detach): Use the embedded attr values. (__pthread_getconcurrency): New function. (__pthread_getschedparam): New function. (__pthread_key_create): Pass the destructor on object creation. (__pthread_key_delete): Correct incorrect prototype. (__pthread_setconcurrency): New function. (__pthread_setschedparam): New function. (__pthread_cond_timedwait): Support static mutex initialisers. (__pthread_cond_wait): Ditto. (__pthread_mutex_getprioceiling): New function. (__pthread_mutex_lock): Support static mutex initialisers. (__pthread_mutex_trylock): Ditto. (__pthread_mutex_unlock): Ditto. (__pthread_mutex_destroy): Ditto. (__pthread_mutex_setprioceiling): New function. (__pthread_mutexattr_getprotocol): New function. (__pthread_mutexattr_getpshared): New function. (__pthread_mutexattr_gettype): New function. (__pthread_mutexattr_init): New function. (__pthread_mutexattr_destroy): New function. (__pthread_mutexattr_setprotocol): New function. (__pthread_mutexattr_setprioceiling): New function. (__pthread_mutexattr_getprioceiling): New function. (__pthread_mutexattr_setpshared): New function. (__pthread_mutexattr_settype): New function. Remove stubs for non MT_SAFE compilation. * thread.h: Remove duplicate #defines. Add prototypes for new functions in thread.cc. (pthread_key_destructor): New class. (pthread_key_destructor_list): New class. (pthread_attr): Add new members. (pthread): Remove members that are duplicated in the pthread_attr class. (pthread_mutex_attr): Add new members. (pthread_once): New class. * include/pthread.h: Add prototypes for new functions exported from cygwin1.dll. Remove typedefs. * include/sched.h: Add prototypes for new functions in sched.cc. * include/cygwin/types.h: Add typedefs from pthread.h
* * configure.in: Remove PTH_ALLOW.Robert Collins2001-04-129-487/+1543
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cygwin.din: Remove @PTH_ALLOW@ prefixes to pthread functions. Add new pthread exports. * pthread.cc: New wrapper functions for the above new exports. * sched.cc (valid_sched_parameters): New function. (sched_setparam): Use it. (sched_set_thread_priority): New function. Used by pthread_sched*. * thread.cc (pthread_key_destructor::InsertAfter): New function. (pthread_key_destructor::UnlinkNext): New function. (pthread_key_destructor::Next): New function. (pthread_key_destructor_list::Insert): New function. (pthread_key_destructor_list::Remove): New function. (pthread_key_destructor_list::Pop): New function. (pthread_key_destructor::pthread_key_destructor): New function. (pthread_key_destructor_list::IterateNull): New function. (MTinterface::Init): Initialise new member. (pthread::pthread): Initialise new members. (pthread::create): Copy new attributes. Set the new thread priority. (pthread_attr::pthread_attr): Initialise new members. (pthread_key::pthread_key): Setup destructor function. (pthread_key::~pthread_key): Remove destructor function. (pthread_mutexattr::pthread_mutexattr): New function. (pthread_mutexattr::~pthread_mutexattr): New function. (__pthread_once): New function. (__pthread_cleanup): New function. (__pthread_cancel): New function. (__pthread_setcancelstate): New function. (__pthread_setcanceltype): New function. (__pthread_testcancel): New function. (__pthread_attr_getinheritsched): New function. (__pthread_attr_getschedparam): New function. (__pthread_attr_getschedpolicy): New function. (__pthread_attr_getscope): New function. (__pthread_attr_setinheritsched): New function. (__pthread_attr_setschedparam): New function. (__pthread_attr_setschedpolicy): New function. (__pthread_attr_setscope): New function. (__pthread_exit): Call any key destructors on thread exit. (__pthread_join): Use the embedded attr values. (__pthread_detach): Use the embedded attr values. (__pthread_getconcurrency): New function. (__pthread_getschedparam): New function. (__pthread_key_create): Pass the destructor on object creation. (__pthread_key_delete): Correct incorrect prototype. (__pthread_setconcurrency): New function. (__pthread_setschedparam): New function. (__pthread_cond_timedwait): Support static mutex initialisers. (__pthread_cond_wait): Ditto. (__pthread_mutex_getprioceiling): New function. (__pthread_mutex_lock): Support static mutex initialisers. (__pthread_mutex_trylock): Ditto. (__pthread_mutex_unlock): Ditto. (__pthread_mutex_destroy): Ditto. (__pthread_mutex_setprioceiling): New function. (__pthread_mutexattr_getprotocol): New function. (__pthread_mutexattr_getpshared): New function. (__pthread_mutexattr_gettype): New function. (__pthread_mutexattr_init): New function. (__pthread_mutexattr_destroy): New function. (__pthread_mutexattr_setprotocol): New function. (__pthread_mutexattr_setprioceiling): New function. (__pthread_mutexattr_getprioceiling): New function. (__pthread_mutexattr_setpshared): New function. (__pthread_mutexattr_settype): New function. Remove stubs for non MT_SAFE compilation. * thread.h: Remove duplicate #defines. Add prototypes for new functions in thread.cc. (pthread_key_destructor): New class. (pthread_key_destructor_list): New class. (pthread_attr): Add new members. (pthread): Remove members that are duplicated in the pthread_attr class. (pthread_mutex_attr): Add new members. (pthread_once): New class. * include/pthread.h: Add prototypes for new functions exported from cygwin1.dll. Remove typedefs. * include/sched.h: Add prototypes for new functions in sched.cc. * include/cygwin/types.h: Add typedefs from pthread.h
* * path.cc (struct symlink_info): Add extn and ext_tacked_on fields.Christopher Faylor2001-04-112-7/+25
| | | | | | (path_conv::check): Only tack on extension if a known one didn't already exist. (suffix_scan::has): Return pointer to known extension. (symlink_info::check): Record location of extension, if any.
* * fhandler.h (class fhandler_socket): Add members and methods toEgor Duda2001-04-094-9/+200
| | | | | | | | | | | | | | | | | support secure connections on AF_UNIX sockets. * fhandler_socket.cc (fhandler_socket::set_connect_secret): New method. (fhandler_socket::get_connect_secret): Ditto. (fhandler_socket::create_secret_event): Ditto. (fhandler_socket::close_secret_event): Ditto. (fhandler_socket::check_peer_secret_event): Ditto. (fhandler_socket::fixup_after_fork): Duplicate secret event to child. (fhandler_socket::dup): Copy address family. (fhandler_socket::close): Close secret event. * net.cc (get_inet_addr): Read secret cookie. (cygwin_connect): Check if peer knows secret cookie value. (cygwin_accept): Ditto. Copy address family to newly created socket. (cygwin_bind): Generate and write secret cookie. (wsock_init): Initialize random number generator.
* Work around new g++ problem.Christopher Faylor2001-04-091-0/+1
|
* remove extra whitespace.Christopher Faylor2001-04-091-1/+1
|
* * Makefile.in: Put -lgcc last in list of libraries, since stdc++ library needsChristopher Faylor2001-04-098-444/+521
| | | | | | | | | | | | | | it. * cygwin.din: Remove obsolete "__empty" export. * exceptions.cc (call_signal_handler_now): Force inclusion of function even when -finline-functions is specified. * sigproc.h: Remove obsolete call_signal_handler declaration. * fhandler_console.cc (cp_get_internal): New function. (cp_convert): New function. (con_to_str): New function. (str_to_con): New function. (fhandler_console::read): Replace OemToCharBuff with con_to_str. (fhandler_console::write_normal): Replace CharToOemBuff with str_to_con.
* * syscalls.cc (stat_worker): Fix conditional which still allowedCorinna Vinschen2001-04-052-2/+7
| | | | successful stat'ing of non-existant files.
* * child_info.h: Bump magic number for fork/exec/spawn.Christopher Faylor2001-04-042-1/+5
|
* * errno.cc (errmap): Map ERROR_FILE_INVALID to ENXIO.Corinna Vinschen2001-04-032-0/+5
|
* * cygrun.c (main): Fix compiler warning.Christopher Faylor2001-04-038-28/+57
| | | | | | | | | | | * gmon.c (_mcleanup): Ditto. * profil.c (profile_off): Ditto. * net.cc (find_winsock_errno): New function. (__set_winsock_errno): Use find_winsock_errno. (cygwin_setsockopt): Detect SO_ERROR for debugging. (cygwin_getsockopt): Ditto. Translate error when getsockopt returns SO_ERROR. * winsup.h: regparmize __set_winsock_errno. * include/sys/strace.h: Document that strace functions can't use regparm.
* * fhandler.cc (fhandler_disk_file::open): Avoid checking a magicCorinna Vinschen2001-04-022-0/+6
| | | | number of a directory.
* * shared_info.h (mount_info): Remove mnt_ elements.Christopher Faylor2001-04-024-22/+25
| | | | | * thread.h (struct _winsup_t): Add mnt_ elements. * path.cc (fillout_mntent): Use mnt_ elements from reent_winsup ().
* * exceptions.cc (sigframe::call_signal_handler): Return value ofChristopher Faylor2001-04-024-14/+20
| | | | | | call_signal_handler_now. * sigproc.h (sigframe): Use constructor. * syscalls.cc (_read): Correct errno test prior to calling signal handler.
* Fix typo.Christopher Faylor2001-04-011-1/+1
|
* * exceptions.cc (sigframe::call_signal_handler): Move out side of "C" block orChristopher Faylor2001-04-012-7/+16
| | | | some compilers will complain.
* * exceptions.cc (call_signal_handler_now): Rename from call_signal_handler toChristopher Faylor2001-04-012-10/+15
| | | | avoid C++ confusion.
* * path.cc (fillout_mntent): Always remove drive root directories from futureChristopher Faylor2001-04-012-14/+38
| | | | | | consideration by "/cygdrive" reporting. (cygdrive_getmnt): Avoid reporting removable drives or drives with no media mounted.
* * thread.h (struct _winsup_t): Remove obsolete elements. Add available_drivesChristopher Faylor2001-04-015-145/+140
| | | | | | | | | | | | element. * path.cc (mount_info::getmntent): Report "/cygdrive" drives when mounted drives are exhausted. (fillout_mntent): New function. (mount_item::getmntent): Use fillout_mntent. (cygdrives_mntent): New function. Returns next available "/cygdrive". (setmntent): Initialize available "/cygdrives". * syscalls.cc: Remove some if 0'ed code. * times.cc (timezone): Use more descriptive variable name.
* * sigproc.h (class sigframe): Implement 'unregister()' method.Christopher Faylor2001-04-017-117/+151
| | | | | | | | | | | | | (sigframe::~sigframe): Use unregister method. (sigframe::call_signal_handler): Declare new method. * exceptions.cc (sigframe::call_signal_handler): New method. Unregisters current sigframe before calling signal handler. (setup_handler): Clear waiting threads prior to arming signal_arrived. * syscalls.cc (_read): Change goto to loop. Recalculate sigframe inside of loop so that constructor is called when appropriate. * wait.cc (wait4): Ditto. * signal.cc: Change "sig" to "signal" in debugging messages throughout. * sigproc.cc: Ditto.
* * fhandler_serial.cc (fhandler_serial::raw_write): Close protected handles withChristopher Faylor2001-03-312-2/+7
| | | | ForceCloseHandle or suffer spurious warnings.
* * fhandler.cc (fhandler_base::read): Remove special handling of CTRL-Z.Christopher Faylor2001-03-312-3/+9
|
* Fix formatting.Corinna Vinschen2001-03-311-1/+1
|
* * fhandler.h (class fhandler_console): Add members `insert_mode'.Corinna Vinschen2001-03-313-13/+49
| | | | | | | | | | | | * fhandler_console.cc (fhandler_console::dup): Duplicate `insert_mode'. (fhandler_console::fhandler_console): Initialize `insert_mode'. fhandler_console::char_command): Add terminal capabilities "enter insert mode" = \E[4h and "exit insert mode" = \E[4l. Care for insert mode on terminal capability "repeat char" = \E[x;yb. (fhandler_console::write_normal): Care for insert mode before writing to the console. (array keytable): Add keymapping for modified cursor and control block keys (xterm like).
* Fix strange formatting.Christopher Faylor2001-03-311-1/+0
|
* Fix strange formatting.Christopher Faylor2001-03-311-5/+3
|
* * fhandler.h (class fhandler_console): Add members `savebufsiz' andCorinna Vinschen2001-03-303-0/+65
| | | | | | | | | `savebuf' to allow save/restore of screen. * fhandler_console.cc (fhandler_console::dup): Duplicate savebuf. (fhandler_console::fhandler_console): Initialize `savebufsiz' and `savebuf'. (fhandler_console::char_command): Add terminal capabilities "save screen content" = \E[?47h and "restore screen content" = \E[?47l.
* * path.cc (chdir): Eat trailing whitespace on input path.Christopher Faylor2001-03-292-0/+12
|
* * lib/_cygwin_S_IEXEC.c: Remove "const" from globals or they never seem to beChristopher Faylor2001-03-284-14/+34
| | | | | | | | | defined. Wrap definitions in extern "C". Include winsup.h to assure proper definitions. * dcrt0.cc (dll_crt0_1): Call stdio_init after premain run so that binmode.o, etc., will control default stdio settings. * dtable.cc (dtable::init_std_file_from_handle): Allow __fmode to force binmode/textmode settings. Default pipes to binmode.
* * mmap.cc (mmap): Fix conditional for previous patch.Corinna Vinschen2001-03-272-1/+5
|
* add missing stuff.Christopher Faylor2001-03-261-0/+8
|
* * mmap.cc (mmap): Outflank copy-on-write problem on 9x byCorinna Vinschen2001-03-262-1/+10
| | | | setting access mode to FILE_MAP_READ when read access is requested.
* * dlfcn.cc (check_access): Eliminate.Christopher Faylor2001-03-263-107/+46
| | | | | | | | | (check_path_access): Use passed in path_conv buf. (get_full_path_of_dll): Use passed in name buf to avoid a static. Rip out most of the path checking since LoadLibrary will do all of this automatically. (dlopen): Set errno when appropriate (may not be compliant?). * environ.cc (posify): Don't pass in "native" path if it seems to actually be posix.
* * fhandler.h (fhandler_dev_clipboard): Extend to support writing.Christopher Faylor2001-03-224-31/+247
| | | | | | | | | | | | | | | * fhandler_clipboard.cc (fhandler_dev_clipboard::fhandler_dev_clipboard): Initialize new fields. Open clipboard here. (fhandler_dev_clipboard::dup): New method. (fhandler_dev_clipboard::open): Accomodate new fields. Register clipboard here, if appropriate. (set_clipboard): New function. Moves buffer to clipboard. (fhandler_dev_clipboard::write): Truly implement clipboard writing. (fhandler_dev_clipboard::read): Reimplement to allow successive reads. (fhandler_dev_clipboard::lseek): Truly implement seeks in clipboard. (fhandler_dev_clipboard::close): Clear out new fields. Support sequential reads and sequential writes. Support for binary data via a native clipboard format.
* * fhandler_console.cc (fhandler_console::set_default_attr): Update consoleChristopher Faylor2001-03-222-0/+7
| | | | color attributes on tty reset.
* * autoload.cc (kernel32_init): New function for kernel32 autoloadChristopher Faylor2001-03-222-0/+25
| | | | | | initialization. (SignalObjectAndWait): Add conditional load of this function when it is available.
* add new file.Christopher Faylor2001-03-211-0/+41
|
* Add missing files.Christopher Faylor2001-03-212-0/+457
|
* * sched.cc: New file. Implement sched*.Christopher Faylor2001-03-217-950/+1012
| | | | | | * include/sched.h: New file. User land includes for sched*. * Makefile.in: Add sched.o * cygwin.din: Add exports for sched*.
* * dtable.cc: Guard against new winsock.h/winsock2.h warnings when mixingChristopher Faylor2001-03-206-6/+14
| | | | | | | | winsock*.h and sys/types.h. * fhandler_socket.cc: Ditto. * net.cc: Ditto. * select.cc: Ditto. * exceptions.cc: Remove unneeded define.
* * exceptions.cc (interruptible): Update debugging output.Christopher Faylor2001-03-194-5/+14
| | | | | | (setup_handler): Ensure that wait_sig loop wakes up when we punt on sending a signal. * poll.cc (poll): Add signal guard here.
* * tty.h (tty::create_inuse): Add new parameter to allow non-Egor Duda2001-03-194-5/+29
| | | | | | | | | | | | inheritable 'inuse' events. * tty.cc (tty::create_inuse): Use new parameter. * fhandler_tty.cc (fhandler_tty_master::init): Ditto. * fhandler_tty.cc (fhandler_pty_master::open): Ditto. * fhandler_tty.cc (fhandler_tty_master::init): Create master_alive event. * tty.cc (tty_list::terminate): Close master_alive event. * fhandler_tty.cc (fhandler_tty_common::close): Send EOF to slaves when master side is closed.
* * mmap.cc (map::get_list_by_fd): Avoid calling `get_namehash' whenCorinna Vinschen2001-03-192-1/+6
| | | | file descriptor is -1.
* * syscalls.cc (check_posix_perm): New static function.Corinna Vinschen2001-03-193-3/+74
| | | | | | | (fpathconf): Add _PC_POSIX_PERMISSIONS and _PC_POSIX_SECURITY support. (pathconf): Ditto. * include/cygwin/version.h: Bump API minor number to 37.
* Fix spacing, copyrights.Christopher Faylor2001-03-1810-120/+116
|
* fix spacing.Christopher Faylor2001-03-181-12/+12
|