Files
retrobsd/sys/kernel/kern_mman.c
Serge Vakulenko 585773955b Fix include paths in the kernel sources.
Max32 kernel successfully compiled with kconfig utility.
2015-08-31 00:21:41 -07:00

39 lines
951 B
C

/*
* Copyright (c) 1986 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*/
#include <sys/param.h>
#include <sys/user.h>
#include <sys/proc.h>
#include <sys/vm.h>
#include <sys/systm.h>
void
brk()
{
struct a {
int naddr;
};
register int newsize, d;
/* set newsize to new data size */
newsize = ((struct a*)u.u_arg)->naddr - u.u_procp->p_daddr;
if (newsize < 0)
newsize = 0;
if (u.u_tsize + newsize + u.u_ssize > MAXMEM) {
u.u_error = ENOMEM;
return;
}
u.u_procp->p_dsize = newsize;
/* set d to (new - old) */
d = newsize - u.u_dsize;
//printf ("brk: new size %u bytes, incremented by %d\n", newsize, d);
if (d > 0)
bzero ((void*) (u.u_procp->p_daddr + u.u_dsize), d);
u.u_dsize = newsize;
u.u_rval = u.u_procp->p_daddr + u.u_dsize;
}