51 lines
1.5 KiB
C++
51 lines
1.5 KiB
C++
/***
|
|
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
|
|
|
|
File: OSInformation.hpp
|
|
Date: 2022-1-25
|
|
Author: Reece
|
|
***/
|
|
#pragma once
|
|
|
|
namespace Aurora::SWInfo
|
|
{
|
|
struct OSInformation
|
|
{
|
|
const AuString *kKernelString; //
|
|
const AuString *kUserlandBrand; // Windows 10 Pro, Xbox, glibc, Ubuntu, distro name
|
|
const AuString *kUserlandDesktopEnv; // DWM, CF, [kwin/etc]
|
|
const AuString *kBuildString; // Example: (`??7??.?.amd64???.rs?_release.??-??`, `Linux version wtf-doxing-lts (no-lts@fingerprinterinos) (some things here) #1 SMP Mon, 69 Apr 2000 13:33:37 +0000`)
|
|
|
|
AuUInt32 uKernelMajor {};
|
|
AuUInt32 uKernelMinor {};
|
|
AuUInt32 uKernelPatch {};
|
|
|
|
AuUInt32 uUserlandMajor {};
|
|
AuUInt32 uUserlandMinor {};
|
|
AuUInt32 uUserlandPatch {};
|
|
|
|
bool bIsServer {};
|
|
bool bIsEnterprise {};
|
|
|
|
Aurora::Build::EPlatform ePlatform = Aurora::Build::EPlatform::eEnumInvalid;
|
|
|
|
private:
|
|
static inline AuString _kIgnore {};
|
|
|
|
public:
|
|
|
|
inline OSInformation() : kKernelString(&_kIgnore), kUserlandDesktopEnv(&_kIgnore), kUserlandBrand(&_kIgnore), kBuildString(&_kIgnore), ePlatform(Build::EPlatform::eEnumInvalid)
|
|
{
|
|
}
|
|
|
|
AU_DEFINE_CTOR_VA(OSInformation, (
|
|
kKernelString,
|
|
kUserlandBrand,
|
|
kUserlandDesktopEnv,
|
|
kBuildString,
|
|
ePlatform
|
|
))
|
|
|
|
AU_COPY_MOVE(OSInformation);
|
|
};
|
|
} |