Hello,
I am trying to understand how the seL4_RISCV_PageTable_Map function works when working with SV39, where we have 3 page tables.
The RISCV implementation doesn't have the advantage of the separate levels, so for all the page tables, we can only use the same function. However, based on the description, there are a few questions that I have:
*Description:* Starting from the VSpace, map the page table object at any unpopulated level for the provided virtual address. If all paging structures and mappings are present for this virtual address, return an seL4_DeleteFirst error.
It says it maps the page table object at *any unpopulated *level for the provided virtual address. What does that necessarily mean?
When you attempt to map the pages, how do you differentiate between the different levels? Is it just based on the vaddr or do you have to point the vspace to one of the lower level pages? Or does vspace have to be the root page table?
Thanks,
Jeff