[BACK]Return to ipcs.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ipcs

Diff for /src/usr.bin/ipcs/ipcs.c between version 1.2 and 1.3

version 1.2, 1996/05/30 09:11:19 version 1.3, 1996/06/16 10:35:59
Line 1 
Line 1 
 /*      $NetBSD: ipcs.c,v 1.10 1995/04/15 02:22:40 cgd Exp $    */  /*      $NetBSD: ipcs.c,v 1.10.6.1 1996/06/07 01:53:47 thorpej Exp $    */
   
 /*  /*
  * Copyright (c) 1994 SigmaSoft, Th. Lockert <tholo@sigmasoft.com>   * Copyright (c) 1994 SigmaSoft, Th. Lockert <tholo@sigmasoft.com>
Line 30 
Line 30 
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.   * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */   */
   
 #include <stdio.h>  
 #include <stdlib.h>  
 #include <string.h>  
 #include <unistd.h>  
 #include <fcntl.h>  
 #include <paths.h>  
 #include <nlist.h>  
 #include <kvm.h>  
 #include <err.h>  
   
 #include <sys/types.h>  #include <sys/types.h>
 #include <sys/param.h>  #include <sys/param.h>
   #include <sys/time.h>
 #include <sys/proc.h>  #include <sys/proc.h>
 #define _KERNEL  #define _KERNEL
 #include <sys/ipc.h>  #include <sys/ipc.h>
 #include <sys/sem.h>  #include <sys/sem.h>
 #include <sys/shm.h>  #include <sys/shm.h>
 #include <sys/msg.h>  #include <sys/msg.h>
   #undef _KERNEL
   
 int     semconfig __P((int,...));  #include <err.h>
   #include <fcntl.h>
   #include <kvm.h>
   #include <limits.h>
   #include <nlist.h>
   #include <paths.h>
   #include <stdio.h>
   #include <stdlib.h>
   #include <string.h>
   #include <unistd.h>
   
   int     semconfig __P((int, ...));
 void    usage __P((void));  void    usage __P((void));
   
   extern  char *__progname;               /* from crt0.o */
   
 static struct nlist symbols[] = {  static struct nlist symbols[] = {
         {"_sema"},          {"_sema"},
 #define X_SEMA          0  #define X_SEMA          0
Line 129 
Line 134 
         int     display = SHMINFO | MSGINFO | SEMINFO;          int     display = SHMINFO | MSGINFO | SEMINFO;
         int     option = 0;          int     option = 0;
         char   *core = NULL, *namelist = NULL;          char   *core = NULL, *namelist = NULL;
           char    errbuf[_POSIX2_LINE_MAX];
         int     i;          int     i;
   
         while ((i = getopt(argc, argv, "MmQqSsabC:cN:optT")) != EOF)          while ((i = getopt(argc, argv, "MmQqSsabC:cN:optT")) != EOF)
Line 207 
Line 213 
         }          }
   
         if ((display & (MSGINFO | MSGTOTAL)) &&          if ((display & (MSGINFO | MSGTOTAL)) &&
             kvm_read(kd, symbols[X_MSGINFO].n_value, &msginfo, sizeof(msginfo))) {              (kvm_read(kd, symbols[X_MSGINFO].n_value,
                &msginfo, sizeof(msginfo)) == sizeof(msginfo))) {
   
                 if (display & MSGTOTAL) {                  if (display & MSGTOTAL) {
                         printf("msginfo:\n");                          printf("msginfo:\n");
Line 227 
Line 234 
                 if (display & MSGINFO) {                  if (display & MSGINFO) {
                         struct msqid_ds *xmsqids;                          struct msqid_ds *xmsqids;
   
                         kvm_read(kd, symbols[X_MSQIDS].n_value, &msqids, sizeof(msqids));                          if (kvm_read(kd, symbols[X_MSQIDS].n_value,
                         xmsqids = malloc(sizeof(struct msqid_ds) * msginfo.msgmni);                              &msqids, sizeof(msqids)) != sizeof(msqids))
                         kvm_read(kd, (u_long) msqids, xmsqids, sizeof(struct msqid_ds) * msginfo.msgmni);                                  errx(1, "kvm_read (%s): %s",
                                       symbols[X_MSQIDS].n_name, kvm_geterr(kd));
   
                           xmsqids = malloc(sizeof(struct msqid_ds) *
                               msginfo.msgmni);
   
                           if (kvm_read(kd, (u_long)msqids, xmsqids,
                               sizeof(struct msqid_ds) * msginfo.msgmni) !=
                               sizeof(struct msqid_ds) * msginfo.msgmni)
                                   errx(1, "kvm_read (msqids): %s",
                                       kvm_geterr(kd));
   
                         printf("Message Queues:\n");                          printf("Message Queues:\n");
                         printf("T     ID     KEY        MODE       OWNER    GROUP");                          printf("T     ID     KEY        MODE       OWNER    GROUP");
                         if (option & CREATOR)                          if (option & CREATOR)
Line 297 
Line 314 
                             "SVID messages facility not configured in the system\n");                              "SVID messages facility not configured in the system\n");
                 }                  }
         if ((display & (SHMINFO | SHMTOTAL)) &&          if ((display & (SHMINFO | SHMTOTAL)) &&
             kvm_read(kd, symbols[X_SHMINFO].n_value, &shminfo, sizeof(shminfo))) {              (kvm_read(kd, symbols[X_SHMINFO].n_value, &shminfo,
                sizeof(shminfo)) == sizeof(shminfo))) {
   
                 if (display & SHMTOTAL) {                  if (display & SHMTOTAL) {
                         printf("shminfo:\n");                          printf("shminfo:\n");
                         printf("\tshmmax: %7d\t(max shared memory segment size)\n",                          printf("\tshmmax: %7d\t(max shared memory segment size)\n",
Line 314 
Line 333 
                 if (display & SHMINFO) {                  if (display & SHMINFO) {
                         struct shmid_ds *xshmids;                          struct shmid_ds *xshmids;
   
                         kvm_read(kd, symbols[X_SHMSEGS].n_value, &shmsegs, sizeof(shmsegs));                          if (kvm_read(kd, symbols[X_SHMSEGS].n_value, &shmsegs,
                         xshmids = malloc(sizeof(struct shmid_ds) * msginfo.msgmni);                              sizeof(shmsegs)) != sizeof(shmsegs))
                         kvm_read(kd, (u_long) shmsegs, xshmids, sizeof(struct shmid_ds) *                                  errx(1, "kvm_read (%s): %s",
                             shminfo.shmmni);                                      symbols[X_SHMSEGS].n_name, kvm_geterr(kd));
   
                           xshmids = malloc(sizeof(struct shmid_ds) *
                               msginfo.msgmni);
   
                           if (kvm_read(kd, (u_long)shmsegs, xshmids,
                               sizeof(struct shmid_ds) * shminfo.shmmni) !=
                               sizeof(struct shmid_ds) * shminfo.shmmni)
                                   errx(1, "kvm_read (shmsegs): %s",
                                       kvm_geterr(kd));
   
                         printf("Shared Memory:\n");                          printf("Shared Memory:\n");
                         printf("T     ID     KEY        MODE       OWNER    GROUP");                          printf("T     ID     KEY        MODE       OWNER    GROUP");
                         if (option & CREATOR)                          if (option & CREATOR)
Line 384 
Line 412 
                             "SVID shared memory facility not configured in the system\n");                              "SVID shared memory facility not configured in the system\n");
                 }                  }
         if ((display & (SEMINFO | SEMTOTAL)) &&          if ((display & (SEMINFO | SEMTOTAL)) &&
             kvm_read(kd, symbols[X_SEMINFO].n_value, &seminfo, sizeof(seminfo))) {              (kvm_read(kd, symbols[X_SEMINFO].n_value, &seminfo,
                sizeof(seminfo)) == sizeof(seminfo))) {
                 struct semid_ds *xsema;                  struct semid_ds *xsema;
   
                 if (display & SEMTOTAL) {                  if (display & SEMTOTAL) {
Line 416 
Line 445 
                                 fprintf(stderr,                                  fprintf(stderr,
                                     "Can't lock semaphore facility - winging it...\n");                                      "Can't lock semaphore facility - winging it...\n");
                         }                          }
                         kvm_read(kd, symbols[X_SEMA].n_value, &sema, sizeof(sema));                          if (kvm_read(kd, symbols[X_SEMA].n_value, &sema,
                         xsema = malloc(sizeof(struct semid_ds) * seminfo.semmni);                              sizeof(sema)) != sizeof(sema))
                         kvm_read(kd, (u_long) sema, xsema, sizeof(struct semid_ds) * seminfo.semmni);                                  errx(1, "kvm_read (%s): %s",
                                       symbols[X_SEMA].n_name, kvm_geterr(kd));
   
                           xsema = malloc(sizeof(struct semid_ds) *
                               seminfo.semmni);
   
                           if (kvm_read(kd, (u_long)sema, xsema,
                               sizeof(struct semid_ds) * seminfo.semmni) !=
                               sizeof(struct semid_ds) * seminfo.semmni)
                                   errx(1, "kvm_read (sema): %s",
                                       kvm_geterr(kd));
   
                         printf("Semaphores:\n");                          printf("Semaphores:\n");
                         printf("T     ID     KEY        MODE       OWNER    GROUP");                          printf("T     ID     KEY        MODE       OWNER    GROUP");
                         if (option & CREATOR)                          if (option & CREATOR)
Line 482 
Line 521 
 {  {
   
         fprintf(stderr,          fprintf(stderr,
             "usage: ipcs [-abcmopqst] [-C corefile] [-N namelist]\n");              "usage: %s [-abcmopqst] [-C corefile] [-N namelist]\n",
               __progname);
         exit(1);          exit(1);
 }  }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3