diff options
author | Johnathan Corgan <johnathan@corganlabs.com> | 2013-03-26 20:18:53 -0700 |
---|---|---|
committer | Johnathan Corgan <johnathan@corganlabs.com> | 2013-03-26 20:18:53 -0700 |
commit | 26dceecc80390f10cedb94bd9e4fd655827d7f17 (patch) | |
tree | f88cb2995133048b4a2191bae688fa09b33a19ae /gnuradio-core/src/lib/missing/posix_memalign.cc | |
parent | 9bbbda510c265b211b5b571db79ba259c67ee049 (diff) |
runtime: migrate remaining gnuradio-core contents into gnuradio-runtime
Diffstat (limited to 'gnuradio-core/src/lib/missing/posix_memalign.cc')
-rw-r--r-- | gnuradio-core/src/lib/missing/posix_memalign.cc | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/gnuradio-core/src/lib/missing/posix_memalign.cc b/gnuradio-core/src/lib/missing/posix_memalign.cc deleted file mode 100644 index aaeff78042..0000000000 --- a/gnuradio-core/src/lib/missing/posix_memalign.cc +++ /dev/null @@ -1,114 +0,0 @@ -/* -*- c++ -*- */ -/* - * Copyright 2008,2009 Free Software Foundation, Inc. - * - * This file is part of GNU Radio - * - * GNU Radio is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. - * - * GNU Radio is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GNU Radio; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, - * Boston, MA 02110-1301, USA. - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "posix_memalign.h" - -#ifdef HAVE_MALLOC_H -// for Cygwin valloc () prototype -#include <malloc.h> -#endif - -#ifndef HAVE_POSIX_MEMALIGN - -/* emulate posix_memalign functionality, to some degree */ - -#include <errno.h> -#include "gr_pagesize.h" - -int posix_memalign -(void **memptr, size_t alignment, size_t size) -{ - /* emulate posix_memalign functionality, to some degree */ - - /* make sure the return handle is valid; return "bad address" if not valid */ - if (memptr == 0) - return (EFAULT); - *memptr = (void*) 0; - - /* make sure 'alignment' is a power of 2 - * and multiple of sizeof (void*) - */ - - /* make sure 'alignment' is a multiple of sizeof (void*) */ - if ((alignment % sizeof (void*)) != 0) - return (EINVAL); - - /* make sure 'alignment' is a power of 2 */ - if ((alignment & (alignment - 1)) != 0) - return (EINVAL); - - /* good alignment */ - -#if (ALIGNED_MALLOC != 0) - - /* if 'malloc' is known to be aligned, and the desired 'alignment' - * matches is <= that provided by 'malloc', then use 'malloc'. This - * works on, e.g., Darwin 8 & 9: for which malloc is 16-byte aligned. - */ - size_t am = (size_t) ALIGNED_MALLOC; - if (alignment <= am) { - /* make sure ALIGNED_MALLOC is a power of 2, to guarantee that the - * alignment is correct (since 'alignment' must be a power of 2). - */ - if ((am & (am - 1)) != 0) - return (EINVAL); - /* good malloc alignment */ - *memptr = malloc (size); - } - -#endif /* (ALIGNED_MALLOC != 0) */ -#ifdef HAVE_VALLOC - - if (*memptr == (void*) 0) { - /* try valloc if it exists */ - /* cheap and easy way to make sure alignment is met, so long as it - * is <= pagesize () */ - if (alignment <= (size_t) gr_pagesize ()) { - *memptr = valloc (size); - } - } - -#endif /* HAVE_VALLOC */ - -#if (ALIGNED_MALLOC == 0) && !defined (HAVE_VALLOC) - /* no posix_memalign, valloc, and malloc isn't known to be aligned - * (enough for the input arguments); no idea what to do. - */ - -#error gnuradio-core/src/libmissing/posix_memalign.cc: Cannot find a way to alloc aligned memory. - -#endif - - /* if the pointer wasn't allocated properly, return that there was - * not enough memory to allocate; otherwise, return OK (0). - */ - if (*memptr == (void*) 0) - return (ENOMEM); - else - return (0); -}; - -#endif /* ! HAVE_POSIX_MEMALIGN */ |