WIP FPC-III support
[linux/fpc-iii.git] / tools / testing / selftests / memfd / common.c
blob8eb3d75f6e60cacc5e9671578d25caf8ad3bc28c
1 // SPDX-License-Identifier: GPL-2.0
2 #define _GNU_SOURCE
3 #define __EXPORTED_HEADERS__
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>
12 #include "common.h"
14 int hugetlbfs_test = 0;
17 * Copied from mlock2-tests.c
19 unsigned long default_huge_page_size(void)
21 unsigned long hps = 0;
22 char *line = NULL;
23 size_t linelen = 0;
24 FILE *f = fopen("/proc/meminfo", "r");
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;
35 free(line);
36 fclose(f);
37 return hps;
40 int sys_memfd_create(const char *name, unsigned int flags)
42 if (hugetlbfs_test)
43 flags |= MFD_HUGETLB;
45 return syscall(__NR_memfd_create, name, flags);