int cmd_memory(char *param) { displayString(TEXT_MEMORY_ENVIRONMENT , mcb_length(env_glbSeg), env_freeCount(env_glbSeg)); displayString(TEXT_MEMORY_CONTEXT , mcb_length(ctxt), env_freeCount(ctxt)); displayTag(TEXT_MEMORY_CTXT_ALIAS, CTXT_TAG_ALIAS); displayTag(TEXT_MEMORY_CTXT_HISTORY, CTXT_TAG_HISTORY); displayTag(TEXT_MEMORY_CTXT_DIRSTACK, CTXT_TAG_DIRSTACK); displayTag1(TEXT_MEMORY_CTXT_LASTDIR, CTXT_TAG_LASTDIR); /* displayTag1(TEXT_MEMORY_CTXT_BATCH, CTXT_TAG_BATCH); not used, yet -- 2001/06/11 ska*/ displayTag1(TEXT_MEMORY_CTXT_SWAPINFO, CTXT_TAG_SWAPINFO); displayString(TEXT_MEMORY_HEAP, (unsigned long)coreleft()); return 0; }
word env_freeCount(const word segm) { DBG_ENTER("env_firstCount", Suppl_env) DBG_ARGUMENTS( ("env=%u", segm) ) chkMem assert(segm != 0); DBG_RETURN_BU( mcb_length(segm) - env_firstFree(segm)) }
int cmd_memory(char *param) { displayString(TEXT_MEMORY_ENVIRONMENT , mcb_length(env_glbSeg), env_freeCount(env_glbSeg)); displayString(TEXT_MEMORY_CONTEXT , mcb_length(ctxtSegm), env_freeCount(ctxtSegm)); displayTag(TEXT_MEMORY_CTXT_ALIAS, CTXT_TAG_ALIAS); displayTag(TEXT_MEMORY_CTXT_HISTORY, CTXT_TAG_HISTORY); displayTag(TEXT_MEMORY_CTXT_DIRSTACK, CTXT_TAG_DIRSTACK); displayTag1(TEXT_MEMORY_CTXT_LASTDIR, CTXT_TAG_LASTDIR); displayTag1(TEXT_MEMORY_CTXT_ARG, CTXT_TAG_ARG); displayTag1(TEXT_MEMORY_CTXT_SWAPINFO, CTXT_TAG_SWAPINFO); displayTag1(TEXT_MEMORY_CTXT_EXEC, CTXT_TAG_EXEC); displayTag1(TEXT_MEMORY_CTXT_STRING, CTXT_TAG_STRING); displayTag2(TEXT_MEMORY_CTXT_FLAG, CTXT_TAG_FLAG); displayTag2(TEXT_MEMORY_CTXT_IVAR, CTXT_TAG_IVAR); displayString(TEXT_MEMORY_HEAP, (unsigned long)coreleft(), getFree); displaySize(TEXT_MEMORY_DOSMEM, DOSalloc(0, 0x80 | 0x10)); return 0; }
void saveSession(void) { if(ctxt && swapContext) { ctxtSavedSize = mcb_length(ctxt); dprintf(("[MEM: save context: %u bytes from 0x%04x]\n" , ctxtSavedSize, ctxt)); ctxtSavePtr = malloc(ctxtSavedSize); if(ctxtSavePtr) { _fmemcpy(ctxtSavePtr, MK_FP(ctxt,0), ctxtSavedSize); DOSfree(ctxt); #ifdef DEBUG ctxt = 0; #endif } } }
int env_nullStrings(word segm) { word ofs; DBG_ENTER("env_nullStrings", Suppl_env) DBG_ARGUMENTS( ("env=%u", segm) ) chkMem unless_segm(segm) DBG_RETURN_I( ESUPPL_NOENV) DBG_ARGUMENTS( ("effective env=%u", segm) ) ofs = env_endOfVars(segm) + 1; /* offset of string counter word */ if(mcb_length(segm) - 2 <= ofs) DBG_RETURN_I( ESUPPL_NOMEM) pokew(segm, ofs, 0); chkMem DBG_RETURN_I( ESUPPL_OK) }