From 4f7685a8d9df681dd2e47abc6095d896e29a06c3 Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 28 Jul 2022 22:46:35 +0800 Subject: add meminfo for bsd --- core/src/xmake/os/meminfo.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'core') 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 #elif defined(TB_CONFIG_OS_WINDOWS) # include +#elif defined(TB_CONFIG_OS_BSD) +# include +# include +# include +# include +# include #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; } -- cgit v1.3.1