summaryrefslogtreecommitdiff
path: root/inference-engine/src/inference_engine/ie_memcpy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'inference-engine/src/inference_engine/ie_memcpy.cpp')
-rw-r--r--inference-engine/src/inference_engine/ie_memcpy.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/inference-engine/src/inference_engine/ie_memcpy.cpp b/inference-engine/src/inference_engine/ie_memcpy.cpp
new file mode 100644
index 000000000..330c0f268
--- /dev/null
+++ b/inference-engine/src/inference_engine/ie_memcpy.cpp
@@ -0,0 +1,21 @@
+// Copyright (C) 2018 Intel Corporation
+// SPDX-License-Identifier: Apache-2.0
+//
+
+#include <stdint.h>
+#include <string.h>
+#include "ie_memcpy.h"
+
+int ie_memcpy(void* dest, size_t destsz, void const* src, size_t count) {
+ size_t i;
+ if (!src || count > destsz ||
+ count > (dest > src ? ((uintptr_t)dest - (uintptr_t)src)
+ : ((uintptr_t)src - (uintptr_t)dest))) {
+ // zero out dest if error detected
+ memset(dest, 0, destsz);
+ return -1;
+ }
+
+ for (i = 0; i < count; ++i) (reinterpret_cast<uint8_t*>(dest))[i] = (reinterpret_cast<const uint8_t*>(src))[i];
+ return 0;
+}