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 --- .github/workflows/freebsd.yml | 4 +++- core/src/xmake/os/meminfo.c | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml index e9c55944d..83a88f0c3 100644 --- a/.github/workflows/freebsd.yml +++ b/.github/workflows/freebsd.yml @@ -31,6 +31,8 @@ jobs: gmake install export XMAKE_ROOT=y xrepo --version - xmake lua -v -D tests/run.lua + dmesg | grep -i memory + xmake l os.meminfo + #xmake lua -v -D tests/run.lua 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