(SIGAR-131) switch to pst_fileinfo2 on all HPUX flavors

This commit is contained in:
Doug MacEachern 2009-04-17 18:31:35 -07:00
parent 19d9e00787
commit 0996361ec6
1 changed files with 2 additions and 25 deletions

View File

@ -16,10 +16,6 @@
* USA. * USA.
*/ */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "sigar.h" #include "sigar.h"
#include "sigar_private.h" #include "sigar_private.h"
#include "sigar_util.h" #include "sigar_util.h"
@ -419,12 +415,8 @@ int sigar_proc_fd_get(sigar_t *sigar, sigar_pid_t pid,
sigar_proc_fd_t *procfd) sigar_proc_fd_t *procfd)
{ {
struct pst_status status; struct pst_status status;
int idx, i, n; int idx=0, n;
#ifdef HAVE_STRUCT_PST_FILEINFO2
struct pst_fileinfo2 psf[16]; struct pst_fileinfo2 psf[16];
#else
struct pst_fileinfo psf[16];
#endif
procfd->total = 0; procfd->total = 0;
@ -433,28 +425,13 @@ int sigar_proc_fd_get(sigar_t *sigar, sigar_pid_t pid,
} }
/* HPUX 11.31 removed the deprecated pstat_getfile call */ /* HPUX 11.31 removed the deprecated pstat_getfile call */
#ifdef HAVE_STRUCT_PST_FILEINFO2
idx = status.pst_idx;
while ((n = pstat_getfile2(psf, sizeof(psf[0]), while ((n = pstat_getfile2(psf, sizeof(psf[0]),
sizeof(psf)/sizeof(psf[0]), sizeof(psf)/sizeof(psf[0]),
idx, pid)) > 0) idx, pid)) > 0)
{ {
procfd->total += n; procfd->total += n;
idx = psf[n-1].psf_fd; idx = psf[n-1].psf_fd + 1;
} }
#else
/* man pstat_getfile for index splaination */
idx = (status.pst_idx << 16) | (0 & 0xffff);
while ((n = pstat_getfile(psf, sizeof(psf[0]),
sizeof(psf)/sizeof(psf[0]),
idx)) > 0)
{
procfd->total += n;
idx = psf[n-1].psf_idx + 1;
}
#endif
if (n == -1) { if (n == -1) {
return errno; return errno;