blob: 2451db3ab87397bdb1fcb0d4d854850b32f8e07d [file] [log] [blame]
Francis Murtaghe8d7ccb2021-10-14 17:30:24 +01001//
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
13namespace armnn
14{
15
16/** Default Memory Allocator class returned from IBackendInternal::GetDefaultAllocator(MemorySource) */
17class DefaultAllocator : public armnn::ICustomAllocator
18{
19public:
20 DefaultAllocator() = default;
21
22 void* allocate(size_t size, size_t alignment = 0) override
23 {
24 IgnoreUnused(alignment);
25 return ::operator new(size);
26 }
27
28 void free(void* ptr) override
29 {
30 std::free(ptr);
31 }
32
33 armnn::MemorySource GetMemorySourceType() override
34 {
35 return armnn::MemorySource::Malloc;
36 }
37
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