MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / getKernelInfo

Method getKernelInfo

libraries/systeminfo/src/sys_unix.cpp:13–45  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11#include <QDebug>
12
13Sys::KernelInfo Sys::getKernelInfo()
14{
15 Sys::KernelInfo out;
16 struct utsname buf;
17 uname(&buf);
18 // NOTE: we assume linux here. this needs further elaboration
19 out.kernelType = KernelType::Linux;
20 out.kernelName = buf.sysname;
21 QString release = out.kernelVersion = buf.release;
22
23 // linux binary running on WSL is cursed.
24 out.isCursed = release.contains("WSL", Qt::CaseInsensitive) || release.contains("Microsoft", Qt::CaseInsensitive);
25
26 out.kernelMajor = 0;
27 out.kernelMinor = 0;
28 out.kernelPatch = 0;
29 auto sections = release.split('-');
30 if(sections.size() >= 1) {
31 auto versionParts = sections[0].split('.');
32 if(versionParts.size() >= 3) {
33 out.kernelMajor = versionParts[0].toInt();
34 out.kernelMinor = versionParts[1].toInt();
35 out.kernelPatch = versionParts[2].toInt();
36 }
37 else {
38 qWarning() << "Not enough version numbers in " << sections[0] << " found " << versionParts.size();
39 }
40 }
41 else {
42 qWarning() << "Not enough '-' sections in " << release << " found " << sections.size();
43 }
44 return out;
45}
46
47uint64_t Sys::getSystemRam()
48{

Callers

nothing calls this directly

Calls 2

containsMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected