[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.24 and 1.25

version 1.24, 2011/04/06 11:36:26 version 1.25, 2012/02/05 18:27:03
Line 650 
Line 650 
 ipcs_kvm(void)  ipcs_kvm(void)
 {  {
         struct msginfo msginfo;          struct msginfo msginfo;
           struct que msgque;
         struct msqid_ds *msqids;          struct msqid_ds *msqids;
         struct seminfo seminfo;          struct seminfo seminfo;
         struct semid_ds sem, **sema;          struct semid_ds sem, **sema;
Line 668 
Line 669 
         #define X_SEMU          2          #define X_SEMU          2
                 {"_msginfo"},                  {"_msginfo"},
         #define X_MSGINFO       3          #define X_MSGINFO       3
                 {"_msqids"},                  {"_msg_queues"},
         #define X_MSQIDS        4          #define X_MSG_QUEUES    4
                 {"_shminfo"},                  {"_shminfo"},
         #define X_SHMINFO       5          #define X_SHMINFO       5
                 {"_shmsegs"},                  {"_shmsegs"},
Line 706 
Line 707 
                         show_msgtotal(&msginfo);                          show_msgtotal(&msginfo);
   
                 if (display & MSGINFO) {                  if (display & MSGINFO) {
                         if (kvm_read(kd, symbols[X_MSQIDS].n_value,                          if (kvm_read(kd, symbols[X_MSG_QUEUES].n_value,
                             &addr, sizeof(addr)) != sizeof(addr))                              &addr, sizeof(addr)) != sizeof(addr))
                                 errx(1, "kvm_read (%s): %s",                                  errx(1, "kvm_read (%s): %s",
                                     symbols[X_MSQIDS].n_name, kvm_geterr(kd));                                      symbols[X_MSG_QUEUES].n_name,
                                       kvm_geterr(kd));
   
                         msqids = calloc(sizeof(struct msqid_ds),                          msqids = calloc(sizeof(struct msqid_ds),
                             msginfo.msgmni);                              msginfo.msgmni);
                         if (msqids == NULL)                          if (msqids == NULL)
                                 err(1, "calloc");                                  err(1, "calloc");
   
                         if (kvm_read(kd, addr, msqids,                          /* walk the TAILQ */
                             sizeof(struct msqid_ds) * msginfo.msgmni) !=                          while (addr != 0) {
                             sizeof(struct msqid_ds) * msginfo.msgmni)                                  if (kvm_read(kd, addr, &msgque, sizeof(msgque))
                                 errx(1, "kvm_read (msqids): %s",                                      != sizeof(msgque))
                                     kvm_geterr(kd));                                          errx(1, "kvm_read (%s): %s",
                                               "msg que", kvm_geterr(kd));
                                   msqids[msgque.que_ix] = msgque.msqid_ds;
                                   addr = (u_long)TAILQ_NEXT(&msgque, que_next);
                           }
   
                         show_msginfo_hdr();                          show_msginfo_hdr();
                         for (i = 0; i < msginfo.msgmni; i++) {                          for (i = 0; i < msginfo.msgmni; i++) {

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.25