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