diff options
author | Stacey Son <sson@FreeBSD.org> | 2023-09-25 21:26:58 +0300 |
---|---|---|
committer | Warner Losh <imp@bsdimp.com> | 2023-10-03 17:14:07 -0600 |
commit | 87dcb4ad485424dcbfedbc7a298279e8738f1a40 (patch) | |
tree | e3d079da85ce0faca86224de14df51987457e8b4 /bsd-user/bsd-mem.h | |
parent | 6765e988e12825e9464a10b6451aeb25b29bfbc3 (diff) |
bsd-user: Implement mmap(2) and munmap(2)
Signed-off-by: Stacey Son <sson@FreeBSD.org>
Signed-off-by: Karim Taha <kariem.taha2.7@gmail.com>
Reviewed-by: Warner Losh <imp@bsdimp.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230925182709.4834-13-kariem.taha2.7@gmail.com>
Diffstat (limited to 'bsd-user/bsd-mem.h')
-rw-r--r-- | bsd-user/bsd-mem.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/bsd-user/bsd-mem.h b/bsd-user/bsd-mem.h index d865e0807d..76b504f70c 100644 --- a/bsd-user/bsd-mem.h +++ b/bsd-user/bsd-mem.h @@ -61,4 +61,24 @@ extern struct bsd_shm_regions bsd_shm_regions[]; extern abi_ulong target_brk; extern abi_ulong initial_target_brk; +/* mmap(2) */ +static inline abi_long do_bsd_mmap(void *cpu_env, abi_long arg1, abi_long arg2, + abi_long arg3, abi_long arg4, abi_long arg5, abi_long arg6, abi_long arg7, + abi_long arg8) +{ + if (regpairs_aligned(cpu_env) != 0) { + arg6 = arg7; + arg7 = arg8; + } + return get_errno(target_mmap(arg1, arg2, arg3, + target_to_host_bitmask(arg4, mmap_flags_tbl), + arg5, target_arg64(arg6, arg7))); +} + +/* munmap(2) */ +static inline abi_long do_bsd_munmap(abi_long arg1, abi_long arg2) +{ + return get_errno(target_munmap(arg1, arg2)); +} + #endif /* BSD_USER_BSD_MEM_H */ |