|
|
1.1 ! root 1: /* ! 2: * static char ID_relc[] = "@(#) release.c: 1.1 1/7/82"; ! 3: */ ! 4: ! 5: release(what,howmuch) ! 6: ITEMID what; ! 7: int howmuch; ! 8: { ! 9: int frameno,ordinal,tops; ! 10: char *place, *scan; ! 11: ! 12: frameno = sojourn(what,YES); ! 13: if(frameno<0) return(fatal("RL01 -- unable to find frame for release")); ! 14: ! 15: ! 16: if( (ordinal = sp2or(XTRCTSP(what))) <0 ) ! 17: return(fatal("RL02 -- unknown space number")); ! 18: ! 19: place = manager[frameno].frame_pntr + (what & BYTEMASK); ! 20: ! 21: for(tops=global_frames[ordinal]->numbstax-1; tops >= 0; tops--) ! 22: if( howmuch >= global_frame[ordinal]->sizestax[tops] ) ! 23: { ! 24: (*( (ITEMID *)place )) = global_frame[ordinal] -> topstax[tops]; ! 25: global_frame[ordinal] -> topstax[tops] = what; ! 26: manager[frameno].ref_chng = WRTN; ! 27: break; ! 28: } ! 29: ! 30: for(scan=place; scan<place+howmuch; *scan++=0); ! 31: ! 32: return(SUCCESS); ! 33: ! 34: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.