int sh_count_procs(char *procname) { struct proc *p; struct user *u; int total; if (kd == NULL) { return -1; } if (kvm_setproc(kd) < 0) { return (-1); } kvm_setproc(kd); total = 0; while ((p = kvm_nextproc(kd)) != NULL) { if (!p) { return (-1); } u = kvm_getu(kd, p); /* * Skip this entry if u or u->u_comm is a NULL pointer */ if (!u) { continue; } DEBUGMSGTL(("proc","misc1 Comparing wanted %s against %s\n", procname, u->u_comm)); if (strcmp(procname, u->u_comm) == 0) total++; } return (total); }
int sh_count_regexp_procs(char *procname, pcre *regexp) { struct proc *p; struct user *u; int total; if (kd == NULL) { return -1; } if (kvm_setproc(kd) < 0) { return (-1); } kvm_setproc(kd); total = 0; while ((p = kvm_nextproc(kd)) != NULL) { if (!p) { return (-1); } u = kvm_getu(kd, p); /* * Skip this entry if u or u->u_comm is a NULL pointer */ if (!u) { continue; } if (strcmp(procname, u->u_comm) == 0) total++; } return (total); }
int tst_setproc(void) { int i; printf("kvm_setproc()\n"); if ((i = kvm_setproc(cookie)) != 0) printf("ERROR: kvm_setproc returned %d\n", i); return (i); }