mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-25 17:07:52 -05:00
63 lines
1.6 KiB
C
63 lines
1.6 KiB
C
/* shmalloc.h -- SmartHeap ANSI Standard C memory API
|
|
* Professional Memory Management Library
|
|
*
|
|
* Copyright (C) 1991-1996 by Arthur D. Applegate. All Rights Reserved.
|
|
* All Rights Reserved.
|
|
*
|
|
* No part of this source code may be copied, modified or reproduced
|
|
* in any form without retaining the above copyright notice.
|
|
* This source code, or source code derived from it, may not be redistributed
|
|
* without express written permission of the author.
|
|
*/
|
|
|
|
#if !(defined(_SHMALLOC_H))
|
|
#define _SHMALLOC_H
|
|
|
|
#include "smrtheap.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* ANSI Standard Memory Management API */
|
|
|
|
#if (!defined(MEM_DEBUG) && !defined(NO_MALLOC_MACRO)) || defined(MALLOC_MACRO)
|
|
#ifdef malloc
|
|
#undef malloc
|
|
#endif
|
|
#define malloc(s) MEM_malloc(s)
|
|
#ifdef calloc
|
|
#undef calloc
|
|
#endif
|
|
#define calloc(s,c) MEM_calloc(s,c)
|
|
#ifdef realloc
|
|
#undef realloc
|
|
#endif
|
|
#define realloc(p,s) MEM_realloc(p,s)
|
|
#ifdef free
|
|
#undef free
|
|
#endif
|
|
#define free(p) MEM_free(p)
|
|
|
|
#endif /* NO_MALLOC_MACRO */
|
|
|
|
#ifndef MEM_malloc
|
|
void MEM_FAR * MEM_ENTRY_ANSI MEM_malloc(size_t size);
|
|
void MEM_FAR * MEM_ENTRY_ANSI MEM_calloc(size_t nobj, size_t size);
|
|
void MEM_FAR * MEM_ENTRY_ANSI MEM_realloc(void MEM_FAR *p, size_t size);
|
|
void MEM_ENTRY_ANSI MEM_free(void MEM_FAR *p);
|
|
#endif /* MEM_malloc */
|
|
|
|
#if defined(__WATCOMC__) && defined(__SW_3S)
|
|
/* Watcom stack calling convention */
|
|
#pragma aux (syscall) MEM_malloc
|
|
#pragma aux (syscall) MEM_realloc
|
|
#pragma aux (syscall) MEM_calloc
|
|
#pragma aux (syscall) MEM_free
|
|
#endif /* __WATCOMC__ */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* !defined(_SHMALLOC_H) */
|