summaryrefslogtreecommitdiff
path: root/runtimes/nn/runtime/Memory.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtimes/nn/runtime/Memory.h')
-rw-r--r--runtimes/nn/runtime/Memory.h122
1 files changed, 0 insertions, 122 deletions
diff --git a/runtimes/nn/runtime/Memory.h b/runtimes/nn/runtime/Memory.h
deleted file mode 100644
index a1058c80c..000000000
--- a/runtimes/nn/runtime/Memory.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __NNFW_RT_MEMORY_H__
-#define __NNFW_RT_MEMORY_H__
-
-#include "NeuralNetworks.h"
-#include "Utils.h"
-
-#include <cutils/native_handle.h>
-#include <sys/mman.h>
-#include <unordered_map>
-
-using namespace android;
-
-namespace nnfw {
-namespace rt {
-
-class ModelBuilder;
-
-// Represents a memory region.
-class Memory {
-public:
- Memory() {}
- virtual ~Memory();
-
- // Disallow copy semantics to ensure the runtime object can only be freed
- // once. Copy semantics could be enabled if some sort of reference counting
- // or deep-copy system for runtime objects is added later.
- Memory(const Memory&) = delete;
- Memory& operator=(const Memory&) = delete;
-
- // Creates a shared memory object of the size specified in bytes.
- int create(uint32_t size);
-
- hardware::hidl_memory getHidlMemory() const { return mHidlMemory; }
-
- // Returns a pointer to the underlying memory of this memory object.
- virtual int getPointer(uint8_t** buffer) const {
-#if 0 // TODO-NNRT : IMemory is needed
- // TODO-NNRT : mMemory is just dummy. It needs to implement IMemory.
- *buffer = static_cast<uint8_t*>(static_cast<void*>(mMemory->getPointer()));
-#endif // TODO-NNRT
- // TODO-NNRT : If it has IMemory, it will be changed to above.
- *buffer = mBuffer;
- return ANEURALNETWORKS_NO_ERROR;
- }
- virtual bool validateSize(uint32_t offset, uint32_t length) const;
-protected:
- // The hidl_memory handle for this shared memory. We will pass this value when
- // communicating with the drivers.
- hardware::hidl_memory mHidlMemory;
-#if 0 // TODO-NNRT : Imemory is needed.
- sp<IMemory> mMemory;
-#endif // TODO-NNRT
- // A pointer to the underlying memory of the memory object
- // TODO-NNRT : Remove if IMemory is added.
- uint8_t *mBuffer = nullptr;
- // TODO-NNRT : Remove if allocateSharedMemory is implemented.
- native_handle_t* mAshmemHandle = nullptr;
-};
-
-class MemoryFd : public Memory {
-public:
- MemoryFd() {}
- ~MemoryFd();
-
- // Disallow copy semantics to ensure the runtime object can only be freed
- // once. Copy semantics could be enabled if some sort of reference counting
- // or deep-copy system for runtime objects is added later.
- MemoryFd(const MemoryFd&) = delete;
- MemoryFd& operator=(const MemoryFd&) = delete;
-
- // Create the native_handle based on input size, prot, and fd.
- // Existing native_handle will be deleted, and mHidlMemory will wrap
- // the newly created native_handle.
- int set(size_t size, int prot, int fd, size_t offset);
- int getPointer(uint8_t** buffer) const override;
-private:
- native_handle_t* mHandle = nullptr;
-};
-
-// A utility class to accumulate mulitple Memory objects and assign each
-// a distinct index number, starting with 0.
-//
-// The user of this class is responsible for avoiding concurrent calls
-// to this class from multiple threads.
-class MemoryTracker {
-public:
- // Adds the memory, if it does not already exists. Returns its index.
- // The memories should survive the tracker.
- uint32_t add(const Memory* memory);
- // Returns the number of memories contained.
- uint32_t size() const { return static_cast<uint32_t>(mKnown.size()); }
- // Returns the ith memory.
- const Memory* operator[](size_t i) const { return mMemories[i]; }
-
-private:
- // The vector of Memory pointers we are building.
- std::vector<const Memory*> mMemories;
- // A faster way to see if we already have a memory than doing find().
- std::unordered_map<const Memory*, uint32_t> mKnown;
-};
-
-} // namespace rt
-} // namespace nnfw
-
-#endif // __NNFW_RT_MEMORY_H__