On Sat, Aug 19, 2023 at 3:49 AM Karim Taha <kariem.taha...@gmail.com> wrote:
> From: Stacey Son <s...@freebsd.org> > > Signed-off-by: Stacey Son <s...@freebsd.org> > Signed-off-by: Karim Taha <kariem.taha...@gmail.com> > --- > bsd-user/bsd-mem.h | 20 ++++++++++++++++++++ > bsd-user/freebsd/os-syscall.c | 9 +++++++++ > 2 files changed, 29 insertions(+) > Reviewed-by: Warner Losh <i...@bsdimp.com> > diff --git a/bsd-user/bsd-mem.h b/bsd-user/bsd-mem.h > index fed7b7cd80..057c995a6e 100644 > --- a/bsd-user/bsd-mem.h > +++ b/bsd-user/bsd-mem.h > @@ -62,4 +62,24 @@ extern abi_ulong bsd_target_brk; > extern abi_ulong bsd_target_original_brk; > extern abi_ulong brk_page; > > +/* 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 */ > diff --git a/bsd-user/freebsd/os-syscall.c b/bsd-user/freebsd/os-syscall.c > index 7e2a395e0f..3525d39d7b 100644 > --- a/bsd-user/freebsd/os-syscall.c > +++ b/bsd-user/freebsd/os-syscall.c > @@ -486,6 +486,15 @@ static abi_long freebsd_syscall(void *cpu_env, int > num, abi_long arg1, > /* > * Memory management system calls. > */ > + case TARGET_FREEBSD_NR_mmap: /* mmap(2) */ > + ret = do_bsd_mmap(cpu_env, arg1, arg2, arg3, arg4, arg5, arg6, > arg7, > + arg8); > + break; > + > + case TARGET_FREEBSD_NR_munmap: /* munmap(2) */ > + ret = do_bsd_munmap(arg1, arg2); > + break; > + > #if defined(__FreeBSD_version) && __FreeBSD_version >= 1300048 > case TARGET_FREEBSD_NR_shm_open2: /* shm_open2(2) */ > ret = do_freebsd_shm_open2(arg1, arg2, arg3, arg4, arg5); > -- > 2.40.0 > >