From 37eef59d540377af1f86e32573fbea2baecdac6f Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Thu, 21 Nov 2019 20:37:53 +0100 Subject: [PATCH] Implement reading sys time on BSD. --- client/TracySysTime.cpp | 16 +++++++++++++++- client/TracySysTime.hpp | 6 ++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/client/TracySysTime.cpp b/client/TracySysTime.cpp index 4b4cdc7e..2a937bc4 100644 --- a/client/TracySysTime.cpp +++ b/client/TracySysTime.cpp @@ -10,6 +10,9 @@ # elif defined __APPLE__ # include # include +# elif defined BSD +# include +# include # endif namespace tracy @@ -61,6 +64,17 @@ void SysTime::ReadTimes() idle = info.cpu_ticks[CPU_STATE_IDLE]; } +# elif defined BSD + +void SysTime::ReadTimes() +{ + u_long data[5]; + size_t sz = sizeof( data ); + sysctlbyname( "kern.cp_time", &data, &sz, nullptr, 0 ); + used = data[0] + data[1] + data[2] + data[3]; + idle = data[4]; +} + #endif SysTime::SysTime() @@ -80,7 +94,7 @@ float SysTime::Get() #if defined _WIN32 || defined __CYGWIN__ return diffUsed == 0 ? -1 : ( diffUsed - diffIdle ) * 100.f / diffUsed; -#elif defined __linux__ || defined __APPLE__ +#elif defined __linux__ || defined __APPLE__ || defined BSD const auto total = diffUsed + diffIdle; return total == 0 ? -1 : diffUsed * 100.f / total; #endif diff --git a/client/TracySysTime.hpp b/client/TracySysTime.hpp index e9581a61..fc6ba321 100644 --- a/client/TracySysTime.hpp +++ b/client/TracySysTime.hpp @@ -3,6 +3,12 @@ #if defined _WIN32 || defined __CYGWIN__ || defined __linux__ || defined __APPLE__ # define TRACY_HAS_SYSTIME +#else +# include +#endif + +#ifdef BSD +# define TRACY_HAS_SYSTIME #endif #ifdef TRACY_HAS_SYSTIME