From a666dc0a1afa69b5b42aa3a487c8fa971c01cde1 Mon Sep 17 00:00:00 2001 From: Petr Mrázek Date: Sun, 1 Jan 2017 19:59:46 +0100 Subject: NOISSUE fix up translation selection in settings and add OS/sys arch reporting --- libraries/systeminfo/src/sys_unix.cpp | 49 +++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 libraries/systeminfo/src/sys_unix.cpp (limited to 'libraries/systeminfo/src/sys_unix.cpp') diff --git a/libraries/systeminfo/src/sys_unix.cpp b/libraries/systeminfo/src/sys_unix.cpp new file mode 100644 index 00000000..866c9fdb --- /dev/null +++ b/libraries/systeminfo/src/sys_unix.cpp @@ -0,0 +1,49 @@ +#include "sys.h" + +#include +#include + +Sys::KernelInfo Sys::getKernelInfo() +{ + Sys::KernelInfo out; + struct utsname buf; + uname(&buf); + out.kernelName = buf.sysname; + out.kernelVersion = buf.release; + return out; +} + +uint64_t Sys::getSystemRam() +{ + std::string token; + std::ifstream file("/proc/meminfo"); + while(file >> token) + { + if(token == "MemTotal:") + { + uint64_t mem; + if(file >> mem) + { + return mem * 1024ull; + } + else + { + return 0; + } + } + // ignore rest of the line + file.ignore(std::numeric_limits::max(), '\n'); + } + return 0; // nothing found +} + +bool Sys::isCPU64bit() +{ + return isSystem64bit(); +} + +bool Sys::isSystem64bit() +{ + // kernel build arch on linux + return QSysInfo::currentCpuArchitecture() == "x86_64"; +} -- cgit