From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Mon, 7 Dec 2015 11:14:02 -0600 Subject: [U-Boot] [PATCH 3/5] Data type defined for pointer addresses In-Reply-To: <20151207170858.GI9551@bill-the-cat> References: <1447911713-28639-1-git-send-email-aneesh.bansal@freescale.com> <1447911713-28639-3-git-send-email-aneesh.bansal@freescale.com> <5665B8D4.2070206@freescale.com> <20151207170858.GI9551@bill-the-cat> Message-ID: <1449508442.15946.60.camel@freescale.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Mon, 2015-12-07 at 12:08 -0500, Tom Rini wrote: > On Mon, Dec 07, 2015 at 08:50:28AM -0800, York Sun wrote: > > Guys, > > > > Please comment on this new typedef. I am not comfortable to accept it. > > > > On 11/18/2015 09:41 PM, Aneesh Bansal wrote: > > > A new data type uintptr_t has been defined for creating > > > pointers (32 or 64 bit depending on Core) from 32 bit variables > > > storing the address. > > > If a 32 bit variable (u32) is typecasted to a pointer (void *), > > > compiler gives a warning in case size of pointer on the core is 64 bit. > > > > > > Signed-off-by: Aneesh Bansal > > > --- > > > arch/arm/include/asm/types.h | 2 ++ > > > arch/powerpc/include/asm/types.h | 1 + > > > 2 files changed, 3 insertions(+) > > > > > > diff --git a/arch/arm/include/asm/types.h b/arch/arm/include/asm/types.h > > > index 388058e..5555765 100644 > > > --- a/arch/arm/include/asm/types.h > > > +++ b/arch/arm/include/asm/types.h > > > @@ -56,6 +56,8 @@ typedef unsigned long phys_addr_t; > > > typedef unsigned long phys_size_t; > > > #endif > > > > > > +typedef unsigned long uintptr_t; > > > > It is used in next patch of this series > > http://patchwork.ozlabs.org/patch/552669/, in two-step casting such as > > > > (u8 *)(uintptr_t)csf_hdr_addr > > > > As OP indicated, the variable is u32. Casting to a pointer causes > > compiling > > warning. Is this the right approach? > > Approach is OK. But please do it as a "backport" of 142956af from the > linux kernel which adds 142956af to so everyone has it. There's also an existing uintptr_t typedef in include/compiler.h... -Scott