1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21: #ifndef _MALLOC_H
22: #define _MALLOC_H 1
23:
24: #include <features.h>
25: #include <stddef.h>
26: # define __malloc_ptr_t void *
27:
28:
29: #define __malloc_size_t size_t
30: #define __malloc_ptrdiff_t ptrdiff_t
31:
32: #ifdef __GNUC__
33:
34: # define __MALLOC_P(args) args __THROW
35:
36:
37: # define __MALLOC_PMT(args) args
38:
39: #else
40:
41: # define __MALLOC_P(args) args
42: # define __MALLOC_PMT(args) args
43:
44: #endif
45:
46:
47: __BEGIN_DECLS
48:
49:
50: extern void *malloc __MALLOC_P ((size_t __size)) __attribute_malloc__ __wur;
51:
52:
53: extern void *calloc __MALLOC_P ((size_t __nmemb, size_t __size))
54: __attribute_malloc__ __wur;
55:
56:
57:
58:
59:
60:
61: extern void *realloc __MALLOC_P ((void *__ptr, size_t __size))
62: __attribute_warn_unused_result__;
63:
64:
65: extern void free __MALLOC_P ((void *__ptr));
66:
67:
68: extern void cfree __MALLOC_P ((void *__ptr));
69:
70:
71: extern void *memalign __MALLOC_P ((size_t __alignment, size_t __size))
72: __attribute_malloc__ __wur;
73:
74:
75: extern void *valloc __MALLOC_P ((size_t __size))
76: __attribute_malloc__ __wur;
77:
78:
79:
80: extern void * pvalloc __MALLOC_P ((size_t __size))
81: __attribute_malloc__ __wur;
82:
83:
84:
85: extern void *(*__morecore) __MALLOC_PMT ((ptrdiff_t __size));
86:
87:
88: extern void *__default_morecore __MALLOC_P ((ptrdiff_t __size))
89: __attribute_malloc__;
90:
91:
92:
93: struct mallinfo {
94: int arena;
95: int ordblks;
96: int smblks;
97: int hblks;
98: int hblkhd;
99: int usmblks;
100: int fsmblks;
101: int uordblks;
102: int fordblks;
103: int keepcost;
104: };
105:
106:
107: extern struct mallinfo mallinfo __MALLOC_P ((void));
108:
109:
110: #ifndef M_MXFAST
111: # define M_MXFAST 1
112: #endif
113: #ifndef M_NLBLKS
114: # define M_NLBLKS 2
115: #endif
116: #ifndef M_GRAIN
117: # define M_GRAIN 3
118: #endif
119: #ifndef M_KEEP
120: # define M_KEEP 4
121: #endif
122:
123:
124: #define M_TRIM_THRESHOLD -1
125: #define M_TOP_PAD -2
126: #define M_MMAP_THRESHOLD -3
127: #define M_MMAP_MAX -4
128: #define M_CHECK_ACTION -5
129: #define M_PERTURB -6
130:
131:
132: extern int mallopt __MALLOC_P ((int __param, int __val));
133:
134:
135:
136: extern int malloc_trim __MALLOC_P ((size_t __pad));
137:
138:
139:
140: extern size_t malloc_usable_size __MALLOC_P ((void *__ptr));
141:
142:
143: extern void malloc_stats __MALLOC_P ((void));
144:
145:
146: extern void *malloc_get_state __MALLOC_P ((void));
147:
148:
149:
150: extern int malloc_set_state __MALLOC_P ((void *__ptr));
151:
152:
153:
154:
155: extern void (*__malloc_initialize_hook) __MALLOC_PMT ((void));
156:
157: extern void (*__free_hook) __MALLOC_PMT ((void *__ptr,
158: __const __malloc_ptr_t));
159: extern void *(*__malloc_hook) __MALLOC_PMT ((size_t __size,
160: __const __malloc_ptr_t));
161: extern void *(*__realloc_hook) __MALLOC_PMT ((void *__ptr, size_t __size,
162: __const __malloc_ptr_t));
163: extern void *(*__memalign_hook) __MALLOC_PMT ((size_t __alignment,
164: size_t __size,
165: __const __malloc_ptr_t));
166: extern void (*__after_morecore_hook) __MALLOC_PMT ((void));
167:
168:
169: extern void __malloc_check_init __MALLOC_P ((void));
170:
171:
172: __END_DECLS
173:
174: #endif