xref: /qemu/include/user/mmap.h (revision 5136598e2667f35ef3dc1d757616a266bd5eb3a2)
1*1405d7e6SPhilippe Mathieu-Daudé /*
2*1405d7e6SPhilippe Mathieu-Daudé  * MMAP declarations for QEMU user emulation
3*1405d7e6SPhilippe Mathieu-Daudé  *
4*1405d7e6SPhilippe Mathieu-Daudé  * SPDX-License-Identifier: GPL-2.0-or-later
5*1405d7e6SPhilippe Mathieu-Daudé  */
6*1405d7e6SPhilippe Mathieu-Daudé #ifndef USER_MMAP_H
7*1405d7e6SPhilippe Mathieu-Daudé #define USER_MMAP_H
8*1405d7e6SPhilippe Mathieu-Daudé 
9*1405d7e6SPhilippe Mathieu-Daudé #include "user/abitypes.h"
10*1405d7e6SPhilippe Mathieu-Daudé 
11*1405d7e6SPhilippe Mathieu-Daudé /*
12*1405d7e6SPhilippe Mathieu-Daudé  * mmap_next_start: The base address for the next mmap without hint,
13*1405d7e6SPhilippe Mathieu-Daudé  * increased after each successful map, starting at task_unmapped_base.
14*1405d7e6SPhilippe Mathieu-Daudé  * This is an optimization within QEMU and not part of ADDR_COMPAT_LAYOUT.
15*1405d7e6SPhilippe Mathieu-Daudé  */
16*1405d7e6SPhilippe Mathieu-Daudé extern abi_ulong mmap_next_start;
17*1405d7e6SPhilippe Mathieu-Daudé 
18*1405d7e6SPhilippe Mathieu-Daudé int target_mprotect(abi_ulong start, abi_ulong len, int prot);
19*1405d7e6SPhilippe Mathieu-Daudé 
20*1405d7e6SPhilippe Mathieu-Daudé abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
21*1405d7e6SPhilippe Mathieu-Daudé                      int flags, int fd, off_t offset);
22*1405d7e6SPhilippe Mathieu-Daudé int target_munmap(abi_ulong start, abi_ulong len);
23*1405d7e6SPhilippe Mathieu-Daudé abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size,
24*1405d7e6SPhilippe Mathieu-Daudé                        abi_ulong new_size, unsigned long flags,
25*1405d7e6SPhilippe Mathieu-Daudé                        abi_ulong new_addr);
26*1405d7e6SPhilippe Mathieu-Daudé 
27*1405d7e6SPhilippe Mathieu-Daudé abi_ulong mmap_find_vma(abi_ulong start, abi_ulong size, abi_ulong alignment);
28*1405d7e6SPhilippe Mathieu-Daudé 
29*1405d7e6SPhilippe Mathieu-Daudé void TSA_NO_TSA mmap_fork_start(void);
30*1405d7e6SPhilippe Mathieu-Daudé void TSA_NO_TSA mmap_fork_end(int child);
31*1405d7e6SPhilippe Mathieu-Daudé 
32*1405d7e6SPhilippe Mathieu-Daudé #endif
33