brintos

brintos / linux-shallow public Read only

0
0
Text · 814 B · 8eb3d75 Raw
47 lines · c
1// SPDX-License-Identifier: GPL-2.02#define _GNU_SOURCE3#define __EXPORTED_HEADERS__4 5#include <stdio.h>6#include <stdlib.h>7#include <linux/fcntl.h>8#include <linux/memfd.h>9#include <unistd.h>10#include <sys/syscall.h>11 12#include "common.h"13 14int hugetlbfs_test = 0;15 16/*17 * Copied from mlock2-tests.c18 */19unsigned long default_huge_page_size(void)20{21	unsigned long hps = 0;22	char *line = NULL;23	size_t linelen = 0;24	FILE *f = fopen("/proc/meminfo", "r");25 26	if (!f)27		return 0;28	while (getline(&line, &linelen, f) > 0) {29		if (sscanf(line, "Hugepagesize:       %lu kB", &hps) == 1) {30			hps <<= 10;31			break;32		}33	}34 35	free(line);36	fclose(f);37	return hps;38}39 40int sys_memfd_create(const char *name, unsigned int flags)41{42	if (hugetlbfs_test)43		flags |= MFD_HUGETLB;44 45	return syscall(__NR_memfd_create, name, flags);46}47