* Copyright 1973 Bell Telephone Laboratories Inc
for(p
= &proc
[0]; p
< &proc
[NPROC
]; p
++)
if(runout
!=0 && (p
->p_flag
&SLOAD
)==0) {
register struct proc
*rp
;
* of users ready, select one out longest
for(rp
= &proc
[0]; rp
< &proc
[NPROC
]; rp
++)
if(rp
->p_stat
==SRUN
&& (rp
->p_flag
&SLOAD
)==0 &&
* see if there is core for that process
if((rp
=rp
->p_textp
) != NULL
)
if((a
=malloc(coremap
, a
)) != NULL
)
* look around for easy core
for(rp
= &proc
[0]; rp
< &proc
[NPROC
]; rp
++)
if((rp
->p_flag
&(SSYS
|SLOCK
|SLOAD
))==SLOAD
&&
* if this process is deserving,
for(rp
= &proc
[0]; rp
< &proc
[NPROC
]; rp
++)
if((rp
->p_flag
&(SSYS
|SLOCK
|SLOAD
))==SLOAD
&&
(rp
->p_stat
==SRUN
|| rp
->p_stat
==SSLEEP
) &&
if((rp
=p1
->p_textp
) != NULL
) {
if(swap(rp
->x_daddr
, a
, rp
->x_size
, B_READ
))
if(swap(rp
->p_addr
, a
, rp
->p_size
, B_READ
))
mfree(swapmap
, (rp
->p_size
+7)/8, rp
->p_addr
);
register struct proc
*rp
;
if(rp
->p_stat
==SRUN
&& (rp
->p_flag
&SLOAD
)!=0) {
register struct proc
*rpp
;
for(rpp
= &proc
[0]; rpp
< &proc
[NPROC
]; rpp
++)
* make proc entry for new proc
rpp
->p_ttyp
= rip
->p_ttyp
;
rpp
->p_textp
= rip
->p_textp
;
rpp
->p_ppid
= rip
->p_pid
;
for(rip
= &u
.u_ofile
[0]; rip
< &u
.u_ofile
[NOFILE
];)
if((rpp
= *rip
++) != NULL
)
if((rpp
=up
->p_textp
) != NULL
) {
* to make image of new proc
mfree(coremap
, n
-newsize
, a1
+newsize
);
a2
= malloc(coremap
, newsize
);