xref: /linux-6.15/include/linux/memfd.h (revision fa00b8ef)
15d752600SMike Kravetz /* SPDX-License-Identifier: GPL-2.0 */
25d752600SMike Kravetz #ifndef __LINUX_MEMFD_H
35d752600SMike Kravetz #define __LINUX_MEMFD_H
45d752600SMike Kravetz 
55d752600SMike Kravetz #include <linux/file.h>
65d752600SMike Kravetz 
75d752600SMike Kravetz #ifdef CONFIG_MEMFD_CREATE
8f7b8f70bSLuca Vizzarro extern long memfd_fcntl(struct file *file, unsigned int cmd, unsigned int arg);
989c1905dSVivek Kasireddy struct folio *memfd_alloc_folio(struct file *memfd, pgoff_t idx);
10*fa00b8efSLorenzo Stoakes /*
11*fa00b8efSLorenzo Stoakes  * Check for any existing seals on mmap, return an error if access is denied due
12*fa00b8efSLorenzo Stoakes  * to sealing, or 0 otherwise.
13*fa00b8efSLorenzo Stoakes  *
14*fa00b8efSLorenzo Stoakes  * We also update VMA flags if appropriate by manipulating the VMA flags pointed
15*fa00b8efSLorenzo Stoakes  * to by vm_flags_ptr.
16*fa00b8efSLorenzo Stoakes  */
17*fa00b8efSLorenzo Stoakes int memfd_check_seals_mmap(struct file *file, unsigned long *vm_flags_ptr);
185d752600SMike Kravetz #else
memfd_fcntl(struct file * f,unsigned int c,unsigned int a)19f7b8f70bSLuca Vizzarro static inline long memfd_fcntl(struct file *f, unsigned int c, unsigned int a)
205d752600SMike Kravetz {
215d752600SMike Kravetz 	return -EINVAL;
225d752600SMike Kravetz }
memfd_alloc_folio(struct file * memfd,pgoff_t idx)2389c1905dSVivek Kasireddy static inline struct folio *memfd_alloc_folio(struct file *memfd, pgoff_t idx)
2489c1905dSVivek Kasireddy {
2589c1905dSVivek Kasireddy 	return ERR_PTR(-EINVAL);
2689c1905dSVivek Kasireddy }
memfd_check_seals_mmap(struct file * file,unsigned long * vm_flags_ptr)27*fa00b8efSLorenzo Stoakes static inline int memfd_check_seals_mmap(struct file *file,
28*fa00b8efSLorenzo Stoakes 					 unsigned long *vm_flags_ptr)
298ec396d0SLorenzo Stoakes {
30*fa00b8efSLorenzo Stoakes 	return 0;
318ec396d0SLorenzo Stoakes }
325d752600SMike Kravetz #endif
335d752600SMike Kravetz 
345d752600SMike Kravetz #endif /* __LINUX_MEMFD_H */
35