[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] user-exec.c: aarch64 initial implementation
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH 1/2] user-exec.c: aarch64 initial implementation of cpu_signal_handler |
Date: |
Wed, 5 Jun 2013 18:38:48 +0100 |
On 5 June 2013 14:42, Claudio Fontana <address@hidden> wrote:
>
> Signed-off-by: Claudio Fontana <address@hidden>
>
> ---
> user-exec.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/user-exec.c b/user-exec.c
> index 71bd6c5..fa7f1f1 100644
> --- a/user-exec.c
> +++ b/user-exec.c
> @@ -448,6 +448,21 @@ int cpu_signal_handler(int host_signum, void *pinfo,
> &uc->uc_sigmask, puc);
> }
>
> +#elif defined(__aarch64__)
> +
> +int cpu_signal_handler(int host_signum, void *pinfo,
> + void *puc)
> +{
> + siginfo_t *info = pinfo;
> + struct ucontext *uc = puc;
> + uint64_t pc;
> + int is_write = 0; /* XXX how to determine? */
The long-term answer to this XXX, incidentally, is that
I need to persuade the kernel folk to expose the ESR (or
at a minimum its WnR bit) to userspace. For the moment,
always-0 is what other archs are doing here. (I'd rather
not get into the "read and interpret faulting instruction"
game if we can get the kernel fixed, given we're at a
pretty early stage in aarch64 adoption/rollout.)
> +
> + pc = uc->uc_mcontext.pc;
> + return handle_cpu_signal(pc, (uint64_t)info->si_addr,
> + is_write, &uc->uc_sigmask, puc);
> +}
> +
Reviewed-by: Peter Maydell <address@hidden>
-- PMM