summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
Commit message (Collapse)AuthorAgeFilesLines
* * fhandler.h (fhandler_base::ftruncate): Define new virtual method.Corinna Vinschen2005-02-025-34/+77
| | | | | | | | (fhandler_disk_file::ftruncate): Ditto. * fhandler.cc (fhandler_base::ftruncate): New method. * fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Ditto. * syscalls.cc (ftruncate64): Move functionality into fhandlers. Call fhandler method from here.
* * pipe.cc (fhandler_pipe::dup): Fix conditionals in case of error.Corinna Vinschen2005-02-022-4/+9
|
* * times.cc (utimes): Mark st_ctime for update according to SUSv3.Corinna Vinschen2005-02-022-3/+11
|
* * fhandler_proc.cc (format_proc_partitions): Remove PartitionType check sinceChristopher Faylor2005-02-012-3/+7
| | | | it could skip over partitions that are actually interesting.
* * cygthread.cc (cygthread::terminate_thread): Wait briefly for notificationChristopher Faylor2005-02-019-38/+83
| | | | | | | | | | | | | | event in the event that the thread was actually in the process of exiting. * pipe.cc (fhandler_pipe::dup): read_state is not supposed to be inheritable. Fix that. * path.cc (path_conv::check): Set symlen = 0 to avoid a compiler warning. * devices.h (devices::parsedisk): Declare new function. * devices.in (devices::parsedisk): Define new function. * dtable.cc (dtable::init_std_file_from_handle): Use device numbers rather than name. * fhandler_proc.cc (format_proc_partitions): Use parsedisk to generate disk names from numeric codes. (This was broken on two of my systems previously and is still broken now)
* * pipe.cc (fhandler_pipe::open): Allow re-opening of /proc/<pid>/fdCorinna Vinschen2005-02-012-0/+38
| | | | pipes of the current process.
* * fhandler.cc (fhandler_base::get_proc_fd_name): Don't generateCorinna Vinschen2005-02-019-34/+103
| | | | | | | | | | | | | | | | | | | | | | | | | "device:" entry. * fhandler.h (fhandler_socket::open): New method. (fhandler_pipe::open): New method. * fhandler_proc.cc (fhandler_proc::exists): Return -2 in case of /proc/self. * fhandler_process.cc (fhandler_process::exists): Return -2 in case of symlinks, -3 for pipes and -4 for sockets. (fhandler_process::fstat): Handle pipes and sockets. (fhandler_process::open): Handle opening /proc/<pid>/fd. (fhandler_process::fill_filebuf): Generate empty names for non exisiting file descriptors. * fhandler_socket.cc (fhandler_socket::get_proc_fd_name): Always generate "socket:[number]" strings as on Linux. (fhandler_socket::open): New method. (fhandler_socket::fstat): Always return socket type. * path.cc (symlink_info::set): Remove unused second parameter. (path_conv::check): Handle pipes and sockets in /proc. Set correct device type for AF_LOCAL sockets. * pinfo.cc (_pinfo::commune_recv): Generate empty names for non exisiting file descriptors. (_pinfo::fd): Ditto. * pipe.cc (fhandler_pipe::open): New method.
* * path.h (path_conv::set_name): Declare new function.Christopher Faylor2005-01-315-0/+27
| | | | | | * path.cc (path_conv::set_name): Define new function. * fhandler.h (fhandler_dev_null::open): Declare new function. * fhandler.cc (fhandler_dev_null::open): Define new function.
* * smallprint.c (rnarg): Use long rather than unsigned long so that we getChristopher Faylor2005-01-312-5/+8
| | | | proper sign extension.
* * environ.cc (set_traverse): New function.Corinna Vinschen2005-01-312-6/+24
| | | | | (parse_thing): Add "traverse" option. Sort options alphabetically. (environ_init): On NT, switch on traverse checking by default.
* * smallprint.c (__rn): Regparmize.Christopher Faylor2005-01-312-0/+8
|
* * smallprint.c (rnarg): New macro.Christopher Faylor2005-01-312-14/+28
| | | | | | | (rnargLL): Ditto. (__rn): Rename from 'rn', add a mask argument, and use the mask argument to control how many significant digits to care about. (__small_vsprintf): Use __rn, rnarg, rnargLL, as appropriate.
* * pinfo.cc (pinfo::exit): Only return low-order 16 bits when exiting.Christopher Faylor2005-01-312-1/+5
|
* * fhandler_process.cc (format_process_maps): Get destbuf argument byCorinna Vinschen2005-01-312-7/+13
| | | | | reference. Allow resizing of destbuf as necessary. Fix string handling.
* * cygheap.h (class cygheap_fdenum): New class to enumerate usedCorinna Vinschen2005-01-3112-58/+307
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fhandlers. * dtable.h (class dtable): Add cygheap_fdenum as friend class. * fhandler.h (fhandler_base::get_proc_fd_name): New virtual method to return a name for /proc/<pid>/fd. (fhandler_socket::get_proc_fd_name): Ditto. (fhandler_pipe::get_proc_fd_name): Ditto. (fhandler_virtual::opendir): Make virtual method. (fhandler_process::opendir): New method. * fhandler.cc (fhandler_base::get_proc_fd_name): New method. * fhandler_process.cc: Include ctype.h. (PROCESS_FD): Define. (process_listing): Add "fd". (fhandler_process::exists): Fix comment. Return 1 in case of "fd" directory. Handle files below "fd". (fhandler_process::fstat): Drop "self" handling. Set correct link count for directories. (fhandler_process::opendir): New method to handle "fd" directory. (fhandler_process::readdir): Add "fd" handling. (fhandler_process::open): Drop "self" handling. (fhandler_process::fill_filebuf): Ditto. Add "fd" handling. Fix "maps" output string. * fhandler_registry.cc (fhandler_registry::fstat): Set correct link count for directories. * fhandler_socket.cc (fhandler_socket::get_proc_fd_name): New method. * path.cc (symlink_info::set): Fix thinko. * pinfo.cc (_pinfo::commune_recv): Rename pathbuf to path throughout. Drop local path variable in PICOM_FIFO case. Fix debug output. Close handles as early as possible. Add PICOM_FDS and PICOM_FD handling. (_pinfo::commune_send): Add PICOM_FDS and PICOM_FD handling. (_pinfo::fd): New method. (_pinfo::fds): New method. * pinfo.h (enum picom): Add PICOM_FDS and PICOM_FD. (_pinfo::fd): Declare. (_pinfo::fds): Declare. * pipe.cc (fhandler_pipe::get_proc_fd_name): New method.
* * smallprint.c (rn): Change uval to unsigned long long to fix 64 bitCorinna Vinschen2005-01-293-4/+19
| | | | | | handling. * fhandler_process.cc (format_process_maps): Print major, minor and inode numbers correctly.
* * autoload.cc (GetModuleFileNameExA): Add.Corinna Vinschen2005-01-298-23/+324
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (GetModuleInformation): Add. (QueryWorkingSet): Add. * fhandler.h (fhandler_virtual::get_filebuf): New method. * fhandler_proc.cc (PROC_SELF): Define. (proc_fhandlers): Change type of self to FH_PROC. (fhandler_proc::exists): Return -3 if self. (fhandler_proc::fstat): Handle self as symlink. (fhandler_proc::fill_filebuf): Handle self. * fhandler_process.cc: Include psapi.h. (PROCESS_EXENAME): Remove. (PROCESS_MAPS): Define. (PROCESS_ROOT): Define. (PROCESS_EXE): Define. (PROCESS_CWD): Define. (process_listing): Remove "exename", add "maps, "root", "exe" and "cwd" elements. (fhandler_process::exists): Return -2 for symlinks. (fhandler_process::fstat): Handle symlinks. (fill_filebuf): Evaluate pid if pid is 0. Use exename handling for exe. Handle maps, root and cwd. (format_process_maps): New function evaluating "maps". * path.cc (symlink_info::set): New method to fill symlink_info with data matching virtual symlinks. (path_conv::check): Handle virtual symlinks. * pinfo.cc (_pinfo::commune_recv): Add PICOM_CWD and PICOM_ROOT handling. (_pinfo::commune_send): Ditto. (_pinfo::root): New function. (_pinfo::cwd): New function. * pinfo.h (enum picom): Add PICOM_CWD and PICOM_ROOT. (_pinfo::root): Declare. (_pinfo::cwd): Declare.
* * cygthread.cc (new): Add a little more debugging.Christopher Faylor2005-01-293-1/+7
| | | | * thread.cc (pthread_null::exit): Add a _my_tls.remove() for safety.
* * cygtls.cc (cygtls::call2): Move socket cleanup.Christopher Faylor2005-01-292-4/+10
| | | | (cygtls::remove): Move socket cleanup here. Don't use _my_tls to reference it.
* .Christopher Faylor2005-01-281-3/+0
|
* * pinfo.cc (pinfo::init): Avoid a compiler warning.Christopher Faylor2005-01-262-2/+5
|
* * syscalls.cc (setpriority): Implement PRIO_PGRP, PRIO_USER andCorinna Vinschen2005-01-262-10/+123
| | | | | | setting priority in other Cygwin processes. (getpriority): Implement PRIO_PGRP, PRIO_USER and getting nice value from other processes.
* 2005-01-26 Pierre Humblet <pierre.humblet@ieee.org>Pierre Humblet2005-01-262-15/+11
| | | | | | * path.cc (path_conv::check): Return ENOTDIR rather than ENOENT when a component is not a directory. Remove unreachable code. (digits): Delete.
* * pinfo.h (pinfo::init): Make third parameter non-optional and propagate changeChristopher Faylor2005-01-264-58/+69
| | | | | | | | throughout. * pinfo.cc (set_myself): Pass INVALID_HANDLE_POINTER if h is NULL. (pinfo::init): Make third parameter non-optional. Eliminate use of PID_EXECED as an argument. Put setting of handle back inside loop but reorganize to try to open it only when necessary.
* * cygwin.din: Export getpriority and setpriority.Corinna Vinschen2005-01-2515-45/+189
| | | | | | | | | | | | | | | | | | | | | | * fork.cc (fork_parent): Copy parent's nice value into child. * spawn.cc (spawn_guts): Ditto. * miscfuncs.cc (winprio_to_nice): New function. (nice_to_winprio): Ditto. * pinfo.cc (pinfo_init): If parent is not a Cygwin process, set default nice value according to current Win32 priority class. * pinfo.h (class _pinfo): Add nice member. * syscalls.cc (setpriority): New function, only implementing PRIO_PROCESS for now. (getpriority): Ditto. (nice): Just call setpriority. * wincap.h (wincaps::has_extended_priority_class): New element. * wincap.cc: Implement above element throughout. * winsup.h: Add prototypes for winprio_to_nice and nice_to_winprio. * include/limits.h (NZERO): New define. * include/cygwin/types.h (id_t): New datatype. * include/cygwin/version.h: Bump API minor version. * include/sys/resource.h: Add PRIO_XXX defines and prototypes for getpriority and setpriority.
* * path.cc (realpath): Allow to expand with .exe suffix.Corinna Vinschen2005-01-252-1/+6
|
* * spawn.cc (spawn_guts): Perform same "cd" as in pinfo::exit below to make sureChristopher Faylor2005-01-223-11/+24
| | | | | that a stub process does not keep the current working directory busy after the "execed" process has exited.
* * pinfo.cc (pinfo::init): Move everything but the MapViewOfFileEx out of theChristopher Faylor2005-01-222-57/+77
| | | | | | | | loop since trying multiple times to call CreateFileMapping doesn't make much sense. Try to structure the loop a little better so that exiting with a break does the right thing. (pinfo::release): Release shared memory area if it exists and close handle if it exists.
* * pinfo.cc (pinfo::maybe_set_exit_code_from_windows): Make sure that processChristopher Faylor2005-01-222-1/+15
| | | | | | | has exited before getting an error code. (pinfo::exit): "cd" to innocuous location before exiting to make sure that process does not keep the current working directory busy while it is in the process of really exiting.
* * autoload.cc (CoInitialize): Remove.Corinna Vinschen2005-01-183-75/+163
| | | | | | | | | | | | | | | | | (CoUninitialize): Remove. (CoCreateInstance): Remove. (CoTaskMemFree): Add. (SHGetDesktopFolder): Add. * path.cc (shortcut_header): Remove. (shortcut_initalized): Remove. (GUID_shortcut): New static GUID. (struct win_shortcut_hdr): New struct describing Windows shortcut header structure. (symlink_worker): Rewrite creating Windows shortcuts. Create ITEMIDLIST if target exists. Only write once. (cmp_shortcut_header): Use win_shortcut_hdr structure for comparison. (check_shortcut): Rewrite to read only once from file. Allow skipping an ITIMIDLIST in the file.
* * pinfo.h (maybe_set_exit_code_from_windows): Renamed from set_exit_state.Christopher Faylor2005-01-174-11/+35
| | | | | | | | | | * pinfo.cc (pinfo::exit): Use renamed function. (proc_waiter): Ditto. Make a copy of input argument to avoid problems when procs array is shuffled. Flag when copy is made so that remove_proc knows when it is safe to reshuffle. * sigproc.cc (proc_terminate): Don't flag process_state as PID_EXITED. (remove_proc): Wait for waiter to finish copying pinfo element before moving it (an actual wait should be an extremely rare event).
* * init.cc (dll_entry): Remove unused extern.Christopher Faylor2005-01-168-31/+51
| | | | | | | | | | | | | | | | | | | | | | * include/sys/cygwin.h: Remove PID_ZOMBIE. * pinfo.h: Rename EXITCODE_* defines. (pinfo::set_exit_state): Remove parameter. * pinfo.cc (set_exit_state): Remove parameter. Reverse sense of test so that exitcode is checked for having been set rather than not having been set. Set flag when exitcode has been established. Don't set PID_STATE here. (pinfo::init): Remove exitcode initialization. (pinfo::exit): Reflect change in EXITCODE_* naming. Set flag when exitcode has been established. Reflect change in arguments to set_process_state. (proc_waiter): Reflect change in arguments to set_process_state. Set process_state here and only here. * fhandler_process.cc (fhandler_process::fill_filebuf): Reflect removal of PID_ZOMBIE define. (format_process_stat): Ditto. (format_process_status): Ditto. * sigproc.cc (pid_exists): Ditto. (stopped_or_terminated): Ditto. Make sure that only low-order 16 bits of exitcode are used. * spawn.cc (spawn_guts): Reflect change in EXITCODE_* naming.
* * sigproc.cc (sig_send): Don't complain if attempt to send signal to myselfChristopher Faylor2005-01-152-2/+7
| | | | fails after I've "execed".
* * fhandler_disk_file.cc (fhandler_disk_file::facl): Pretend successfulCorinna Vinschen2005-01-144-6/+58
| | | | | | | SETACL if no acls are available. * fhandler.cc (fhandler_base::facl): Implement to return sensible values on GETACL and GETACLCNT. Pretend successful SETACL. * fhandler_virtual.cc (fhandler_virtual::facl): Ditto.
* * fhandler.h (fhandler_disk_file::touch_ctime): Declare.Corinna Vinschen2005-01-133-14/+63
| | | | | | | | | * fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): New method to set file's ctime. (fhandler_disk_file::fchmod): Try opening file for writing first. Set file's ctime on success. (fhandler_disk_file::fchown): Ditto. (fhandler_disk_file::facl): Ditto.
* * pinfo.cc (pinfo::exit): Don't access self after releasing it.Corinna Vinschen2005-01-133-3/+13
| | | | | * path.h (path_conv::path_conv): Fill path with native device name in case of device argument.
* * fhandler_serial.cc (fhandler_serial::dup): Call overlapped_setupCorinna Vinschen2005-01-132-1/+6
| | | | for child, not for parent.
* * init.cc (dll_entry): Nuke attempt to set exit code since parent will useChristopher Faylor2005-01-133-6/+8
| | | | | | windows exit code if needed. * pinfo.cc (pinfo::exit): Move release() here to minimize pid creation race (suggested by Pierre Humblet).
* Reorganize header file inclusion throughout so that cygerrno.h comes first.Christopher Faylor2005-01-1223-32/+51
| | | | | | | | | | * fhandler.h (select_record::thread_errno): Save any encountered errno here. (select_record::set_select_errno): New function. (select_record::saw_error): New function. (select_record::select_record): Initialize thread_errno to zero. * select.cc (set_handle_or_return_if_not_open): Set thread_errno on failure. (select_stuff::wait): Record errno for later resurrection in calling thread. (peek_serial): Ditto.
* Add missing changelog entry.Christopher Faylor2005-01-121-0/+4
|
* * pinfo.cc (pinfo::exit): Don't assume that this == myself.Christopher Faylor2005-01-123-6/+6
|
* * pinfo.cc (pinfo::init): Don't close input handle on temporary (?) failure.Christopher Faylor2005-01-112-1/+7
|
* revert previous erroneous checkin.Christopher Faylor2005-01-111-2/+2
|
* * pinfo.h (_pinfo::set_exit_state): Declare new function.Christopher Faylor2005-01-1110-101/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | (pinfo::exit): Move here from _pinfo::exit. * sigproc.cc (child_info::sync): Use new function to set exitcode and process_state. * pinfo.cc (_pinfo::exit): Ditto. (proc_waiter): Ditto. (_pinfo::set_exit_state): Define new function. (_pinfo::dup_proc_pipe): Close handle when there is no parent process around to care about the exit value. * dcrt0.cc (dll_crt0_0): Move subproc_ready synchronization later to make sure that myself is still mapped in parent. (do_exit): Reflect movement to pinfo::exit. (__api_fatal): Ditto. * exceptions.cc (signal_exit): Ditto. * errno.cc (errmap): Map PROC_NOT_FOUND. * init.cc (dll_entry): Release myself before exiting. * sigproc.cc (proc_can_be_signalled): Set errno appropriately. (sig_send): Ditto. Also remove ill-advised test for !myself->sendsig since this is an indication of a process which is still initializating -- it is not an error. (child_info::sync): Don't set exitcode here. Assume that will happen in proc_waiter, if necessary. * spawn.cc (spawn_guts): Delay "wait_for_myself" logic until later. Don't wait at all if the process has already exited. Reflect movement to pinfo::exit.
* * ChangeLog: Split and create ChangeLog-2004.Corinna Vinschen2005-01-112-3848/+3848
|
* * environ.cc: Yes, yes, the copyright date, as usual.Corinna Vinschen2005-01-111-1/+1
|
* * environ.cc (build_env): Disallow empty strings and strings startingCorinna Vinschen2005-01-112-0/+13
| | | | with '=' in Win32 environment.
* * fhandler_disk_file.cc: Fix copyright date.Corinna Vinschen2005-01-101-1/+2
|
* 2005-01-08 Pierre Humblet <pierre.humblet@ieee.org>Pierre Humblet2005-01-082-16/+18
| | | | | * syscalls.cc (seteuid32): Only change the default dacl when seteuid succeeds. Do not close HKCU.
* * fhandler_process.cc: Fix copyright date.Corinna Vinschen2005-01-071-1/+1
|