summaryrefslogtreecommitdiff
path: root/sysutils/pidof/files/patch-pidof.c
blob: 3777ef07527a21a0384347bbd8f4aae16977cfac (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
--- pidof.c.orig	2005-05-01 16:26:19 UTC
+++ pidof.c
@@ -53,10 +53,19 @@ get_pid_of_process(char *process_name)
 	if ((kd = kvm_open("/dev/null", "/dev/null", "/dev/null", O_RDONLY, "kvm_open")) == NULL) 
 			 (void)errx(1, "%s", kvm_geterr(kd));
 	else {
+#if __FreeBSD__ < 5
+		p = kvm_getprocs(kd, KERN_PROC_ALL, 0, &n_processes);
+#else
 		p = kvm_getprocs(kd, KERN_PROC_PROC, 0, &n_processes);
+#endif /* __FreeBSD__ < 5 */
 		for (i = 0; i<n_processes; i++)
+#if __FreeBSD__ < 5
+			if (strncmp(process_name, p[i].kp_proc.p_comm, MAXCOMLEN+1) == 0) {
+				(void)printf("%d ", (int)p[i].kp_proc.p_pid);
+#else
 			if (strncmp(process_name, p[i].ki_comm, COMMLEN+1) == 0) {
 				(void)printf("%d ", (int)p[i].ki_pid);
+#endif /* __FreeBSD__ < 5 */
 				processes_found++;
 			}