cOMS/system/SystemInfo.h

70 lines
1009 B
C

/**
* Jingga
*
* @copyright Jingga
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
#ifndef TOS_SYSTEM_INFO_H
#define TOS_SYSTEM_INFO_H
#include "../stdlib/Types.h"
#include "../architecture/CpuInfo.h"
// @todo add vendor name
struct MainboardInfo {
char name[64];
char serial_number[64];
};
// @todo add ipv6
struct NetworkInfo {
char slot[64];
byte mac[24];
};
struct OSInfo {
char vendor[16];
char name[64];
int32 major;
int32 minor;
};
struct RamInfo {
uint32 memory;
};
struct GpuInfo {
char name[64];
uint32 vram;
};
struct DisplayInfo {
char name[64];
int32 width;
int32 height;
int32 hz;
bool is_primary;
};
struct SystemInfo {
OSInfo os;
MainboardInfo mainboard;
NetworkInfo network[4];
int32 network_count;
CpuInfo cpu;
RamInfo ram;
GpuInfo gpu[3];
int32 gpu_count;
DisplayInfo display[6];
int32 display_count;
int32 language;
};
#endif