summaryrefslogtreecommitdiff
path: root/sysutils/and/files/patch-and-OpenBSD.c
blob: 5d94253e37247c285475a865c71411f4ac682b0d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
--- and-OpenBSD.c.orig	Mon Jan 28 01:02:51 2002
+++ and-OpenBSD.c	Sat Dec 21 02:04:58 2002
@@ -91,17 +91,38 @@
     abort();
   }
   if (openbsd_next >= openbsd_nproc) return NULL;
+#if defined(__FreeBSD__) && __FreeBSD_version >= 50014
+  strncpy(openbsd_proc.command,openbsd_pt[openbsd_next].ki_comm,1023);
+#else
   strncpy(openbsd_proc.command,openbsd_pt[openbsd_next].kp_proc.p_comm,1023);
+#endif
   openbsd_proc.command[1023] = 0;
+#if defined(__FreeBSD__) && __FreeBSD_version >= 50014
+  openbsd_proc.pid = openbsd_pt[openbsd_next].ki_pid;
+  openbsd_proc.nice = openbsd_pt[openbsd_next].ki_nice-20;
+  openbsd_proc.uid = openbsd_pt[openbsd_next].ki_ruid;
+  openbsd_proc.gid = openbsd_pt[openbsd_next].ki_rgid;
+#else
   openbsd_proc.pid = openbsd_pt[openbsd_next].kp_proc.p_pid;
   openbsd_proc.nice = openbsd_pt[openbsd_next].kp_proc.p_nice-20;
   openbsd_proc.uid = openbsd_pt[openbsd_next].kp_eproc.e_pcred.p_ruid;
   openbsd_proc.gid = openbsd_pt[openbsd_next].kp_eproc.e_pcred.p_rgid;
+#endif
   /* Adapted from top(1) port, as found in the misc@openbsd.org archive */
+#if defined(__FreeBSD__) && __FreeBSD_version >= 50014
+  /* XXX: Accessing ki_paddr causes sig10 ...
+  openbsd_proc.utime = (openbsd_pt[openbsd_next].ki_paddr->p_uticks +
+			openbsd_pt[openbsd_next].ki_paddr->p_sticks +
+			openbsd_pt[openbsd_next].ki_paddr->p_iticks)
+    / openbsd_hz;
+  */
+  openbsd_proc.utime = 0;
+#else
   openbsd_proc.utime = (openbsd_pt[openbsd_next].kp_proc.p_uticks +
 			openbsd_pt[openbsd_next].kp_proc.p_sticks +
 			openbsd_pt[openbsd_next].kp_proc.p_iticks)
     / openbsd_hz;
+#endif
   /*
     printf("%-20s  %5i  %3i  %i\n",openbsd_proc.command,openbsd_proc.pid,
     openbsd_proc.nice,openbsd_proc.utime);