[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 12/14] timer: ds-rtc handle CENTURY bit
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH 12/14] timer: ds-rtc handle CENTURY bit |
Date: |
Fri, 13 Apr 2018 14:00:04 +0100 |
On 24 March 2018 at 19:24, Michael Davidsaver <address@hidden> wrote:
> Signed-off-by: Michael Davidsaver <address@hidden>
> ---
> hw/timer/ds-rtc.c | 22 ++++++++++++++--------
> 1 file changed, 14 insertions(+), 8 deletions(-)
>
> diff --git a/hw/timer/ds-rtc.c b/hw/timer/ds-rtc.c
> index 2df1bce3f8..5a4df1b115 100644
> --- a/hw/timer/ds-rtc.c
> +++ b/hw/timer/ds-rtc.c
> @@ -70,6 +70,7 @@ typedef struct DSRTCState {
> typedef struct DSRTCClass {
> I2CSlaveClass parent_obj;
>
> + bool has_century;
> /* actual address space size must be <= NVRAM_SIZE */
> unsigned addr_size;
> unsigned ctrl_offset;
> @@ -91,7 +92,7 @@ static const VMStateDescription vmstate_dsrtc = {
> }
> };
>
> -static void capture_current_time(DSRTCState *s)
> +static void capture_current_time(DSRTCState *s, DSRTCClass *k)
> {
> /* Capture the current time into the secondary registers
> * which will be actually read by the data transfer operation.
> @@ -123,25 +124,28 @@ static void capture_current_time(DSRTCState *s)
> }
> s->nvram[R_DATE] = to_bcd(now.tm_mday);
> s->nvram[R_MONTH] = to_bcd(now.tm_mon + 1);
> - s->nvram[R_YEAR] = to_bcd(now.tm_year - 100);
> + s->nvram[R_YEAR] = to_bcd(now.tm_year % 100u);
> +
> + ARRAY_FIELD_DP32(s->nvram, MONTH, CENTURY,
> + k->has_century && now.tm_year >= 100)
> }
>
> -static void inc_regptr(DSRTCState *s)
> +static void inc_regptr(DSRTCState *s, DSRTCClass *k)
> {
> - DSRTCClass *k = DSRTC_GET_CLASS(s);
I would just leave this function the way it is rather than
changing it to take the class pointer.
Otherwise
Reviewed-by: Peter Maydell <address@hidden>
thanks
-- PMM
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH 12/14] timer: ds-rtc handle CENTURY bit,
Peter Maydell <=