Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.15.
 1// SPDX-License-Identifier: GPL-2.0
 2#define _GNU_SOURCE
 3#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.c
18 */
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}