|
|
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.