/* Copyright 1994, 1995 by Abacus Research and * Development, Inc. All rights reserved. */ #if !defined (OMIT_RCSID_STRINGS) char ROMlib_rcsid_tempmem[] = "$Id: tempmem.c 63 2004-12-24 18:19:43Z ctm $"; #endif #include "rsys/common.h" #include "MemoryMgr.h" #include "rsys/mman.h" /* #define TEMP_MEM_FAIL */ #define paramErr (-50) P0 (PUBLIC pascal trap, int32, TempFreeMem) { #if defined (TEMP_MEM_FAIL) return 0; #else int32 sysfree, applfree, retval; ZONE_SAVE_EXCURSION (ApplZone, { applfree = FreeMem (); }); sysfree = FreeMemSys (); retval = MAX (applfree, sysfree); return retval; #endif } P1 (PUBLIC pascal trap, Size, TempMaxMem, Size *, grow) { #if defined (TEMP_MEM_FAIL) return 0; #else int32 sysfree, applmax, retval; ZONE_SAVE_EXCURSION (ApplZone, { applmax = MaxMem (grow); }); sysfree = FreeMemSys (); retval = MAX (applmax, sysfree); return retval; #endif } P0 (PUBLIC pascal trap, Ptr, TempTopMem) { warning_unimplemented (NULL_STRING); return NULL; } P2 (PUBLIC pascal trap, Handle, TempNewHandle, Size, logical_size, OSErr *, result_code) { #if defined (TEMP_MEM_FAIL) *result_code = CWC (memFullErr); return NULL; #else { Handle retval; ZONE_SAVE_EXCURSION (ApplZone, { if (FreeMemSys () >= FreeMem ()) TheZone = SysZone; retval = NewHandle (logical_size); if (result_code) *result_code = MemErr; }); return retval; } #endif } P2 (PUBLIC pascal trap, void, TempHLock, Handle, h, OSErr *, result_code) { HLock (h); *result_code = MemErr; } P2 (PUBLIC pascal trap, void, TempHUnlock, Handle, h, OSErr *, result_code) { HUnlock (h); *result_code = MemErr; } P2 (PUBLIC pascal trap, void, TempDisposeHandle, Handle, h, OSErr *, result_code) { DisposHandle (h); *result_code = MemErr; }