Exemple #1
0
void env_clear(word segm)
{
    DBG_ENTER("env_clear", "env")
    DBG_ARGUMENTS( ("env=%u", segm) )

    chkMem

    unless_segm(segm)
    DBG_EXIT		/* no source environment */

    DBG_ARGUMENTS( ("effective env=%u", segm) )

    ENV_CLEAR_SEGM(segm);

    chkMem

    DBG_EXIT
}
Exemple #2
0
void env_delete(word segm)
{	DBG_ENTER("env_delete", Suppl_env)
	DBG_ARGUMENTS( ("env=%u", segm) )

	chkMem
 	unless_segm(segm)
 		DBG_EXIT
  
 	DBG_ARGUMENTS( ("effective env=%u", segm) )
  
 	pokew(SEG2MCB(segm), MCB_OFF_OWNER, _psp);
 	freeBlk(segm);
 	chkMem
 	/* Make sure the deleted segment won't be referenced */
 	env_relocateSegment(segm, 0);
  

	DBG_EXIT
}
Exemple #3
0
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)
}