$OpenBSD: patch-agent_mibgroup_host_hr_swrun_c,v 1.4 2011/07/07 20:02:02 sthen Exp $
--- agent/mibgroup/host/hr_swrun.c.orig	Fri Jul  1 23:35:46 2011
+++ agent/mibgroup/host/hr_swrun.c	Wed Jul  6 23:45:48 2011
@@ -700,6 +700,8 @@ var_hrswrun(struct variable * vp,
         strcpy(string, proc_table[LowProcIndex].ki_comm);
     #elif defined(dragonfly) && __DragonFly_version >= 190000
         strcpy(string, proc_table[LowProcIndex].kp_comm);
+    #elif defined(openbsd5)
+        strcpy(string, proc_table[LowProcIndex].p_comm);
     #else
         strcpy(string, proc_table[LowProcIndex].kp_proc.p_comm);
     #endif
@@ -822,6 +824,8 @@ var_hrswrun(struct variable * vp,
         strcpy(string, proc_table[LowProcIndex].ki_comm);
     #elif defined(dragonfly) && __DragonFly_version >= 190000
         strcpy(string, proc_table[LowProcIndex].kp_comm);
+    #elif defined(openbsd5)
+        strcpy(string, proc_table[LowProcIndex].p_comm);
     #else
         strcpy(string, proc_table[LowProcIndex].kp_proc.p_comm);
     #endif
@@ -1008,6 +1012,11 @@ var_hrswrun(struct variable * vp,
 		long_return = 2;/* operatingSystem */
 	} else
 	    long_return = 4;	/* application */
+    #elif defined(openbsd5)
+        if (proc_table[LowProcIndex].p_flag & P_SYSTEM)
+	    long_return = 2;	/* operatingSystem */
+	else
+	    long_return = 4;	/* application */
     #else
       #if defined(dragonfly) && __DragonFly_version >= 190000
         if (proc_table[LowProcIndex].kp_flags & P_SYSTEM)
@@ -1058,6 +1067,8 @@ var_hrswrun(struct variable * vp,
         switch (proc_table[LowProcIndex].ki_stat) {
     #elif defined(dragonfly) && __DragonFly_version >= 190000
         switch (proc_table[LowProcIndex].kp_stat) {
+    #elif defined(openbsd5)
+        switch (proc_table[LowProcIndex].p_stat) {
     #else
         switch (proc_table[LowProcIndex].kp_proc.p_stat) {
     #endif
@@ -1163,6 +1174,10 @@ var_hrswrun(struct variable * vp,
         long_return = proc_table[LowProcIndex].kp_lwp.kl_uticks +
             proc_table[LowProcIndex].kp_lwp.kl_sticks +
             proc_table[LowProcIndex].kp_lwp.kl_iticks;
+    #elif defined(openbsd5)
+        long_return = proc_table[LowProcIndex].p_uticks +
+            proc_table[LowProcIndex].p_sticks +
+            proc_table[LowProcIndex].p_iticks;
     #elif defined(dragonfly)
         long_return = proc_table[LowProcIndex].kp_eproc.e_uticks +
             proc_table[LowProcIndex].kp_eproc.e_sticks +
@@ -1284,6 +1299,11 @@ var_hrswrun(struct variable * vp,
     #else
             proc_table[LowProcIndex].kp_eproc.e_vm.vm_map.size / 1024;
     #endif
+  #elif defined(openbsd5)
+        long_return = proc_table[LowProcIndex].p_vm_tsize +
+            proc_table[LowProcIndex].p_vm_ssize +
+            proc_table[LowProcIndex].p_vm_dsize;
+        long_return = long_return * (getpagesize() / 1024);
   #else
         long_return = proc_table[LowProcIndex].kp_eproc.e_vm.vm_tsize +
             proc_table[LowProcIndex].kp_eproc.e_vm.vm_ssize +
@@ -1546,7 +1566,11 @@ Init_HR_SWRun(void)
             nproc = 0;
             return;
         }
+  #if defined(openbsd5)
+        proc_table = kvm_getprocs(kd, KERN_PROC_ALL, 0, sizeof (struct kinfo_proc), &nproc);
+  #else
         proc_table = kvm_getprocs(kd, KERN_PROC_ALL, 0, &nproc);
+  #endif
     }
 #else
 
@@ -1606,6 +1630,9 @@ Get_Next_HR_SWRun(void)
     #elif defined(dragonfly) && __DragonFly_version >= 190000
         if (proc_table[current_proc_entry].kp_stat != 0)
             return proc_table[current_proc_entry++].kp_pid;
+    #elif defined(openbsd5)
+        if (proc_table[current_proc_entry].p_stat != 0)
+            return proc_table[current_proc_entry++].p_pid;
     #else
         if (proc_table[current_proc_entry].kp_proc.p_stat != 0)
             return proc_table[current_proc_entry++].kp_proc.p_pid;
