[OpenBIOS] [PATCH 3/3] Don't assume that pointer and cell size are identical

Blue Swirl blauwirbel at gmail.com
Wed Oct 20 18:19:04 CEST 2010


On Sun, Oct 17, 2010 at 11:18 PM, Andreas Färber <andreas.faerber at web.de> wrote:
> On ppc64, cell size is 32 bits but pointers are 64-bit. Thus, direct casts
> result in warnings, treated as errors.
>
> Use [u]intptr_t cast or cell2pointer and pointer2cell macros as necessary.

> -int uart_init(uint64_t port, unsigned long speed)
> +int uart_init(uintptr_t port, unsigned long speed)

This is not correct. The physical addresses on Sparc32 are really 36
bits wide, so uintptr_t is not wide enough. For that, we'd need a
physical address type. We could reuse for example QEMU name,
target_phys_addr_t.



More information about the OpenBIOS mailing list