Publishing R3
[platform/upstream/dldt.git] / inference-engine / thirdparty / ade / ade / source / alloc.cpp
1 // Copyright (C) 2018 Intel Corporation
2 //
3 // SPDX-License-Identifier: Apache-2.0
4 //
5
6 #include <memory/alloc.hpp>
7
8
9 #ifndef __APPLE__
10 #include <malloc.h>
11 #else
12 #include <stdlib.h>
13 void * memalign(size_t alignment, size_t size) {
14     void *buffer;
15     posix_memalign(&buffer, alignment, size);
16     return buffer;
17 }
18 #endif
19
20 #include <util/math.hpp>
21 #include <util/assert.hpp>
22
23 namespace ade
24 {
25
26 void* aligned_alloc(std::size_t size, std::size_t alignment)
27 {
28     ASSERT(util::is_pow2(alignment));
29 #ifdef WIN32
30     return _aligned_malloc(size, alignment);
31 #else
32     return memalign(alignment, size);
33 #endif
34 }
35
36 void aligned_free(void* ptr)
37 {
38 #ifdef WIN32
39     return _aligned_free(ptr);
40 #else
41     return free(ptr);
42 #endif
43 }
44
45 }