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

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

#608: High memory support.

  • Property cvs2svn:cvs-rev set to 1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 2.4 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#define _HEAP_HIGHMEM 0x08 /* advisory flag */
50
51#define _BLOCK_CLEAN 1
52#define _FORCE 1
53#define _HEAP_MIN_SIZE 512
54#define _RUNTIME_HEAP _um_regular_heap
55
56#if !defined (_HEAPOK)
57#define _HEAPOK 0
58#define _HEAPEMPTY 1
59#define _HEAPBADBEGIN 2
60#define _HEAPBADNODE 3
61#define _HEAPBADEND 4
62#define _HEAPBADROVER 5
63#endif
64#define _FREEENTRY 6
65#define _USEDENTRY 7
66
67extern Heap_t _um_regular_heap;
68
69Heap_t _mheap (__const__ void *);
70Heap_t _uaddmem (Heap_t, void *, size_t, int);
71void *_ucalloc (Heap_t, size_t, size_t);
72int _uclose (Heap_t);
73Heap_t _ucreate (void *, size_t, int, unsigned,
74 void *(*)(Heap_t, size_t *, int *),
75 void (*)(Heap_t, void *, size_t));
76Heap_t _ucreate2 (void *, size_t, int, unsigned,
77 void *(*)(Heap_t, size_t *, int *),
78 void (*)(Heap_t, void *, size_t),
79 int (*)(Heap_t, void *, size_t, size_t *, int *),
80 void (*)(Heap_t, void *, size_t, size_t *));
81Heap_t _udefault (Heap_t);
82int _udestroy (Heap_t, int);
83int _uheapchk (Heap_t);
84int _uheapmin (Heap_t);
85int _uheapset (Heap_t, unsigned);
86unsigned _uheap_type (Heap_t);
87int _uheap_walk (Heap_t, int (*)(__const__ void *, size_t, int, int,
88 __const__ char *, size_t));
89int _uheap_walk2 (Heap_t, int (*)(Heap_t, __const__ void *, size_t, int, int,
90 __const__ char *, size_t, void *), void *);
91void *_umalloc (Heap_t, size_t);
92int _uopen (Heap_t);
93int _ustats (Heap_t, _HEAPSTATS *);
94void *_utcalloc (Heap_t, size_t, size_t);
95Heap_t _utdefault (Heap_t);
96void *_utmalloc (Heap_t, size_t);
97
98#if defined (__cplusplus)
99}
100#endif
101
102#endif /* not _UMALLOC_H */
Note: See TracBrowser for help on using the repository browser.