1 | /* umalloc.h,v 1.4 2004/09/14 22:27:36 bird Exp */
|
---|
2 | /** @file
|
---|
3 | * EMX.
|
---|
4 | */
|
---|
5 |
|
---|
6 |
|
---|
7 | #ifndef _UMALLOC_H
|
---|
8 | #define _UMALLOC_H
|
---|
9 |
|
---|
10 | #include <sys/cdefs.h>
|
---|
11 | #include <sys/_types.h>
|
---|
12 |
|
---|
13 | __BEGIN_DECLS
|
---|
14 |
|
---|
15 | #if !defined (_SIZE_T_DECLARED)
|
---|
16 | #define _SIZE_T_DECLARED
|
---|
17 | typedef __size_t size_t;
|
---|
18 | #endif
|
---|
19 |
|
---|
20 | #if !defined (NULL)
|
---|
21 | #if defined (__cplusplus)
|
---|
22 | #define NULL 0
|
---|
23 | #else
|
---|
24 | #define NULL ((void *)0)
|
---|
25 | #endif
|
---|
26 | #endif
|
---|
27 |
|
---|
28 | struct _uheap;
|
---|
29 | typedef struct _uheap *Heap_t;
|
---|
30 |
|
---|
31 | typedef struct
|
---|
32 | {
|
---|
33 | size_t _provided;
|
---|
34 | size_t _used;
|
---|
35 | size_t _tiled;
|
---|
36 | size_t _shared;
|
---|
37 | size_t _max_free;
|
---|
38 | size_t _segments;
|
---|
39 | size_t _crates;
|
---|
40 | size_t _reserved1;
|
---|
41 | size_t _reserved2;
|
---|
42 | size_t _reserved3;
|
---|
43 | size_t _reserved4;
|
---|
44 | size_t _reserved5;
|
---|
45 | size_t _reserved6;
|
---|
46 | size_t _reserved7;
|
---|
47 | size_t _reserved8;
|
---|
48 | size_t _reserved9;
|
---|
49 | } _HEAPSTATS;
|
---|
50 |
|
---|
51 | #define _HEAP_REGULAR 0x01
|
---|
52 | #define _HEAP_TILED 0x02
|
---|
53 | #define _HEAP_SHARED 0x04
|
---|
54 | #define _HEAP_HIGHMEM 0x08 /* advisory flag */
|
---|
55 |
|
---|
56 | #define _BLOCK_CLEAN 1
|
---|
57 | #define _FORCE 1
|
---|
58 | #define _HEAP_MIN_SIZE 512
|
---|
59 | #define _RUNTIME_HEAP _um_regular_heap
|
---|
60 |
|
---|
61 | #if !defined (_HEAPOK)
|
---|
62 | #define _HEAPOK 0
|
---|
63 | #define _HEAPEMPTY 1
|
---|
64 | #define _HEAPBADBEGIN 2
|
---|
65 | #define _HEAPBADNODE 3
|
---|
66 | #define _HEAPBADEND 4
|
---|
67 | #define _HEAPBADROVER 5
|
---|
68 | #endif
|
---|
69 | #define _FREEENTRY 6
|
---|
70 | #define _USEDENTRY 7
|
---|
71 |
|
---|
72 | extern Heap_t _um_regular_heap;
|
---|
73 |
|
---|
74 | Heap_t _mheap (const void *);
|
---|
75 | Heap_t _uaddmem (Heap_t, void *, size_t, int);
|
---|
76 | void *_ucalloc (Heap_t, size_t, size_t);
|
---|
77 | int _uclose (Heap_t);
|
---|
78 | Heap_t _ucreate (void *, size_t, int, unsigned,
|
---|
79 | void *(*)(Heap_t, size_t *, int *),
|
---|
80 | void (*)(Heap_t, void *, size_t));
|
---|
81 | Heap_t _ucreate2 (void *, size_t, int, unsigned,
|
---|
82 | void *(*)(Heap_t, size_t *, int *),
|
---|
83 | void (*)(Heap_t, void *, size_t),
|
---|
84 | int (*)(Heap_t, void *, size_t, size_t *, int *),
|
---|
85 | void (*)(Heap_t, void *, size_t, size_t *));
|
---|
86 | Heap_t _udefault (Heap_t);
|
---|
87 | int _udestroy (Heap_t, int);
|
---|
88 | int _uheapchk (Heap_t);
|
---|
89 | int _uheapmin (Heap_t);
|
---|
90 | int _uheapset (Heap_t, unsigned);
|
---|
91 | unsigned _uheap_type (Heap_t);
|
---|
92 | int _uheap_walk (Heap_t, int (*)(const void *, size_t, int, int,
|
---|
93 | const char *, size_t));
|
---|
94 | int _uheap_walk2 (Heap_t, int (*)(Heap_t, const void *, size_t, int, int,
|
---|
95 | const char *, size_t, void *), void *);
|
---|
96 | void *_umalloc (Heap_t, size_t);
|
---|
97 | int _uopen (Heap_t);
|
---|
98 | int _ustats (Heap_t, _HEAPSTATS *);
|
---|
99 | void *_utcalloc (Heap_t, size_t, size_t);
|
---|
100 | Heap_t _utdefault (Heap_t);
|
---|
101 | void *_utmalloc (Heap_t, size_t);
|
---|
102 |
|
---|
103 | __END_DECLS
|
---|
104 |
|
---|
105 | #endif /* not _UMALLOC_H */
|
---|