diff --git a/arch/arm/include/arch.h b/arch/arm/include/arch.h index 02e66aaf494..0e17ee79ce5 100644 --- a/arch/arm/include/arch.h +++ b/arch/arm/include/arch.h @@ -1,7 +1,7 @@ /**************************************************************************** * arch/arm/include/arch.h * - * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved. + * Copyright (C) 2007-2009, 2014 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -137,6 +137,7 @@ struct group_addrenv_s FAR uintptr_t *text[ARCH_TEXT_NSECTS]; FAR uintptr_t *data[ARCH_DATA_NSECTS]; +#ifdef CONFIG_BUILD_KERNEL FAR uintptr_t *heap[ARCH_HEAP_NSECTS]; /* Initial heap allocation (in bytes). This exists only provide an @@ -146,6 +147,7 @@ struct group_addrenv_s */ size_t heapsize; +#endif }; typedef struct group_addrenv_s group_addrenv_t; diff --git a/arch/arm/src/armv7-a/arm_addrenv.c b/arch/arm/src/armv7-a/arm_addrenv.c index aa28efbdbc2..c3d1e1ca166 100644 --- a/arch/arm/src/armv7-a/arm_addrenv.c +++ b/arch/arm/src/armv7-a/arm_addrenv.c @@ -510,6 +510,7 @@ int up_addrenv_create(size_t textsize, size_t datasize, size_t heapsize, } #endif +#ifdef CONFIG_BUILD_KERNEL /* Allocate heap space pages */ ret = up_addrenv_create_region(addrenv->heap, ARCH_HEAP_NSECTS, @@ -526,6 +527,7 @@ int up_addrenv_create(size_t textsize, size_t datasize, size_t heapsize, */ addrenv->heapsize = (size_t)ret << MM_PGSHIFT; +#endif return OK; errout: @@ -564,12 +566,14 @@ int up_addrenv_destroy(FAR group_addrenv_t *addrenv) up_addrenv_destroy_region(addrenv->data, ARCH_DATA_NSECTS, CONFIG_ARCH_DATA_VBASE); +#ifdef CONFIG_BUILD_KERNEL /* Destroy the heap region */ up_addrenv_destroy_region(addrenv->heap, ARCH_HEAP_NSECTS, CONFIG_ARCH_HEAP_VBASE); memset(addrenv, 0, sizeof(group_addrenv_t)); +#endif return OK; } @@ -654,11 +658,13 @@ int up_addrenv_vdata(FAR group_addrenv_t *addrenv, uintptr_t textsize, * ****************************************************************************/ +#ifdef CONFIG_BUILD_KERNEL ssize_t up_addrenv_heapsize(FAR const group_addrenv_t *addrenv) { DEBUGASSERT(addrenv); return (ssize_t)addrenv->heapsize; } +#endif /**************************************************************************** * Name: up_addrenv_select @@ -742,6 +748,7 @@ int up_addrenv_select(FAR const group_addrenv_t *addrenv, } } +#ifdef CONFIG_BUILD_KERNEL for (vaddr = CONFIG_ARCH_HEAP_VBASE, i = 0; i < ARCH_HEAP_NSECTS; vaddr += SECTION_SIZE, i++) @@ -765,6 +772,7 @@ int up_addrenv_select(FAR const group_addrenv_t *addrenv, mmu_l1_clrentry(vaddr); } } +#endif return OK; } @@ -812,6 +820,7 @@ int up_addrenv_restore(FAR const save_addrenv_t *oldenv) mmu_l1_restore(vaddr, oldenv->data[i]); } +#ifdef CONFIG_BUILD_KERNEL for (vaddr = CONFIG_ARCH_HEAP_VBASE, i = 0; i < ARCH_HEAP_NSECTS; vaddr += SECTION_SIZE, i++) @@ -820,6 +829,7 @@ int up_addrenv_restore(FAR const save_addrenv_t *oldenv) mmu_l1_restore(vaddr, oldenv->heap[i]); } +#endif return OK; }