Attention is currently required from: Nico Huber, Edward O'Callaghan, Martin Roth.
Hello build bot (Jenkins), Martin Roth, Anastasia Klimchuk,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/flashrom/+/75328
to look at the new patch set (#2).
Change subject: programmer: Use correct type for flashbase ......................................................................
programmer: Use correct type for flashbase
The flashbase is a machine-sized integer representation of address space and so use the appropriate type that is correctly sized to encode such data.
The flashbase is assigned to 'base' in 'map_flash()' and the type correctly changed to uintptr_t in commit 4e32ec19b124a7 therefore makes for a consistent type usage whenever stored.
While `sizeof(unsigned long)` and `sizeof(uintptr_t)` are both `8` under most circumstances on a 64bit platform and thus have enough bits to represent all addresses on the platform, the C standard does not guarantee this. Only `uintptr_t` and `void *` has a guaranteed isomorphism as `uintptr_t` is defined by the platforms toolchain support whereas the conversion from `void *` to an integer is implementation defined and that the memory address value may contain additional bits describing the validation data or provenance of the address. Therefore a integer is insufficient to contain all the necessary information for that specific platform so this may not always work out for all platforms and toolchain combinations.
Spotted-by: Martin Roth martin.roth@amd.corp-partner.google.com Change-Id: Ib9057e438731b9cccde0e24d5c8f758c3af1d47f Signed-off-by: Edward O'Callaghan quasisec@google.com --- M flashrom.c M include/programmer.h 2 files changed, 34 insertions(+), 2 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/28/75328/2