static char *sccsid
= "@(#)renice.c 4.3 (Berkeley) 81/03/11";
* Change the running priority (nice) of a process which is already
register struct proc
*pp
, *pend
;
int addr
, mem
, a1
, a2
, coreaddr
;
if (argc
!= 2 && argc
!= 3) {
fprintf(stderr
, "usage: renice pid [ priority ]\n");
fprintf(stderr
, "NOT super user\n");
nice
= atoi(argc
== 3 ? argv
[2] : "19");
mem
= open("/dev/kmem", 2);
if ((addr
= nl
[1].n_value
) == 0) {
fprintf(stderr
, "/vmunix: _nproc not in namelist");
read(mem
, &nproc
, sizeof nproc
);
proc
= (struct proc
*) calloc(nproc
, sizeof *proc
);
fprintf(stderr
, "/vmunix: _proc not in namelist");
read(mem
, &addr
, sizeof addr
);
read(mem
, proc
, nproc
* (sizeof *proc
));
for (pp
= proc
; pp
< pend
; pp
++)
fprintf(stderr
, "%d: process not found\n", pid
);
fprintf(stderr
, "%d: old nice = %d, new nice = %d\n",
lseek(mem
, (long)coreaddr
, 0);
write(mem
, &nice
, sizeof pp
->p_nice
);