diff options
| author | Philippe Mathieu-Daudé <philmd@linaro.org> | 2025-01-16 17:33:13 +0100 |
|---|---|---|
| committer | Philippe Mathieu-Daudé <philmd@linaro.org> | 2025-03-09 14:54:32 +0100 |
| commit | 1405d7e60d8c98a28b29885f70da4f2e4407fbc6 (patch) | |
| tree | d3c6195b307466b0dd7ee4d0125a3b6513712b86 /include | |
| parent | 84d66261bef3cdfea3bd1fb052a7ba38abb34b18 (diff) | |
| download | focaccia-qemu-1405d7e60d8c98a28b29885f70da4f2e4407fbc6.tar.gz focaccia-qemu-1405d7e60d8c98a28b29885f70da4f2e4407fbc6.zip | |
user: Extract common MMAP API to 'user/mmap.h'
Keep common MMAP-related declarations in a single place. Note, this disable ThreadSafetyAnalysis on Linux for: - mmap_fork_start() - mmap_fork_end(). Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Warner Losh <imp@bsdimp.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20250308122842.76377-4-philmd@linaro.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/user/mmap.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/include/user/mmap.h b/include/user/mmap.h new file mode 100644 index 0000000000..4d5e9aac70 --- /dev/null +++ b/include/user/mmap.h @@ -0,0 +1,32 @@ +/* + * MMAP declarations for QEMU user emulation + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef USER_MMAP_H +#define USER_MMAP_H + +#include "user/abitypes.h" + +/* + * mmap_next_start: The base address for the next mmap without hint, + * increased after each successful map, starting at task_unmapped_base. + * This is an optimization within QEMU and not part of ADDR_COMPAT_LAYOUT. + */ +extern abi_ulong mmap_next_start; + +int target_mprotect(abi_ulong start, abi_ulong len, int prot); + +abi_long target_mmap(abi_ulong start, abi_ulong len, int prot, + int flags, int fd, off_t offset); +int target_munmap(abi_ulong start, abi_ulong len); +abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size, + abi_ulong new_size, unsigned long flags, + abi_ulong new_addr); + +abi_ulong mmap_find_vma(abi_ulong start, abi_ulong size, abi_ulong alignment); + +void TSA_NO_TSA mmap_fork_start(void); +void TSA_NO_TSA mmap_fork_end(int child); + +#endif |