]> Git Repo - J-linux.git/blob - io_uring/memmap.h
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / io_uring / memmap.h
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 void io_free_region(struct io_ring_ctx *ctx, struct io_mapped_region *mr);
26 int io_create_region(struct io_ring_ctx *ctx, struct io_mapped_region *mr,
27                      struct io_uring_region_desc *reg);
28
29 static inline void *io_region_get_ptr(struct io_mapped_region *mr)
30 {
31         return mr->vmap_ptr;
32 }
33
34 static inline bool io_region_is_set(struct io_mapped_region *mr)
35 {
36         return !!mr->nr_pages;
37 }
38
39 #endif
This page took 0.027509 seconds and 4 git commands to generate.