> 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
