CATSFC/source/nds/dma_adj.c
2013-02-03 15:29:05 -05:00

26 lines
591 B
C

#include "ds2_malloc.h"
#include "dma_adj.h"
#ifdef DS2_DMA
struct SPointerAdjustments PtrAdj;
void* AlignedMalloc (unsigned int Size, unsigned int Alignment, unsigned int* Adjustment)
{
if (Alignment == 0) Alignment = 1;
unsigned char* result = (unsigned char*) malloc(Size + Alignment);
if (!result) {
return result;
} else {
*Adjustment = Alignment - ((unsigned int) result & (Alignment - 1));
return (void*) (result + *Adjustment);
}
}
void AlignedFree (void* Memory, unsigned int Adjustment)
{
free((void*) ((unsigned char*) Memory - Adjustment));
}
#endif // DS2_DMA