diff options
Diffstat (limited to 'include/armnn/backends')
-rw-r--r-- | include/armnn/backends/IBackendInternal.hpp | 5 | ||||
-rw-r--r-- | include/armnn/backends/ICustomAllocator.hpp | 18 |
2 files changed, 17 insertions, 6 deletions
diff --git a/include/armnn/backends/IBackendInternal.hpp b/include/armnn/backends/IBackendInternal.hpp index 3b4ef95703..626746465f 100644 --- a/include/armnn/backends/IBackendInternal.hpp +++ b/include/armnn/backends/IBackendInternal.hpp @@ -199,10 +199,13 @@ public: /// Signals the backend to use a custom memory allocator provided by the user /// + /// \param allocator - a pointer to the provided ICustomAllocator to use with this backend /// \param errMsg - Optional string variable to return error messages /// \return - Returns true if switching to custom allocator was successful - virtual bool UseCustomMemoryAllocator(armnn::Optional<std::string&> errMsg) + virtual bool UseCustomMemoryAllocator(std::shared_ptr<ICustomAllocator> allocator, + armnn::Optional<std::string&> errMsg) { + IgnoreUnused(allocator); if (errMsg) { std::stringstream message; diff --git a/include/armnn/backends/ICustomAllocator.hpp b/include/armnn/backends/ICustomAllocator.hpp index 1d4df0cb86..92cbcc2641 100644 --- a/include/armnn/backends/ICustomAllocator.hpp +++ b/include/armnn/backends/ICustomAllocator.hpp @@ -7,6 +7,7 @@ #include <cstddef> #include <memory> +#include <armnn/MemorySources.hpp> namespace armnn { @@ -23,13 +24,20 @@ public: * @param[in] alignment Alignment that the returned pointer should comply with * * @return A pointer to the allocated memory + * The returned pointer must be host write accessible */ - virtual void *allocate(size_t size, size_t alignment) = 0; - /** Interface to be implemented by the child class to free the allocated tensor */ - virtual void free(void *ptr) = 0; + virtual void* allocate(size_t size, size_t alignment) = 0; - // Utility Function to define the Custom Memory Allocators capabilities - virtual bool SupportsProtectedMemory() = 0; + /** 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 + // Unsupported types are: + // MemorySource::DmaBuf + // MemorySource::DmaBufProtected + virtual armnn::MemorySource GetMemorySourceType() = 0; }; } // namespace armnn
\ No newline at end of file |