summary refs log tree commit diff
path: root/malloc/malloc.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-01-29 07:54:51 +0000
committerUlrich Drepper <drepper@redhat.com>2002-01-29 07:54:51 +0000
commitfa8d436c87f156d18208df3819fecee9fc1dbd9e (patch)
treee22f5754d69c0144f0945a26727c3984008f9d37 /malloc/malloc.h
parentdb2ebcef2428cb568315895f8fe3ef19d41735bc (diff)
downloadglibc-fa8d436c87f156d18208df3819fecee9fc1dbd9e.tar.gz
glibc-fa8d436c87f156d18208df3819fecee9fc1dbd9e.tar.xz
glibc-fa8d436c87f156d18208df3819fecee9fc1dbd9e.zip
Update.
2002-01-18  Wolfram Gloger  <wg@malloc.de>

	* malloc/malloc.c: Rewrite, adapted from Doug Lea's malloc-2.7.0.c.
	* malloc/malloc.h: Likewise.
	* malloc/arena.c: New file.
	* malloc/hooks.c: New file.
	* malloc/tst-mallocstate.c: New file.
	* malloc/Makefile: Add new testcase tst-mallocstate.
	Add arena.c and hooks.c to distribute.  Fix commented CPPFLAGS.

2002-01-28  Ulrich Drepper  <drepper@redhat.com>

	* stdlib/msort.c: Remove last patch.  The optimization violates the
	same rule which qsort.c had problems with.

2002-01-27  Paul Eggert  <eggert@twinsun.com>

	* stdlib/qsort.c (_quicksort): Do not apply the comparison function
	to a pivot element that lies outside the array to be sorted, as
	ISO C99 requires that the comparison function be called only with
	addresses of array elements [PR libc/2880].
Diffstat (limited to 'malloc/malloc.h')
-rw-r--r--malloc/malloc.h53
1 files changed, 31 insertions, 22 deletions
diff --git a/malloc/malloc.h b/malloc/malloc.h
index 8accd64699..aaa95b3a2c 100644
--- a/malloc/malloc.h
+++ b/malloc/malloc.h
@@ -20,24 +20,26 @@
 #ifndef _MALLOC_H
 #define _MALLOC_H 1
 
+#ifdef _LIBC
 #include <features.h>
+#endif
 
 /*
-  `ptmalloc', a malloc implementation for multiple threads without
-  lock contention, by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
-  See the files `ptmalloc.c' or `COPYRIGHT' for copying conditions.
+  $Id$
+  `ptmalloc2', a malloc implementation for multiple threads without
+  lock contention, by Wolfram Gloger <wg@malloc.de>.
 
-  VERSION 2.6.4-pt Wed Dec  4 00:35:54 MET 1996
+  VERSION 2.7.0
 
-  This work is mainly derived from malloc-2.6.4 by Doug Lea
+  This work is mainly derived from malloc-2.7.0 by Doug Lea
   <dl@cs.oswego.edu>, which is available from:
 
-                 ftp://g.oswego.edu/pub/misc/malloc.c
+                 ftp://gee.cs.oswego.edu/pub/misc/malloc.c
 
   This trimmed-down header file only provides function prototypes and
   the exported data structures.  For more detailed function
   descriptions and compile-time options, see the source file
-  `ptmalloc.c'.
+  `malloc.c'.
 */
 
 #if defined(__STDC__) || defined (__cplusplus)
@@ -112,11 +114,6 @@ extern "C" {
 #endif
 extern int __malloc_initialized;
 
-/* Initialize global configuration.  Not needed with GNU libc. */
-#ifndef __GLIBC__
-extern void ptmalloc_init __MALLOC_P ((void));
-#endif
-
 /* Allocate SIZE bytes of memory.  */
 extern __malloc_ptr_t malloc __MALLOC_P ((size_t __size)) __attribute_malloc__;
 
@@ -156,16 +153,17 @@ extern __malloc_ptr_t __default_morecore __MALLOC_P ((ptrdiff_t __size))
        __attribute_malloc__;
 
 /* SVID2/XPG mallinfo structure */
+
 struct mallinfo {
-  int arena;    /* total space allocated from system */
-  int ordblks;  /* number of non-inuse chunks */
-  int smblks;   /* unused -- always zero */
+  int arena;    /* non-mmapped space allocated from system */
+  int ordblks;  /* number of free chunks */
+  int smblks;   /* number of fastbin blocks */
   int hblks;    /* number of mmapped regions */
-  int hblkhd;   /* total space in mmapped regions */
-  int usmblks;  /* unused -- always zero */
-  int fsmblks;  /* unused -- always zero */
+  int hblkhd;   /* space in mmapped regions */
+  int usmblks;  /* maximum total allocated space */
+  int fsmblks;  /* space available in freed fastbin blocks */
   int uordblks; /* total allocated space */
-  int fordblks; /* total non-inuse space */
+  int fordblks; /* total free space */
   int keepcost; /* top-most, releasable (via malloc_trim) space */
 };
 
@@ -174,7 +172,7 @@ extern struct mallinfo mallinfo __MALLOC_P ((void));
 
 /* SVID2/XPG mallopt options */
 #ifndef M_MXFAST
-# define M_MXFAST  1	/* UNUSED in this malloc */
+# define M_MXFAST  1	/* maximum request size for "fastbins" */
 #endif
 #ifndef M_NLBLKS
 # define M_NLBLKS  2	/* UNUSED in this malloc */
@@ -214,7 +212,6 @@ extern __malloc_ptr_t malloc_get_state __MALLOC_P ((void));
    malloc_get_state(). */
 extern int malloc_set_state __MALLOC_P ((__malloc_ptr_t __ptr));
 
-#if defined __GLIBC__ || defined MALLOC_HOOKS
 /* Called once when malloc is initialized; redefining this variable in
    the application provides the preferred way to set up the hook
    pointers. */
@@ -234,7 +231,19 @@ extern void (*__after_morecore_hook) __MALLOC_PMT ((void));
 
 /* Activate a standard set of debugging hooks. */
 extern void __malloc_check_init __MALLOC_P ((void));
-#endif
+
+/* Internal routines, operating on "arenas".  */
+struct malloc_state;
+typedef struct malloc_state *mstate;
+
+extern mstate         _int_new_arena __MALLOC_P ((size_t __ini_size));
+extern __malloc_ptr_t _int_malloc __MALLOC_P ((mstate __m, size_t __size));
+extern void           _int_free __MALLOC_P ((mstate __m, __malloc_ptr_t __ptr));
+extern __malloc_ptr_t _int_realloc __MALLOC_P ((mstate __m,
+						__malloc_ptr_t __ptr,
+						size_t __size));
+extern __malloc_ptr_t _int_memalign __MALLOC_P ((mstate __m, size_t __alignment,
+						 size_t __size));
 
 #ifdef __cplusplus
 }; /* end of extern "C" */