diff --git a/include/memory_space.h b/include/memory_space.h
index b572e37b4299968b33e0d72722fa16e93d8372a5..4c65419832c79f1100e9192fd523871648a3ca25 100644
--- a/include/memory_space.h
+++ b/include/memory_space.h
@@ -44,9 +44,11 @@ class MemorySpace_t : public std::map<RangeAddress_t,char>
 
 		// range operatations
 		virtual void SplitFreeRange(RangeAddress_t addr)=0;
+		virtual void SplitFreeRange(Range_t range)=0;
 		virtual void MergeFreeRange(RangeAddress_t addr)=0;
 		virtual RangeSet_t::iterator FindFreeRange(RangeAddress_t addr)=0;
 		virtual Range_t GetFreeRange(int size)=0;
+		virtual std::list<Range_t> GetFreeRanges(size_t size = 0) = 0;
 		virtual std::pair<RangeSet_t::const_iterator,RangeSet_t::const_iterator>
 			GetNearbyFreeRanges(const RangeAddress_t hint, size_t count = 0) = 0;
 		virtual void AddFreeRange(Range_t newRange)=0;