123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #include "gpu_info.h"
- // Fallbacks for CPU mode
- #ifdef _WIN32
- #include <sysinfoapi.h>
- void cpu_check_ram(mem_info_t *resp) {
- resp->err = NULL;
- MEMORYSTATUSEX info;
- info.dwLength = sizeof(info);
- if (GlobalMemoryStatusEx(&info) != 0) {
- resp->count = 1;
- resp->total = info.ullTotalPhys;
- resp->free = info.ullAvailPhys;
- } else {
- resp->err = LOAD_ERR();
- }
- return;
- }
- #elif __linux__
- #include <errno.h>
- #include <string.h>
- #include <sys/sysinfo.h>
- void cpu_check_ram(mem_info_t *resp) {
- struct sysinfo info;
- resp->err = NULL;
- if (sysinfo(&info) != 0) {
- resp->err = strdup(strerror(errno));
- } else {
- resp->count = 1;
- resp->total = info.totalram * info.mem_unit;
- resp->free = info.freeram * info.mem_unit;
- }
- return;
- }
- #elif __APPLE__
- // TODO consider an Apple implementation that does something useful
- // mem_info_t cpu_check_ram() {
- // mem_info_t resp = {0, 0, NULL};
- // return resp;
- // }
- #else
- #error "Unsupported platform"
- #endif
|