From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [kvm-unit-tests PATCH] powerpc: Add tests for RTAS Date: Thu, 3 Mar 2016 17:29:30 +0100 Message-ID: <56D8666A.40508@redhat.com> References: <1457008099-29944-1-git-send-email-lvivier@redhat.com> <20160303160309.GC2354@potion.brq.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: kvm@vger.kernel.org, kvm-ppc@vger.kernel.org, drjones@redhat.com, thuth@redhat.com, dgibson@redhat.com To: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Laurent Vivier Return-path: Received: from mx1.redhat.com ([209.132.183.28]:43816 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754675AbcCCQ3f (ORCPT ); Thu, 3 Mar 2016 11:29:35 -0500 In-Reply-To: <20160303160309.GC2354@potion.brq.redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 03/03/2016 17:03, Radim Kr=C4=8Dm=C3=A1=C5=99 wrote: >> > diff --git a/powerpc/rtas.c b/powerpc/rtas.c >> > +#define DAYS(y,m,d) (365UL * (y) + ((y) / 4) - ((y) / 100) + ((y)= / 400) + \ >> > + 367UL * (m) / 12 + \ >> > + (d)) > This function is hard to (re)use. > What about putting the "month -=3D 2" block together with DAYS to giv= e a > better estimate of the amount of days in the gregorian calendar? Even the Gregorian calendar only starts in 1583 though. :) This is just a utility function for mktime. I think it's okay. We should aim at making libcflat a minimal libc, and in that case we would move mktime to lib/. Putting stuff directly in tests is good enough (worse is better), but let's remember that duplicated code is not. Paolo > static inline unsigned long days(int year, int month, int day) { > month -=3D 2; > if (month <=3D 0) { > month +=3D 12; > year -=3D 1; > } > return DAYS(year, month, day); > } >=20 > (Or replacing it with an obvious, but slower/bigger implementation? := ]) >=20 >> > + /* Put February at end of the year to avoid leap day this year *= / >> > + >> > + month -=3D 2; >> > + if (month <=3D 0) { >> > + month +=3D 12; >> > + year -=3D 1; >> > + } >> > + >> > + /* compute epoch: substract DAYS(since_March(1-1-1970)) */ >> > + >> > + epoch =3D DAYS(year, month, day) - DAYS(1969, 11, 1);