[PATCH] image.h: Change android_image_get_dtb* to use uint and not u32
Eugeniu Rosca
erosca at de.adit-jv.com
Mon Feb 17 11:47:07 CET 2020
Hello Yamada-san,
Thank you for your precious thoughts!
On Mon, Feb 17, 2020 at 04:45:57PM +0900, Masahiro Yamada wrote:
> If you need a fixed-width type,
> you can use uint32_t if you like.
>
> It is already used. See line 183 of include/image.h
>
> typedef struct image_header {
> uint32_t ih_magic; /* Image Header Magic Number */
>
> include/compiler.h includes <stdint.h> when USE_HOSTCC is defined.
I think this is a safe, simple and non-intrusive solution,
so I have pushed https://patchwork.ozlabs.org/patch/1239098/.
> However, forbidding u32 for tools is questionable to me.
Since Linux has never restricted 'u32' in its in-tree tooling, I
totally support this statement.
> u32 and uint32_t should be always interchangeable.
>
> Perhaps, does the following patch work? (untested)
> --------------------->8------------------------
> diff --git a/include/compiler.h b/include/compiler.h
> index ed74c272b8c5..f2a4adfbc7e4 100644
> --- a/include/compiler.h
> +++ b/include/compiler.h
> @@ -61,6 +61,9 @@
>
> #include <time.h>
>
> +typedef uint8_t u8;
> +typedef uint16_t u16;
> +typedef uint32_t u32;
> typedef uint8_t __u8;
> typedef uint16_t __u16;
> typedef uint32_t __u32;
> --------------------->8------------------------
>
Since this has greater impact compared to s/u32/uint32_t/, I leave
up to Tom to decide on the most suitable approach.
>
> BTW, I think include/compiler.h in U-Boot is ugly.
>
> Linux kernel uses
> tools/include/linux/types.h
> for defining {u8,u16,u32,u64} for the tools space.
>
Agreed, since below v3.16 commit:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d944c4eebcf4c0
>
> Barebox also adopted a similar approach.
>
> When compiling files for tools,
> <linux/types.h> actually includes
> scripts/include/linux/types.h
> instead of include/linux/types.h
>
>
> Perhaps, U-Boot could do similar,
> but I have never got around to it.
>
> Maybe U-Boot shares too much code
> between U-Boot space and tooling space?
>
> include/image.h of U-Boot is 1520 lines.
> include/image.h of Barebox is 258 lines.
>
> But, I am not tracking how they diverged.
>
> Shrinking the interface between U-Boot space and
> tooling space will provide a better maintainability.
>
> ifdef would work. Perhaps, splitting the header might be even better.
The above sounds like food for thought on how to mitigate the problem
long-term.
>
> That's my random thought.
Many thanks!
--
Best Regards
Eugeniu Rosca
More information about the U-Boot
mailing list