function returns the page at
from the given object.
If the page exists and is busy,
will sleep while waiting for it.
If the page does not exist, it is allocated.
The function sleeps until the allocation request can be satisfied.
The function requires the
to be locked on entry, and returns with the object locked.
function sleeps for any reason, the object lock is temporary dropped.
supports all of the flags supported by
supports the following flags:
When waiting for the busy state of the existing page to drain,
only test for exclusive busy; ignore the shared busy counter.