blob: 54fd99bc5842c7e36b86c367b4de08392e0ea5b6 [file] [log] [blame]
Francois Gougetb29120d2001-04-23 18:20:55 +00001/*
2 * Heap definitions
3 *
4 * Copyright 2001 Francois Gouget.
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00005 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Francois Gougetb29120d2001-04-23 18:20:55 +000019 */
20#ifndef __WINE_MALLOC_H
21#define __WINE_MALLOC_H
Francois Gougeta45907c2001-10-22 18:59:23 +000022#define __WINE_USE_MSVCRT
Francois Gougetb29120d2001-04-23 18:20:55 +000023
24#ifdef USE_MSVCRT_PREFIX
25#define MSVCRT(x) MSVCRT_##x
26#else
27#define MSVCRT(x) x
28#endif
29
30
31/* heap function constants */
32#define _HEAPEMPTY -1
33#define _HEAPOK -2
34#define _HEAPBADBEGIN -3
35#define _HEAPBADNODE -4
36#define _HEAPEND -5
37#define _HEAPBADPTR -6
38
39#define _FREEENTRY 0
40#define _USEDENTRY 1
41
42
43#ifndef MSVCRT_SIZE_T_DEFINED
44typedef unsigned int MSVCRT(size_t);
45#define MSVCRT_SIZE_T_DEFINED
46#endif
47
48typedef struct _heapinfo
49{
50 int* _pentry;
51 MSVCRT(size_t) _size;
52 int _useflag;
53} _HEAPINFO;
54
55
56#ifdef __cplusplus
57extern "C" {
58#endif
59
60void* _alloca(MSVCRT(size_t));
61void* _expand(void*,MSVCRT(size_t));
62int _heapadd(void*,MSVCRT(size_t));
63int _heapchk(void);
64int _heapmin(void);
65int _heapset(unsigned int);
66MSVCRT(size_t) _heapused(MSVCRT(size_t)*,MSVCRT(size_t)*);
67int _heapwalk(_HEAPINFO*);
68MSVCRT(size_t) _msize(void*);
69
70void* MSVCRT(calloc)(MSVCRT(size_t),MSVCRT(size_t));
71void MSVCRT(free)(void*);
72void* MSVCRT(malloc)(MSVCRT(size_t));
73void* MSVCRT(realloc)(void*,MSVCRT(size_t));
74
75#ifdef __cplusplus
76}
77#endif
78
79
80#ifndef USE_MSVCRT_PREFIX
81#define alloca _alloca
82#endif /* USE_MSVCRT_PREFIX */
83
84#endif /* __WINE_MALLOC_H */