source: trunk/src/emx/include/umalloc.h@ 18

Last change on this file since 18 was 18, checked in by bird, 22 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 2.3 KB
Line 
1/* umalloc.h (emx+gcc) */
2
3#ifndef _UMALLOC_H
4#define _UMALLOC_H
5
6#if defined (__cplusplus)
7extern "C" {
8#endif
9
10#if !defined (_SIZE_T)
11#define _SIZE_T
12typedef unsigned long size_t;
13#endif
14
15#if !defined (NULL)
16#if defined (__cplusplus)
17#define NULL 0
18#else
19#define NULL ((void *)0)
20#endif
21#endif
22
23struct _uheap;
24typedef struct _uheap *Heap_t;
25
26typedef struct
27{
28 size_t _provided;
29 size_t _used;
30 size_t _tiled;
31 size_t _shared;
32 size_t _max_free;
33 size_t _segments;
34 size_t _crates;
35 size_t _reserved1;
36 size_t _reserved2;
37 size_t _reserved3;
38 size_t _reserved4;
39 size_t _reserved5;
40 size_t _reserved6;
41 size_t _reserved7;
42 size_t _reserved8;
43 size_t _reserved9;
44} _HEAPSTATS;
45
46#define _HEAP_REGULAR 0x01
47#define _HEAP_TILED 0x02
48#define _HEAP_SHARED 0x04
49
50#define _BLOCK_CLEAN 1
51#define _FORCE 1
52#define _HEAP_MIN_SIZE 512
53#define _RUNTIME_HEAP _um_regular_heap
54
55#if !defined (_HEAPOK)
56#define _HEAPOK 0
57#define _HEAPEMPTY 1
58#define _HEAPBADBEGIN 2
59#define _HEAPBADNODE 3
60#define _HEAPBADEND 4
61#define _HEAPBADROVER 5
62#endif
63#define _FREEENTRY 6
64#define _USEDENTRY 7
65
66extern Heap_t _um_regular_heap;
67
68Heap_t _mheap (__const__ void *);
69Heap_t _uaddmem (Heap_t, void *, size_t, int);
70void *_ucalloc (Heap_t, size_t, size_t);
71int _uclose (Heap_t);
72Heap_t _ucreate (void *, size_t, int, unsigned,
73 void *(*)(Heap_t, size_t *, int *),
74 void (*)(Heap_t, void *, size_t));
75Heap_t _ucreate2 (void *, size_t, int, unsigned,
76 void *(*)(Heap_t, size_t *, int *),
77 void (*)(Heap_t, void *, size_t),
78 int (*)(Heap_t, void *, size_t, size_t *, int *),
79 void (*)(Heap_t, void *, size_t, size_t *));
80Heap_t _udefault (Heap_t);
81int _udestroy (Heap_t, int);
82int _uheapchk (Heap_t);
83int _uheapmin (Heap_t);
84int _uheapset (Heap_t, unsigned);
85unsigned _uheap_type (Heap_t);
86int _uheap_walk (Heap_t, int (*)(__const__ void *, size_t, int, int,
87 __const__ char *, size_t));
88int _uheap_walk2 (Heap_t, int (*)(Heap_t, __const__ void *, size_t, int, int,
89 __const__ char *, size_t, void *), void *);
90void *_umalloc (Heap_t, size_t);
91int _uopen (Heap_t);
92int _ustats (Heap_t, _HEAPSTATS *);
93void *_utcalloc (Heap_t, size_t, size_t);
94Heap_t _utdefault (Heap_t);
95void *_utmalloc (Heap_t, size_t);
96
97
98#if defined (__cplusplus)
99}
100#endif
101
102#endif /* not _UMALLOC_H */
Note: See TracBrowser for help on using the repository browser.