Minix2.0/src/lib/syslib/sys_fresh.c

#include "syslib.h"

PUBLIC int sys_fresh(proc, ptr, dc, basep, sizep)
int proc;			/* process whose map is to be changed */
struct mem_map *ptr;		/* pointer to new map */
phys_clicks dc;			/* size of initialized data */
phys_clicks *basep, *sizep;	/* base and size for free_mem() */
{
/* Create a fresh process image for exec().  Tell the kernel. */

  message m;
  int r;

  m.m1_i1 = proc;
  m.m1_i2 = (int) dc;
  m.m1_p1 = (char *) ptr;
  r = _taskcall(SYSTASK, SYS_FRESH, &m);
  *basep = (phys_clicks) m.m1_i1;
  *sizep = (phys_clicks) m.m1_i2;
  return(r);
}