convert to 4.1c sys calls and directory layout
authorSam Leffler <sam@ucbvax.Berkeley.EDU>
Mon, 15 Nov 1982 08:34:10 +0000 (00:34 -0800)
committerSam Leffler <sam@ucbvax.Berkeley.EDU>
Mon, 15 Nov 1982 08:34:10 +0000 (00:34 -0800)
SCCS-vsn: usr.bin/login/login.c 4.19
SCCS-vsn: usr.bin/login/login.c.1 4.19
SCCS-vsn: bin/ls/ls.c 4.7
SCCS-vsn: libexec/mail.local/mail.local.c 4.9
SCCS-vsn: bin/ps/ps.c 4.19
SCCS-vsn: usr.bin/su/su.c 4.3
SCCS-vsn: usr.bin/time/time.c 4.3

usr/src/bin/ls/ls.c
usr/src/bin/ps/ps.c
usr/src/libexec/mail.local/mail.local.c
usr/src/usr.bin/login/login.c
usr/src/usr.bin/login/login.c.1
usr/src/usr.bin/su/su.c
usr/src/usr.bin/time/time.c

index b0ecb61..1aee26a 100644 (file)
@@ -1,5 +1,5 @@
 #ifndef lint
 #ifndef lint
-static char *sccsid = "@(#)ls.c        4.6 82/05/07";
+static char *sccsid = "@(#)ls.c        4.7 82/11/14";
 #endif
 
 /*
 #endif
 
 /*
@@ -294,6 +294,8 @@ gstat(fp, file, statarg, pnkb)
                        fp->ftype = 'b'; fp->fsize = stb.st_rdev; break;
                case S_IFCHR:
                        fp->ftype = 'c'; fp->fsize = stb.st_rdev; break;
                        fp->ftype = 'b'; fp->fsize = stb.st_rdev; break;
                case S_IFCHR:
                        fp->ftype = 'c'; fp->fsize = stb.st_rdev; break;
+               case S_IFSOCK:
+                       fp->ftype = 's'; fp->fsize = 0; break;
                case S_IFLNK:
                        fp->ftype = 'l';
                        if (lflg) {
                case S_IFLNK:
                        fp->ftype = 'l';
                        if (lflg) {
@@ -317,7 +319,8 @@ gstat(fp, file, statarg, pnkb)
                else
                        fp->fmtime = stb.st_mtime;
                if (pnkb)
                else
                        fp->fmtime = stb.st_mtime;
                if (pnkb)
-                       if (fp->ftype != 'b' && fp->ftype != 'c')
+                       if (fp->ftype != 'b' && fp->ftype != 'c' &&
+                           fp->ftype != 's')
                                *pnkb += kbytes(fp->fsize);
        }
        return (fp);
                                *pnkb += kbytes(fp->fsize);
        }
        return (fp);
@@ -455,6 +458,8 @@ fmtentry(fp)
                        *dp++ = '/';
                else if (fp->ftype == 'l')
                        *dp++ = '@';
                        *dp++ = '/';
                else if (fp->ftype == 'l')
                        *dp++ = '@';
+               else if (fp->ftype == 's')
+                       *dp++ = '=';
                else if (fp->fflags & 0111)
                        *dp++ = '*';
        }
                else if (fp->fflags & 0111)
                        *dp++ = '*';
        }
@@ -490,6 +495,7 @@ fmtsize(p)
 
        case 'b':
        case 'c':
 
        case 'b':
        case 'c':
+       case 's':
                (void) sprintf(sizebuf, "%4ld ", 0);
                break;
 
                (void) sprintf(sizebuf, "%4ld ", 0);
                break;
 
@@ -528,6 +534,8 @@ fmtlstuff(p)
        if (p->ftype == 'b' || p->ftype == 'c')
                (void) sprintf(fsize, "%3d,%4d",
                    major(p->fsize), minor(p->fsize));
        if (p->ftype == 'b' || p->ftype == 'c')
                (void) sprintf(fsize, "%3d,%4d",
                    major(p->fsize), minor(p->fsize));
+       else if (p->ftype == 's')
+               (void) sprintf(fsize, "%8ld", 0);
        else
                (void) sprintf(fsize, "%8ld", p->fsize);
 /* get ftime */
        else
                (void) sprintf(fsize, "%8ld", p->fsize);
 /* get ftime */
index 5265bce..886dc79 100644 (file)
@@ -1,5 +1,5 @@
 #ifndef lint
 #ifndef lint
-static char *sccsid = "@(#)ps.c        4.18 (Berkeley) %G%";
+static char *sccsid = "@(#)ps.c        4.19 (Berkeley) %G%";
 #endif
 
 /*
 #endif
 
 /*
@@ -43,8 +43,6 @@ struct nlist nl[] = {
 #define        X_NPROC         8
        { "_ntext" },
 #define        X_NTEXT         9
 #define        X_NPROC         8
        { "_ntext" },
 #define        X_NTEXT         9
-       { "_hz" },
-#define        X_HZ            10
        { 0 },
 };
 
        { 0 },
 };
 
@@ -249,7 +247,6 @@ main(argc, argv)
        printhdr();
        procp = getw(nl[X_PROC].n_value);
        nproc = getw(nl[X_NPROC].n_value);
        printhdr();
        procp = getw(nl[X_PROC].n_value);
        nproc = getw(nl[X_NPROC].n_value);
-       hz = getw(nl[X_HZ].n_value);
        savcom = (struct savcom *)calloc(nproc, sizeof (*savcom));
        for (i=0; i<nproc; i += 8) {
                klseek(kmem, (long)procp, 0);
        savcom = (struct savcom *)calloc(nproc, sizeof (*savcom));
        for (i=0; i<nproc; i += 8) {
                klseek(kmem, (long)procp, 0);
@@ -643,14 +640,14 @@ save()
        if (ap->a_stat == SZOMB) {
                register struct xproc *xp = (struct xproc *)mproc;
 
        if (ap->a_stat == SZOMB) {
                register struct xproc *xp = (struct xproc *)mproc;
 
-               ap->a_cpu = xp->xp_vm.vm_utime + xp->xp_vm.vm_stime;
+               ap->a_cpu = 0;
        } else {
                ap->a_size = mproc->p_dsize + mproc->p_ssize;
                e(a_rss, p_rssize); 
                ap->a_ttyd = u.u_ttyd;
        } else {
                ap->a_size = mproc->p_dsize + mproc->p_ssize;
                e(a_rss, p_rssize); 
                ap->a_ttyd = u.u_ttyd;
-               ap->a_cpu = u.u_vm.vm_utime + u.u_vm.vm_stime;
+               ap->a_cpu = u.u_ru.ru_utime.tv_sec + u.u_ru.ru_stime.tv_sec;
                if (sumcpu)
                if (sumcpu)
-                       ap->a_cpu += u.u_cvm.vm_utime + u.u_cvm.vm_stime;
+                       ap->a_cpu += u.u_cru.ru_utime.tv_sec + u.u_cru.ru_stime.tv_sec;
                if (mproc->p_textp && text) {
                        xp = &text[mproc->p_textp - atext];
                        ap->a_tsiz = xp->x_size;
                if (mproc->p_textp && text) {
                        xp = &text[mproc->p_textp - atext];
                        ap->a_tsiz = xp->x_size;
@@ -659,7 +656,6 @@ save()
                }
        }
 #undef e
                }
        }
 #undef e
-       ap->a_cpu /= hz;
        ap->a_maxrss = mproc->p_maxrss;
        if (lflg) {
                register struct lsav *lp;
        ap->a_maxrss = mproc->p_maxrss;
        if (lflg) {
                register struct lsav *lp;
@@ -678,7 +674,7 @@ save()
 #define e(a,b) vp->a = mproc->b
                if (ap->a_stat != SZOMB) {
                        e(v_swrss, p_swrss);
 #define e(a,b) vp->a = mproc->b
                if (ap->a_stat != SZOMB) {
                        e(v_swrss, p_swrss);
-                       vp->v_majflt = u.u_vm.vm_majflt;
+                       vp->v_majflt = u.u_ru.ru_majflt;
                        if (mproc->p_textp)
                                vp->v_txtswrss = xp->x_swrss;
                }
                        if (mproc->p_textp)
                                vp->v_txtswrss = xp->x_swrss;
                }
@@ -911,7 +907,7 @@ ptime(ap)
        struct asav *ap;
 {
 
        struct asav *ap;
 {
 
-       printf("%3ld:%02ld", ap->a_cpu / hz, ap->a_cpu % hz);
+       printf("%3ld:%02ld", ap->a_cpu / 60, ap->a_cpu % 60);
 }
 
 char   *uhdr =
 }
 
 char   *uhdr =
index 1d79418..d9d92f3 100644 (file)
@@ -8,7 +8,7 @@
 #include <setjmp.h>
 #include <sysexits.h>
 
 #include <setjmp.h>
 #include <sysexits.h>
 
-static char SccsId[] = "@(#)mail.local.c       4.8     %G%";
+static char SccsId[] = "@(#)mail.local.c       4.9     %G%";
 
 #define DELIVERMAIL    "/etc/delivermail"
 
 
 #define DELIVERMAIL    "/etc/delivermail"
 
@@ -599,7 +599,7 @@ usage()
 }
 
 #include <sys/socket.h>
 }
 
 #include <sys/socket.h>
-#include <net/in.h>
+#include <netinet/in.h>
 struct sockaddr_in biffaddr = { AF_INET, IPPORT_BIFFUDP };
 char *localhost = "localhost";
 
 struct sockaddr_in biffaddr = { AF_INET, IPPORT_BIFFUDP };
 char *localhost = "localhost";
 
@@ -643,7 +643,7 @@ char *fromaddr;
        lock(file);
        chown(file, pw->pw_uid, pw->pw_gid);
        {
        lock(file);
        chown(file, pw->pw_uid, pw->pw_gid);
        {
-               f = socket(SOCK_DGRAM, 0, 0, 0);
+               f = socket(0, SOCK_DGRAM, 0, 0);
                sprintf(buf, "%s@%d\n", name, ftell(malf)); 
        }
        copylet(n, malf, ORDINARY);
                sprintf(buf, "%s@%d\n", name, ftell(malf)); 
        }
        copylet(n, malf, ORDINARY);
@@ -654,7 +654,7 @@ char *fromaddr;
                biffaddr.sin_port =
                    ((biffaddr.sin_port<<8)&0xff00)|((biffaddr.sin_port>>8)&0xff);
 #endif
                biffaddr.sin_port =
                    ((biffaddr.sin_port<<8)&0xff00)|((biffaddr.sin_port>>8)&0xff);
 #endif
-               send(f, &biffaddr, buf, strlen(buf)+1);
+               sendto(f, buf, strlen(buf)+1, 0, &biffaddr, sizeof (biffaddr));
                close(f);
        }
        unlock();
                close(f);
        }
        unlock();
index bd5c9ea..9aa4c34 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid = "@(#)login.c     4.18 82/06/27";
+static char *sccsid = "@(#)login.c     4.19 82/11/14";
 /*
  * login [ name ]
  * login -r
 /*
  * login [ name ]
  * login -r
@@ -301,7 +301,7 @@ normal:
        setgid(pwd->pw_gid);
        strncpy(name, utmp.ut_name, NMAX);
        name[NMAX] = '\0';
        setgid(pwd->pw_gid);
        strncpy(name, utmp.ut_name, NMAX);
        name[NMAX] = '\0';
-       inigrp(name, pwd->pw_gid);
+       initgroups(name, pwd->pw_gid);
        setuid(pwd->pw_uid);
        environ = envinit;
        strncat(homedir, pwd->pw_dir, sizeof(homedir)-6);
        setuid(pwd->pw_uid);
        environ = envinit;
        strncat(homedir, pwd->pw_dir, sizeof(homedir)-6);
index eb046a5..1e02707 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid = "@(#)login.c.1   4.18 82/06/27";
+static char *sccsid = "@(#)login.c.1   4.19 82/11/14";
 /*
  * login [ name ]
  * login -r
 /*
  * login [ name ]
  * login -r
@@ -301,7 +301,7 @@ normal:
        setgid(pwd->pw_gid);
        strncpy(name, utmp.ut_name, NMAX);
        name[NMAX] = '\0';
        setgid(pwd->pw_gid);
        strncpy(name, utmp.ut_name, NMAX);
        name[NMAX] = '\0';
-       inigrp(name, pwd->pw_gid);
+       initgroups(name, pwd->pw_gid);
        setuid(pwd->pw_uid);
        environ = envinit;
        strncat(homedir, pwd->pw_dir, sizeof(homedir)-6);
        setuid(pwd->pw_uid);
        environ = envinit;
        strncat(homedir, pwd->pw_dir, sizeof(homedir)-6);
index ac03168..1b14749 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid = "@(#)su.c        4.2 (Berkeley) 4.2";
+static char *sccsid = "@(#)su.c        4.3 (Berkeley) 4.3";
 #include <stdio.h>
 #include <pwd.h>
 
 #include <stdio.h>
 #include <pwd.h>
 
@@ -52,7 +52,7 @@ ok:
                }
        }
        setgid(pwd->pw_gid);
                }
        }
        setgid(pwd->pw_gid);
-       inigrp(nptr, pwd->pw_gid);
+       initgroups(nptr, pwd->pw_gid);
        setuid(pwd->pw_uid);
        if (pwd->pw_shell && *pwd->pw_shell)
                shell = pwd->pw_shell;
        setuid(pwd->pw_uid);
        if (pwd->pw_shell && *pwd->pw_shell)
                shell = pwd->pw_shell;
index cb66130..1416ae9 100644 (file)
@@ -1,80 +1,58 @@
-static char *sccsid = "@(#)time.c      4.2 (Berkeley) %G%";
-/* time command */
+static char *sccsid = "@(#)time.c      4.3 (Berkeley) %G%";
 
 
+/*
+ * time
+ */
 #include <stdio.h>
 #include <signal.h>
 #include <sys/types.h>
 #include <stdio.h>
 #include <signal.h>
 #include <sys/types.h>
-#include <sys/times.h>
-
-extern int errno;
-extern char *sys_errlist[];
+#include <time.h>
+#include <resource.h>
 
 main(argc, argv)
 
 main(argc, argv)
-char **argv;
+       int argc;
+       char **argv;
 {
 {
-       struct tms buffer, obuffer;
        int status;
        int status;
-       register p;
-       time_t before, after;
+       register int p;
+       struct timeval before, after;
+       struct rusage ru;
 
 
-       if(argc<=1)
+       if (argc<=1)
                exit(0);
                exit(0);
-       time(&before);
+       gettimeofday(&before, 0);
        p = fork();
        p = fork();
-       if(p == -1) {
-               fprintf(stderr, "Try again.\n");
+       if (p < 0) {
+               perror("time");
                exit(1);
        }
                exit(1);
        }
-       if(p == 0) {
+       if (p == 0) {
                execvp(argv[1], &argv[1]);
                execvp(argv[1], &argv[1]);
-               fprintf(stderr, "%s: %s\n", argv[1], sys_errlist[errno]);
+               perror(argv[1]);
                exit(1);
        }
        signal(SIGINT, SIG_IGN);
        signal(SIGQUIT, SIG_IGN);
                exit(1);
        }
        signal(SIGINT, SIG_IGN);
        signal(SIGQUIT, SIG_IGN);
-       times(&obuffer);
-       while(wait(&status) != p)
-               times(&obuffer);
-       time(&after);
-       if((status&0377) != 0)
-               fprintf(stderr,"Command terminated abnormally.\n");
-       times(&buffer);
-       printt("real", (after-before) * 60);
-       printt("user", buffer.tms_cutime - obuffer.tms_cutime);
-       printt("sys ", buffer.tms_cstime - obuffer.tms_cstime);
+       while (wait3(&status, 0, &ru) != p)
+               ;
+       gettimeofday(&after, 0);
+       if ((status&0377) != 0)
+               fprintf(stderr, "Command terminated abnormally.\n");
+       after.tv_sec -= before.tv_sec;
+       after.tv_usec -= before.tv_usec;
+       if (after.tv_usec < 0)
+               after.tv_sec--, after.tv_usec += 1000000;
+       printt("real", &after);
+       printt("user", &ru.ru_utime);
+       printt("sys ", &ru.ru_stime);
        fprintf(stderr, "\n");
        fprintf(stderr, "\n");
-       exit(status>>8);
+       exit (status>>8);
 }
 
 }
 
-char quant[] = { 6, 10, 10, 6, 10, 6, 10, 10, 10 };
-char *pad  = "000      ";
-char *sep  = "\0\0.\0:\0:\0\0";
-char *nsep = "\0\0.\0 \0 \0\0";
-
-printt(s, a)
-char *s;
-long a;
+printt(s, tv)
+       char *s;
+       struct timeval *tv;
 {
 {
-       char digit[9];
-       register i;
-       char c;
-       int nonzero;
 
 
-       for(i=0; i<9; i++) {
-               digit[i] = a % quant[i];
-               a /= quant[i];
-       }
-       nonzero = 0;
-       while(--i>0) {
-               c = digit[i]!=0 ? digit[i]+'0':
-                   nonzero ? '0':
-                   pad[i];
-               if (c)
-               fprintf(stderr,"%c",c);
-               nonzero |= digit[i];
-               c = nonzero?sep[i]:nsep[i];
-               if (c)
-               fprintf(stderr,"%c",c);
-       }
-       fprintf(stderr," %s ",s);
+       fprintf(stderr, "%9d.%01d %s ", tv->tv_sec, tv->tv_usec/100000, s);
 }
 }