Message ID | mvmpnomohfm.fsf@suse.de |
---|---|
State | New |
Headers | show |
Series | linux-user: Implement membarrier syscall | expand |
On 13/05/2019 11:02, Andreas Schwab wrote: > Signed-off-by: Andreas Schwab <schwab@suse.de> > --- > linux-user/syscall.c | 7 +++++++ > 1 file changed, 7 insertions(+) > Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Le 13/05/2019 à 11:02, Andreas Schwab a écrit : > Signed-off-by: Andreas Schwab <schwab@suse.de> > --- > linux-user/syscall.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/linux-user/syscall.c b/linux-user/syscall.c > index f5ff6f5dc8..80399f4eb0 100644 > --- a/linux-user/syscall.c > +++ b/linux-user/syscall.c > @@ -313,6 +313,9 @@ _syscall3(int, getrandom, void *, buf, size_t, buflen, unsigned int, flags) > _syscall5(int, kcmp, pid_t, pid1, pid_t, pid2, int, type, > unsigned long, idx1, unsigned long, idx2) > #endif > +#if defined(TARGET_NR_membarrier) && defined(__NR_membarrier) > +_syscall2(int, membarrier, int, cmd, int, flags) > +#endif > > static bitmask_transtbl fcntl_flags_tbl[] = { > { TARGET_O_ACCMODE, TARGET_O_WRONLY, O_ACCMODE, O_WRONLY, }, > @@ -11620,6 +11623,10 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, > /* PowerPC specific. */ > return do_swapcontext(cpu_env, arg1, arg2, arg3); > #endif > +#if defined TARGET_NR_membarrier && defined __NR_membarrier > + case TARGET_NR_membarrier: > + return get_errno(membarrier(arg1, arg2)); > +#endif > > default: > qemu_log_mask(LOG_UNIMP, "Unsupported syscall: %d\n", num); > Applied to my linux-user branch. Thanks, Laurent
diff --git a/linux-user/syscall.c b/linux-user/syscall.c index f5ff6f5dc8..80399f4eb0 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -313,6 +313,9 @@ _syscall3(int, getrandom, void *, buf, size_t, buflen, unsigned int, flags) _syscall5(int, kcmp, pid_t, pid1, pid_t, pid2, int, type, unsigned long, idx1, unsigned long, idx2) #endif +#if defined(TARGET_NR_membarrier) && defined(__NR_membarrier) +_syscall2(int, membarrier, int, cmd, int, flags) +#endif static bitmask_transtbl fcntl_flags_tbl[] = { { TARGET_O_ACCMODE, TARGET_O_WRONLY, O_ACCMODE, O_WRONLY, }, @@ -11620,6 +11623,10 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1, /* PowerPC specific. */ return do_swapcontext(cpu_env, arg1, arg2, arg3); #endif +#if defined TARGET_NR_membarrier && defined __NR_membarrier + case TARGET_NR_membarrier: + return get_errno(membarrier(arg1, arg2)); +#endif default: qemu_log_mask(LOG_UNIMP, "Unsupported syscall: %d\n", num);
Signed-off-by: Andreas Schwab <schwab@suse.de> --- linux-user/syscall.c | 7 +++++++ 1 file changed, 7 insertions(+)