xref: /aosp_15_r20/external/armnn/src/backends/backendsCommon/DefaultAllocator.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include <cstddef>
9 #include <memory>
10 #include <armnn/MemorySources.hpp>
11 #include <armnn/utility/IgnoreUnused.hpp>
12 
13 namespace armnn
14 {
15 
16 /** Default Memory Allocator class returned from IBackendInternal::GetDefaultAllocator(MemorySource) */
17 class DefaultAllocator : public armnn::ICustomAllocator
18 {
19 public:
20     DefaultAllocator() = default;
21 
allocate(size_t size,size_t alignment=0)22     void* allocate(size_t size, size_t alignment = 0) override
23     {
24         IgnoreUnused(alignment);
25         return ::operator new(size_t(size));
26     }
27 
free(void * ptr)28     void free(void* ptr) override
29     {
30         ::operator delete(ptr);
31     }
32 
GetMemorySourceType()33     armnn::MemorySource GetMemorySourceType() override
34     {
35         return armnn::MemorySource::Malloc;
36     }
37 
GetMemoryRegionAtOffset(void * buffer,size_t offset,size_t alignment=0)38     void* GetMemoryRegionAtOffset(void* buffer, size_t offset, size_t alignment = 0) override
39     {
40         IgnoreUnused(alignment);
41         return static_cast<char*>(buffer) + offset;
42     }
43 };
44 
45 } // namespace armnn