1
0
Fork 0
forked from len0rd/rockbox

Use MEM_ALIGN_ATTR and CACHEALIGN_SIZE in oggmalloc to ensure optimal alignment.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29833 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Andree Buschmann 2011-05-08 16:41:23 +00:00
parent 9c33dca647
commit e720724b95

View file

@ -61,7 +61,7 @@ void ogg_free(void* ptr)
}
/* Allocate IRAM buffer */
static unsigned char iram_buff[IRAM_IBSS_SIZE] IBSS_ATTR __attribute__ ((aligned (16)));
static unsigned char iram_buff[IRAM_IBSS_SIZE] IBSS_ATTR MEM_ALIGN_ATTR;
static size_t iram_remain;
void iram_malloc_init(void){
@ -71,9 +71,8 @@ void iram_malloc_init(void){
void *iram_malloc(size_t size){
void* x;
/* always ensure 16-byte aligned */
if(size&0x0f)
size=(size-(size&0x0f))+16;
/* always ensure alignment to CACHEALIGN_SIZE byte */
size = (size + (CACHEALIGN_SIZE-1)) & ~(CACHEALIGN_SIZE-1);
if(size>iram_remain)
return NULL;