OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [newlib-1.18.0/] [newlib-1.18.0-or32-1.0rc2/] [newlib/] [libc/] [stdlib/] [mstats.c] - Diff between revs 207 and 520

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 207 Rev 520
/* VxWorks provides its own version of malloc, and we can't use this
/* VxWorks provides its own version of malloc, and we can't use this
   one because VxWorks does not provide sbrk.  So we have a hook to
   one because VxWorks does not provide sbrk.  So we have a hook to
   not compile this code.  */
   not compile this code.  */
 
 
#ifdef MALLOC_PROVIDED
#ifdef MALLOC_PROVIDED
 
 
int _dummy_mstats = 1;
int _dummy_mstats = 1;
 
 
#else
#else
 
 
/*
/*
FUNCTION
FUNCTION
<<mallinfo>>, <<malloc_stats>>, <<mallopt>>---malloc support
<<mallinfo>>, <<malloc_stats>>, <<mallopt>>---malloc support
 
 
INDEX
INDEX
        mallinfo
        mallinfo
INDEX
INDEX
        malloc_stats
        malloc_stats
INDEX
INDEX
        mallopt
        mallopt
INDEX
INDEX
        _mallinfo_r
        _mallinfo_r
INDEX
INDEX
        _malloc_stats_r
        _malloc_stats_r
INDEX
INDEX
        _mallopt_r
        _mallopt_r
 
 
ANSI_SYNOPSIS
ANSI_SYNOPSIS
        #include <malloc.h>
        #include <malloc.h>
        struct mallinfo mallinfo(void);
        struct mallinfo mallinfo(void);
        void malloc_stats(void);
        void malloc_stats(void);
        int mallopt(int <[parameter]>, <[value]>);
        int mallopt(int <[parameter]>, <[value]>);
 
 
        struct mallinfo _mallinfo_r(void *<[reent]>);
        struct mallinfo _mallinfo_r(void *<[reent]>);
        void _malloc_stats_r(void *<[reent]>);
        void _malloc_stats_r(void *<[reent]>);
        int _mallopt_r(void *<[reent]>, int <[parameter]>, <[value]>);
        int _mallopt_r(void *<[reent]>, int <[parameter]>, <[value]>);
 
 
TRAD_SYNOPSIS
TRAD_SYNOPSIS
        #include <malloc.h>
        #include <malloc.h>
        struct mallinfo mallinfo();
        struct mallinfo mallinfo();
 
 
        void malloc_stats();
        void malloc_stats();
 
 
        int mallopt(<[parameter]>, <[value]>)
        int mallopt(<[parameter]>, <[value]>)
        int <[parameter]>;
        int <[parameter]>;
        int <[value]>;
        int <[value]>;
 
 
        struct mallinfo _mallinfo_r(<[reent]>);
        struct mallinfo _mallinfo_r(<[reent]>);
        char *<[reent]>;
        char *<[reent]>;
 
 
        void _malloc_stats_r(<[reent]>);
        void _malloc_stats_r(<[reent]>);
        char *<[reent]>;
        char *<[reent]>;
 
 
        int _mallopt_r(<[reent]>, <[parameter]>, <[value]>)
        int _mallopt_r(<[reent]>, <[parameter]>, <[value]>)
        char *<[reent]>;
        char *<[reent]>;
        int <[parameter]>;
        int <[parameter]>;
        int <[value]>;
        int <[value]>;
 
 
DESCRIPTION
DESCRIPTION
<<mallinfo>> returns a structure describing the current state of
<<mallinfo>> returns a structure describing the current state of
memory allocation.  The structure is defined in malloc.h.  The
memory allocation.  The structure is defined in malloc.h.  The
following fields are defined: <<arena>> is the total amount of space
following fields are defined: <<arena>> is the total amount of space
in the heap; <<ordblks>> is the number of chunks which are not in use;
in the heap; <<ordblks>> is the number of chunks which are not in use;
<<uordblks>> is the total amount of space allocated by <<malloc>>;
<<uordblks>> is the total amount of space allocated by <<malloc>>;
<<fordblks>> is the total amount of space not in use; <<keepcost>> is
<<fordblks>> is the total amount of space not in use; <<keepcost>> is
the size of the top most memory block.
the size of the top most memory block.
 
 
<<malloc_stats>> print some statistics about memory allocation on
<<malloc_stats>> print some statistics about memory allocation on
standard error.
standard error.
 
 
<<mallopt>> takes a parameter and a value.  The parameters are defined
<<mallopt>> takes a parameter and a value.  The parameters are defined
in malloc.h, and may be one of the following: <<M_TRIM_THRESHOLD>>
in malloc.h, and may be one of the following: <<M_TRIM_THRESHOLD>>
sets the maximum amount of unused space in the top most block before
sets the maximum amount of unused space in the top most block before
releasing it back to the system in <<free>> (the space is released by
releasing it back to the system in <<free>> (the space is released by
calling <<_sbrk_r>> with a negative argument); <<M_TOP_PAD>> is the
calling <<_sbrk_r>> with a negative argument); <<M_TOP_PAD>> is the
amount of padding to allocate whenever <<_sbrk_r>> is called to
amount of padding to allocate whenever <<_sbrk_r>> is called to
allocate more space.
allocate more space.
 
 
The alternate functions <<_mallinfo_r>>, <<_malloc_stats_r>>, and
The alternate functions <<_mallinfo_r>>, <<_malloc_stats_r>>, and
<<_mallopt_r>> are reentrant versions.  The extra argument <[reent]>
<<_mallopt_r>> are reentrant versions.  The extra argument <[reent]>
is a pointer to a reentrancy structure.
is a pointer to a reentrancy structure.
 
 
RETURNS
RETURNS
<<mallinfo>> returns a mallinfo structure.  The structure is defined
<<mallinfo>> returns a mallinfo structure.  The structure is defined
in malloc.h.
in malloc.h.
 
 
<<malloc_stats>> does not return a result.
<<malloc_stats>> does not return a result.
 
 
<<mallopt>> returns zero if the parameter could not be set, or
<<mallopt>> returns zero if the parameter could not be set, or
non-zero if it could be set.
non-zero if it could be set.
 
 
PORTABILITY
PORTABILITY
<<mallinfo>> and <<mallopt>> are provided by SVR4, but <<mallopt>>
<<mallinfo>> and <<mallopt>> are provided by SVR4, but <<mallopt>>
takes different parameters on different systems.  <<malloc_stats>> is
takes different parameters on different systems.  <<malloc_stats>> is
not portable.
not portable.
 
 
*/
*/
 
 
#include <_ansi.h>
#include <_ansi.h>
#include <reent.h>
#include <reent.h>
#include <stdlib.h>
#include <stdlib.h>
#include <malloc.h>
#include <malloc.h>
#include <stdio.h>
#include <stdio.h>
 
 
#ifndef _REENT_ONLY
#ifndef _REENT_ONLY
 
 
struct mallinfo
struct mallinfo
_DEFUN_VOID (mallinfo)
_DEFUN_VOID (mallinfo)
{
{
  return _mallinfo_r (_REENT);
  return _mallinfo_r (_REENT);
}
}
 
 
#if !defined (_ELIX_LEVEL) || _ELIX_LEVEL >= 2
#if !defined (_ELIX_LEVEL) || _ELIX_LEVEL >= 2
void
void
_DEFUN_VOID (malloc_stats)
_DEFUN_VOID (malloc_stats)
{
{
  _malloc_stats_r (_REENT);
  _malloc_stats_r (_REENT);
}
}
 
 
int
int
_DEFUN (mallopt, (p, v),
_DEFUN (mallopt, (p, v),
        int p _AND
        int p _AND
        int v)
        int v)
{
{
  return _mallopt_r (_REENT, p, v);
  return _mallopt_r (_REENT, p, v);
}
}
 
 
#endif /* !_ELIX_LEVEL || _ELIX_LEVEL >= 2 */
#endif /* !_ELIX_LEVEL || _ELIX_LEVEL >= 2 */
 
 
#endif
#endif
 
 
#if !defined (_ELIX_LEVEL) || _ELIX_LEVEL >= 2
#if !defined (_ELIX_LEVEL) || _ELIX_LEVEL >= 2
 
 
/* mstats is now compatibility code.  It used to be real, for a
/* mstats is now compatibility code.  It used to be real, for a
   previous version of the malloc routines.  It now just calls
   previous version of the malloc routines.  It now just calls
   malloc_stats.  */
   malloc_stats.  */
 
 
void
void
_DEFUN (_mstats_r, (ptr, s),
_DEFUN (_mstats_r, (ptr, s),
        struct _reent *ptr _AND
        struct _reent *ptr _AND
        char *s)
        char *s)
{
{
  _REENT_SMALL_CHECK_INIT(ptr);
  _REENT_SMALL_CHECK_INIT(ptr);
  fiprintf (_stderr_r (ptr), "Memory allocation statistics %s\n", s);
  fiprintf (_stderr_r (ptr), "Memory allocation statistics %s\n", s);
  _malloc_stats_r (ptr);
  _malloc_stats_r (ptr);
}
}
 
 
#ifndef _REENT_ONLY
#ifndef _REENT_ONLY
void
void
_DEFUN (mstats, (s),
_DEFUN (mstats, (s),
        char *s)
        char *s)
{
{
  _mstats_r (_REENT, s);
  _mstats_r (_REENT, s);
}
}
 
 
#endif
#endif
 
 
#endif /* !_ELIX_LEVEL || _ELIX_LEVEL >= 2 */
#endif /* !_ELIX_LEVEL || _ELIX_LEVEL >= 2 */
 
 
#endif /* ! defined (MALLOC_PROVIDED) */
#endif /* ! defined (MALLOC_PROVIDED) */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.