[U-Boot] [PATCH 2/2] musb: sunxi: Implement dfu_usb_get_reset()

Marek Vasut marex at denx.de
Sun Oct 25 14:29:59 CET 2015


On Sunday, October 25, 2015 at 02:22:53 PM, Albert ARIBAUD wrote:
> Hello Ian,

Hi!

> On Sun, 25 Oct 2015 12:40:45 +0000, Ian Campbell
> 
> <ijc+uboot at hellion.org.uk> wrote:
> > On Sun, 2015-10-25 at 12:46 +0100, Albert ARIBAUD wrote:
> > > > > +static u8 last_int_usb;
> > > > > +
> > > > > +bool dfu_usb_get_reset(void)
> > > > > +{
> > > > > +	return !!(last_int_usb & MUSB_INTR_RESET);
> > > > 
> > > > The !! is not needed.
> > > 
> > > Except if you want to be sure that you return 0 or 1 rather than 0 or
> > > (1 << something).
> > 
> > Doesn't the bool return type already cause that to happen? (from the
> > PoV of the caller at least)
> 
> When all is said and done, a C bool is a C int, and anyway C does not
> perform value conversion (except for size and possibly sign extension)
> on type casts.
> 
> So no, types, bool or otherwise, do not cause any implicit '!!' to
> happen.
> 
> What happens is, wherever C expects a boolean value ('if', 'while'...)
> it considers 0 to be false and anything else to be true. But that's
> independent of the value's alleged type.

Which is the case here -- one is not supposed to test boolean type for
any particular value.

Best grouik,
Marek Vasut


More information about the U-Boot mailing list