From mboxrd@z Thu Jan 1 00:00:00 1970 From: Albert ARIBAUD Date: Sun, 25 Oct 2015 14:22:53 +0100 Subject: [U-Boot] [PATCH 2/2] musb: sunxi: Implement dfu_usb_get_reset() In-Reply-To: <1445776845.28851.5.camel@hellion.org.uk> References: <1445748287-12421-1-git-send-email-siarhei.siamashka@gmail.com> <1445748287-12421-3-git-send-email-siarhei.siamashka@gmail.com> <201510251200.09867.marex@denx.de> <20151025124630.68a2f2e6@lilith> <1445776845.28851.5.camel@hellion.org.uk> Message-ID: <20151025142253.0641bc5f@lilith> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Ian, On Sun, 25 Oct 2015 12:40:45 +0000, Ian Campbell 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. > Ian. Amicalement, -- Albert.