diff options
author | Daniel Lange <DLange@git.local> | 2023-02-05 04:25:56 +0100 |
---|---|---|
committer | Daniel Lange <DLange@git.local> | 2023-02-05 04:25:56 +0100 |
commit | f288666edc9180a2e81e6655951878124f321df6 (patch) | |
tree | da70bf44b2423f6f8e9a070c063fed79d190b489 /freebsd/FreeBSDProcessList.c | |
parent | 937052b231259a47d881d539ad5748245ef55b99 (diff) | |
download | debian_htop-f288666edc9180a2e81e6655951878124f321df6.tar.gz debian_htop-f288666edc9180a2e81e6655951878124f321df6.tar.bz2 debian_htop-f288666edc9180a2e81e6655951878124f321df6.zip |
New upstream version 3.2.2upstream/3.2.2
Diffstat (limited to 'freebsd/FreeBSDProcessList.c')
-rw-r--r-- | freebsd/FreeBSDProcessList.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/freebsd/FreeBSDProcessList.c b/freebsd/FreeBSDProcessList.c index f58f338..2c7e20b 100644 --- a/freebsd/FreeBSDProcessList.c +++ b/freebsd/FreeBSDProcessList.c @@ -25,6 +25,7 @@ in the source distribution for its full text. #include <sys/time.h> #include <sys/types.h> #include <sys/user.h> +#include <sys/vmmeter.h> #include "CRT.h" #include "Compat.h" @@ -49,6 +50,7 @@ static int MIB_vm_stats_vm_v_active_count[4]; static int MIB_vm_stats_vm_v_cache_count[4]; static int MIB_vm_stats_vm_v_inactive_count[4]; static int MIB_vm_stats_vm_v_free_count[4]; +static int MIB_vm_vmtotal[2]; static int MIB_vfs_bufspace[2]; @@ -82,6 +84,7 @@ ProcessList* ProcessList_new(UsersTable* usersTable, Hashtable* dynamicMeters, H len = 4; sysctlnametomib("vm.stats.vm.v_cache_count", MIB_vm_stats_vm_v_cache_count, &len); len = 4; sysctlnametomib("vm.stats.vm.v_inactive_count", MIB_vm_stats_vm_v_inactive_count, &len); len = 4; sysctlnametomib("vm.stats.vm.v_free_count", MIB_vm_stats_vm_v_free_count, &len); + len = 2; sysctlnametomib("vm.vmtotal", MIB_vm_vmtotal, &len); len = 2; sysctlnametomib("vfs.bufspace", MIB_vfs_bufspace, &len); @@ -330,6 +333,7 @@ static inline void FreeBSDProcessList_scanMemoryInfo(ProcessList* pl) { u_int memActive, memWire, cachedMem; long buffersMem; size_t len; + struct vmtotal vmtotal; //disabled for now, as it is always smaller than phycal amount of memory... //...to avoid "where is my memory?" questions @@ -360,6 +364,10 @@ static inline void FreeBSDProcessList_scanMemoryInfo(ProcessList* pl) { cachedMem *= pageSizeKb; pl->cachedMem = cachedMem; + len = sizeof(vmtotal); + sysctl(MIB_vm_vmtotal, 2, &(vmtotal), &len, NULL, 0); + pl->sharedMem = vmtotal.t_vmshr * pageSizeKb; + if (fpl->zfs.enabled) { fpl->memWire -= fpl->zfs.size; pl->cachedMem += fpl->zfs.size; @@ -397,6 +405,7 @@ static void FreeBSDProcessList_updateExe(const struct kinfo_proc* kproc, Process } static void FreeBSDProcessList_updateCwd(const struct kinfo_proc* kproc, Process* proc) { +#ifdef KERN_PROC_CWD const int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_CWD, kproc->ki_pid }; char buffer[2048]; size_t size = sizeof(buffer); @@ -414,6 +423,9 @@ static void FreeBSDProcessList_updateCwd(const struct kinfo_proc* kproc, Process } free_and_xStrdup(&proc->procCwd, buffer); +#else + proc->procCwd = NULL; +#endif } static void FreeBSDProcessList_updateProcessName(kvm_t* kd, const struct kinfo_proc* kproc, Process* proc) { |