| 123456789101112131415161718192021222324252627 |
- #include "ram.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- ark_ram_info_t ark_sys_ram_get_info(void) {
- ark_ram_info_t info = {0, 0};
- FILE *fp = fopen("/proc/meminfo", "r");
- if (!fp) return info;
-
- char line[256];
- uint64_t total_kb = 0;
- uint64_t avail_kb = 0;
-
- while (fgets(line, sizeof(line), fp)) {
- if (strncmp(line, "MemTotal:", 9) == 0) {
- sscanf(line, "MemTotal: %lu kB", &total_kb);
- } else if (strncmp(line, "MemAvailable:", 13) == 0) {
- sscanf(line, "MemAvailable: %lu kB", &avail_kb);
- }
- }
- fclose(fp);
-
- info.total_mb = total_kb / 1024;
- info.used_mb = (total_kb - avail_kb) / 1024;
- return info;
- }
|