site_archiver@lists.apple.com Delivered-To: darwin-dev@lists.apple.com We are moving our applications to compile in 64-bit mode. However, we also have kexts that obviously are 32-bit. We need to pass large'ish (>4K) blocks between the app and the kext. Presently the data structures passed from the app to the kernel include pointers. Those pointers are then mapped using IOMemoryDescriptor::withAddressRange(). So the obvious problem is how can we create data structures that are 32/64 bit neutral that can still pass pointer references to a 32-bit kernel? That is, on some platforms the app will be 32-bit while others 64-bit, while the kernel is 32-bit. For example, the first parameter to withAddressRange() is of type vm_address_t which is an unsigned int (4 bytes). How does that work when the address comes from a 64-bit application where the address is 8 bytes? I have been reading the 64-bit porting guide, but I have not found how to fix this problem. Any references or suggestions are most welcome. (I haven't been able to find anything in the list archives yet.) ...Duane _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... This email sent to site_archiver@lists.apple.com