MCPcopy Create free account
hub / github.com/FreesmTeam/FreesmLauncher / getKernelInfo

Method getKernelInfo

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

Source from the content-addressed store, hash-verified

11#include <QStringList>
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 } else {
37 qWarning() << "Not enough version numbers in " << sections[0] << " found " << versionParts.size();
38 }
39 } else {
40 qWarning() << "Not enough '-' sections in " << release << " found " << sections.size();
41 }
42 return out;
43}
44
45uint64_t Sys::getSystemRam()
46{

Callers

nothing calls this directly

Calls 2

containsMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected