source: branches/libc-0.6/src/emx/include/umalloc.h

Last change on this file was 3809, checked in by bird, 11 years ago

0.6: s/const/const/g - just use the (now) standard 'const' everywhere in emx and kLIBC code. Avoid changing external code too much. fixes #279.

  • Property cvs2svn:cvs-rev set to 1.5
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 2.4 KB
Line 
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
17typedef __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
28struct _uheap;
29typedef struct _uheap *Heap_t;
30
31typedef 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
72extern Heap_t _um_regular_heap;
73
74Heap_t _mheap (const void *);
75Heap_t _uaddmem (Heap_t, void *, size_t, int);
76void *_ucalloc (Heap_t, size_t, size_t);
77int _uclose (Heap_t);
78Heap_t _ucreate (void *, size_t, int, unsigned,
79 void *(*)(Heap_t, size_t *, int *),
80 void (*)(Heap_t, void *, size_t));
81Heap_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 *));
86Heap_t _udefault (Heap_t);
87int _udestroy (Heap_t, int);
88int _uheapchk (Heap_t);
89int _uheapmin (Heap_t);
90int _uheapset (Heap_t, unsigned);
91unsigned _uheap_type (Heap_t);
92int _uheap_walk (Heap_t, int (*)(const void *, size_t, int, int,
93 const char *, size_t));
94int _uheap_walk2 (Heap_t, int (*)(Heap_t, const void *, size_t, int, int,
95 const char *, size_t, void *), void *);
96void *_umalloc (Heap_t, size_t);
97int _uopen (Heap_t);
98int _ustats (Heap_t, _HEAPSTATS *);
99void *_utcalloc (Heap_t, size_t, size_t);
100Heap_t _utdefault (Heap_t);
101void *_utmalloc (Heap_t, size_t);
102
103__END_DECLS
104
105#endif /* not _UMALLOC_H */
Note: See TracBrowser for help on using the repository browser.