diff options
| author | ruki <[email protected]> | 2022-07-28 22:46:35 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-07-28 22:46:35 +0800 |
| commit | 4f7685a8d9df681dd2e47abc6095d896e29a06c3 (patch) | |
| tree | 4f0541c8bccb2a52d1bcc29bf0ae7f20fdfc6166 /core/src | |
| parent | 73fa9b4422c42ec89862c440898bb790afd2cf1b (diff) | |
add meminfo for bsd
Diffstat (limited to 'core/src')
| -rw-r--r-- | core/src/xmake/os/meminfo.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/core/src/xmake/os/meminfo.c b/core/src/xmake/os/meminfo.c index 8189d698a..48797e4d2 100644 --- a/core/src/xmake/os/meminfo.c +++ b/core/src/xmake/os/meminfo.c @@ -39,6 +39,12 @@ # include <sys/sysinfo.h> #elif defined(TB_CONFIG_OS_WINDOWS) # include <windows.h> +#elif defined(TB_CONFIG_OS_BSD) +# include <sys/types.h> +# include <sys/sysctl.h> +# include <sys/vmmeter.h> +# include <sys/limits.h> +# include <vm/vm_param.h> #endif /* ////////////////////////////////////////////////////////////////////////////////////// @@ -131,6 +137,23 @@ static tb_bool_t xm_os_meminfo_stats(tb_int_t* ptotalsize, tb_int_t* pavailsize) *pavailsize = (tb_int_t)(statex.ullAvailPhys / (1024 * 1024)); return tb_true; } +#elif defined(TB_CONFIG_OS_BSD) + struct vmtotal vm_info; + int mib[2]; + mib[0] = CTL_VM; + mib[1] = VM_TOTAL; + size_t len = sizeof(vm_info); + if (sysctl(mib, 2, &vm_info, &len, tb_null, 0) == 0) + { + tb_trace_i("Total VM Memory: %d\n",vm_info.t_vm); + tb_trace_i("Total Real Memory: %d\n",vm_info.t_rm); + tb_trace_i("shared real memory: %d\n",vm_info.t_rmshr); + tb_trace_i("active shared real memory: %d\n",vm_info.t_armshr); + tb_trace_i("Total Free Memory pages: %d\n",vm_info.t_free); + *ptotalsize = (tb_int_t)(vm_info.t_vm / (1024 * 1024)); + *pavailsize = (tb_int_t)(vm_info.t_free / (1024 * 1024)); + return tb_true; + } #endif return tb_false; } |
