Fixed the CPU class to work with a dictionary - also switched over all

the setCPU functions.
This commit is contained in:
ganome 2025-01-29 11:26:54 -07:00
parent 2149ec7092
commit 85d309413e
Signed by untrusted user who does not match committer: Ganome
GPG Key ID: 944DE53336D81B83
4 changed files with 65 additions and 87 deletions

View File

@ -3,29 +3,28 @@
/* this function's Incoming arguments are a pointer to the CPU class
"CPU *pCPU" and the new mainclock speed
*/
void setCPUclock(CPU *pCPU, float mmainclock, float mboostclock) {
cout << "Coming from the setCPUclock function in setcpu.h" << endl;
pCPU->mainclock = mmainclock;
pCPU->boostclock = mboostclock;
cout << "Incoming main clock variable was: " << mmainclock << endl;
cout << "Leaving setCPUclock()\n\n";
void setCPUmainclock(CPU *pCPU, string mkey, string mmainclock) {
pCPU->HardwareSpecs[mkey] = mmainclock;
}
void setCPUarch(CPU *pCPU, std::string march) {
pCPU->architecture = march;
void setCPUboostclock(CPU *pCPU, string mkey, string mboostclock) {
pCPU->HardwareSpecs[mkey] = mboostclock;
}
void setCPUbits(CPU *pCPU, int mbits) {
pCPU->bits64 = mbits;
void setCPUarch(CPU *pCPU, string mkey, std::string march) {
pCPU->HardwareSpecs[mkey] = march;
}
void setCPUcores(CPU *pCPU, int mcores) {
pCPU->cores = mcores;
void setCPUbits(CPU *pCPU, string mkey, int mbits) {
pCPU->HardwareSpecs[mkey] = mbits;
}
void setCPUthreads(CPU *pCPU, int mthreads) {
pCPU->threads = mthreads;
void setCPUcores(CPU *pCPU, string mkey, int mcores) {
pCPU->HardwareSpecs[mkey] = mcores;
}
void setCPUthreads(CPU *pCPU, string mkey, int mthreads) {
pCPU->HardwareSpecs[mkey] = mthreads;
// create an IF catch to set threads cores * 2 as a fall back
}

View File

@ -4,10 +4,10 @@
"Hardware *pHardware" and the new mainclock speed
*/
void setHardwaremanufacturer(Hardware *pHardware, string mmanufacturer) {
cout << "Coming from the setHardwaremanufacturer function in setHardware" << endl;
// cout << "Coming from the setHardwaremanufacturer function in setHardware" << endl;
pHardware->manufacturer = mmanufacturer;
cout << "Leaving setHardwaremanufacturer()\n\n";
// cout << "Leaving setHardwaremanufacturer()\n\n";
}
void setHardwarereleasedyear(Hardware *pHardware, int mreleasedyear) {
@ -20,9 +20,9 @@ void setHardwaremodel(Hardware *pHardware, string mmodel) {
void Hardwaredictadd(CPU *pHardware, string mkey, string mvalue) {
cout << "The incoming key/value is: " << mkey << "/" << mvalue << endl;
cout << "\nThe current manufacturer is: " << pHardware->HardwareSpecs[mkey] << endl;
// cout << "The incoming key/value is: " << mkey << "/" << mvalue << endl;
// cout << "\nThe current manufacturer is: " << pHardware->HardwareSpecs[mkey] << endl;
pHardware->HardwareSpecs[mkey] = mvalue;
cout << "The new manufacturer is: " << pHardware->HardwareSpecs[mkey];
// cout << "The new manufacturer is: " << pHardware->HardwareSpecs[mkey];
}

View File

@ -14,14 +14,8 @@ class Hardware {
std::string model;
int releasedyear;
std::map<std::string, std::string> HardwareSpecs = {
{"manufacturer", "The Gnomes"},
{"model", "Honey Bomb"},
{"ReleasedYear", "2025"},
};
std::string myval = HardwareSpecs.at("manufacturer");
// HardwareSpecs.at("manufacturer") = "tester";
// example of how to set a dictionary item
// std::string myval = HardwareSpecs.at("manufacturer");
};
@ -33,60 +27,44 @@ class Mobo: public Hardware {
int dualchannel; // This is an int so 1 = dualchannel and 2 = quad channel
int ramspeed;
std::string comment;
Mobo() {
manufacturer = "Forest Gnomes";
model = "HoneyJar";
releasedyear = 2025;
pciegen = 4;
piceslots = 3;
dimmslots = 2;
dualchannel = 1;
ramspeed = 6000;
comment = "If on AM5 platform - update BIOS before booting!";
std::map<std::string, std::string> HardwareSpecs = {
{"manufacturer", "The Gnomes part 2"},
{"model", "Honey Bomb"},
{"ReleasedYear", "2025"},
{"pciegen", "4"},
{"pcieslots", "3"},
{"dimmslots", "2"},
{"ramchannels", "2"},
{"ramspeed", "6000"},
{"comment", "If on AM5 platform - update BIOS before booting!"},
};
};
class CPU: public Hardware {
public:
bool bits64;
bool igpu;
int igpusize;
int cores;
int threads;
int l1cache;
int l2cache;
int l3cache;
int pcielanes;
int maxram;
float mainclock;
float boostclock;
std::string architecture;
std::string memoryrange;
std::string microcode;
std::string kerneldriver;
std::string comment; // This shoule be used to warn the user about updating BIOS on AM5 before booting
CPU() {
manufacturer = "Forest Gnomes";
model = "HoneyPot";
releasedyear = 2025;
bits64 = true;
igpu = false;
igpusize = 0;
cores = 4;
threads = 2;
l1cache = 32;
l2cache = 32;
l3cache = 32;
pcielanes = 24;
maxram = 128;
mainclock = 2;
boostclock = 2.2;
architecture = "x86_64";
memoryrange = "00:00";
microcode = "acorns";
kerneldriver = "Forest Gnome Special";
comment = "";
std::map<std::string, std::string> HardwareSpecs = {
{"manufacturer", "The Gnomes part 2"},
{"model", "Honey Bomb"},
{"ReleasedYear", "2025"},
{"bits", "64"},
{"igpu", "false"},
{"igpusize", "N/A"},
{"cores", "4"},
{"threads", "8"},
{"l1cache", "32Mb"},
{"l2cache", "32Mb"},
{"l3cache", "32Mb"},
{"pcielanes", "24"},
{"maxram", "256Gb"},
{"mainclock", "3Ghz"},
{"boostclock", "3.2Ghz"},
{"architecture", "x86_64"},
{"memoryrange", "00:00 - set me!"},
{"microcode", "unchanged"},
{"kerneldriver", "intel"},
{"comment", "If on AM5 platform - update BIOS before booting!"},
};
};

View File

@ -22,21 +22,22 @@ int main() {
// A7800x3d->manufacturer = "AMD";
// Cat out both CPU's that have been created for sanity
cout << "i75820k manufacturer is: " << Ii75820k->manufacturer << endl;
cout << "A7800x3d manufacturer is: " << A7800x3d->manufacturer << endl;
// cout << "i75820k manufacturer is: " << Ii75820k->HardwareSpecs["manufacturer"] << endl;
// cout << "A7800x3d manufacturer is: " << A7800x3d->HardwareSpecs["manufacturer"] << endl;
cout << "Lets try the setCPU function!\n";
cout << "A7800x3d main clock speed is: " << A7800x3d->mainclock << endl;
cout << "A7800x3d main clock speed is: " << A7800x3d->HardwareSpecs["mainclock"] << endl;
setHardwaremanufacturer(A7800x3d, "AMD");
setCPUcores(A7800x3d, 8);
setCPUthreads(A7800x3d, 16);
setCPUclock(A7800x3d, 4.8, 5.1); // clock is base, boost
cout << "A7800x3d new main clock speed is: " << A7800x3d->mainclock << endl;
cout << "A7800x3d manufacturer is: " << A7800x3d->manufacturer << "\n\n\n";
setCPUcores(A7800x3d, "cores", 8);
setCPUthreads(A7800x3d, "threads", 16);
setCPUmainclock(A7800x3d, "mainclock", "4.8 Ghz");
setCPUboostclock(A7800x3d, "boostclock", "5.2 ghz");
cout << "\n\nA7800x3d new main/boost speed is: " << A7800x3d->HardwareSpecs["mainclock"] << "/" << A7800x3d->HardwareSpecs["boostclock"] << endl;
// cout << "A7800x3d manufacturer is: " << A7800x3d->HardwareSpecs["manufacturer"] << "\n\n\n";
// Start of Hardware Dictionary Test
// Hardwaredictadd(A7800x3d, "manufacturer", "Ganome Himself");
// Hardwaredictadd(A7800x3d, "manufacturer", "Ganome Himself");
// cout << "Parent Hardware() dict manufacturer is: " << A7800x3d->HardwareSpecs["manufacturer"];
system("sleep 3s");
return 0;