Lines Matching defs:procstat
114 static char **getargv(struct procstat *procstat, struct kinfo_proc *kp,
123 struct procstat *procstat, struct kinfo_proc *kp, int mmapped);
125 struct procstat *procstat, struct kinfo_proc *kp, int mmapped);
181 procstat_close(struct procstat *procstat)
184 assert(procstat);
185 if (procstat->type == PROCSTAT_KVM)
186 kvm_close(procstat->kd);
187 else if (procstat->type == PROCSTAT_CORE)
188 procstat_core_close(procstat->core);
189 procstat_freeargv(procstat);
190 procstat_freeenvv(procstat);
191 free(procstat);
194 struct procstat *
197 struct procstat *procstat;
199 procstat = calloc(1, sizeof(*procstat));
200 if (procstat == NULL) {
204 procstat->type = PROCSTAT_SYSCTL;
205 return (procstat);
208 struct procstat *
211 struct procstat *procstat;
215 procstat = calloc(1, sizeof(*procstat));
216 if (procstat == NULL) {
223 free(procstat);
226 procstat->type = PROCSTAT_KVM;
227 procstat->kd = kd;
228 return (procstat);
231 struct procstat *
234 struct procstat *procstat;
237 procstat = calloc(1, sizeof(*procstat));
238 if (procstat == NULL) {
244 free(procstat);
247 procstat->type = PROCSTAT_CORE;
248 procstat->core = core;
249 return (procstat);
253 procstat_getprocs(struct procstat *procstat, int what, int arg,
262 assert(procstat);
265 if (procstat->type == PROCSTAT_KVM) {
267 p0 = kvm_getprocs(procstat->kd, what, arg, &cnt);
279 } else if (procstat->type == PROCSTAT_SYSCTL) {
315 } else if (procstat->type == PROCSTAT_CORE) {
316 p = procstat_core_get(procstat->core, PSC_TYPE_PROC, NULL,
325 warnx("unknown access method: %d", procstat->type);
335 procstat_freeprocs(struct procstat *procstat __unused, struct kinfo_proc *p)
344 procstat_getfiles(struct procstat *procstat, struct kinfo_proc *kp, int mmapped)
347 switch (procstat->type) {
349 return (procstat_getfiles_kvm(procstat, kp, mmapped));
352 return (procstat_getfiles_sysctl(procstat, kp, mmapped));
354 warnx("unknown access method: %d", procstat->type);
360 procstat_freefiles(struct procstat *procstat, struct filestat_list *head)
370 if (procstat->vmentries != NULL) {
371 free(procstat->vmentries);
372 procstat->vmentries = NULL;
374 if (procstat->files != NULL) {
375 free(procstat->files);
376 procstat->files = NULL;
451 procstat_getfiles_kvm(struct procstat *procstat, struct kinfo_proc *kp, int mmapped)
476 assert(procstat);
477 kd = procstat->kd;
848 procstat_getfiles_sysctl(struct procstat *procstat, struct kinfo_proc *kp,
863 switch (procstat->type) {
868 files = kinfo_getfile_core(procstat->core, &cnt);
877 procstat->files = files;
910 vmentries = procstat_getvmmap(procstat, kp, &cnt);
911 procstat->vmentries = vmentries;
942 procstat_get_pipe_info(struct procstat *procstat, struct filestat *fst,
947 if (procstat->type == PROCSTAT_KVM) {
948 return (procstat_get_pipe_info_kvm(procstat->kd, fst, ps,
950 } else if (procstat->type == PROCSTAT_SYSCTL ||
951 procstat->type == PROCSTAT_CORE) {
954 warnx("unknown access method: %d", procstat->type);
1009 procstat_get_pts_info(struct procstat *procstat, struct filestat *fst,
1014 if (procstat->type == PROCSTAT_KVM) {
1015 return (procstat_get_pts_info_kvm(procstat->kd, fst, pts,
1017 } else if (procstat->type == PROCSTAT_SYSCTL ||
1018 procstat->type == PROCSTAT_CORE) {
1021 warnx("unknown access method: %d", procstat->type);
1074 procstat_get_sem_info(struct procstat *procstat, struct filestat *fst,
1079 if (procstat->type == PROCSTAT_KVM) {
1080 return (procstat_get_sem_info_kvm(procstat->kd, fst, sem,
1082 } else if (procstat->type == PROCSTAT_SYSCTL ||
1083 procstat->type == PROCSTAT_CORE) {
1086 warnx("unknown access method: %d", procstat->type);
1157 procstat_get_shm_info(struct procstat *procstat, struct filestat *fst,
1162 if (procstat->type == PROCSTAT_KVM) {
1163 return (procstat_get_shm_info_kvm(procstat->kd, fst, shm,
1165 } else if (procstat->type == PROCSTAT_SYSCTL ||
1166 procstat->type == PROCSTAT_CORE) {
1169 warnx("unknown access method: %d", procstat->type);
1240 procstat_get_vnode_info(struct procstat *procstat, struct filestat *fst,
1245 if (procstat->type == PROCSTAT_KVM) {
1246 return (procstat_get_vnode_info_kvm(procstat->kd, fst, vn,
1248 } else if (procstat->type == PROCSTAT_SYSCTL ||
1249 procstat->type == PROCSTAT_CORE) {
1252 warnx("unknown access method: %d", procstat->type);
1450 procstat_get_socket_info(struct procstat *procstat, struct filestat *fst,
1455 if (procstat->type == PROCSTAT_KVM) {
1456 return (procstat_get_socket_info_kvm(procstat->kd, fst, sock,
1458 } else if (procstat->type == PROCSTAT_SYSCTL ||
1459 procstat->type == PROCSTAT_CORE) {
1462 warnx("unknown access method: %d", procstat->type);
1750 getargv(struct procstat *procstat, struct kinfo_proc *kp, size_t nchr, int env)
1758 assert(procstat);
1760 if (procstat->type == PROCSTAT_KVM) {
1764 if (procstat->type != PROCSTAT_SYSCTL &&
1765 procstat->type != PROCSTAT_CORE) {
1766 warnx("unknown access method: %d", procstat->type);
1773 avp = (struct argvec **)(env ? &procstat->argv : &procstat->envv);
1792 if (procstat->type == PROCSTAT_SYSCTL) {
1803 } else /* procstat->type == PROCSTAT_CORE */ {
1806 if (procstat_core_get(procstat->core, type, av->buf, &len)
1838 procstat_getargv(struct procstat *procstat, struct kinfo_proc *p, size_t nchr)
1841 return (getargv(procstat, p, nchr, 0));
1848 procstat_freeargv(struct procstat *procstat)
1851 if (procstat->argv != NULL) {
1852 argvec_free(procstat->argv);
1853 procstat->argv = NULL;
1861 procstat_getenvv(struct procstat *procstat, struct kinfo_proc *p, size_t nchr)
1864 return (getargv(procstat, p, nchr, 1));
1871 procstat_freeenvv(struct procstat *procstat)
1873 if (procstat->envv != NULL) {
1874 argvec_free(procstat->envv);
1875 procstat->envv = NULL;
1938 procstat_getvmmap(struct procstat *procstat, struct kinfo_proc *kp,
1942 switch (procstat->type) {
1949 return (kinfo_getvmmap_core(procstat->core, cntp));
1951 warnx("unknown access method: %d", procstat->type);
1957 procstat_freevmmap(struct procstat *procstat __unused,
2044 procstat_getgroups(struct procstat *procstat, struct kinfo_proc *kp,
2047 switch (procstat->type) {
2049 return (procstat_getgroups_kvm(procstat->kd, kp, cntp));
2053 return (procstat_getgroups_core(procstat->core, cntp));
2055 warnx("unknown access method: %d", procstat->type);
2061 procstat_freegroups(struct procstat *procstat __unused, gid_t *groups)
2122 procstat_getumask(struct procstat *procstat, struct kinfo_proc *kp,
2125 switch (procstat->type) {
2127 return (procstat_getumask_kvm(procstat->kd, kp, maskp));
2131 return (procstat_getumask_core(procstat->core, maskp));
2133 warnx("unknown access method: %d", procstat->type);
2212 procstat_getrlimit(struct procstat *procstat, struct kinfo_proc *kp, int which,
2215 switch (procstat->type) {
2217 return (procstat_getrlimit_kvm(procstat->kd, kp, which,
2222 return (procstat_getrlimit_core(procstat->core, which, rlimit));
2224 warnx("unknown access method: %d", procstat->type);
2271 procstat_getpathname(struct procstat *procstat, struct kinfo_proc *kp,
2274 switch (procstat->type) {
2284 return (procstat_getpathname_core(procstat->core, pathname,
2287 warnx("unknown access method: %d", procstat->type);
2345 procstat_getosrel(struct procstat *procstat, struct kinfo_proc *kp, int *osrelp)
2347 switch (procstat->type) {
2349 return (procstat_getosrel_kvm(procstat->kd, kp, osrelp));
2353 return (procstat_getosrel_core(procstat->core, osrelp));
2355 warnx("unknown access method: %d", procstat->type);
2492 procstat_getauxv(struct procstat *procstat, struct kinfo_proc *kp,
2495 switch (procstat->type) {
2502 return (procstat_getauxv_core(procstat->core, cntp));
2504 warnx("unknown access method: %d", procstat->type);
2510 procstat_freeauxv(struct procstat *procstat __unused, Elf_Auxinfo *auxv)
2540 procstat_getptlwpinfo(struct procstat *procstat, unsigned int *cntp)
2542 switch (procstat->type) {
2550 return (procstat_getptlwpinfo_core(procstat->core, cntp));
2552 warnx("unknown access method: %d", procstat->type);
2558 procstat_freeptlwpinfo(struct procstat *procstat __unused,
2606 procstat_getkstack(struct procstat *procstat, struct kinfo_proc *kp,
2609 switch (procstat->type) {
2619 warnx("unknown access method: %d", procstat->type);
2625 procstat_freekstack(struct procstat *procstat __unused,
2633 procstat_getadvlock_sysctl(struct procstat *procstat __unused)
2731 procstat_freeadvlock(procstat, res);
2736 procstat_getadvlock(struct procstat *procstat)
2738 switch (procstat->type) {
2743 return (procstat_getadvlock_sysctl(procstat));
2748 warnx("unknown access method: %d", procstat->type);
2754 procstat_freeadvlock(struct procstat *procstat __unused,
2796 procstat_getrlimitusage(struct procstat *procstat, struct kinfo_proc *kp,
2799 switch (procstat->type) {
2809 warnx("unknown access method: %d", procstat->type);
2815 procstat_freerlimitusage(struct procstat *procstat __unused, rlim_t *resusage)