On current Mac OS X both user space and kernel space work with virtual
addresses that are 32b in size. Going forward the kernel will continue
to work with 32b virtual addresses (user space will gain the _option_
for 64b address spaces).
Various method exist that allow you share / map memory between the
kernel memory space and the various instances user memory space. It
depends on what type of driver and in which part of the kernel you are
working but assuming IOKit you would use IOMemoryDescriptor and/or
friends to manage this for you.
Now the VM system on Mac OS X has the ability to address physical
memory that is larger then 32b (not sure if it truly support 64b or not
of physical addressing, could be 34b, 48b, etc.) when running on
systems that support more then 4GB of RAM (PowerMac / Xserve G5s at
this time). This capability however is basically transparent and hidden
from you even when in the kernel. In other words you never (should
never need to) see the true physical address but instead you work with
intermediate physical addresses (I/O address as it is called) that gets
mapped by hardware (DART) as needed to the true physical address.
In other words don't worry about it much just make sure to use the
supported memory mapping methods when you do your DMA, user/kernel
mapping, etc. appropriate for the type of driver you are working on.
Those methods will take care of what is needed for you.
-Shawn
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/darwin-kernel/email@hidden