Skip to content

Commit

Permalink
bsd-user: Add glue for the freebsd11_stat syscalls
Browse files Browse the repository at this point in the history
Add glue to call the freebsd11_stat syscalls to the freebsd_syscall:

freebsd11_stat
freebsd11_lstat
freebsd11_fstat
freebsd11_fstatat
freebsd11_nstat, freebsd11_nfstat, freebsd11_nlstat
fstatat
fstat

Signed-off-by: Warner Losh <imp@bsdimp.com>
Signed-off-by: Karim Taha <kariem.taha2.7@gmail.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Warner Losh <imp@bsdimp.com>
  • Loading branch information
bsdimp committed Aug 28, 2023
1 parent c97c1f3 commit e800e6c
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions bsd-user/freebsd/os-syscall.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@
#include "bsd-file.h"
#include "bsd-proc.h"

/* *BSD dependent syscall shims */
#include "os-stat.h"

/* I/O */
safe_syscall3(int, open, const char *, path, int, flags, mode_t, mode);
safe_syscall4(int, openat, int, fd, const char *, path, int, flags, mode_t,
Expand Down Expand Up @@ -482,6 +485,45 @@ static abi_long freebsd_syscall(void *cpu_env, int num, abi_long arg1,
ret = do_bsd_undelete(arg1);
break;

/*
* stat system calls
*/
case TARGET_FREEBSD_NR_freebsd11_stat: /* stat(2) */
ret = do_freebsd11_stat(arg1, arg2);
break;

case TARGET_FREEBSD_NR_freebsd11_lstat: /* lstat(2) */
ret = do_freebsd11_lstat(arg1, arg2);
break;

case TARGET_FREEBSD_NR_freebsd11_fstat: /* fstat(2) */
ret = do_freebsd11_fstat(arg1, arg2);
break;

case TARGET_FREEBSD_NR_fstat: /* fstat(2) */
ret = do_freebsd_fstat(arg1, arg2);
break;

case TARGET_FREEBSD_NR_freebsd11_fstatat: /* fstatat(2) */
ret = do_freebsd11_fstatat(arg1, arg2, arg3, arg4);
break;

case TARGET_FREEBSD_NR_fstatat: /* fstatat(2) */
ret = do_freebsd_fstatat(arg1, arg2, arg3, arg4);
break;

case TARGET_FREEBSD_NR_freebsd11_nstat: /* undocumented */
ret = do_freebsd11_nstat(arg1, arg2);
break;

case TARGET_FREEBSD_NR_freebsd11_nfstat: /* undocumented */
ret = do_freebsd11_nfstat(arg1, arg2);
break;

case TARGET_FREEBSD_NR_freebsd11_nlstat: /* undocumented */
ret = do_freebsd11_nlstat(arg1, arg2);
break;

/*
* sys{ctl, arch, call}
*/
Expand Down

0 comments on commit e800e6c

Please sign in to comment.