qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
To: Aleksandar Markovic <aleksandar.markovic@rt-rk.com>
Cc: Riku Voipio <riku.voipio@iki.fi>,
	QEMU Developers <qemu-devel@nongnu.org>,
	Aleksandar Markovic <amarkovic@wavecomp.com>,
	Laurent Vivier <laurent@vivier.eu>
Subject: Re: [Qemu-devel] [PATCH v6 1/8] linux-user: Add support for semtimedop() syscall
Date: Wed, 4 Sep 2019 15:16:16 +0200	[thread overview]
Message-ID: <CAL1e-=j6S=-6WtgGyuxSMSY2+qqPX98C6mfgFpnd1rpcYNLfEw@mail.gmail.com> (raw)
In-Reply-To: <1567601968-26946-2-git-send-email-aleksandar.markovic@rt-rk.com>

On Wed, Sep 4, 2019 at 3:11 PM Aleksandar Markovic <
aleksandar.markovic@rt-rk.com> wrote:

> From: Aleksandar Rikalo <arikalo@wavecomp.com>
>
> Add support for semtimedop() emulation. It is based on invocation
> of safe_semtimedop().
>
> Conversion is left out of safe_semtimedop(), since other safe_xxx()
> usually don't contain similar conversions.
>
> Signed-off-by: Aleksandar Rikalo <arikalo@wavecomp.com>
> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> ---
>

Hi, Laurent.

Please note that Aleksandar R. proposed also a code segment mentioned
in this message:

https://lists.gnu.org/archive/html/qemu-devel/2019-07/msg07080.html

... but wasn't sure if he got all bits and peaces right. Please provide your
judgement - and I will modify the patch accordingly.

Thanks,
aleksandar


>  linux-user/syscall.c | 40 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 40 insertions(+)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 8367cb1..b5bc6e4 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -6649,7 +6649,43 @@ static inline abi_long host_to_target_statx(struct
> target_statx *host_stx,
>      return 0;
>  }
>  #endif
> +#ifdef TARGET_NR_semtimedop
> +static inline abi_long do_semtimedop(int semid, abi_long ptr, unsigned
> nsops,
> +                                     abi_long timeout)
> +{
> +    struct sembuf *sops;
> +    struct timespec ts, *pts;
> +    abi_long ret;
> +
> +    if (timeout) {
> +        pts = &ts;
> +        if (target_to_host_timespec(pts, timeout)) {
> +            return -TARGET_EFAULT;
> +        }
> +    } else {
> +        pts = NULL;
> +    }
>
> +    sops = g_malloc(sizeof(struct sembuf) * nsops);
> +    if (sops == NULL) {
> +        return -TARGET_EFAULT;
> +    }
> +
> +    if (target_to_host_sembuf(sops, ptr, nsops)) {
> +        g_free(sops);
> +        return -TARGET_EFAULT;
> +    }
> +
> +#ifdef __NR_semtimedop
> +    ret = get_errno(safe_semtimedop(semid, sops, nsops, pts));
> +#else
> +    ret = -TARGET_ENOSYS;
> +#endif
> +    g_free(sops);
> +
> +    return ret;
> +}
> +#endif
>
>  /* ??? Using host futex calls even when target atomic operations
>     are not really atomic probably breaks things.  However implementing
> @@ -9193,6 +9229,10 @@ static abi_long do_syscall1(void *cpu_env, int num,
> abi_long arg1,
>      case TARGET_NR_semop:
>          return do_semop(arg1, arg2, arg3);
>  #endif
> +#ifdef TARGET_NR_semtimedop
> +    case TARGET_NR_semtimedop:
> +        return do_semtimedop(arg1, arg2, arg3, arg4);
> +#endif
>  #ifdef TARGET_NR_semctl
>      case TARGET_NR_semctl:
>          return do_semctl(arg1, arg2, arg3, arg4);
> --
> 2.7.4
>
>
>

  reply	other threads:[~2019-09-04 13:44 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-04 12:59 [Qemu-devel] [PATCH v6 0/8] linux-user: Misc patches for 4.2 Aleksandar Markovic
2019-09-04 12:59 ` [Qemu-devel] [PATCH v6 1/8] linux-user: Add support for semtimedop() syscall Aleksandar Markovic
2019-09-04 13:16   ` Aleksandar Markovic [this message]
2019-09-06  9:59   ` Laurent Vivier
2019-09-04 12:59 ` [Qemu-devel] [PATCH v6 2/8] linux-user: Add support for RNDRESEEDCRNG ioctl Aleksandar Markovic
2019-09-10  8:33   ` Laurent Vivier
2019-09-04 12:59 ` [Qemu-devel] [PATCH v6 3/8] linux-user: Add support for FIOGETOWN and FIOSETOWN ioctls Aleksandar Markovic
2019-09-06 10:18   ` Laurent Vivier
2019-09-10  8:34   ` Laurent Vivier
2019-09-10 10:00     ` Aleksandar Markovic
2019-09-04 12:59 ` [Qemu-devel] [PATCH v6 4/8] linux user: Add support for FDFLUSH ioctl Aleksandar Markovic
2019-09-10  8:39   ` Laurent Vivier
2019-09-04 12:59 ` [Qemu-devel] [PATCH v6 5/8] linux-user: Add support for FDMSGON and FDMSGOFF ioctls Aleksandar Markovic
2019-09-06 10:20   ` Laurent Vivier
2019-09-10  8:41   ` Laurent Vivier
2019-09-04 12:59 ` [Qemu-devel] [PATCH v6 6/8] linux-user: Add support for FDRESET, FDRAWCMD, FDTWADDLE, and FDEJECT ioctls Aleksandar Markovic
2019-09-06 10:21   ` Laurent Vivier
2019-09-10  8:42   ` Laurent Vivier
2019-09-04 12:59 ` [Qemu-devel] [PATCH v6 7/8] linux-user: Add support for FDFMTBEG, FDFMTTRK, and FDFMTEND ioctls Aleksandar Markovic
2019-09-06 10:30   ` Laurent Vivier
2019-09-06 10:38   ` Laurent Vivier
2019-09-04 12:59 ` [Qemu-devel] [PATCH v6 8/8] linux-user: Add support for FDSETEMSGTRESH, FDSETMAXERRS, and FDGETMAXERRS ioctls Aleksandar Markovic
2019-09-06 10:47   ` Laurent Vivier
2019-09-10 18:59     ` Aleksandar Markovic
2019-09-10 19:15       ` Aleksandar Markovic
2019-09-10 19:24         ` Laurent Vivier
2019-09-10 19:15       ` Laurent Vivier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAL1e-=j6S=-6WtgGyuxSMSY2+qqPX98C6mfgFpnd1rpcYNLfEw@mail.gmail.com' \
    --to=aleksandar.m.mail@gmail.com \
    --cc=aleksandar.markovic@rt-rk.com \
    --cc=amarkovic@wavecomp.com \
    --cc=laurent@vivier.eu \
    --cc=qemu-devel@nongnu.org \
    --cc=riku.voipio@iki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).