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