* Introduced {malloc,memalign,free}_etc() which take an additional "flags"
argument. They replace the previous special-purpose allocation functions (malloc_nogrow(), vip_io_request_malloc()). * Moved the I/O VIP heap to heap.cpp accordingly. * Added quite a bit of passing around of allocation flags in the VM, particularly in the VM*AddressSpace classes. * Fixed IOBuffer::GetNextVirtualVec(): It was ignoring the VIP flag and always allocated on the normal heap. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35316 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -70,25 +70,31 @@ public:
|
||||
|
||||
virtual VMArea* LookupArea(addr_t address) const = 0;
|
||||
virtual VMArea* CreateArea(const char* name, uint32 wiring,
|
||||
uint32 protection) = 0;
|
||||
virtual void DeleteArea(VMArea* area) = 0;
|
||||
uint32 protection,
|
||||
uint32 allocationFlags) = 0;
|
||||
virtual void DeleteArea(VMArea* area,
|
||||
uint32 allocationFlags) = 0;
|
||||
virtual status_t InsertArea(void** _address, uint32 addressSpec,
|
||||
size_t size, VMArea* area) = 0;
|
||||
virtual void RemoveArea(VMArea* area) = 0;
|
||||
size_t size, VMArea* area,
|
||||
uint32 allocationFlags) = 0;
|
||||
virtual void RemoveArea(VMArea* area,
|
||||
uint32 allocationFlags) = 0;
|
||||
|
||||
virtual bool CanResizeArea(VMArea* area, size_t newSize) = 0;
|
||||
virtual status_t ResizeArea(VMArea* area, size_t newSize) = 0;
|
||||
virtual status_t ShrinkAreaHead(VMArea* area, size_t newSize)
|
||||
= 0;
|
||||
virtual status_t ShrinkAreaTail(VMArea* area, size_t newSize)
|
||||
= 0;
|
||||
virtual status_t ResizeArea(VMArea* area, size_t newSize,
|
||||
uint32 allocationFlags) = 0;
|
||||
virtual status_t ShrinkAreaHead(VMArea* area, size_t newSize,
|
||||
uint32 allocationFlags) = 0;
|
||||
virtual status_t ShrinkAreaTail(VMArea* area, size_t newSize,
|
||||
uint32 allocationFlags) = 0;
|
||||
|
||||
virtual status_t ReserveAddressRange(void** _address,
|
||||
uint32 addressSpec, size_t size,
|
||||
uint32 flags) = 0;
|
||||
uint32 flags, uint32 allocationFlags) = 0;
|
||||
virtual status_t UnreserveAddressRange(addr_t address,
|
||||
size_t size) = 0;
|
||||
virtual void UnreserveAllAddressRanges() = 0;
|
||||
size_t size, uint32 allocationFlags) = 0;
|
||||
virtual void UnreserveAllAddressRanges(
|
||||
uint32 allocationFlags) = 0;
|
||||
|
||||
virtual void Dump() const;
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ protected:
|
||||
uint32 wiring, uint32 protection);
|
||||
~VMArea();
|
||||
|
||||
status_t Init(const char* name);
|
||||
status_t Init(const char* name, uint32 allocationFlags);
|
||||
|
||||
protected:
|
||||
friend class VMAddressSpace;
|
||||
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
VMCache();
|
||||
virtual ~VMCache();
|
||||
|
||||
status_t Init(uint32 cacheType);
|
||||
status_t Init(uint32 cacheType, uint32 allocationFlags);
|
||||
|
||||
virtual void Delete();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user