#define MFD_ALLOW_SEALING 0x0002U
#endif
-int qemu_memfd_create(const char *name, size_t size,
+#ifndef MFD_HUGETLB
+#define MFD_HUGETLB 0x0004U
+#endif
+
+int qemu_memfd_create(const char *name, size_t size, bool hugetlb,
unsigned int seals, Error **errp)
{
#ifdef CONFIG_LINUX
if (seals) {
flags |= MFD_ALLOW_SEALING;
}
+ if (hugetlb) {
+ flags |= MFD_HUGETLB;
+ }
mfd = memfd_create(name, flags);
if (mfd < 0) {
int *fd, Error **errp)
{
void *ptr;
- int mfd = qemu_memfd_create(name, size, seals, NULL);
+ int mfd = qemu_memfd_create(name, size, false, seals, NULL);
/* some systems have memfd without sealing */
if (mfd == -1) {
- mfd = qemu_memfd_create(name, size, 0, NULL);
+ mfd = qemu_memfd_create(name, size, false, 0, NULL);
}
if (mfd == -1) {