* All mapped pages that are not wired (ie. locked) now have a vm_page_mapping object
that points to both, the page and the area the page is in. This will allow a page scanner to steal unused pages when necessary. * The locking is currently done with a spinlock which we might want to have another look at one day. * dump_page() and dump_area_struct() now dump the page mappings as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20356 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -62,6 +62,7 @@ status_t vm_create_vnode_cache(void *vnode, vm_cache_ref **_cacheRef);
|
||||
vm_area *vm_area_lookup(vm_address_space *addressSpace, addr_t address);
|
||||
status_t vm_set_area_memory_type(area_id id, addr_t physicalBase, uint32 type);
|
||||
status_t vm_get_page_mapping(team_id team, addr_t vaddr, addr_t *paddr);
|
||||
void vm_remove_all_page_mappings(vm_page *page);
|
||||
status_t vm_unmap_pages(vm_area *area, addr_t base, size_t length);
|
||||
status_t vm_map_page(vm_area *area, vm_page *page, addr_t address,
|
||||
uint32 protection);
|
||||
|
||||
@@ -61,8 +61,8 @@ class DoublyLinkedAreaLink {
|
||||
typedef class DoublyLinkedQueue<vm_page_mapping, DoublyLinkedPageLink> vm_page_mappings;
|
||||
typedef class DoublyLinkedQueue<vm_page_mapping, DoublyLinkedAreaLink> vm_area_mappings;
|
||||
#else // !__cplusplus
|
||||
typedef void *vm_page_mappings;
|
||||
typedef void *vm_area_mappings;
|
||||
typedef struct vm_page_mapping *vm_page_mappings;
|
||||
typedef struct vm_page_mapping *vm_area_mappings;
|
||||
#endif
|
||||
|
||||
// vm page
|
||||
|
||||
Reference in New Issue
Block a user