$NetBSD: patch-an,v 1.5 2017/06/23 16:42:05 kamil Exp $ --- sysdeps/bsd/procstate.c.orig 2011-06-01 15:40:47.000000000 +0000 +++ sysdeps/bsd/procstate.c @@ -26,7 +26,7 @@ #include -#if !defined(__OpenBSD__) +#if !defined(__OpenBSD__) && !defined(__NetBSD__) /* && (!defined __bsdi__) */ #include #endif @@ -54,7 +54,11 @@ glibtop_get_proc_state_p (glibtop *serve glibtop_proc_state *buf, pid_t pid) { +#if defined(__NetBSD__) + struct kinfo_proc2 *pinfo; +#else struct kinfo_proc *pinfo; +#endif int count = 0; glibtop_init_p (server, (1L << GLIBTOP_SYSDEPS_PROC_STATE), 0); @@ -65,7 +69,12 @@ glibtop_get_proc_state_p (glibtop *serve if (pid == 0) return; /* Get the process information */ +#if defined(__NetBSD__) + pinfo = kvm_getproc2 (server->machine.kd, KERN_PROC_PID, pid, + sizeof (*pinfo), &count); +#else pinfo = kvm_getprocs (server->machine.kd, KERN_PROC_PID, pid, &count); +#endif if ((pinfo == NULL) || (count != 1)) { glibtop_warn_io_r (server, "kvm_getprocs (%d)", pid); return; @@ -79,6 +88,13 @@ glibtop_get_proc_state_p (glibtop *serve #define PROC_RGID ki_rgid #define PROC_STAT ki_stat +#elif defined(__NetBSD__) + +#define PROC_COMM p_comm +#define PROC_SVUID p_svuid +#define PROC_SVGID p_svgid +#define PROC_STAT p_stat + #else #define PROC_COMM kp_proc.p_comm #define PROC_SVUID kp_eproc.e_pcred.p_svuid