COMPMID-1023: Import memory for OpenCL
Change-Id: I201bc00a1261814737e6b6878ecfe9904bae0cc1
Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/128212
Tested-by: Jenkins <bsgcomp@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
diff --git a/arm_compute/runtime/IAllocator.h b/arm_compute/runtime/IAllocator.h
index 3edb34a..591ae0b 100644
--- a/arm_compute/runtime/IAllocator.h
+++ b/arm_compute/runtime/IAllocator.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017-2018 ARM Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -24,7 +24,10 @@
#ifndef __ARM_COMPUTE_IALLOCATOR_H__
#define __ARM_COMPUTE_IALLOCATOR_H__
+#include "arm_compute/runtime/IMemoryRegion.h"
+
#include <cstddef>
+#include <memory>
namespace arm_compute
{
@@ -34,6 +37,7 @@
public:
/** Default virtual destructor. */
virtual ~IAllocator() = default;
+ // TODO (COMPMID-1088) : Change allocator and rest interfaces to use IMemoryRegion
/** Interface to be implemented by the child class to allocate bytes
*
* @param[in] size Size to allocate
@@ -44,6 +48,14 @@
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;
+ /** Create self-managed memory region
+ *
+ * @param[in] size Size of the memory region
+ * @param[in] alignment Alignment of the memory region
+ *
+ * @return The memory region object
+ */
+ virtual std::unique_ptr<IMemoryRegion> make_region(size_t size, size_t alignment) = 0;
};
} // arm_compute
#endif /*__ARM_COMPUTE_IALLOCATOR_H__ */