All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heinrich Schuchardt <xypron.glpk@gmx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v1 02/11] include: time.h: define time64_t
Date: Thu, 17 Oct 2019 07:51:03 +0200	[thread overview]
Message-ID: <7419c3ef-3cab-90b4-e09e-f2b0cd16d7c8@gmx.de> (raw)
In-Reply-To: <20191017053952.GQ18778@linaro.org>

On 10/17/19 7:39 AM, AKASHI Takahiro wrote:
> On Sat, Oct 12, 2019 at 01:40:32PM +0200, Heinrich Schuchardt wrote:
>> On 10/11/19 9:41 AM, AKASHI Takahiro wrote:
>>> Adding time64_t definition will help improve portability of linux kernel
>>> code (in my case, lib/crypto/x509_cert_parser.c).
>>>
>>> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
>>> ---
>>>   include/linux/time.h | 24 ++++++++++++++++++++++++
>>>   1 file changed, 24 insertions(+)
>>>
>>> diff --git a/include/linux/time.h b/include/linux/time.h
>>> index b8d298eb4d68..6186985856d7 100644
>>> --- a/include/linux/time.h
>>> +++ b/include/linux/time.h
>>> @@ -150,4 +150,28 @@ _DEFUN (ctime_r, (tim_p, result),
>>>       return asctime_r (localtime_r (tim_p, &tm), result);
>>>   }
>>>
>>> +/* from <linux>/kernel/time/time.c */
>>> +typedef __s64 time64_t;
>>
>> Wouldn't we want to put these definitions into a file
>> include/linux/time64.h?
>
> Obviously, there is no problem at following your suggestion, but
> I hesitate to do so as it adds only one line header file.
> Moreover, mktime64(), which is the only reason for this patch,
> is also declared in "linux/time.h" even in linux code.
> # Please note that "linux/time64.h" is mainly for timespec64 helper
> functions, which are never used in U-Boot.
>
> So I'd like to leave as it is. I think that we can re-visit this issue
> in the future when other definitions in time64.h are required.
>
>>> +
>>> +inline time64_t mktime64(const unsigned int year0, const unsigned int mon0,
>>> +			 const unsigned int day, const unsigned int hour,
>>> +			 const unsigned int min, const unsigned int sec)
>>
>>
>> Where is the function description?
>>
>> The Linux kernel does not make this function an inline function. Why
>> should we inline it in U-Boot?
>>
>>> +{
>>> +	unsigned int mon = mon0, year = year0;
>>> +
>>> +	/* 1..12 -> 11,12,1..10 */
>>> +	mon -= 2;
>>> +	if (0 >= (int)mon) {
>>> +		mon += 12;	/* Puts Feb last since it has leap day */
>>> +		year -= 1;
>>> +	}
>>> +
>>> +	return ((((time64_t)
>>> +		  (year / 4 - year / 100 + year / 400 + 367 * mon / 12 + day) +
>>> +		  year * 365 - 719499
>>> +	  ) * 24 + hour /* now have hours - midnight tomorrow handled here */
>>> +	  ) * 60 + min /* now have minutes */
>>> +	) * 60 + sec; /* finally seconds */
>>
>> This code is duplicate to rtc_mktime().
>>
>> Duplication could be avoided by letting rtc_mktime() call mktime64().
>
> Okay, but as an inline function in this case.

Inline use in two places adds more bytes to the binary. U-Boot should
stay as small as possible.

Best regards

Heinrich

> In addition, drivers/rtc/date.c will be moved to lib/ for general use
> with CONFIG_LIB_DATE.
>
> Thanks,
> -Takahiro Akashi
>
>
>> Best regards
>>
>> Heinrich
>>
>>> +}
>>> +
>>>   #endif
>>>
>>
>

  reply	other threads:[~2019-10-17  5:51 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-11  7:41 [U-Boot] [PATCH v1 00/11] import x509/pkcs7 parsers from linux AKASHI Takahiro
2019-10-11  7:41 ` [U-Boot] [PATCH v1 01/11] linux_compat: add kmemdup() AKASHI Takahiro
2019-10-12 11:22   ` Heinrich Schuchardt
2019-10-17  3:04     ` AKASHI Takahiro
2019-10-11  7:41 ` [U-Boot] [PATCH v1 02/11] include: time.h: define time64_t AKASHI Takahiro
2019-10-12 11:40   ` Heinrich Schuchardt
2019-10-17  5:39     ` AKASHI Takahiro
2019-10-17  5:51       ` Heinrich Schuchardt [this message]
2019-10-11  7:41 ` [U-Boot] [PATCH v1 03/11] include: kernel.h: include printk.h AKASHI Takahiro
2019-10-12 11:47   ` Heinrich Schuchardt
2019-10-17  5:58     ` AKASHI Takahiro
2019-10-17  6:17       ` AKASHI Takahiro
2019-10-11  7:41 ` [U-Boot] [PATCH v1 04/11] cmd: add asn1_compiler AKASHI Takahiro
2019-10-12 12:22   ` Heinrich Schuchardt
2019-10-17  6:25     ` AKASHI Takahiro
2019-10-11  7:41 ` [U-Boot] [PATCH v1 05/11] Makefile: add build script for asn1 parsers AKASHI Takahiro
2019-10-12 12:36   ` Heinrich Schuchardt
2019-10-17  6:40     ` AKASHI Takahiro
2019-10-11  7:41 ` [U-Boot] [PATCH v1 06/11] lib: add asn1 decoder AKASHI Takahiro
2019-10-12 12:29   ` Heinrich Schuchardt
2019-10-17  7:02     ` AKASHI Takahiro
2019-10-11  7:41 ` [U-Boot] [PATCH v1 07/11] lib: add oid registry utility AKASHI Takahiro
2019-10-12 12:58   ` Heinrich Schuchardt
2019-10-11  7:41 ` [U-Boot] [PATCH v1 08/11] lib: crypto: add public key utility AKASHI Takahiro
2019-10-11  7:41 ` [U-Boot] [PATCH v1 09/11] lib: crypto: add x509 parser AKASHI Takahiro
2019-10-11  7:41 ` [U-Boot] [PATCH v1 10/11] lib: crypto: add pkcs7 message parser AKASHI Takahiro
2019-10-11  7:42 ` [U-Boot] [PATCH v1 11/11] lib: crypto: add rsa public key parser AKASHI Takahiro
2019-10-12 13:11   ` Heinrich Schuchardt
2019-10-11  7:55 ` [U-Boot] [PATCH v1 00/11] import x509/pkcs7 parsers from linux AKASHI Takahiro
2019-10-12 13:02   ` Heinrich Schuchardt
2019-10-15  3:18     ` AKASHI Takahiro
2019-10-15  5:33       ` Heinrich Schuchardt
2019-10-15  8:56         ` AKASHI Takahiro
2019-10-15 11:10           ` Heinrich Schuchardt
2019-10-15  9:25         ` AKASHI Takahiro
2019-10-17 15:23           ` Tom Rini
2019-10-18  8:36             ` AKASHI Takahiro
2019-10-18 12:35               ` Tom Rini
2019-10-23  6:43                 ` AKASHI Takahiro

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7419c3ef-3cab-90b4-e09e-f2b0cd16d7c8@gmx.de \
    --to=xypron.glpk@gmx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.