2001-08-01  Jonathan Larmour  <jlarmour@redhat.com>

	* include/sepmetaimpl.inl: Define check_free_memdq and
	check_alloced_memdq as inlines.

	* cdl/memalloc.cdl: Add new allocator supporting separate metadata,
	and the associated config options, and build sepmeta.cxx and tests.
	Build heapgeninc.tcl with macros that work with both gcc2 and gcc3.
	Ditto for heaps.o.
	Add CYGBLD_MEMALLOC_MALLOC_EXTERNAL_HEAP_H to allow external entities
	to define the heap.
	* src/malloc.cxx: Include CYGBLD_MEMALLOC_MALLOC_EXTERNAL_HEAP_H if
	defined instead of default heap definition.
	* include/sepmeta.hxx, include/sepmetaimpl.hxx, include/sepmetaimpl.inl,
	src/sepmeta.cxx, tests/sepmeta1.cxx, tests/sepmeta2.cxx:
	New files for seperated metadata allocator.

2001-07-18  Jonathan Larmour  <jlarmour@redhat.com>

	* src/heapgen.tcl: Use constructor priority of CYG_INIT_MEMALLOC
	for heap objects in generated heaps.cxx.

2001-07-12  Jonathan Larmour  <jlarmour@redhat.com>

	* tests/malloc1.c (main): Accoutn for allocators that do allocate
	space for allocs of 0.
	Test that allocating all space works.
	* src/dlmalloc.cxx (get_status): Correct again calculation of maxfree

2001-06-28  Jonathan Larmour  <jlarmour@redhat.com>

	* include/memjoin.inl (~Cyg_Mempool_Joined): free even when asserts
	disabled.

	* include/memvar.hxx (class Cyg_Mempool_Variable): Comment out argument
	names for consistency.
	* include/memfixed.hxx (class Cyg_Mempool_Fixed): Ditto.
	* include/memjoin.hxx (class Cyg_Mempool_Joined): Ditto.

2001-06-20  Jonathan Larmour  <jlarmour@redhat.com>

	* include/mvarimpl.inl (get_status): Correct calculation of maxfree
	by taking into account metadata.

2001-06-18  Jonathan Larmour  <jlarmour@redhat.com>

	* cdl/memalloc.cdl: Add heaptest test.

	* tests/heaptest.c: New test to do a memory check of all of heap.

	* src/dlmalloc.cxx (get_status): Correct maxfree and totalfree
	by accounting for block headers.

	* tests/realloc.c (cyg_start): Remove warning from declaration.
	* tests/malloc1.c (cyg_start): Ditto.
	* tests/malloc2.c (cyg_start): Ditto.
	* tests/malloc3.c (cyg_start): Ditto.
	* tests/malloc4.cxx (cyg_start): Ditto. Also add DEBUGTEST define
	and fix comment.

	* tests/testaux.hxx (STACKSIZE): Double.

2001-05-02  Hugo Tyson  <hmt@redhat.com>

	* src/dlmalloc.cxx (Cyg_Mempool_dlmalloc_Implementation): Fix
	previous change; "top" is a pseudo variable via a NULL pointer if
	the heap is not initialized, so you can't use it as a flag for "no
	mem here"; and a typo, the comparison was reversed.  The two hid
	each other, so the check for "no mem here" usually said "OK".

2001-05-01  Jonathan Larmour  <jlarmour@redhat.com>

	* include/mvarimpl.inl (try_alloc): Allow zero sized heaps.
	(Cyg_Mempool_Variable_Implementation): Ditto.
	* src/dlmalloc.cxx (try_alloc): Ditto.
	(Cyg_Mempool_dlmalloc_Implementation): Ditto.

2001-04-12  Hugo Tyson  <hmt@redhat.com>

	* include/memjoin.inl (resize_alloc): Fix typo so it compiles.
	This only applies if you configure multiple heaps.

2001-03-21  Jonathan Larmour  <jlarmour@redhat.com>

	* cdl/memalloc.cdl: Specify explicit output file when preprocessing
	heapgen.cpp. Improves portability.

2001-02-01  Jonathan Larmour  <jlarmour@redhat.com>

	* tests/malloc4.cxx: Use semaphores to sync startup order.

2000-11-28  Jonathan Larmour  <jlarmour@redhat.com>

	* src/heapgen.tcl: Don't use cygpath -s for now as not all cygwins
	have it yet.

2000-11-25  Jonathan Larmour  <jlarmour@redhat.com>

	* cdl/memalloc.cdl: Make sure PWD variable doesn't clash with bash PWD
	by renaming to XPWD

2000-11-24  Jonathan Larmour  <jlarmour@redhat.com>

	* cdl/memalloc.cdl: Invoke heapgen.tcl with build directory
	surrounded by quotes (and do so in a portable way).

	* src/heapgen.tcl: recurse back in on cygwin with correct quoting
	to allow directories containing spaces. Also in a Solaris shell
	compatible way.

2000-11-21  Jonathan Larmour  <jlarmour@redhat.com>

	* cdl/memalloc.cdl (CYGSEM_MEMALLOC_MALLOC_ZERO_RETURNS_NULL): 
	New option.
	* src/malloc.cxx (malloc): Use above option to decide if NULL should
	be returned on malloc(0).

2000-11-01  Jesper Skov  <jskov@redhat.com>

	* tests/realloc.c (main): Use reasonable factor when making too
	large realloc (targets with 64MB would cause an overflow).

2000-10-31  Jonathan Larmour  <jlarmour@redhat.com>

	* tests/testaux.hxx: Prototype cyg_hal_invoke_constructors()
	[ Forgot to check this in at the same time as below ]

2000-10-20  Jonathan Larmour  <jlarmour@redhat.com>

	* tests/dlmalloc1.cxx:
	* tests/dlmalloc2.cxx:
	* tests/malloc4.cxx:
	* tests/memfix1.cxx:
	* tests/memfix2.cxx:
	* tests/memvar1.cxx:
	* tests/memvar2.cxx:
	Make sure default priority constructors have been invoked.

2000-09-14  Jesper Skov  <jskov@redhat.com>

	* tests/realloc.c (main): fix warning.
	* tests/malloc1.c (main): Same.
	* tests/malloc2.c (main): Same.
	* tests/malloc3.c (main): Same.

2000-08-31  Jonathan Larmour  <jlarmour@redhat.com>

	* cdl/memalloc.cdl: Make dlmalloc the default malloc implementation now.
	Also add info to the variable block and dlmalloc descriptions to
	describe the pros and cons of these allocators.

2000-08-09  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* tests/malloc4.cxx (thrfree): Don't yield at loop end - actually delay
	(thrrealloc): Ditto
	(thrcalloc): Ditto
	(thrmalloc): Ditto

2000-08-08  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* tests/malloc4.cxx: Make output more frequent

2000-08-04  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* tests/dlmalloc1.cxx (STACKSIZE): Define larger than default.

2000-08-03  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* include/dlmallocimpl.hxx (class Cyg_Mempool_dlmalloc_Implementation):
	Ensure typedefs are public so dlmalloc.cxx can use them at outer level.

2000-08-02  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* src/heapgen.tcl: Fix tclsh invocation quoting problems

2000-07-31  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* src/heapgen.tcl: Allow builddir to be specified on command-line
	* cdl/memalloc.cdl: Work around NT cygtclsh80 bug by cd'ing into
	heapgen.tcl's directory before running it

2000-07-26  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* tests/malloc4.cxx: Call rand_r() rather than rand, and use a seed
	var in each thread.

2000-07-25  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* tests/malloc4.cxx (thrfree): Get mem size here. Tidy output.
	(thrmalloc): Get mem size in thrfree instead

	* src/heapgen.tcl: Refine search for user-defined name to cope with
	use of CYG_LABEL_DEFN macro

2000-07-19  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* cdl/memalloc.cdl (CYGIMP_MEMALLOC_ALLOCATOR_DLMALLOC_SAFE_MULTIPLE):
	Default to 1

	* include/mvarimpl.inl (resize_alloc): Remember to adjust other
	freelist entries when extending block

2000-07-04  Jonathan Larmour  <jlarmour@redhat.co.uk>

	* CYGPKG_MEMALLOC:

	Created as new package, merging existing memory allocator related stuff
	from the kernel and libc. Many bug fixes to existing stuff, as
	well as performance improvements, and extra features such as
	a port of dlmalloc, and the ability to support multiple disjoint
	heaps, possibly with run-time configurable size.
	There's even a bit of documentation, and some new tests

//===========================================================================
//####COPYRIGHTBEGIN####
//                                                                          
// -------------------------------------------                              
// The contents of this file are subject to the Red Hat eCos Public License 
// Version 1.1 (the "License"); you may not use this file except in         
// compliance with the License.  You may obtain a copy of the License at    
// http://www.redhat.com/                                                   
//                                                                          
// Software distributed under the License is distributed on an "AS IS"      
// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
// License for the specific language governing rights and limitations under 
// the License.                                                             
//                                                                          
// The Original Code is eCos - Embedded Configurable Operating System,      
// released September 30, 1998.                                             
//                                                                          
// The Initial Developer of the Original Code is Red Hat.                   
// Portions created by Red Hat are                                          
// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
// All Rights Reserved.                                                     
// -------------------------------------------                              
//                                                                          
//####COPYRIGHTEND####
//===========================================================================
