[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 05/19] linux-user: Define macro for size of h
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-devel] [PATCH v2 05/19] linux-user: Define macro for size of host kernel sigset_t |
Date: |
Mon, 6 Jun 2016 23:47:20 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 |
Le 27/05/2016 à 16:51, Peter Maydell a écrit :
> Some host syscalls take an argument specifying the size of a
> host kernel's sigset_t (which isn't necessarily the same as
> that of the host libc's type of that name). Instead of hardcoding
> _NSIG / 8 where we do this, define and use a SIGSET_T_SIZE macro.
>
> Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
> ---
> linux-user/syscall.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index df70255..e4b7404 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -119,6 +119,10 @@ int __clone2(int (*fn)(void *), void *child_stack_base,
> #define VFAT_IOCTL_READDIR_BOTH _IOR('r', 1, struct
> linux_dirent [2])
> #define VFAT_IOCTL_READDIR_SHORT _IOR('r', 2, struct
> linux_dirent [2])
>
> +/* This is the size of the host kernel's sigset_t, needed where we make
> + * direct system calls that take a sigset_t pointer and a size.
> + */
> +#define SIGSET_T_SIZE (_NSIG / 8)
>
> #undef _syscall0
> #undef _syscall1
> @@ -7221,7 +7225,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long
> arg1,
> /* Extract the two packed args for the sigset */
> if (arg6) {
> sig_ptr = &sig;
> - sig.size = _NSIG / 8;
> + sig.size = SIGSET_T_SIZE;
>
> arg7 = lock_user(VERIFY_READ, arg6, sizeof(*arg7) * 2, 1);
> if (!arg7) {
> @@ -8275,7 +8279,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long
> arg1,
> set = NULL;
> }
>
> - ret = get_errno(sys_ppoll(pfd, nfds, timeout_ts, set,
> _NSIG/8));
> + ret = get_errno(sys_ppoll(pfd, nfds, timeout_ts,
> + set, SIGSET_T_SIZE));
>
> if (!is_error(ret) && arg3) {
> host_to_target_timespec(arg3, timeout_ts);
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH v2 05/19] linux-user: Define macro for size of host kernel sigset_t,
Laurent Vivier <=