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

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

Synced size_t declarations.

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