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