mirror of
https://github.com/ctm/executor.git
synced 2024-11-12 08:08:23 +00:00
106 lines
1.8 KiB
C
106 lines
1.8 KiB
C
|
/* 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;
|
||
|
}
|