The heap is now located at 384 MB, and creates a reserved range that spans over the
following 1152 MB - that area only guarantees that the heap can grow this much before the application need the memory for something else. And even then, the heap range is reused from top-to-bottom, allowing for maximum heap usage. Of course, if the memory after the heap range is not claimed yet, it can still be claimed by the heap, too. Added new syscall to create the reserved range. Fixed a bug in vm_delete_areas(): when it removed reserved areas, the area list could get messed up. Fixed a bug in resize_area(): resized areas could never be deleted (missing vm_put_area())! resize_area() now supports reserved regions (but not perfectly yet, see ToDo items). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12692 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -210,6 +210,7 @@ extern status_t _kern_transfer_area(area_id area, void **_address, uint32 addre
|
||||
extern status_t _kern_set_area_protection(area_id area, uint32 newProtection);
|
||||
extern area_id _kern_clone_area(const char *name, void **_address, uint32 addressSpec,
|
||||
uint32 protection, area_id sourceArea);
|
||||
extern status_t _kern_init_heap_address_range(addr_t base, addr_t size);
|
||||
|
||||
area_id sys_vm_map_file(const char *name, void **address, int addr_type,
|
||||
addr_t size, int lock, int mapping, const char *path, off_t offset);
|
||||
|
||||
@@ -86,6 +86,7 @@ status_t _user_transfer_area(area_id area, void **_address, uint32 addressSpec,
|
||||
status_t _user_set_area_protection(area_id area, uint32 newProtection);
|
||||
area_id _user_clone_area(const char *name, void **_address, uint32 addressSpec,
|
||||
uint32 protection, area_id sourceArea);
|
||||
status_t _user_init_heap_address_range(addr_t base, addr_t size);
|
||||
|
||||
// to protect code regions with interrupts turned on
|
||||
void permit_page_faults(void);
|
||||
|
||||
Reference in New Issue
Block a user