16f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 29183df25SDavid Herrmann #ifndef _UAPI_LINUX_MEMFD_H 39183df25SDavid Herrmann #define _UAPI_LINUX_MEMFD_H 49183df25SDavid Herrmann 5749df87bSMike Kravetz #include <asm-generic/hugetlb_encode.h> 6749df87bSMike Kravetz 79183df25SDavid Herrmann /* flags for memfd_create(2) (unsigned int) */ 89183df25SDavid Herrmann #define MFD_CLOEXEC 0x0001U 99183df25SDavid Herrmann #define MFD_ALLOW_SEALING 0x0002U 10749df87bSMike Kravetz #define MFD_HUGETLB 0x0004U 11*105ff533SJeff Xu /* not executable and sealed to prevent changing to executable. */ 12*105ff533SJeff Xu #define MFD_NOEXEC_SEAL 0x0008U 13*105ff533SJeff Xu /* executable */ 14*105ff533SJeff Xu #define MFD_EXEC 0x0010U 15749df87bSMike Kravetz 16749df87bSMike Kravetz /* 17749df87bSMike Kravetz * Huge page size encoding when MFD_HUGETLB is specified, and a huge page 18749df87bSMike Kravetz * size other than the default is desired. See hugetlb_encode.h. 19749df87bSMike Kravetz * All known huge page size encodings are provided here. It is the 20749df87bSMike Kravetz * responsibility of the application to know which sizes are supported on 21749df87bSMike Kravetz * the running system. See mmap(2) man page for details. 22749df87bSMike Kravetz */ 23749df87bSMike Kravetz #define MFD_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT 24749df87bSMike Kravetz #define MFD_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK 25749df87bSMike Kravetz 26749df87bSMike Kravetz #define MFD_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB 27749df87bSMike Kravetz #define MFD_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB 28749df87bSMike Kravetz #define MFD_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB 29749df87bSMike Kravetz #define MFD_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB 30749df87bSMike Kravetz #define MFD_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB 31749df87bSMike Kravetz #define MFD_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB 3220916d46SAnshuman Khandual #define MFD_HUGE_32MB HUGETLB_FLAG_ENCODE_32MB 33749df87bSMike Kravetz #define MFD_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB 3420916d46SAnshuman Khandual #define MFD_HUGE_512MB HUGETLB_FLAG_ENCODE_512MB 35749df87bSMike Kravetz #define MFD_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB 36749df87bSMike Kravetz #define MFD_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB 37749df87bSMike Kravetz #define MFD_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB 389183df25SDavid Herrmann 399183df25SDavid Herrmann #endif /* _UAPI_LINUX_MEMFD_H */ 40