Author: jhb
Date: Thu Jun  7 15:54:52 2012
New Revision: 236717
URL: http://svn.freebsd.org/changeset/base/236717

Log:
  Teach procstat_get_shm_info_kvm() how to fetch the pathname of a SHM file
  descriptor from a core and set it in fts->fs_path.
  
  MFC after:    1 week

Modified:
  head/lib/libprocstat/libprocstat.c

Modified: head/lib/libprocstat/libprocstat.c
==============================================================================
--- head/lib/libprocstat/libprocstat.c  Thu Jun  7 14:38:43 2012        
(r236716)
+++ head/lib/libprocstat/libprocstat.c  Thu Jun  7 15:54:52 2012        
(r236717)
@@ -881,6 +881,8 @@ procstat_get_shm_info_kvm(kvm_t *kd, str
 {
        struct shmfd shmfd;
        void *shmfdp;
+       char *path;
+       int i;
 
        assert(kd);
        assert(shm);
@@ -896,6 +898,21 @@ procstat_get_shm_info_kvm(kvm_t *kd, str
        }
        shm->mode = S_IFREG | shmfd.shm_mode;
        shm->size = shmfd.shm_size;
+       if (fst->fs_path == NULL && shmfd.shm_path != NULL) {
+               path = malloc(MAXPATHLEN);
+               for (i = 0; i < MAXPATHLEN - 1; i++) {
+                       if (!kvm_read_all(kd, (unsigned long)shmfd.shm_path + i,
+                           path + i, 1))
+                               break;
+                       if (path[i] == '\0')
+                               break;
+               }
+               path[i] = '\0';
+               if (i == 0)
+                       free(path);
+               else
+                       fst->fs_path = path;
+       }
        return (0);
 
 fail:
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to