• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-armeabi-2011.09/arm-none-eabi/include/
1/* malloc.h -- header file for memory routines.  */
2
3#ifndef _INCLUDE_MALLOC_H_
4#define _INCLUDE_MALLOC_H_
5
6#include <_ansi.h>
7#include <sys/reent.h>
8
9#define __need_size_t
10#include <stddef.h>
11
12/* include any machine-specific extensions */
13#include <machine/malloc.h>
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19/* This version of struct mallinfo must match the one in
20   libc/stdlib/mallocr.c.  */
21
22struct mallinfo {
23  int arena;    /* total space allocated from system */
24  int ordblks;  /* number of non-inuse chunks */
25  int smblks;   /* unused -- always zero */
26  int hblks;    /* number of mmapped regions */
27  int hblkhd;   /* total space in mmapped regions */
28  int usmblks;  /* unused -- always zero */
29  int fsmblks;  /* unused -- always zero */
30  int uordblks; /* total allocated space */
31  int fordblks; /* total non-inuse space */
32  int keepcost; /* top-most, releasable (via malloc_trim) space */
33};
34
35/* The routines.  */
36
37extern _PTR malloc _PARAMS ((size_t));
38#ifdef __CYGWIN__
39#undef _malloc_r
40#define _malloc_r(r, s) malloc (s)
41#else
42extern _PTR _malloc_r _PARAMS ((struct _reent *, size_t));
43#endif
44
45extern _VOID free _PARAMS ((_PTR));
46#ifdef __CYGWIN__
47#undef _free_r
48#define _free_r(r, p) free (p)
49#else
50extern _VOID _free_r _PARAMS ((struct _reent *, _PTR));
51#endif
52
53extern _PTR realloc _PARAMS ((_PTR, size_t));
54#ifdef __CYGWIN__
55#undef _realloc_r
56#define _realloc_r(r, p, s) realloc (p, s)
57#else
58extern _PTR _realloc_r _PARAMS ((struct _reent *, _PTR, size_t));
59#endif
60
61extern _PTR calloc _PARAMS ((size_t, size_t));
62#ifdef __CYGWIN__
63#undef _calloc_r
64#define _calloc_r(r, s1, s2) calloc (s1, s2);
65#else
66extern _PTR _calloc_r _PARAMS ((struct _reent *, size_t, size_t));
67#endif
68
69extern _PTR memalign _PARAMS ((size_t, size_t));
70#ifdef __CYGWIN__
71#undef _memalign_r
72#define _memalign_r(r, s1, s2) memalign (s1, s2);
73#else
74extern _PTR _memalign_r _PARAMS ((struct _reent *, size_t, size_t));
75#endif
76
77extern struct mallinfo mallinfo _PARAMS ((void));
78#ifdef __CYGWIN__
79#undef _mallinfo_r
80#define _mallinfo_r(r) mallinfo ()
81#else
82extern struct mallinfo _mallinfo_r _PARAMS ((struct _reent *));
83#endif
84
85extern void malloc_stats _PARAMS ((void));
86#ifdef __CYGWIN__
87#undef _malloc_stats_r
88#define _malloc_stats_r(r) malloc_stats ()
89#else
90extern void _malloc_stats_r _PARAMS ((struct _reent *));
91#endif
92
93extern int mallopt _PARAMS ((int, int));
94#ifdef __CYGWIN__
95#undef _mallopt_r
96#define _mallopt_r(i1, i2) mallopt (i1, i2)
97#else
98extern int _mallopt_r _PARAMS ((struct _reent *, int, int));
99#endif
100
101extern size_t malloc_usable_size _PARAMS ((_PTR));
102#ifdef __CYGWIN__
103#undef _malloc_usable_size_r
104#define _malloc_usable_size_r(r, p) malloc_usable_size (p)
105#else
106extern size_t _malloc_usable_size_r _PARAMS ((struct _reent *, _PTR));
107#endif
108
109/* These aren't too useful on an embedded system, but we define them
110   anyhow.  */
111
112extern _PTR valloc _PARAMS ((size_t));
113#ifdef __CYGWIN__
114#undef _valloc_r
115#define _valloc_r(r, s) valloc (s)
116#else
117extern _PTR _valloc_r _PARAMS ((struct _reent *, size_t));
118#endif
119
120extern _PTR pvalloc _PARAMS ((size_t));
121#ifdef __CYGWIN__
122#undef _pvalloc_r
123#define _pvalloc_r(r, s) pvalloc (s)
124#else
125extern _PTR _pvalloc_r _PARAMS ((struct _reent *, size_t));
126#endif
127
128extern int malloc_trim _PARAMS ((size_t));
129#ifdef __CYGWIN__
130#undef _malloc_trim_r
131#define _malloc_trim_r(r, s) malloc_trim (s)
132#else
133extern int _malloc_trim_r _PARAMS ((struct _reent *, size_t));
134#endif
135
136/* A compatibility routine for an earlier version of the allocator.  */
137
138extern _VOID mstats _PARAMS ((char *));
139#ifdef __CYGWIN__
140#undef _mstats_r
141#define _mstats_r(r, p) mstats (p)
142#else
143extern _VOID _mstats_r _PARAMS ((struct _reent *, char *));
144#endif
145
146/* SVID2/XPG mallopt options */
147
148#define M_MXFAST  1    /* UNUSED in this malloc */
149#define M_NLBLKS  2    /* UNUSED in this malloc */
150#define M_GRAIN   3    /* UNUSED in this malloc */
151#define M_KEEP    4    /* UNUSED in this malloc */
152
153/* mallopt options that actually do something */
154
155#define M_TRIM_THRESHOLD    -1
156#define M_TOP_PAD           -2
157#define M_MMAP_THRESHOLD    -3
158#define M_MMAP_MAX          -4
159
160#ifndef __CYGWIN__
161/* Some systems provide this, so do too for compatibility.  */
162extern void cfree _PARAMS ((_PTR));
163#endif /* __CYGWIN__ */
164
165#ifdef __cplusplus
166}
167#endif
168
169#endif /* _INCLUDE_MALLOC_H_ */
170