diff --git a/winsup/cygwin/dlmalloc.c b/winsup/cygwin/dlmalloc.c index 3d9fafbb9..b64bed8eb 100644 --- a/winsup/cygwin/dlmalloc.c +++ b/winsup/cygwin/dlmalloc.c @@ -28,298 +28,8 @@ * malloc_usable_size(P) is equivalent to realloc(P, malloc_usable_size(P)) * * $Log$ - * Revision 1.8 2004/01/20 19:36:34 cgf - * * include/cygwin/version.h: Bump DLL minor number to 8. - * * cygmalloc.h: Make more concessions to attempts to get debugging malloc - * working. - * * debug.h: Ditto. - * * dlmalloc.cc: Ditto. - * * dlmalloc.h: Ditto. - * * malloc_wrapper.cc: Ditto. - * * perthread.h (perthread::create): Use calloc to ensure zeroed memory. - * - * Revision 1.7 2003/09/25 00:37:16 cgf - * * devices.cc: New file. - * * devices.gperf: New file. - * * devices.shilka: New file. - * * cygwin-gperf: New file. - * * cygwin-shilka: New file. - * * fhandler_fifo.cc: New file. - * * fhandler_nodevice.cc : New file. Reorganize headers so that path.h precedes - * fhandler.h throughout. Remove device argument and unit arguments from fhandler - * constructors throughout. Remove pc arguments to fhandler functions and use - * internal pc element instead, throughout. Use dev element in pc throughout. - * Use major/minor elements rather than units and device numbers previously in - * fhandler class. Use correct methods for fhandler file names rather than - * directly accessing file name variables, throughout. - * * Makefile.in (DLL_OFILES): Add devices.o, fhandler_fifo.o - * * dcrt0.cc (dll_crt0_1): Call device::init. - * * devices.h: Renumber devices based on more Linux-like major/minor numbers. - * Add more devices. Declare standard device storage. - * (device): Declare struct. - * * dir.cc (opendir): Use new 'build_fh_name' to construct a fhandler_* type. - * * dtable.cc (dtable::get_debugger_info): Ditto. - * (cygwin_attach_handle_to_fd): Ditto. - * (dtable::release): Remove special FH_SOCKET case in favor of generic - * "need_fixup_before" test. - * (dtable::init_std_file_from_handle): Use either build_fh_dev or build_fh_name - * to build standard fhandler. - * (dtable::build_fh_name): Renamed from dtable::build_fhandler_from_name. Move - * out of dtable class. Don't accept a path_conv argument. Just build it here - * and pass it to: - * (build_fh_pc): Renamed from dtable::build_fhandler. Move out of dtable class. - * Use intrinsic device type in path_conv to create new fhandler. - * (build_fh_dev): Renamed from dtable::build_fhandler. Move out of dtable class. - * Simplify arguments to just take new 'device' type and a name. Just return - * pointer to fhandler rather than trying to insert into dtable. - * (dtable::dup_worker): Accommodate above build_fh name changes. - * (dtable::find_fifo): New (currently broken) function. - * (handle_to_fn): Use strechr for efficiency. - * * dtable.h: Reflect above build_fh name changes and argument differences. - * (fhandler_base *&operator []): Return self rather than copy of self. - * * fhandler.cc (fhandler_base::operator =): Use pc element to set normalized - * path. - * (fhandler_base::set_name): Ditto. - * (fhandler_base::raw_read): Use method to access name. - * (fhandler_base::write): Correctly use get_output_handle rather than get_handle. - * (handler_base::device_access_denied): New function. - * (fhandler_base::open): Eliminate pc argument and use pc element of - * fhandler_base throughout. - * (fhandler_base::fstat): Detect if device is based in filesystem and use - * fstat_fs to calculate stat, if so. - * (fhandler_base::fhandler_base): Eliminate handling of file names and, instead, - * just free appropriate component from pc. - * (fhandler_base::opendir): Remove path_conv parameter. - * * fhandler.h: Remove all device flags. - * (fhandler_base::pc): New element. - * (fhandler_base::set_name): Change argument to path_conv. - * (fhandler_base::error): New function. - * (fhandler_base::exists): New function. - * (fhandler_base::pc_binmode): New function. - * (fhandler_base::dev): New function. - * (fhandler_base::open_fs): New function. - * (fhandler_base::fstat_fs): New function. - * (fhandler_base::fstat_by_name): New function. - * (fhandler_base::fstat_by_handle): New function. - * (fhandler_base::isfifo): New function. - * (fhandler_base::is_slow): New function. - * (fhandler_base::is_auto_device): New function. - * (fhandler_base::is_fs_special): New function. - * (fhandler_base::device_access_denied): New function. - * (fhandler_base::operator DWORD&): New operator. - * (fhandler_base::get_name): Return normalized path from pc. - * (fhandler_base::get_win32_name): Return windows path from pc. - * (fhandler_base::isdevice): Renamed from is_device. - * (fhandler_base::get_native_name): Return device format. - * (fhandler_fifo): New class. - * (fhandler_nodevice): New class. - * (select_stuff::device_specific): Remove array. - * (select_stuff::device_specific_pipe): New class element. - * (select_stuff::device_specific_socket): New class element. - * (select_stuff::device_specific_serial): New class element. - * (select_stuff::select_stuff): Initialize new elements. - * * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Move to base class - * from fhandler_disk_file. - * (fhandler_base::fstat_by_name): Ditto. - * (fhandler_base::fstat_by_name): Ditto. - * (fhandler_disk_file::open): Move most functionality into - * fhandler_base::open_fs. - * (fhandler_base::open_fs): New function. - * (fhandler_disk_file::close): Move most functionality into - * fhandler_base::close_fs. - * (fhandler_base::close_fs): New function. - * * fhandler_mem.cc (fhandler_dev_mem::open): Use device name in debugging - * output. - * * fhandler_socket.cc (fhandler_socket::set_connect_secret): Copy standard - * urandom device into appropriate place. - * (fhandler_socket::accept): Reflect change in fdsock return value. - * * fhandler_tty.cc: See "throughouts" above. - * * net.cc: Accommodate fdsock change throughout. - * (fdsock): Return success or failure, accept fd argument and device argument. - * * path.cc (symlink_info::major): New element. - * (symlink_info::minor): New element. - * (symlink_info::parse_device): Declare new function. - * (fs_info::update): Accommodate changes in path_conv class. - * (path_conv::fillin): Ditto. - * (path_conv::return_and_clear_normalized_path): Eliminate. - * (path_conv::set_normalized_path): New function. - * (path_conv::path_conv): Set info in dev element. Use path_conv methods Check - * for FH_FS rather than FH_BAD to indicate when to fill in filesystem stuff. - * where appropriate rather than direct access. Use set_normalized_path to set - * normalized path. - * (windows_device_names): Eliminate. - * (get_dev): Ditto. - * (get_raw_device_number): Ditto. - * (get_device_number): Ditto. - * (win32_device_name): Call new device name parser to do most of the heavy - * lifting. - * (mount_info::conv_to_win32_path): Fill in dev field as appropriate. - * (symlink_worker): Handle new device files. - * (symlink_info::check): Ditto. - * (symlink_info::parse_device): Define new function. - * * path.h (executable_states): Move here from fhandler.h. - * (fs_info): Rename variables to *_storage and create methods for accessing same. - * (path_conv): Add dev element, remove devn and unit and adjust inline methods to - * accommodate. - * (set_normalized_path): Declare new function. - * * pinfo.cc (_pinfo::commune_recv): Add broken support for handling fifos. - * (_pinfo::commune_send): Ditto. - * * pipe.cc (fhandler_pipe::close): check for existence of handle before closing - * it. - * (handler_pipe::create): Rename from make_pipe. Change arguments to accept - * fhandler_pipe array. Accommodate fifos. - * (pipe): Rework to deal with fhandler_pipe::create changes. - * (_pipe): Ditto. - * * select.cc: Use individual device_specific types throughout rather than - * indexing with obsolete device number. - * (set_bits): Use is_socket call rather than checking device number. - * * shared_info.h (CURR_MOUNT_MAGIC): Update. - * (conv_to_win32_path): Reflect addition of device argument. - * * syscalls.cc (mknod_worker): New function. - * (open): Use build_fh_name to build fhandler. - * (chown_worker): Detect if this is an 'auto' device rather than an on-filesystem - * device and handle appropriately. - * (chmod_device): New function. - * (chmod): Detect if this is an 'auto' device rather than an on-filesystem device - * and handle appropriately. Use chmod_device to set mode of in-filesystem - * devices. - * (stat_worker): Eliminate path_conv argument. Call build_fh_name to construct - * fhandler. Use fh->error() rather than pc->error to detect errors in fhandler - * construction. - * (access_worker): New function pulled from access. Accommodate in-filesystem - * devices. - * (access): Use access_worker. - * (fpathconf): Detect if this is an 'auto' device rather than an on-filesystem - * device and handle appropriately. - * (mknod_worker): New function. - * (mknod32): New function. - * (chroot): Free normalized path -- assuming it was actually cmalloced. - * * tty.cc (create_tty_master): Tweak for new device class. - * (tty::common_init): Ditto. - * * winsup.h (stat_worker): Remove. - * (symlink_worker): Declare. - * * exceptions.cc (set_process_mask): Just call sig_dispatch_pending and don't - * worry about pending_signals since sig_dispatch_pending should always do the - * right thing now. - * (sig_handle): Reorganize SIGCONT handling to more closely conform to SUSv3. - * * pinfo.h: Move __SIG enum to sigproc.h. - * (PICOM_FIFO): New enum element. - * (_pinfo): Remove 'thread2signal' stuff throughout class. - * (_pinfo::commune_send): Make varargs. - * (_pinfo::sigtodo): Eliminate. - * (_pinfo::thread2signal): Ditto. - * * signal.cc (kill_worker): Eliminate call to setthread2signal. - * * sigproc.cc (local_sigtodo): Eliminate. - * (getlocal_sigtodo): Ditto. - * (sigelem): New class. - * (pending_signals): New class. - * (sigqueue): New variable, start of sigqueue linked list. - * (sigcatch_nonmain): Eliminate. - * (sigcatch_main): Eliminate. - * (sigcatch_nosync): Eliminate. - * (sigcomplete_nonmain): Eliminate. - * (pending_signals): Eliminate. - * (sig_clear): Call signal thread to clear pending signals, unless already in - * signal thread. - * (sigpending): Call signal thread to get pending signals. - * (sig_dispatch_pending): Eliminate use of pending_signals and just check - * sigqueue. - * (sigproc_terminate): Eliminate all of the obsolete semaphore stuff. Close - * signal pipe handle. - * (sig_send): Eliminate all of the obsolete semaphore stuff and use pipe to send - * signals. - * (getevent): Eliminate. - * (pending_signals::add): New function. - * (pending_signals::del): New function. - * (pending_signals::next): New function. - * (wait_sig): Eliminate all of the obsolete semaphore stuff. Use pipe to - * communicate and maintain a linked list of signals. - * * sigproc.h: Move __SIG defines here. Add __SIGPENDING. - * (sig_dispatch_pending): Remove "C" specifier. - * (sig_handle): Accept a mask argument. - * * thread.cc: Remove signal handling considerations throughout. - * - * Revision 1.5.52.1 2003/09/02 02:31:08 cgf - * merge from trunk - * - * Revision 1.6 2003/08/31 18:26:58 cgf - * * Makefile.in (MALLOC_OFILES): Always fill in with correct malloc object. - * * configure.in: Fill in MALLOC_OFILES with either debugging or regular malloc. - * * configure: Regenerate. - * * dlmalloc.c: Make various fruitless changes to attempt to get to work. - * * dlmalloc.h: Ditto. - * * malloc.cc (free): Check malloc pool when debugging. - * * path.cc (win32_device_name): Eliminate compiler warning. - * * sigproc.cc (sig_dispatch_pending): Remove use of was_pending. Let - * thisframe.call_signal_handler decide if handler should be called rather than - * using bogus was_pending check. - * * exceptions.cc (interrupt_setup): Remove accidentally checked in debugging - * code. - * * heap.cc (sbrk): Save rounded addess in user_heap_max. - * - * Revision 1.5 2001/10/03 03:49:25 cgf - * * cygheap.cc (cfree): Remove malloc debugging probe. - * * dlmalloc.c (errprint): Remove abort() call which causes interesting error - * message printing to abort prematurely. - * * environ.cc: Sprinkle MALLOC_CHECKs liberally throughout. - * (_addenv): Allocate two empty elements at end of environ to - * (apparently) work around problems with some buggy applications. - * (winenv): Avoid calling alloca if no forced environment variable is present. - * - * * exceptions.cc (open_stackdumpfile): Don't print "Dumping stack trace to..." - * when running in a cygwin environment (i.e., the parent is a cygwin process). - * - * * dtable.cc (dtable::init_std_file_from_handle): Move device type detection - * code from build_fhandler here since it is only used by this function. - * (dtable::build_fhandler_from_name): New method. Renamed from - * dtable::build_fhandler. - * (dtable::build_fhandler): Use build_fhandler_from_name. - * (cygwin_attach_handle_to_fd): Ditto. - * * syscalls.cc (_open): Ditto. - * (stat_worker): Ditto. - * * dtable.h (dtable::build_fhandler_from_name): Rename declaration from - * dtable::build_fhandler. - * - * Revision 1.4 2001/09/07 21:32:04 cgf - * * cygheap.h (init_cygheap): Move heap pointers here. - * * include/sys/cygwin.h (perprocess): Remove heap pointers. - * * dcrt0.cc (__cygwin_user_data): Reflect obsolete perprocess stuff. - * (_dll_crt0): Don't initialize heap pointers. - * (cygwin_dll_init): Ditto. - * (release_upto): Use heap pointers from cygheap. - * * heap.h: Ditto. - * * fork.cc (fork_parent): Ditto. Don't set heap pointers in ch. - * (fork_child): Remove obsolete sigproc_fixup_after_fork. - * * shared.cc (memory_init): Reorganize so that cygheap initialization is called - * prior to regular heap since regular heap uses cygheap now. - * * sigproc.cc (proc_subproc): Eliminate zombies allocation. - * (sigproc_init): Move zombies alloation here. Don't free up array on fork, just - * reuse it. - * (sigproc_fixup_after_fork): Eliminate. - * * sigproc.h: Ditto. - * * include/cygwin/version.h: Reflect change to perprocess structure. - * - * Revision 1.3 2001/06/26 14:47:48 cgf - * * mmap.cc: Clean up *ResourceLock calls throughout. - * * thread.cc (pthread_cond::TimedWait): Check for WAIT_TIMEOUT as well as - * WAIT_ABANDONED. - * (__pthread_cond_timedwait): Calculate a relative wait from the abstime - * parameter. - * - * Revision 1.2 2001/06/24 22:26:49 cgf - * forced commit - * - * Revision 1.1 2001/04/24 15:25:30 duda - * * dlmalloc.c: New file. Port of Doug Lea's malloc - * * dlmalloc.h: Ditto. - * * Makefile.in: Add support for MALLOC_DEBUG - * * config.h.in: Ditto. - * * winsup.h: Ditto. - * * configure.in: Add --enable-malloc-debugging option. - * * configure: Regenerate. - * * debug.h: Include declarations for debugging malloc. - * * tty.cc (grantpt): Fix definition. - * (unlockpt): Ditto. + * Revision 1.9 2004/05/12 16:21:18 cgf + * remove keyword stuff * * Revision 1.1 1997/12/24 18:34:47 nsd * Initial revision