> From: Jeremy Huddleston <[email protected]>
> Date: Tue, 01 Nov 2011 19:07:42 -0700
> 
> On Nov 1, 2011, at 5:48 PM, Daniel Stone wrote:
> 
> > Hi,
> > 
> > On 1 November 2011 22:05, Jeremy Huddleston <[email protected]> wrote:
> >> While this does fix the build failure, I'd much rather change memType to 
> >> be a uintptr_t everywhere, but it was explicitly set to uint64_t for 32bit 
> >> powerpc by Ian in the commit referenced below.  Ian, can you explain why 
> >> you set memType to 64bits even though void * is only 32bits?  You 
> >> referenced ppc32 code running on ppc64, but I don't see why that would be 
> >> problematic.
> > 
> > I'm pretty sure this was because 64-bit POWER machines were really
> > fond of mapping their PCI address space above the 32-bit range, so if
> > you truncated your addresses to 32-bit, you'd lose out.
> 
> Really?  Did someone not get the memo that they wanted to continue to support 
> 32bit userland?
> 
> I guess we're stuck with that ugly casting patch then...

Not really.  Using memType only really makes sense for *physical*
addresses, which can be 64-bit for 32-bit systems running on 64-bit
hardware.

However, unmapVidMem() only deals with *virtual* addresses, which are
guaranteed to fit into an uintptr_t.  So you can simply replace
memType with uintptr_t in this function, and avoid the casting madness.
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to