Enigma 3.2.2
A Simple, Reliable and Efficient Encryption Tool
Loading...
Searching...
No Matches
SystemAndHardwareInfoTool.hpp
Go to the documentation of this file.
1#pragma once
2#include "Tool.hpp"
3#include <Core/Core.hpp>
4#include <imgui.h>
5
6#include <infoware/infoware.hpp>
7
8
9/*
10* System & Hardware Information Tool Collapsing Header View To be drawn in ToolsScene
11*/
14 public:
17
18 private: /* Helper Functions */
19 const char *StringifyArchitectureEnum(const iware::cpu::architecture_t arch) const noexcept {
20#define CASE_RET_STR(c) \
21 case iware::cpu::architecture_t::c: \
22 return #c
23 switch (arch) {
24 CASE_RET_STR(x64);
25 CASE_RET_STR(arm);
26 CASE_RET_STR(itanium);
27 CASE_RET_STR(x86);
28 default:
29 return "<unknown arch>";
30 }
31#undef CASE_RET_STR
32 }
33
34 const char *StringifyCacheTypeEnum(const iware::cpu::cache_type_t cache_type) const noexcept {
35#define CASE_RET_STR(c) \
36 case iware::cpu::cache_type_t::c: \
37 return #c
38 switch (cache_type) {
39 CASE_RET_STR(unified);
40 CASE_RET_STR(instruction);
41 CASE_RET_STR(data);
42 CASE_RET_STR(trace);
43 default:
44 return "<unknown cache type>";
45 }
46#undef CASE_RET_STR
47 }
48
49 const char *StringifyInstructionSetEnum(const iware::cpu::instruction_set_t is) const noexcept {
50#define CASE_RET_STR(c) \
51 case iware::cpu::instruction_set_t::c: \
52 return #c
53 switch (is) {
54 CASE_RET_STR(s3d_now);
55 CASE_RET_STR(s3d_now_extended);
56 CASE_RET_STR(mmx);
57 CASE_RET_STR(mmx_extended);
58 CASE_RET_STR(sse);
59 CASE_RET_STR(sse2);
60 CASE_RET_STR(sse3);
61 CASE_RET_STR(ssse3);
62 CASE_RET_STR(sse4a);
63 CASE_RET_STR(sse41);
64 CASE_RET_STR(sse42);
65 CASE_RET_STR(aes);
66 CASE_RET_STR(avx);
67 CASE_RET_STR(avx2);
68 CASE_RET_STR(avx_512);
69 CASE_RET_STR(avx_512_f);
70 CASE_RET_STR(avx_512_cd);
71 CASE_RET_STR(avx_512_pf);
72 CASE_RET_STR(avx_512_er);
73 CASE_RET_STR(avx_512_vl);
74 CASE_RET_STR(avx_512_bw);
75 CASE_RET_STR(avx_512_bq);
76 CASE_RET_STR(avx_512_dq);
77 CASE_RET_STR(avx_512_ifma);
78 CASE_RET_STR(avx_512_vbmi);
79 CASE_RET_STR(hle);
80 CASE_RET_STR(bmi1);
81 CASE_RET_STR(bmi2);
82 CASE_RET_STR(adx);
83 CASE_RET_STR(mpx);
84 CASE_RET_STR(sha);
85 CASE_RET_STR(prefetch_wt1);
86 CASE_RET_STR(fma3);
87 CASE_RET_STR(fma4);
88 CASE_RET_STR(xop);
89 CASE_RET_STR(rd_rand);
90 CASE_RET_STR(x64);
91 CASE_RET_STR(x87_fpu);
92 default:
93 return "<unknown instruction set>";
94 }
95#undef CASE_RET_STR
96 }
97
98 const char *StringifyKernelVariantEnum(const iware::system::kernel_t variant) const noexcept {
99 switch (variant) {
100 case iware::system::kernel_t::windows_nt:
101 return "Windows NT";
102 case iware::system::kernel_t::linux:
103 return "Linux";
104 case iware::system::kernel_t::darwin:
105 return "Darwin";
106 case iware::system::kernel_t::unknown:
107 default:
108 return "<unknown kernel variant>";
109 }
110 }
111
112 const char *StringifyGPUVendorEnum(const iware::gpu::vendor_t vendor) const noexcept {
113 switch (vendor) {
114 case iware::gpu::vendor_t::intel:
115 return "Intel";
116 case iware::gpu::vendor_t::amd:
117 return "AMD";
118 case iware::gpu::vendor_t::nvidia:
119 return "Nvidia";
120 case iware::gpu::vendor_t::microsoft:
121 return "Microsoft";
122 case iware::gpu::vendor_t::qualcomm:
123 return "Qualcomm";
124 case iware::gpu::vendor_t::apple:
125 return "Apple";
126 case iware::gpu::vendor_t::unknown:
127 default:
128 return "<unknown gpu vendor>";
129 }
130 }
131
132 public: /* Tool Life Cycle */
133 void OnCreate() override;
134 void OnDraw(Scene *parent) override;
135 void OnDestroy() override;
136};
#define NS_ENIGMA_BEGIN
Enable/Disable Assertions.
Definition Macros.hpp:13
#define NS_ENIGMA_END
Definition Macros.hpp:14
#define CASE_RET_STR(c)
~SystemAndHardwareInfoTool()=default
void OnCreate() override
SystemAndHardwareInfoTool()=default
void OnDestroy() override
void OnDraw(Scene *parent) override
Definition Tool.hpp:10