PUBLIC phys_clicks alloc_mem(clicks) phys_clicks clicks; { register struct hole *hp, *prev_pt; phys_clicks old_base do { prev_ptr = NIL_HOLE; hp = hole_head; while (hp != NIL_HOLE && hp->h_base < swap_base) { if (hp->h_len >= clicks) { old_base = hp->h_base; hp->h_base += clicks; if(hp->h_base > high_watermark) { high_watermark = hp->h_base; } if(hp->h_len == 0) del_slot(prev_ptr, hp); return(old_base); } prev_ptr = hp; hp = hp->h_next; } } while( swap_out() ); return(NO_MEM); }