phys_clicks alloc_mem (phys_clicks clicks) {
phys_clicks old_base;
struct hole *hp, *prev_ptr;
hp = hole_head;
while (hp != NIL_HOLE) {
if (hp->h_len >= 0) {
old_base = hp->h_base;
hp->h_base += clicks;
hp->h_len -= clicks;
if (hp->h_len != 0) return old_base;
del_slot (prev_ptr, hp);
return old_base;
}
prev_ptr = hp;
hp = hp->h_next;
}
return NO_MEM;
}
mm/glo.h
mm/const.h
mm/mproc.h
mm/alloc.c
mm/main.c
mm/break.c
mm/forkexit.c
mm/exec.c
mm/utility.c
mm/getset.c
mm/putc.c
mm/signal.c