tags 1024218 Hi, Attached is a patch for API trace. I couldn't actually get apitrace to build on my system (even without the patch) so it's hard to test it.
- Craig
Description: Build for libproc2 Replace libprocps with libproc2 Author: Craig Small <csm...@debian.org> Reviewed-by: Craig Small <csm...@debian.org> Last-Update: 2022-11-16 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ --- a/lib/os/os_memory.hpp +++ b/lib/os/os_memory.hpp @@ -30,13 +30,46 @@ #pragma once -#ifdef HAVE_READPROC_H +#ifdef LIBPROC2_FOUND +#include <libproc2/pids.h> +#elif defined(HAVE_READPROC_H) #include <proc/readproc.h> #endif namespace os { -#if defined(HAVE_READPROC_H) +#ifdef LIBPROC2_FOUND + inline long long + getVsize(void) { + enum pids_item Item[] = {PIDS_VSIZE_PGS}; + struct pids_info *info = NULL; + struct pids_stack *stack; + unsigned long value=0 + if ( + (procps_pids_new(&info, Item, 1) == 0) && + ((stack = fatal_proc_unmounted(info, 1)) == NULL)) { + value = PIDS_VAL(0, ul_int, stack, info); + } + procps_pids_unref(&info); + return value; + } + + inline long long + getRss(void) { + enum pids_item Item[] = {PIDS_RSS}; + struct pids_info *info = NULL; + struct pids_stack *stack; + unsigned long value=0 + if ( + (procps_pids_new(&info, Item, 1) == 0) && + ((stack = fatal_proc_unmounted(info, 1)) == NULL)) { + value = PIDS_VAL(0, ul_int, stack, info); + } + procps_pids_unref(&info); + return value; + } + +#elif defined(HAVE_READPROC_H) inline long long getVsize(void) { --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -490,6 +490,7 @@ if (PKG_CONFIG_FOUND) pkg_check_modules (BROTLIDEC IMPORTED_TARGET libbrotlidec>=1.0.7) pkg_check_modules (BROTLIENC IMPORTED_TARGET libbrotlienc>=1.0.7) + pkg_check_modules (LIBPROC2 IMPORTED_TARGET libproc2) endif () find_package (GTest) --- a/lib/os/CMakeLists.txt +++ b/lib/os/CMakeLists.txt @@ -38,3 +38,8 @@ add_gtest (os_thread_test os_thread_test.cpp) target_link_libraries (os_thread_test os) endif () + +if (LIBPROC2_FOUND) + target_link_libraries(os PUBLIC PkgConfig::LIBPROC2) +endif () +