1 /****************************************************************************
2 *
3 *                            Open Watcom Project
4 *
5 *    Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
6 *
7 *  ========================================================================
8 *
9 *    This file contains Original Code and/or Modifications of Original
10 *    Code as defined in and that are subject to the Sybase Open Watcom
11 *    Public License version 1.0 (the 'License'). You may not use this file
12 *    except in compliance with the License. BY USING THIS FILE YOU AGREE TO
13 *    ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is
14 *    provided with the Original Code and Modifications, and is also
15 *    available at www.sybase.com/developer/opensource.
16 *
17 *    The Original Code and all software distributed under the License are
18 *    distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
19 *    EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM
20 *    ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
21 *    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR
22 *    NON-INFRINGEMENT. Please see the License for the specific language
23 *    governing rights and limitations under the License.
24 *
25 *  ========================================================================
26 *
27 * Description:  Memory allocation prototypes.
28 *
29 ****************************************************************************/
30 
31 #ifndef _MEMALLOC_H_
32 #define _MEMALLOC_H_
33 
34 extern void MemInit( void );
35 extern void MemFini( void );
36 extern void *MemAlloc( size_t size );
37 extern void *MemRealloc( void *ptr, size_t size );
38 extern void MemFree( void *ptr );
39 
40 #if defined(__WATCOMC__) || defined(__BORLANDC__) || defined(__OCC__)
41 
42 #define myalloca  alloca
43 #include <malloc.h>
44 
45 #elif defined(__GNUC__) || defined(__TINYC__)
46 
47 #define myalloca  alloca
48 #ifndef __FreeBSD__  /* added v2.08 */
49 #include <malloc.h>  /* added v2.07 */
50 #endif
51 
52 #elif defined(__PCC__)
53 
54 #define myalloca  _alloca
55 #include <malloc.h>
56 
57 #else
58 
59 #define myalloca  _alloca
60 
61 #endif
62 
63 /* LclAlloc() and LclFree() are fast variants, which
64  * are to be used for all allocations which aren't "global"
65  */
66 extern  void    *LclAlloc( size_t );
67 #if FASTMEM
68 /* be careful not to use a function call as argument for LclFree()! */
69 #define LclFree( p ) ;
70 #else
71 extern  void    LclFree( void * );
72 #endif
73 
74 #endif
75