aboutsummaryrefslogtreecommitdiff
path: root/include/armnn/backends/ICustomAllocator.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/armnn/backends/ICustomAllocator.hpp')
-rw-r--r--include/armnn/backends/ICustomAllocator.hpp26
1 files changed, 20 insertions, 6 deletions
diff --git a/include/armnn/backends/ICustomAllocator.hpp b/include/armnn/backends/ICustomAllocator.hpp
index 2cb5f41f78..eb8dfe1459 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 @@ public:
/** 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