Refactored vm_translation_map:

* Pulled the physical page mapping functions out of vm_translation_map into
  a new interface VMPhysicalPageMapper.
* Renamed vm_translation_map to VMTranslationMap and made it a proper C++
  class. The functions in the operations vector have become methods.
* Added class GenericVMPhysicalPageMapper implementing VMPhysicalPageMapper
  as far as possible (without actually writing new code).
* Adjusted the x86 and the PPC specifics accordingly (untested for the
  latter). For the other architectures the build is, I'm afraid, seriously
  broken.

The next steps will modify and extend the VMTranslationMap interface, so that
it will be possible to fix the bugs in vm_unmap_page[s]() and employ
architecture specific optimizations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35066 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2010-01-14 03:26:12 +00:00
parent 167898484d
commit bcc2c157a1
24 changed files with 1120 additions and 930 deletions
@@ -11,7 +11,7 @@
extern "C" {
#endif
void ppc_translation_map_change_asid(vm_translation_map *map);
void ppc_translation_map_change_asid(VMTranslationMap *map);
status_t ppc_map_address_range(addr_t virtualAddress, addr_t physicalAddress,
size_t size);