MAP_FIXED sounds quite scary according to the man page:

http://www.freebsd.org/cgi/man.cgi?query=mmap&sektion=2

It will unload any other pages mapped to that region. What's to stop these requests from clobbering some existing valid memory? Perhaps the right solution is to have some way to find a free page in the 32bit space - i.e. by using some API to query the current memory mapping?