limit code
authorBill Joy <bill@ucbvax.Berkeley.EDU>
Sun, 13 Jul 1980 09:14:41 +0000 (01:14 -0800)
committerBill Joy <bill@ucbvax.Berkeley.EDU>
Sun, 13 Jul 1980 09:14:41 +0000 (01:14 -0800)
SCCS-vsn: sys/kern/kern_clock.c 3.14
SCCS-vsn: sys/kern/kern_proc.c 3.16

usr/src/sys/kern/kern_clock.c
usr/src/sys/kern/kern_proc.c

index 115eb9b..4535d2f 100644 (file)
@@ -1,4 +1,4 @@
-/*     %H%     3.13    kern_clock.c    */
+/*     %H%     3.14    kern_clock.c    */
 
 #include "../h/param.h"
 #include "../h/systm.h"
 
 #include "../h/param.h"
 #include "../h/systm.h"
@@ -227,16 +227,18 @@ out:
                 */
                if (bclnlist != NULL)
                        wakeup((caddr_t)&proc[2]);
                 */
                if (bclnlist != NULL)
                        wakeup((caddr_t)&proc[2]);
-#ifdef ERNIE
                if (USERMODE(ps)) {
                        pp = u.u_procp;
                if (USERMODE(ps)) {
                        pp = u.u_procp;
+#ifdef ERNIE
                        if (pp->p_uid)
                                if (pp->p_nice == NZERO && u.u_vm.vm_utime > 600 * HZ)
                                        pp->p_nice = NZERO+4;
                        (void) setpri(pp);
                        pp->p_pri = pp->p_usrpri;
                        if (pp->p_uid)
                                if (pp->p_nice == NZERO && u.u_vm.vm_utime > 600 * HZ)
                                        pp->p_nice = NZERO+4;
                        (void) setpri(pp);
                        pp->p_pri = pp->p_usrpri;
-               }
 #endif
 #endif
+                       if (u.u_vm.vm_utime+u.u_vm.vm_stime > u.u_limit[LIM_CPU])
+                               psignal(pp, SIGXCPU);
+               }
        }
        if (!BASEPRI(ps))
                unhang();
        }
        if (!BASEPRI(ps))
                unhang();
index 0b8fde9..1b752ac 100644 (file)
@@ -1,4 +1,4 @@
-/*     kern_proc.c     3.15    %G%     */
+/*     kern_proc.c     3.16    %G%     */
 
 #include "../h/param.h"
 #include "../h/systm.h"
 
 #include "../h/param.h"
 #include "../h/systm.h"
@@ -467,6 +467,7 @@ exit(rv)
                plock(u.u_rdir);
                iput(u.u_rdir);
        }
                plock(u.u_rdir);
                iput(u.u_rdir);
        }
+       u.u_limit[LIM_FSIZE] = INFINITY;
        acct();
        vrelpt(u.u_procp);
        vrelu(u.u_procp, 0);
        acct();
        vrelpt(u.u_procp);
        vrelu(u.u_procp, 0);
@@ -684,6 +685,10 @@ sbreak()
        if (n < 0)
                n = 0;
        d = clrnd(n - u.u_dsize);
        if (n < 0)
                n = 0;
        d = clrnd(n - u.u_dsize);
+       if (u.u_dsize+d > u.u_limit[LIM_DATA]) {
+               u.u_error = ENOMEM;
+               return;
+       }
        if (chksize(u.u_tsize, u.u_dsize+d, u.u_ssize))
                return;
        if (swpexpand(u.u_dsize+d, u.u_ssize, &u.u_dmap, &u.u_smap)==0)
        if (chksize(u.u_tsize, u.u_dsize+d, u.u_ssize))
                return;
        if (swpexpand(u.u_dsize+d, u.u_ssize, &u.u_dmap, &u.u_smap)==0)