Skip to content

Commit

Permalink
(SIGAR-131) use pstat_getfile2 in sigar_proc_fd_get on HP/UX 11iv2+
Browse files Browse the repository at this point in the history
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
  • Loading branch information
Jan Kneschke authored and dougm committed Feb 7, 2009
1 parent f0ef330 commit 2d86eba
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/os/hpux/hpux_sigar.c
Expand Up @@ -16,6 +16,10 @@
* USA.
*/

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "sigar.h"
#include "sigar_private.h"
#include "sigar_util.h"
Expand Down Expand Up @@ -416,14 +420,30 @@ int sigar_proc_fd_get(sigar_t *sigar, sigar_pid_t pid,
{
struct pst_status status;
int idx, i, n;
#ifdef HAVE_STRUCT_PST_FILEINFO2
struct pst_fileinfo2 psf[16];
#else
struct pst_fileinfo psf[16];
#endif

procfd->total = 0;

if (pstat_getproc(&status, sizeof(status), 0, pid) == -1) {
return errno;
}

/* 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]),
sizeof(psf)/sizeof(psf[0]),
idx, pid)) > 0)
{
procfd->total += n;
idx = psf[n-1].psf_fd;
}
#else
/* man pstat_getfile for index splaination */
idx = (status.pst_idx << 16) | (0 & 0xffff);

Expand All @@ -434,6 +454,7 @@ int sigar_proc_fd_get(sigar_t *sigar, sigar_pid_t pid,
procfd->total += n;
idx = psf[n-1].psf_idx + 1;
}
#endif

if (n == -1) {
return errno;
Expand Down

0 comments on commit 2d86eba

Please sign in to comment.