aboutsummaryrefslogtreecommitdiff
path: root/lib/libutil
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2021-10-26 08:40:10 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2021-10-26 12:50:29 +0000
commitf2069331e5821f4c2b65d82af2809946a34158d2 (patch)
tree940a86c727bb9ddd6a129cc79481437cce1a6877 /lib/libutil
parent1833cf1373655de0446d3c5504aecbff99e2b6cf (diff)
downloadsrc-f2069331e5821f4c2b65d82af2809946a34158d2.tar.gz
src-f2069331e5821f4c2b65d82af2809946a34158d2.zip
Diffstat (limited to 'lib/libutil')
-rw-r--r--lib/libutil/kinfo_getvmobject.c20
-rw-r--r--lib/libutil/libutil.h2
2 files changed, 18 insertions, 4 deletions
diff --git a/lib/libutil/kinfo_getvmobject.c b/lib/libutil/kinfo_getvmobject.c
index de55650a518b..4bf666fd7f3b 100644
--- a/lib/libutil/kinfo_getvmobject.c
+++ b/lib/libutil/kinfo_getvmobject.c
@@ -36,8 +36,8 @@ __FBSDID("$FreeBSD$");
#include "libutil.h"
-struct kinfo_vmobject *
-kinfo_getvmobject(int *cntp)
+static struct kinfo_vmobject *
+kinfo_getvmobject_impl(int *cntp, const char *vmobjsysctl)
{
char *buf, *bp, *ep;
struct kinfo_vmobject *kvo, *list, *kp;
@@ -46,14 +46,14 @@ kinfo_getvmobject(int *cntp)
buf = NULL;
for (i = 0; i < 3; i++) {
- if (sysctlbyname("vm.objects", NULL, &len, NULL, 0) < 0) {
+ if (sysctlbyname(vmobjsysctl, NULL, &len, NULL, 0) < 0) {
free(buf);
return (NULL);
}
buf = reallocf(buf, len);
if (buf == NULL)
return (NULL);
- if (sysctlbyname("vm.objects", buf, &len, NULL, 0) == 0)
+ if (sysctlbyname(vmobjsysctl, buf, &len, NULL, 0) == 0)
goto unpack;
if (errno != ENOMEM) {
free(buf);
@@ -94,3 +94,15 @@ unpack:
*cntp = cnt;
return (list);
}
+
+struct kinfo_vmobject *
+kinfo_getvmobject(int *cntp)
+{
+ return (kinfo_getvmobject_impl(cntp, "vm.objects"));
+}
+
+struct kinfo_vmobject *
+kinfo_getswapvmobject(int *cntp)
+{
+ return (kinfo_getvmobject_impl(cntp, "vm.swap_objects"));
+}
diff --git a/lib/libutil/libutil.h b/lib/libutil/libutil.h
index bb96b2caa502..17c44de0fce7 100644
--- a/lib/libutil/libutil.h
+++ b/lib/libutil/libutil.h
@@ -109,6 +109,8 @@ struct kinfo_vmentry *
kinfo_getvmmap(pid_t _pid, int *_cntp);
struct kinfo_vmobject *
kinfo_getvmobject(int *_cntp);
+struct kinfo_vmobject *
+ kinfo_getswapvmobject(int *_cntp);
struct kinfo_proc *
kinfo_getallproc(int *_cntp);
struct kinfo_proc *