#define _POSIX_C_SOURCE 200809L

#include "AlignedAllocator.h"

void* alignedAlloc( unsigned bytes, unsigned alignment )
{
	if( !bytes )
	{
		return 0;
	}

	const unsigned maxBytes = 1024 * 1024 * 1024; //1GB is max on RPi

	if( bytes > maxBytes )
	{
		return 0; //bad alloc
	}

	void* pv = 0;

	if( posix_memalign( &pv, alignment, bytes ) )
	{
		pv = 0; //allocation failed
	}

	return pv;
}

void alignedFree( void* p )
{
	free( p );
}