Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
98642f9c06fa323774015c55cda24758c8549cd8
[simgrid.git] / src / xbt / mmalloc / mmalloc.h
1 #ifndef MMALLOC_H
2 #define MMALLOC_H 1
3
4 #ifdef HAVE_STDDEF_H
5 #  include <stddef.h>
6 #else
7 #  include <sys/types.h>   /* for size_t */
8 #  include <stdio.h>       /* for NULL */
9 #endif
10 //#include "./include/ansidecl.h"
11
12 /* Allocate SIZE bytes of memory.  */
13
14 extern void* mmalloc(void* md, size_t size);
15
16 /* Re-allocate the previously allocated block in void*, making the new block
17    SIZE bytes long.  */
18
19 extern void* mrealloc(void* md, void* ptr, size_t size);
20
21 /* Allocate NMEMB elements of SIZE bytes each, all initialized to 0.  */
22
23 extern void* mcalloc (void* md, size_t nmemb, size_t size);
24
25 /* Free a block allocated by `mmalloc', `mrealloc' or `mcalloc'.  */
26
27 extern void mfree (void* md, void* ptr);
28
29 /* Allocate SIZE bytes allocated to ALIGNMENT bytes.  */
30
31 extern void* mmemalign (void* md, size_t alignment, size_t size);
32
33 /* Allocate SIZE bytes on a page boundary.  */
34
35 extern void* mvalloc (void* md, size_t size);
36
37 /* Activate a standard collection of debugging hooks.  */
38
39 extern int mmcheck (void* md, void (*func) (void));
40
41 extern int mmcheckf (void* md, void (*func) (void), int force);
42
43 /* Pick up the current statistics. (see FIXME elsewhere) */
44
45 extern struct mstats mmstats (void* md);
46
47 extern void* mmalloc_attach (int fd, void* baseaddr);
48
49 extern void* mmalloc_detach (void* md);
50
51 extern int mmalloc_setkey (void* md, int keynum, void* key);
52
53 extern void* mmalloc_getkey (void* md, int keynum);
54
55 // FIXME: this function is not implemented anymore?
56 //extern int mmalloc_errno (void* md);
57
58 extern int mmtrace(void);
59
60 extern void* mmalloc_findbase(int size);
61
62 #endif  /* MMALLOC_H */