[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <cee345b1-a5aa-41bb-acb7-9b2aaef5bfb5@p183>
Date: Wed, 14 Feb 2024 20:39:35 +0300
From: Alexey Dobriyan <adobriyan@...il.com>
To: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@...el.com>,
linux-kernel@...r.kernel.org, Rodrigo Vivi <rodrigo.vivi@...el.com>,
Jani Nikula <jani.nikula@...el.com>
Subject: Re: [RFC] include/linux/make_type.h: Helpers for making u16/u32/u64
values
On Wed, Feb 14, 2024 at 07:32:10PM +0200, Andy Shevchenko wrote:
> On Wed, Feb 14, 2024 at 08:20:55PM +0300, Alexey Dobriyan wrote:
>
> ...
>
> > Secondly,
> >
> > #define make_u64(hi__, lo__) ((u64)(hi__) << 32 | (u32)(lo__))
> >
> > doesn't truncate hi, why?
>
> Because it's not needed (the whole point AFAIU is to override promotion
> to a _signed_ type (int) and here it makes no difference)?
Well,
make_u64((u64)-1, 0)
will return (u64)-1 unlike
make_u16((u64)-1, 0)
which will return 0xff00.
BTW, I'm for truncation, but it should be done everywhere.
Thirdly, there were no users posted.
Powered by blists - more mailing lists