malloc.h 1.2 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#ifndef _MALLOC_H
#define _MALLOC_H

#include <stdio.h>

#ifdef __cplusplus
extern "C" {
#endif

#define __NEED_size_t
#define __NEED_ssize_t
#define __NEED_uintptr_t

#include <bits/alltypes.h>

void *malloc (size_t);
void *calloc (size_t, size_t);
void *realloc (void *, size_t);
void free (void *);
void *valloc (size_t);
void *memalign(size_t, size_t);

size_t malloc_usable_size(void *);

O
olefirenque 已提交
25 26 27 28 29 30 31 32 33 34 35 36 37
#define __MALLINFO_BODY \
  size_t arena; \
  size_t ordblks; \
  size_t smblks; \
  size_t hblks; \
  size_t hblkhd; \
  size_t usmblks; \
  size_t fsmblks; \
  size_t uordblks; \
  size_t fordblks; \
  size_t keepcost;

struct mallinfo { __MALLINFO_BODY };
38 39 40

struct mallinfo mallinfo(void);

O
olefirenque 已提交
41
struct mallinfo2 { __MALLINFO_BODY };
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59

struct mallinfo2 mallinfo2(void);

int malloc_iterate(void* base, size_t size, void (*callback)(void* base, size_t size, void* arg), void* arg);
void malloc_disable(void);
void malloc_enable(void);

int malloc_info(int options, FILE* fp);
void malloc_stats_print(void (*write_cb) (void *, const char *), void *cbopaque, const char *opts);

int mallopt(int param, int value);
ssize_t malloc_backtrace(void* pointer, uintptr_t* frames, size_t frame_count);

#ifdef __cplusplus
}
#endif

#endif