qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Should we check arguments for function `from_bcd` and `


From: Paolo Bonzini
Subject: Re: [Qemu-devel] Should we check arguments for function `from_bcd` and `to_bcd`?
Date: Thu, 22 Mar 2018 10:12:41 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0

On 22/03/2018 08:03, Su Hang wrote:
> When I was reading 'qemu/hw/timer/m48t59.c'(Line:328) and run with
> `make check-qtest-ppc`,
> I found when write an invalid value 0xc to address 0x1FFF,
> `from_bcd` return 12 instead of raising an exception(or error).

Each device probably has a different behavior when a wrong value is
written to a register that expects valid BCD.  Therefore, if you want to
model that, you have to fix it in hw/timer/m48t59.c, not in from_bcd and
to_bcd.

However, note that anything that the guest does should never cause an
assertion.

Thanks,

Paolo

> """(qemu/hw/timer/m48t59.c)
>     case 0x1FFF:
>     case 0x07FF:
>         /* year */
>     tmp = from_bcd(val);
>     if (tmp >= 0 && tmp <= 99) {
> """
> 
> 
> """(qemu/include/qemu/bcd.h)
> /* Convert a byte between binary and BCD.  */
> static inline uint8_t to_bcd(uint8_t val)
> {
>     return ((val / 10) << 4) | (val % 10);
> }
> 
> static inline uint8_t from_bcd(uint8_t val)
> {
>     return ((val >> 4) * 10) + (val & 0x0f);
> }
> """
> 
> Su Hang
> 




reply via email to

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