Commit Graph

999 Commits

Author SHA1 Message Date
David Starks-Browning 19ce2f49a7 Delete entry "Ancient history of the project", replace with link to history.html. 2000-10-18 11:52:15 +00:00
Christopher Faylor 04f1fe89ec * ps.cc (main): Add some extra space to pid output for Windows 95. 2000-10-18 04:55:01 +00:00
Christopher Faylor ac944e37d0 * exceptions.cc (call_handler): Make signal pending if sigsave.sig is still
active.
* syscalls.cc (_read): Don't clear errno.
* sigproc.cc (wait_sig): Don't scan the waiting process list after a SIGCHLD if
there are no zombies to reap.
* winsup.h: Use __builtin_strcmp.
* environ.cc (posify): Don't initialize len unless it is required
(from DJ Delorie <dj@redhat.com>).
2000-10-18 04:53:37 +00:00
Christopher Faylor 3f7bd53115 * sigproc.cc (proc_subproc): Remove unneeded test for correct process in
PROC_ADDCHILD.  Return 0 when terminated child has just been reparented.
(wait_subproc): Only send SIGCHLD when proc_subproc returns != 0.
* strace.cc (strace::vsprntf): Only strip .exe extension from program name.
2000-10-17 18:55:58 +00:00
DJ Delorie e6f5c9d57d * fhandler_clipboard.cc: new file
* Makefile.in: include fhandler_clipboard.o in DLL_OFILES list.
* fhandler.h: add FH_CLIPBOARD to the devices enum.
(fhandler_dev_clipboard): new
* path.cc (windows_device_names): add "\\dev\\clipboard"
(get_device_number): check for "clipboard"
* dcrt0.cc: declare a few more functions from winuser.h
* dtable.cc (dtable::build_fhandler): check for FH_CLIPBOARD in
switch().
2000-10-17 01:46:26 +00:00
Christopher Faylor 92e1969051 * debug.cc (add_handle): Issue warning on attempts to add the same handle more
than once.
* fhandler_tty.cc (fhandler_tty_slave::open): Protect some handles.
(fhandler_tty_common::close): Use proper name when closing handles.
(fhandler_pty_master::close): Don't close to_slave or from_slave since they've
already been closed earlier in the function.
* sigproc.cc (proc_subproc): Don't protect vchild->hProcess.  Expect that the
caller will do this, instead.
* tty.cc (tty_list::terminate): Use proper name when closing handles.
(tty::make_pipes): Protect some handles.
2000-10-17 01:42:04 +00:00
Christopher Faylor 166b2571ce * Makefile.in: Remove some obsolete stuff.
* dcrt0.cc (dll_crt0_1): Call signal_fixup_after_exec where appropriate.  Set
myself->uid from parent version.  Just use ThreadItem Init method.  Close or
store hexec_proc as appropriate.
(_dll_crt0): Store user_data->forkee here so that proper tests can be made
subsequently.
(do_exit): Remove hExeced stuff.
* environ.cc (environ_init): Accept environ count as well as environ pointer.
* environ.h: Reflect above change.
* pinfo.cc (pinfo_init): Ditto.  Accept environ count.
(fixup_in_spawned_child): Remove.
* spawn.cc (spawn_guts): Move signal code to dll_crt0_1.  Don't suspend execing
process since it is no longer necessary.  Store envc.
* exceptions.cc (signal_fixup_after_exec): New function.
(call_handler): Remove hExeced test.
* child_info.h (cygheap_exec_info): Store envc as well as envp.
(child_info_spawn): Store hexec_proc so that it can be closed in child.
* path.cc (normalize_posix_path): Avoid intermediate use of temporary cwd buf.
(normalize_win32_path): Ditto.
(cwdstuff::get_initial): Always set lock.
* sigproc.h: Remove hExeced.
* strace.cc (strace::vsprntf): Modify to accomodate for lack of hExeced.
* thread.cc (MTinterface::Init): Merge Init1 and ClearReent into this method.
(MTinterface::Init1): Eliminate.
(MTinterface::ClearReent): Eliminate.
* thread.h: Reflect above changes.
* include/sys/strace.h (strace): Make microseconds() public.  Make various
functions 'regparm', throughout.
* pinfo.h (_pinfo): Inline simple signal manipulation functions.  Requires
inclusion of thread.h which was removed from .cc files, where appropriate.
throughout.
* pinfo.cc: Eliminate signal manipulation functions.
(_pinfo::exit): Calculate total rusage for exiting process here.
* cygheap.cc (size2bucket): Eliminate.
(init_buckets): Ditto.
(_cmalloc): Calculate size and bits in a loop rather than going through a
function call.
(_crealloc): Use stored array index to calculate allocated size.
* spawn.cc (spawn_guts): Use _pinfo exit method to exit, calculating cpu usage.
2000-10-16 23:55:58 +00:00
Corinna Vinschen d9d9b70718 * cygcheck.cc (main): Fix argument counting. 2000-10-16 23:12:58 +00:00
Christopher Faylor 5460fae73f * ps.cc (main): Accomodate new PID_ constant. 2000-10-15 03:43:48 +00:00
Christopher Faylor 1dc16fc74b * exceptions.cc (set_console_handler): Don't allocate
console_handler_thread_waiter.  It is obsolete.
(ctrl_c_handler): Don't use console_handler_thread_waiter.
* path.cc (hash_path_name): Fix handling of relative names.  Make case
insensitive.
* path.h (suffix_info): Use initializers.
* pinfo.h (_pinfo): Avoid initializers for null case.
* resource.cc (fill_rusage): Zero rest of rusage structure.
* security.cc (set_process_privileges): Don't reopen parent process.  Just use
hMainProc.
* signal.cc (signal): Track when a signal handler has been used.
(sigaction): Ditto.
* sigproc.cc (pchildren): Use default initializer.
(zombies): Ditto.
(sigproc_terminate): Avoid closing handles that will be closed on exit anyway.
(wait_sig): Send signal to "parent" on EXECing, not FORKing.
(wait_subproc): Send SIGCHLD here rather than in proc_wait to avoid potential
muto conflicts.
* sigproc.h (sigthread): Don't initialize to zero.  It's the default.
* spawn.cc (spawn_guts): Fill in resources from exec parent prior to
termination.
* sync.h (muto): Don't initialize to zero.
* syscalls.cc (close_all_files): Use one lock around entire loop and call
fhandler close/release stuff directly.
(_read): Don't use ready_for_read if there are not signal handlers active.
* dcrt0.cc (dll_crt0_1): Fix display of "title".
(do_exit): Use pinfo exit method to exit.
(__api_fatal): Ditto.
* exceptions.cc (signal_exit): Ditto.
* fork.cc (fork_child): Remove debugging stuff.  Use pinfo_fixup_after fork in
place of exec_fixup_after_fork.
* pinfo.cc (pinfo_fixup_after_fork): New method.
(pinfo_fixup_in_spawned_child): Ditto.
(_pinfo::exit): New method.
(_pinfo::init): Remove recursion.  Detect pathological case where pinfo
structure already exists for new pid.
* pinfo.h (_pinfo): Reorganize slightly.  Add new method and new function
declarations.
* sigproc.cc (proc_exists): Previous simplification was a little to simple.
Try harder to detect if a process exists.
(proc_terminate): Use PID_EXITED setting to determine if process is still
around.
(WFSO): Remove debugging statement.
(WFMO): Ditto.
* spawn.cc (exec_fixup_after_fork): Eliminate.
(spawn_guts): Always set old_title to NULL.  Is it really needed?  Move
hexec_proc to pinfo.cc.  Call pinfo_fixup_in_spawned_child to eliminate handle
link after a spawn.
* include/sys/cygwin.h: Remove PID_NOT_IN_USE.  Add PID_EXITED.
2000-10-15 01:37:07 +00:00
Corinna Vinschen fdc614360f Forgot to commit ChangeLog 2000-10-14 08:56:17 +00:00
Corinna Vinschen 7d9688b793 * cygwin.din: Add symbol hstrerror.
* net.cc: Change meaning of member `s' of struct host_errmap.
        (set_host_errno): Fix error in loop condition.
        (hstrerror): Ditto.
        (herror): Add appropriate functionality.
        * include/netdb.h: Add declaration of hstrerror.
        * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 29.
2000-10-14 08:55:44 +00:00
Christopher Faylor aece55b982 * cygheap.cc (cygheap_fixup_in_child): Don't page round cygheap copied from
parent.
* dcrt0.cc (do_exit): Don't cleanup pinfo on exit.  That happens automatically
now.
* exceptions.cc (signal_exit): Ditto.
* fork.cc (fork_parent): Use stack_here value passed in from fork().
(fork): Figure out top of stack here and pass it to fork_parent.
* pinfo.cc (_pinfo::record_death): Eliminate.
* pinfo.h (_pinfo): Ditto.
* sigproc.cc (proc_exists): Simplify.
(proc_terminate): Ditto.
(remove_zombie): Don't cleanup pinfo stuff.
(wait_sig): Send subproc_ready signal whether execed or spawned.
* spawn.cc (spawn_guts): Always create subproc_ready event.  Use it for both
exec and spawn.
(_spawnve): Send proper mode to spawn_guts when mode != _P_OVERLAY.
2000-10-14 05:52:38 +00:00
Christopher Faylor cbe4c8e234 Add comment. 2000-10-14 01:03:01 +00:00
Christopher Faylor ee20f060a8 * dtable.cc (dtable::fixup_after_fork): Revert thinko below.
* pinfo.cc (set_myself): Show pid in initial strace line.
2000-10-13 03:13:59 +00:00
Christopher Faylor 1ec4f618fe * child_info: Bump child_info "version".
(child_info): Move some fields from child_info_spawn to here.
* cygheap.cc: Make cygheap pointers NOCOPY.
* dcrt0.cc (dll_crt0_1): Copy cygwin heap here regardless of whether we've been
forked or execed.
* dtable.cc (dtable::fixup_after_fork): Just release close-on-exec fds.
* exceptions.cc (stackdump): Respond to C warning.
* fork.cc: Reorganize to minimize stack copying.
(fork_child): New function.
(fork_parent): Ditto.
(sync_with_child): Don't suspend the forkee.
(sync_with_parent): Ditto.  Make into a function.
* heap.cc (heap_init): Add some debugging output.
* path.cc (path_conv::check): Add an assertion.
(has_suffix): Ditto.
* security.cc (get_pw_sid): Defend against NULL.
* sigproc.cc (proc_subproc): Fix debugging output.
(wait_sig): Ditto.
* strace.cc: Make statics NO_COPY throughout.
(strace::vsprntf): Defend against NULL.
2000-10-12 22:15:47 +00:00
Christopher Faylor 5e0d760fb8 * strace.cc (proc_child): Handle exceptions correctly. 2000-10-12 06:22:30 +00:00
Christopher Faylor ec300c9979 * errno.cc (seterrno_from_win_error): Fix debugging output.
* fhandler.cc (fhandler_base::fstat): Move to inline method in fhandler.h.
(fhandler_base::set_io_handle): Ditto.
* fhandler.h (fhandler_base): Make some methods inline.
* fhandler_console.cc (fhandler_console::write_normal): Make buffer larger.
* sigproc.h (sigframe::sigframe): Actually use set ebp parameter correctly.
* spawn.cc (spawn_guts): Set dwProcessId when exec'ing.  Just exit immediately
after reparenting.
* syscalls.cc: Sprinkle sigframe stuff throughout.
* wait.cc (wait4): Set signal frame here.
* dcrt0.cc (__api_fatal): Don't rely on small_printf to display errors.  Always
display problems to the console, if possible.
2000-10-12 04:38:29 +00:00
DJ Delorie 8251f53ddd merge from gcc repository 2000-10-12 02:15:49 +00:00
Christopher Faylor e62ae31192 * path.cc (cwdstuff::get): Set EINVAL when length is zero. 2000-10-10 19:24:32 +00:00
Christopher Faylor a8018ef336 * libc/include/sys/unistd.h: Add getdtablesize and setdtablesize declarations
for __CYGWIN__.
2000-10-10 00:28:49 +00:00
Christopher Faylor dc7f5226eb * path.cc (mount_info::cygdrive_posix_path): Handle e:foo construction
correctly.
2000-10-09 18:10:53 +00:00
Corinna Vinschen 44e939882a * fhandler_mem.cc (fhandler_dev_mem::fhandler_dev_mem): Fix debug output. 2000-10-09 14:49:25 +00:00
Corinna Vinschen 21fdffa58a * fhandler_mem.cc: Eliminate unused include statements.
(fhandler_dev_mem::fhandler_dev_mem): Check for 9X/ME.
2000-10-09 14:02:25 +00:00
Corinna Vinschen 42f1b6c544 * fhandler.h (fhandler_dev_mem): Erase member `init_phase' and
member function `init'.
        * fhandler_mem.cc: Add typedefs for NT internal data types
        `SYSTEM_INFORMATION_CLASS' and `SYSTEM_BASIC_INFORMATION'.
        Add prototype for `NtQuerySystemInformation' function.
        (fhandler_dev_mem::fhandler_dev_mem): Takes over initialization task
        from `init'. Use `NtQuerySystemInformation' function to evaluate the
        size of physical memory instead of interval search.
        (fhandler_dev_mem::init): Eliminated.
        (fhandler_dev_mem::open): Don't call `init'.
        (fhandler_dev_mem::read): Eliminate check for `init_phase'.
        (dummy_autoload): Add load statement for `NtQuerySystemInformation'.
2000-10-09 13:19:41 +00:00
Corinna Vinschen b9e7a2b666 * include/iprtrmib.h: Further layout changes according to standard.
* include/iptypes.h: Ditto.
        * include/ntdef.h: Ditto.
        * include/ntsecapi.h: Ditto.
        * include/subauth.h: Ditto.
2000-10-09 09:51:46 +00:00
Corinna Vinschen 4b5970ab89 * include/ntsecapi.h: Fix PLSA_UNICODE_STRING define. 2000-10-09 09:34:04 +00:00
Corinna Vinschen d81311a800 I forgot 'iprtrmib.h' in the ChangeLog 2000-10-09 09:19:57 +00:00
Christopher Faylor aaf0dee260 * ps.cc (main): Change order of reporting slightly so that windows pids are
more obvious.
* strace.cc (add_child): Just add child's pid directly.
(remove_child): No need to close the child process pid since ContinueDebugEvent
does that automatically.
(proc_child): Ditto for child thread.
2000-10-09 03:31:10 +00:00
Christopher Faylor 164a681ca5 * dtable.cc (set_std_handle): Use std_consts array to control SetStdHandle
settings.
(dtable::fixup_after_fork): Ditto.
* exceptions.cc (set_sig_errno): Remove some debugging output.
* path.cc (path_conv::check): Don't OR need_directory with flags sent to
symlink_info::check.
(symlink_info::check): Use PATH_ALL_EXEC to determine when a file is
executable.
* path.h (path_types): Add PATH_ALL_EXEC.
(isexec): Use PATH_ALL_EXEC so that cygexec types will be considered
executable.
* pinfo.h (_pinfo): Add a process handle that is kept open throughout the life
of a cygwin pid.
* sigproc.cc (proc_exists): Remove hopefully obsolete stuff.
(proc_subproc): Set up process handle that is kept open throughout the life of
a cygwin pid.  Reorganize PROC_WAIT stuff to use common code.
(proc_terminate): Close pid lifetime process handle.
(checkstate): Cleanup.
(stopped_or_terminated): Move zombie cleanup.
(remove_zombie): To here.
* spawn.cc (spawn_guts): Reorganize reparenting code for 1247th time.
2000-10-09 02:53:44 +00:00
Corinna Vinschen 65bb926f51 * include/ntsecapi.h: New file.
* include/subauth.h: Ditto.
        * include/ipexport.h: Fix global header define not to contain
        trailing underscore. Change layout according to standard.
        * include/iphlpapi.h: Ditto.
        * include/ipifcons.h: Ditto.
        * include/iptypes.h: Ditto.
        * include/ntdef.h: Ditto. Define conditional datatypes dependent
        of inclusion of ntdecapi.h and subauth.h.
        * lib/secur32.def: New stub for secur32.dll.
2000-10-08 16:55:29 +00:00
Christopher Faylor 57bf29e825 * fhandler.h (fhandler_base): Remove obsolete _rpos and _rsize elements.
* fhandler.cc (fhandler_base::open): Ditto.
* fhandler.cc (fhandler_base::fhandler_base): Ditto.
(fhandler_base::read): Ditto.  Add more debugging output.  Don't issue a \r
when \r\n detected.
* pipe.cc (make_pipe): Streamline slightly.  Make debug output more
interesting.
* strace.cc (strace::vsprintf): Use __progname where appropriate to distinguish
strace output when exec'ing.
2000-10-07 18:12:11 +00:00
Corinna Vinschen 4ea34a6850 * fhandler.h (fhandler_dev_mem): Add methods mmap, munmap and msync.
Add `unit' member.
        * fhandler_mem.cc (fhandler_dev_mem): Initialize `unit' as well.
        (init): Care for differences between /dev/mem, /dev/kmem (not
        implemented yet) and /dev/port.
        (open): Change debug message to reflect the device.
        (mmap): New function.
        (munmap): Ditto.
        (msync): Ditto.
        (fstat): Use unit when setting st_dev in stat structure.
        * mmap.cc (mmap): Handle MAP_ANONYMOUS flag.
        Change error handling slightly.
        * path.cc (get_device_number): Handle /dev/port.
2000-10-07 17:35:36 +00:00
Christopher Faylor 7aadaf0f7e * syscalls.cc (_read): Behave properly when passed previous version of
O_NDELAY.  Fix up debugging output.
2000-10-07 03:25:38 +00:00
Christopher Faylor 829425c9fd * net.cc (set_socket_inheritance): Rename from duplicate_socket. Use NT
specific call when appropriate.
(__set_winsock_errno): Rename from set_winsock_errno.  Accept function and line
as arguments.
* path.cc (path_conv::check): Continue the neverending battle to make cygwin
properly understand that path specs ending in a slash require that the path
refer to a directory.  Windows does not do this by default.
(symlink_info::check): Remove ENOTDIR test.  Move it to path_conv::check.
* path.h: Remove obsolete constant.
* winsup.h (set_winsock_errno): New macro.
2000-10-06 19:11:14 +00:00
Corinna Vinschen d12eba25a5 =====================================
These changes require rebuilding all.
        =====================================
        * fhandler.h: Add mmap(), munmap() and msync() to fhandler_base
        and fhandler_disk_file.
        * mmem.cc (mmap): Eliminated device dependent implementation details.
        These are moved to the appropriate fhandler class.
        (munmap): Ditto.
        (msync): Ditto.
        (fhandler_base::mmap): New method.
        (fhandler_base::munmap): Ditto.
        (fhandler_base::msync): Ditto.
        (fhandler_disk_file::mmap): Ditto.
        (fhandler_disk_file::munmap): Ditto.
        (fhandler_disk_file::msync): Ditto.
2000-10-05 13:07:02 +00:00
Christopher Faylor 4e6a4ea8e8 * net.cc: General cleanup.
(fdsock): Return pointer to created fhandler_socket.
(cygwin_socket): Use pointer returned by fdsock.  Return correct errno when fd
< 0.
2000-10-05 05:57:00 +00:00
Christopher Faylor a5855dc341 * exceptions.cc (interruptible): Add extra debugging.
* sigproc.h (wait_sig): Fill in frame pointer, by default, prior to calling or
suffer confusion due to September 7 change below.
2000-10-05 04:53:17 +00:00
Christopher Faylor 1daf97f97e * include/netinet/tcp.h: Remove winsock.h include.
* include/sys/cygwin.h: Move windows specific reference within conditional.
2000-10-05 03:12:36 +00:00
Corinna Vinschen 95436d7cdb * include/sys/mman.h: Add missing MAP_FAILED macro. 2000-10-04 23:17:01 +00:00
Corinna Vinschen f4f898aca0 * fhandler.h (fhandler_dev_mem): Add method `init'. Add members
`mem_size' and `init_phase'.
        * fhandler_mem.cc (init): New function to figure out the size of
        the physical memory.
        (open): Add checking for illegal flags. Change usage of access mode.
        (write): Add intended functionality.
        (read): Add parameter checking. Eliminate page size constant. Use
        getpagesize() instead. Don't touch errno and don't create debug output
        while init() is running.
        (lseek): Add bounds checking. Fix SEEK_END.
        (fstat): Eliminate page size constant. Use getpagesize() instead.
        (dup): Add intended functionality.
2000-10-04 17:08:46 +00:00
Corinna Vinschen 52b5a97156 * dcrt0.cc: Add LoadDLLFunc statement for RegEnumValueA().
* net.cc: Change comments related to get_ifconf.
        (get_2k_ifconf): Eliminate `type' variable. Eliminate `sa' parameter.
        (get_nt_ifconf): Ditto.
        (get_9x_ifconf): Ditto. Rewritten.
        (get_ifconf): Chage calls to OS specific functions.
2000-10-02 20:21:47 +00:00
Christopher Faylor 17e8632267 * signal.cc (sigaction): Allow new action == oldaction. 2000-10-02 19:19:21 +00:00
Corinna Vinschen 63c05d8ce7 * include/ras.h: New file.
* lib/rasapi32.def: Add symbols for RasEnumDevicesA and
        RasEnumDevicesW.
2000-10-02 09:19:14 +00:00
Corinna Vinschen 7041211c58 * include/ntdef.h: Add define for NTAPI. 2000-10-02 09:09:38 +00:00
Corinna Vinschen a26fb3150d * fhandler_mem.cc: Load ntdll functions via autoload method.
(load_ntdll_funcs): Eliminated.
2000-10-02 09:07:50 +00:00
Corinna Vinschen 2f696b4bdb * fhandler_mem.cc (load_ntdll_funcs): Add missing __stdcall qualifiers. 2000-10-02 08:31:07 +00:00
Christopher Faylor 9fc09d00f7 * cygheap.cc (cygheap_init): Born again function.
(_cmalloc): Reorganize to accomodate muto locking.
(_cfree): Use muto lock to avoid multi-thread problems.
* cygheap.h (incygheap): Just use cygheap_max to find upper cygwin heap bounds.
* dcrt0.cc (dll_crt0_1): Reinstitute cygheap_init call.
* path.cc (getcwd): Just return cwdstuff::get result, allowing correct handling
of negative length.
(cwdstuff::get): Malloc a buffer if one is not available.
2000-10-02 02:26:04 +00:00
Christopher Faylor 0ce83ef6b8 * Makefile.common: Extend VERBOSE default.
* Makefile.in: Don't clean the testsuite separately.  It's already part of
CLEAN_SUBDIRS.
2000-10-02 02:05:23 +00:00
Corinna Vinschen 5b4db83881 * include/ipexport.h: Add missing `extern "C"' directives.
* include/iphlpapi.h: Ditto.
        * include/iprtrmib.h: Ditto.
        * include/iptypes.h: Ditto.
2000-10-01 21:57:57 +00:00