diff --git a/include/armnn/backends/IBackendInternal.hpp b/include/armnn/backends/IBackendInternal.hpp
index f4fe678..7500e35 100644
--- a/include/armnn/backends/IBackendInternal.hpp
+++ b/include/armnn/backends/IBackendInternal.hpp
@@ -13,12 +13,12 @@
 #include <SubgraphView.hpp>
 #include <optimizations/Optimization.hpp>
 
-#include "IBackendContext.hpp"
-#include "armnn/backends/profiling/IBackendProfiling.hpp"
-#include "armnn/backends/profiling/IBackendProfilingContext.hpp"
-#include "IMemoryManager.hpp"
-#include "ITensorHandleFactory.hpp"
-#include "OptimizationViews.hpp"
+#include <armnn/backends/IBackendContext.hpp>
+#include <armnn/backends/IMemoryManager.hpp>
+#include <armnn/backends/ITensorHandleFactory.hpp>
+#include <armnn/backends/OptimizationViews.hpp>
+#include <armnn/backends/profiling/IBackendProfiling.hpp>
+#include <armnn/backends/profiling/IBackendProfilingContext.hpp>
 
 #include <vector>
 #include <memory>
@@ -198,6 +198,14 @@
         }
         return false;
     }
+
+    /// Returns the default memory allocator for the backend
+    ///
+    /// \return - Returns unique pointer to the Default Allocator of the Backend
+    virtual std::unique_ptr<ICustomAllocator> GetDefaultAllocator() const
+    {
+        throw armnn::Exception("GetDefaultAllocator: Function has not been implemented in backend.");
+    }
 };
 
 using IBackendInternalUniquePtr = std::unique_ptr<IBackendInternal>;
diff --git a/include/armnn/backends/ICustomAllocator.hpp b/include/armnn/backends/ICustomAllocator.hpp
index 2cb5f41..eb8dfe1 100644
--- a/include/armnn/backends/ICustomAllocator.hpp
+++ b/include/armnn/backends/ICustomAllocator.hpp
@@ -8,6 +8,7 @@
 #include <cstddef>
 #include <memory>
 #include <armnn/MemorySources.hpp>
+#include <armnn/utility/IgnoreUnused.hpp>
 
 namespace armnn
 {
@@ -31,13 +32,26 @@
     /** Interface to be implemented by the child class to free the allocated bytes */
     virtual void free(void* ptr) = 0;
 
-    //  Used to specify what type of memory is being allocated by this allocator.
-    //  Supported types are:
-    //      MemorySource::Malloc
-    //      MemorySource::DmaBuf
-    //  Unsupported types are:
-    //      MemorySource::DmaBufProtected
+    /**  Used to specify what type of memory is being allocated by this allocator.
+     *  Supported types are:
+     *       MemorySource::Malloc
+     *       MemorySource::DmaBuf
+     *   Unsupported types are:
+     *      MemorySource::DmaBufProtected
+     */
     virtual armnn::MemorySource GetMemorySourceType() = 0;
 
+    /** Interface that may be implemented to allow retrieval of Memory Region
+     *  from allocated buffer at a certain offset
+     */
+    virtual void* GetMemoryRegionAtOffset(void* buffer, size_t offset, size_t alignment = 0)
+    {
+        IgnoreUnused(offset);
+        IgnoreUnused(alignment);
+        IgnoreUnused(buffer);
+        throw armnn::Exception(
+                "ICustomerAllocator::GetMemoryRegionAtOffset(): This function should be overridden in subclass.");
+    }
+
 };
 } // namespace armnn
\ No newline at end of file
