[U-Boot] [PATCH 3/5][v5] include/linux: move typdef for uintptr_t
York Sun
yorksun at freescale.com
Wed Dec 16 04:48:31 CET 2015
On 12/08/2015 04:24 PM, Aneesh Bansal wrote:
> uintptr_t which is a typdef for unsigned long is needed 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.
>
> The typdef has been moved from include/compiler.h to include/linux/types.h
>
> Signed-off-by: Aneesh Bansal <aneesh.bansal at freescale.com>
> ---
> Changes in v5:
> New patch instead of http://patchwork.ozlabs.org/patch/546319/
>
> Changes in v4: None
>
> Changes in v3: None
>
> Changes in v2: None
>
> include/compiler.h | 3 ---
> include/linux/types.h | 1 +
> 2 files changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/include/compiler.h b/include/compiler.h
> index 47c296e..f853ed4 100644
> --- a/include/compiler.h
> +++ b/include/compiler.h
> @@ -115,9 +115,6 @@ typedef unsigned int uint;
> #ifdef CONFIG_USE_STDINT
> /* Provided by gcc. */
> #include <stdint.h>
> -#else
> -/* Type for `void *' pointers. */
> -typedef unsigned long int uintptr_t;
> #endif
>
> #include <linux/string.h>
> diff --git a/include/linux/types.h b/include/linux/types.h
> index 6f75be4..c7e8fdb 100644
> --- a/include/linux/types.h
> +++ b/include/linux/types.h
> @@ -124,6 +124,7 @@ typedef __UINT64_TYPE__ u_int64_t;
> typedef __INT64_TYPE__ int64_t;
> #endif
>
> +typedef unsigned long uintptr_t;
> /*
> * Below are truly Linux-specific types that should never collide with
> * any application/library that wants linux/types.h.
>
Aneesh,
This change is tested OK on 64-bit hosts, but failed on 32-bit hosts.
A second thought, is this change needed? I reverted this one and still passed
tests for all aarch64 targets, including ls1043ardb_SECURE_BOOT. I didn't boot
it though.
York
More information about the U-Boot
mailing list