% if exists proc::STACKSIZE then let use_float := false if exists OS::HASFLOAT default (false) then foreach sisr in ISRS do if sisr::USEFLOAT then let use_float := true end if end foreach foreach tsk in TASKS do if tsk::USEFLOAT then let use_float := true end if end foreach end if %/* * % !proc::KIND % % !proc::NAME % stack */ #define APP_% !proc::KIND %_% !proc::NAME %_START_SEC_STACK #include "tpl_memmap.h" VAR(tpl_stack_word, OS_APPL_DATA) % !proc::NAME %_stack_zone[% !proc::STACKSIZE %/sizeof(tpl_stack_word)]; #define APP_% !proc::KIND %_% !proc::NAME %_STOP_SEC_STACK #include "tpl_memmap.h" #define % !proc::NAME %_STACK {% !proc::NAME %_stack_zone, % !proc::STACKSIZE %} /* * % !proc::KIND % % !proc::NAME % context */ #define OS_START_SEC_VAR_NOINIT_32BIT #include "tpl_memmap.h" VAR(ppc_integer_context, OS_VAR) % !proc::NAME %_int_context;% if use_float then if exists proc::USEFLOAT default(false) then % VAR(ppc_float_context, OS_VAR) % !proc::NAME %_fp_context; #define % !proc::NAME %_CONTEXT { &% !proc::NAME %_int_context, &% !proc::NAME %_fp_context }% else % #define % !proc::NAME %_CONTEXT { &% !proc::NAME %_int_context, NULL }% end if else % #define % !proc::NAME %_CONTEXT { &% !proc::NAME %_int_context }% end if % #define OS_STOP_SEC_VAR_NOINIT_32BIT #include "tpl_memmap.h" %end if