#include "/sys/nsys/param.h"
#include "/sys/nsys/user.h"
#include "/sys/nsys/systm.h"
#include "/sys/nsys/proc.h"
#include "/sys/nsys/text.h"
#include "/sys/nsys/inode.h"
extern char end
[], data
[], etext
[];
* zero and free all of core
UISA
->r
[0] = KISA
->r
[6] + USIZE
;
for(; fubyte(0) >= 0; UISA
->r
[0]++) {
mfree(coremap
, 1, UISA
->r
[0]);
mfree(swapmap
, NSWAP
, SWPLO
);
proc
[0].p_addr
= KISA
->r
[6];
proc
[0].p_flag
=| SLOAD
|SSYS
;
rootdir
= iget(ROOTDEV
, ROOTINO
);
rootdir
->i_flag
=& ~ILOCK
;
u
.u_cdir
= iget(ROOTDEV
, ROOTINO
);
u
.u_cdir
->i_flag
=& ~ILOCK
;
for(i
=0; icode
[i
] != -1; i
++)
if((up
=u
.u_procp
->p_textp
) != NULL
)
while(rp
< &UISD
->r
[8]) {
rp
[(UISA
-UISD
)/2-1] =- a
;
if(nseg(nt
)+nseg(nd
)+nseg(ns
) > 8 || nt
+nd
+ns
> MAXMEM
) {
*dp
++ = ((nt
-1)<<8) | RO
;
*dp
++ = ((nd
-1)<<8) | RW
;
while(ap
< &u
.u_uisa
[8]) {
*--dp
= ((128-ns
)<<8) | RW
| ED
;