qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-1.2 v2] target-xtensa: return ENOSYS for uni


From: Max Filippov
Subject: Re: [Qemu-devel] [PATCH for-1.2 v2] target-xtensa: return ENOSYS for unimplemented simcalls
Date: Wed, 29 Aug 2012 14:54:44 +0400

On Wed, Aug 29, 2012 at 2:34 PM, Peter Maydell <address@hidden> wrote:
> On 29 August 2012 11:13, Max Filippov <address@hidden> wrote:
>> On Wed, Aug 29, 2012 at 1:38 PM, Peter Maydell <address@hidden> wrote:
>>> On 22 August 2012 19:03, Max Filippov <address@hidden> wrote:
>>>> --- a/target-xtensa/xtensa-semi.c
>>>> +++ b/target-xtensa/xtensa-semi.c
>>>> @@ -218,6 +218,8 @@ void HELPER(simcall)(CPUXtensaState *env)
>>>>
>>>>      default:
>>>>          qemu_log("%s(%d): not implemented\n", __func__, regs[2]);
>>>> +        regs[2] = -1;
>>>> +        regs[3] = ENOSYS;
>>>>          break;
>>>>      }
>>>
>>> This doesn't look right -- ENOSYS is a host errno, and may vary
>>> between host OSes and CPU architectures. I would have thought you'd
>>> want to return a value defined by whatever guest ABI we're
>>> emulating here.
>>
>> That means also converting errno after open/close/read/write...
>> Is there a way to reuse linux-user errno convertor in the softmmu target?
>
> I don't think so, no.
>
> I've just looked at the ARM semihosting code, and we also return
> host errnos, though in the ARM case we can sort of justify this
> because the definition of the SYS_ERRNO semihosting call says
> "Whether errno is set or not, and to what value, is entirely
> host-specific, except where the ANSI C standard defines the behavior"
>
> ...so although returning host errnos is not very useful in some
> ways it's not in breach of the semihosting spec.
>
> Since xtensa-semi.c currently works by returning host errnos
> elsewhere I'm happy for this patch to go into 1.2 if you think
> it merits it, and maybe look at the errno issue more generally
> after that.

Thanks for the review, Peter.
Blue, please apply it as is, I will post errno convertor for 1.3.

-- 
Thanks.
-- Max



reply via email to

[Prev in Thread] Current Thread [Next in Thread]