annotate DEPENDENCIES/generic/include/boost/align/detail/aligned_alloc_posix.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents f46d142149f5
children
rev   line source
Chris@102 1 /*
Chris@102 2 (c) 2014 Glen Joseph Fernandes
Chris@102 3 glenjofe at gmail dot com
Chris@102 4
Chris@102 5 Distributed under the Boost Software
Chris@102 6 License, Version 1.0.
Chris@102 7 http://boost.org/LICENSE_1_0.txt
Chris@102 8 */
Chris@102 9 #ifndef BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_POSIX_HPP
Chris@102 10 #define BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_POSIX_HPP
Chris@102 11
Chris@102 12 #include <boost/assert.hpp>
Chris@102 13 #include <boost/config.hpp>
Chris@102 14 #include <boost/align/detail/is_alignment.hpp>
Chris@102 15 #include <cstddef>
Chris@102 16 #include <stdlib.h>
Chris@102 17
Chris@102 18 namespace boost {
Chris@102 19 namespace alignment {
Chris@102 20 inline void* aligned_alloc(std::size_t alignment,
Chris@102 21 std::size_t size) BOOST_NOEXCEPT
Chris@102 22 {
Chris@102 23 BOOST_ASSERT(detail::is_alignment(alignment));
Chris@102 24 if (alignment < sizeof(void*)) {
Chris@102 25 alignment = sizeof(void*);
Chris@102 26 }
Chris@102 27 void* p;
Chris@102 28 if (::posix_memalign(&p, alignment, size) != 0) {
Chris@102 29 p = 0;
Chris@102 30 }
Chris@102 31 return p;
Chris@102 32 }
Chris@102 33
Chris@102 34 inline void aligned_free(void* ptr)
Chris@102 35 BOOST_NOEXCEPT
Chris@102 36 {
Chris@102 37 ::free(ptr);
Chris@102 38 }
Chris@102 39 }
Chris@102 40 }
Chris@102 41
Chris@102 42 #endif