Publishing 2019 R1 content
[platform/upstream/dldt.git] / inference-engine / src / inference_engine / ie_memcpy.cpp
1 // Copyright (C) 2018-2019 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4
5 #include <stdint.h>
6 #include <string.h>
7 #include "ie_memcpy.h"
8
9 int ie_memcpy(void* dest, size_t destsz, void const* src, size_t count) {
10     size_t i;
11     if (!src || count > destsz ||
12         count > (dest > src ? ((uintptr_t)dest - (uintptr_t)src)
13                             : ((uintptr_t)src - (uintptr_t)dest))) {
14         // zero out dest if error detected
15         memset(dest, 0, destsz);
16         return -1;
17     }
18
19     for (i = 0; i < count; ++i) (reinterpret_cast<uint8_t*>(dest))[i] = (reinterpret_cast<const uint8_t*>(src))[i];
20     return 0;
21 }