- u32 pages_avail, page_size, mem;
- u8 *s = 0;
- u8 *p = 0;
- char * numa_path = "/sys/devices/system/node/node%u/";
- char * nonnuma_path = "/sys/kernel/mm/";
- char * suffix = "hugepages/hugepages-%ukB/free_hugepages%c";
- char * path = NULL;
- struct stat sb_numa, sb_nonnuma;
-
- p = format(p, numa_path, c);
- if (stat(numa_path, &sb_numa) < 0)
- sb_numa.st_mode = 0;
-
- if (stat(nonnuma_path, &sb_nonnuma) < 0)
- sb_nonnuma.st_mode = 0;
-
- if (S_ISDIR(sb_numa.st_mode)) {
- path = (char*)format((u8*)path, "%s%s", p, suffix);
- } else if (S_ISDIR(sb_nonnuma.st_mode)) {
- path = (char*)format((u8*)path, "%s%s", nonnuma_path, suffix);
- } else {
- use_1g = 0;
- use_2m = 0;
- vec_free(p);
- break;
- }