xref: /linux/io_uring/memmap.h (revision 24168c5e6dfbdd5b414f048f47f75d64533296ca)
1 #ifndef IO_URING_MEMMAP_H
2 #define IO_URING_MEMMAP_H
3 
4 struct page **io_pin_pages(unsigned long ubuf, unsigned long len, int *npages);
5 void io_pages_free(struct page ***pages, int npages);
6 int io_uring_mmap_pages(struct io_ring_ctx *ctx, struct vm_area_struct *vma,
7 			struct page **pages, int npages);
8 
9 void *io_pages_map(struct page ***out_pages, unsigned short *npages,
10 		   size_t size);
11 void io_pages_unmap(void *ptr, struct page ***pages, unsigned short *npages,
12 		    bool put_pages);
13 
14 void *__io_uaddr_map(struct page ***pages, unsigned short *npages,
15 		     unsigned long uaddr, size_t size);
16 
17 #ifndef CONFIG_MMU
18 unsigned int io_uring_nommu_mmap_capabilities(struct file *file);
19 #endif
20 unsigned long io_uring_get_unmapped_area(struct file *file, unsigned long addr,
21 					 unsigned long len, unsigned long pgoff,
22 					 unsigned long flags);
23 int io_uring_mmap(struct file *file, struct vm_area_struct *vma);
24 
25 #endif
26