gen8_ppgtt_alloc_pagetabs — Allocate page tables for VA range.
int gen8_ppgtt_alloc_pagetabs ( | struct i915_address_space * vm, |
| struct i915_page_directory * pd, | |
| uint64_t start, | |
| uint64_t length, | |
unsigned long * new_pts); |
vmMaster vm structure.
pdPage directory for this address range.
startStarting virtual address to begin allocations.
lengthSize of the allocations.
new_ptsBitmap set by function with new allocations. Likely used by the caller to free on error.
Allocate the required number of page tables. Extremely similar to
gen8_ppgtt_alloc_page_directories. The main difference is here we are limited by
the page directory boundary (instead of the page directory pointer). That
boundary is 1GB virtual. Therefore, unlike gen8_ppgtt_alloc_page_directories, it is
possible, and likely that the caller will need to use multiple calls of this
function to achieve the appropriate allocation.