diff options
-rw-r--r-- | c/src/lib/libbsp/shared/include/stackalloc.h | 11 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/src/stackalloc.c | 28 | ||||
-rwxr-xr-x | config.guess | 16 | ||||
-rwxr-xr-x | config.sub | 19 |
4 files changed, 48 insertions, 26 deletions
diff --git a/c/src/lib/libbsp/shared/include/stackalloc.h b/c/src/lib/libbsp/shared/include/stackalloc.h index b8516ef85f..6ed898fa65 100644 --- a/c/src/lib/libbsp/shared/include/stackalloc.h +++ b/c/src/lib/libbsp/shared/include/stackalloc.h @@ -52,6 +52,12 @@ extern "C" { */ /** + * @brief Task stack allocator initialization for + * @ref CONFIGURE_TASK_STACK_ALLOCATOR_INIT. + */ +void bsp_stack_allocate_init(size_t stack_space_size); + +/** * @brief Task stack allocator for @ref CONFIGURE_TASK_STACK_ALLOCATOR. * * In case the designated task stack space from bsp_stack_initialize() is @@ -65,6 +71,11 @@ void *bsp_stack_allocate(size_t size); void bsp_stack_free(void *stack); /** + * @brief Task stack allocator initialization configuration option. + */ +#define CONFIGURE_TASK_STACK_ALLOCATOR_INIT bsp_stack_allocate_init + +/** * @brief Task stack allocator configuration option. */ #define CONFIGURE_TASK_STACK_ALLOCATOR bsp_stack_allocate diff --git a/c/src/lib/libbsp/shared/src/stackalloc.c b/c/src/lib/libbsp/shared/src/stackalloc.c index be84057aae..b8d7b9cc2c 100644 --- a/c/src/lib/libbsp/shared/src/stackalloc.c +++ b/c/src/lib/libbsp/shared/src/stackalloc.c @@ -27,30 +27,26 @@ #include <bsp/linker-symbols.h> -#define BSP_STACK_MAGIC 0xdeadbeef +static Heap_Control bsp_stack_heap; -static Heap_Control bsp_stack_heap = { - .page_size = BSP_STACK_MAGIC -}; +void bsp_stack_allocate_init(size_t stack_space_size) +{ + _Heap_Initialize( + &bsp_stack_heap, + bsp_section_stack_begin, + (uintptr_t) bsp_section_stack_size, + CPU_STACK_ALIGNMENT + ); +} void *bsp_stack_allocate(size_t size) { void *stack = NULL; - if (bsp_stack_heap.page_size == BSP_STACK_MAGIC) { - uintptr_t rv = _Heap_Initialize( - &bsp_stack_heap, - bsp_section_stack_begin, - (uintptr_t) bsp_section_stack_size, - CPU_STACK_ALIGNMENT - ); - if (rv == 0) { - return NULL; - } + if (bsp_stack_heap.area_begin != 0) { + stack = _Heap_Allocate(&bsp_stack_heap, size); } - stack = _Heap_Allocate(&bsp_stack_heap, size); - if (stack == NULL) { stack = _Workspace_Allocate(size); } diff --git a/config.guess b/config.guess index 49ba16f15c..d622a44e55 100755 --- a/config.guess +++ b/config.guess @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. -timestamp='2012-01-01' +timestamp='2012-02-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -17,9 +17,7 @@ timestamp='2012-01-01' # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see <http://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -863,6 +861,13 @@ EOF i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -1320,6 +1325,9 @@ EOF i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 diff --git a/config.sub b/config.sub index d6b6b3c768..c894da4550 100755 --- a/config.sub +++ b/config.sub @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. -timestamp='2012-01-01' +timestamp='2012-02-10' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -21,9 +21,7 @@ timestamp='2012-01-01' # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see <http://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -132,6 +130,10 @@ case $maybe_os in os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] @@ -247,6 +249,7 @@ case $basic_machine in # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ + | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ @@ -319,7 +322,7 @@ case $basic_machine in c6x) basic_machine=tic6x-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12 | picochip) + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; @@ -332,7 +335,10 @@ case $basic_machine in strongarm | thumb | xscale) basic_machine=arm-unknown ;; - + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; xscaleeb) basic_machine=armeb-unknown ;; @@ -355,6 +361,7 @@ case $basic_machine in # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ + | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ |