sysgen: Standardize newline creation in output files

The routine that appends data to kernel_main.c no longer adds
a newline character, similar to what is done during the generation
of microkernel_objs.h and vxmicro.h.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
This commit is contained in:
Allan Stephens 2015-04-15 16:13:59 -04:00 committed by Anas Nashif
commit 3cddec6551

View file

@ -242,6 +242,13 @@ kernel_main_c_filename_str = \
"/* kernel_main.c - microkernel mainline and kernel objects */\n\n" "/* kernel_main.c - microkernel mainline and kernel objects */\n\n"
def kernel_main_c_out(string):
""" Append a string to kernel_main.c """
global kernel_main_c_data
kernel_main_c_data += string
def kernel_main_c_general(): def kernel_main_c_general():
kernel_main_c_out( kernel_main_c_out(
kernel_main_c_filename_str + kernel_main_c_filename_str +
@ -252,13 +259,13 @@ def kernel_main_c_general():
"#include <k_boot.h>\n" + "#include <k_boot.h>\n" +
"#include <toolchain.h>\n" + "#include <toolchain.h>\n" +
"#include <sections.h>\n" + "#include <sections.h>\n" +
"#include <vxmicro.h>") "#include <vxmicro.h>\n")
kernel_main_c_out("\nconst knode_t K_ThisNode = 0x00010000;") kernel_main_c_out("\nconst knode_t K_ThisNode = 0x00010000;\n")
kernel_main_c_out("\n" +
"char __noinit _minik_stack[CONFIG_MICROKERNEL_SERVER_STACK_SIZE];\n")
kernel_main_c_out( kernel_main_c_out(
"\nchar __noinit _minik_stack[CONFIG_MICROKERNEL_SERVER_STACK_SIZE];") "int K_StackSize = CONFIG_MICROKERNEL_SERVER_STACK_SIZE;\n")
kernel_main_c_out(
"int K_StackSize = CONFIG_MICROKERNEL_SERVER_STACK_SIZE;")
def kernel_main_c_kargs(): def kernel_main_c_kargs():
@ -269,21 +276,21 @@ def kernel_main_c_kargs():
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"struct k_args K_ArgsBlocks[%s] =\n" % (num_kargs) + "struct k_args K_ArgsBlocks[%s] =\n" % (num_kargs) +
"{\n" + "{\n" +
" {NULL, NULL, 0, 0, 0, (K_COMM) UNDEFINED},") " {NULL, NULL, 0, 0, 0, (K_COMM) UNDEFINED},\n")
for i in range(1, num_kargs - 1): for i in range(1, num_kargs - 1):
kernel_main_c_out( kernel_main_c_out(
" {&K_ArgsBlocks[%d], NULL, 0, 0, 0, (K_COMM) UNDEFINED}," % " {&K_ArgsBlocks[%d], NULL, 0, 0, 0, (K_COMM) UNDEFINED},\n" %
(i - 1)) (i - 1))
kernel_main_c_out( kernel_main_c_out(
" {&K_ArgsBlocks[%d], NULL, 0, 0, 0, (K_COMM) UNDEFINED}" % " {&K_ArgsBlocks[%d], NULL, 0, 0, 0, (K_COMM) UNDEFINED}\n" %
(num_kargs - 2) + (num_kargs - 2) +
"\n};") "};\n")
# linked list of free command packets # linked list of free command packets
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"struct nano_lifo K_ArgsFree = " + "struct nano_lifo K_ArgsFree = " +
"{(void *) &K_ArgsBlocks[%d], NULL};" % (num_kargs - 1)) "{(void *) &K_ArgsBlocks[%d], NULL};\n" % (num_kargs - 1))
def kernel_main_c_timers(): def kernel_main_c_timers():
@ -294,21 +301,21 @@ def kernel_main_c_timers():
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"K_TIMER K_TimerBlocks[%d] =\n" % (num_timers) + "K_TIMER K_TimerBlocks[%d] =\n" % (num_timers) +
"{\n" + "{\n" +
" {NULL, NULL, 0, 0, (struct k_args *)0xffffffff},") " {NULL, NULL, 0, 0, (struct k_args *)0xffffffff},\n")
for i in range(1, num_timers - 1): for i in range(1, num_timers - 1):
kernel_main_c_out( kernel_main_c_out(
" {&K_TimerBlocks[%d], NULL, 0, 0, " % (i - 1) + " {&K_TimerBlocks[%d], NULL, 0, 0, " % (i - 1) +
"(struct k_args *)0xffffffff},") "(struct k_args *)0xffffffff},\n")
kernel_main_c_out( kernel_main_c_out(
" {&K_TimerBlocks[%d], NULL, 0, 0, (struct k_args *)0xffffffff}\n" % " {&K_TimerBlocks[%d], NULL, 0, 0, (struct k_args *)0xffffffff}\n" %
(num_timers - 2) + (num_timers - 2) +
"};") "};\n")
# linked list of free timers # linked list of free timers
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"struct nano_lifo K_TimerFree = " + "struct nano_lifo K_TimerFree = " +
"{(void *) &K_TimerBlocks[%d], NULL};" % (num_timers - 1)) "{(void *) &K_TimerBlocks[%d], NULL};\n" % (num_timers - 1))
def kernel_main_c_tasks(): def kernel_main_c_tasks():
@ -318,19 +325,20 @@ def kernel_main_c_tasks():
# task global variables # task global variables
kernel_main_c_out("int K_TaskCount = %d;" % (total_tasks - 1)) kernel_main_c_out("int K_TaskCount = %d;\n" % (total_tasks - 1))
# task stack areas # task stack areas
kernel_main_c_out("") kernel_main_c_out("\n")
for task in task_list: for task in task_list:
kernel_main_c_out("char __noinit __%s_stack[%d];" % (task[0], task[3])) kernel_main_c_out("char __noinit __%s_stack[%d];\n" %
(task[0], task[3]))
# task descriptors (including one for idle task) # task descriptors (including one for idle task)
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"struct k_proc K_TaskList[%d] =\n" % (total_tasks) + "struct k_proc K_TaskList[%d] =\n" % (total_tasks) +
"{") "{\n")
ident = 0x00010000 ident = 0x00010000
for task in task_list: for task in task_list:
prio = task[1] prio = task[1]
@ -359,18 +367,18 @@ def kernel_main_c_tasks():
kernel_main_c_out( kernel_main_c_out(
" {NULL, NULL, %d, %#010x, " % (prio, ident) + " {NULL, NULL, %d, %#010x, " % (prio, ident) +
"0x00000001, %#010x,\n" % (group_bitmask) + "0x00000001, %#010x,\n" % (group_bitmask) +
"%s, %s, %d, (taskabortfunction)NULL}," % (entry, stack, size)) "%s, %s, %d, (taskabortfunction)NULL},\n" % (entry, stack, size))
ident += 1 ident += 1
kernel_main_c_out(" {NULL, NULL, 63, 0x00000000, " + kernel_main_c_out(" {NULL, NULL, 63, 0x00000000, " +
"0x00000000, 0x00000000,\n" + "0x00000000, 0x00000000,\n" +
"(taskstartfunction)NULL, NULL, 0, (taskabortfunction)NULL}") "(taskstartfunction)NULL, NULL, 0, (taskabortfunction)NULL}\n")
kernel_main_c_out("};") kernel_main_c_out("};\n")
# currently scheduled task (idle task) # currently scheduled task (idle task)
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"struct k_proc * K_Task = &K_TaskList[%d];" % (total_tasks - 1)) "struct k_proc * K_Task = &K_TaskList[%d];\n" % (total_tasks - 1))
def kernel_main_c_priorities(): def kernel_main_c_priorities():
@ -383,19 +391,19 @@ def kernel_main_c_priorities():
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"struct k_tqhd K_PrioList[%d] =\n" % (num_prios) + "struct k_tqhd K_PrioList[%d] =\n" % (num_prios) +
"{") "{\n")
for i in range(1, num_prios): for i in range(1, num_prios):
kernel_main_c_out( kernel_main_c_out(
" {NULL, (struct k_proc *)&K_PrioList[%d]}," % (i - 1)) " {NULL, (struct k_proc *)&K_PrioList[%d]},\n" % (i - 1))
kernel_main_c_out( kernel_main_c_out(
" {&K_TaskList[%d], &K_TaskList[%d]}\n" % " {&K_TaskList[%d], &K_TaskList[%d]}\n" %
(total_tasks - 1, total_tasks - 1) + (total_tasks - 1, total_tasks - 1) +
"};") "};\n")
# active priority queue (idle task's queue) # active priority queue (idle task's queue)
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"struct k_tqhd * K_Prio = &K_PrioList[%d];" % (num_prios - 1)) "struct k_tqhd * K_Prio = &K_PrioList[%d];\n" % (num_prios - 1))
def kernel_main_c_events(): def kernel_main_c_events():
@ -407,33 +415,33 @@ def kernel_main_c_events():
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"struct evstr EVENTS[%d] =\n" % (total_events) + "struct evstr EVENTS[%d] =\n" % (total_events) +
"{") "{\n")
# pre-defined events # pre-defined events
kernel_main_c_out( kernel_main_c_out(
" {0, (kevent_handler_t)K_ticker, (struct k_args *)NULL, 0},\n" + " {0, (kevent_handler_t)K_ticker, (struct k_args *)NULL, 0},\n" +
" {0, (kevent_handler_t)NULL, (struct k_args *)NULL, 0},\n" + " {0, (kevent_handler_t)NULL, (struct k_args *)NULL, 0},\n" +
" {0, (kevent_handler_t)NULL, (struct k_args *)NULL, 0},\n" + " {0, (kevent_handler_t)NULL, (struct k_args *)NULL, 0},\n" +
" {0, (kevent_handler_t)NULL, (struct k_args *)NULL, 0}," " {0, (kevent_handler_t)NULL, (struct k_args *)NULL, 0},\n"
) )
# project-specific events # project-specific events
for event in event_list: for event in event_list:
kernel_main_c_out( kernel_main_c_out(
" {0, (kevent_handler_t)%s, (struct k_args *)NULL, 0}," % " {0, (kevent_handler_t)%s, (struct k_args *)NULL, 0},\n" %
(event[1])) (event[1]))
kernel_main_c_out("};") kernel_main_c_out("};\n")
# number of events # number of events
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"const int K_max_eventnr = %d;" % (total_events)) "const int K_max_eventnr = %d;\n" % (total_events))
# event object identifiers # event object identifiers
kernel_main_c_out("") kernel_main_c_out("\n")
for event_name in event_list: for event_name in event_list:
kernel_main_c_out( kernel_main_c_out(
"const kevent_t %s_objId = %s;" % "const kevent_t %s_objId = %s;\n" %
(event_name[0], event_name[0])) (event_name[0], event_name[0]))
@ -443,24 +451,24 @@ def kernel_main_c_mutexes():
total_mutexes = len(mutex_list) total_mutexes = len(mutex_list)
if (total_mutexes == 0): if (total_mutexes == 0):
kernel_main_c_out("\nstruct mutex_struct * K_MutexList = NULL;") kernel_main_c_out("\nstruct mutex_struct * K_MutexList = NULL;\n")
return return
# mutex descriptors # mutex descriptors
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"struct mutex_struct K_MutexList[%s] =\n" % (total_mutexes) + "struct mutex_struct K_MutexList[%s] =\n" % (total_mutexes) +
"{") "{\n")
for mutex in mutex_list: for mutex in mutex_list:
kernel_main_c_out(" {ANYTASK, 64, 64, 0, NULL, 0, 0},") kernel_main_c_out(" {ANYTASK, 64, 64, 0, NULL, 0, 0},\n")
kernel_main_c_out("};") kernel_main_c_out("};\n")
kernel_main_c_out("") kernel_main_c_out("\n")
# mutex object identifiers # mutex object identifiers
for mutex in mutex_list: for mutex in mutex_list:
name = mutex[0] name = mutex[0]
kernel_main_c_out("const kmutex_t %s_objId = %s;" % (name, name)) kernel_main_c_out("const kmutex_t %s_objId = %s;\n" % (name, name))
def kernel_main_c_semas(): def kernel_main_c_semas():
@ -469,17 +477,17 @@ def kernel_main_c_semas():
total_semas = len(sema_list) total_semas = len(sema_list)
if (total_semas == 0): if (total_semas == 0):
kernel_main_c_out("\nstruct sem_struct * K_SemList = NULL;") kernel_main_c_out("\nstruct sem_struct * K_SemList = NULL;\n")
return return
# semaphore descriptors # semaphore descriptors
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"struct sem_struct K_SemList[%s] =\n" % (total_semas) + "struct sem_struct K_SemList[%s] =\n" % (total_semas) +
"{") "{\n")
for semaphore in sema_list: for semaphore in sema_list:
kernel_main_c_out(" {NULL, 0, 0},") kernel_main_c_out(" {NULL, 0, 0},\n")
kernel_main_c_out("};") kernel_main_c_out("};\n")
def kernel_main_c_fifos(): def kernel_main_c_fifos():
@ -488,22 +496,22 @@ def kernel_main_c_fifos():
total_fifos = len(fifo_list) total_fifos = len(fifo_list)
if (total_fifos == 0): if (total_fifos == 0):
kernel_main_c_out("\nstruct que_struct * K_QueList = NULL;") kernel_main_c_out("\nstruct que_struct * K_QueList = NULL;\n")
return return
# FIFO buffers # FIFO buffers
kernel_main_c_out("") kernel_main_c_out("\n")
for fifo in fifo_list: for fifo in fifo_list:
kernel_main_c_out( kernel_main_c_out(
"char __noinit __%s_buffer[%d];" % (fifo[0], fifo[1] * fifo[2])) "char __noinit __%s_buffer[%d];\n" % (fifo[0], fifo[1] * fifo[2]))
# FIFO descriptors # FIFO descriptors
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"struct que_struct K_QueList[%s] =\n" % (total_fifos) + "struct que_struct K_QueList[%s] =\n" % (total_fifos) +
"{" "{\n"
) )
for fifo in fifo_list: for fifo in fifo_list:
depth = fifo[1] depth = fifo[1]
@ -512,9 +520,9 @@ def kernel_main_c_fifos():
kernel_main_c_out( kernel_main_c_out(
" {%d, %d, %s, %s + (%d * %d),\n" % " {%d, %d, %s, %s + (%d * %d),\n" %
(depth, width, buffer, buffer, depth, width) + (depth, width, buffer, buffer, depth, width) +
"%s, %s, NULL, 0, 0, 0}," % "%s, %s, NULL, 0, 0, 0},\n" %
(buffer, buffer)) (buffer, buffer))
kernel_main_c_out("};") kernel_main_c_out("};\n")
def kernel_main_c_pipes(): def kernel_main_c_pipes():
@ -524,30 +532,30 @@ def kernel_main_c_pipes():
# pipe global variables # pipe global variables
kernel_main_c_out("int K_PipeCount = %d;" % (total_pipes)) kernel_main_c_out("int K_PipeCount = %d;\n" % (total_pipes))
if (total_pipes == 0): if (total_pipes == 0):
kernel_main_c_out("\nstruct pipe_struct * K_PipeList = NULL;") kernel_main_c_out("\nstruct pipe_struct * K_PipeList = NULL;\n")
return return
# pipe buffers # pipe buffers
kernel_main_c_out("") kernel_main_c_out("\n")
for pipe in pipe_list: for pipe in pipe_list:
kernel_main_c_out( kernel_main_c_out(
"char __noinit __%s_buffer[%d];" % (pipe[0], pipe[1])) "char __noinit __%s_buffer[%d];\n" % (pipe[0], pipe[1]))
# pipe descriptors # pipe descriptors
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"struct pipe_struct K_PipeList[%d] =\n" % (total_pipes) + "struct pipe_struct K_PipeList[%d] =\n" % (total_pipes) +
"{") "{\n")
for pipe in pipe_list: for pipe in pipe_list:
size = pipe[1] size = pipe[1]
buffer = "__" + pipe[0] + "_buffer" buffer = "__" + pipe[0] + "_buffer"
kernel_main_c_out(" {%d, %s}," % (size, buffer)) kernel_main_c_out(" {%d, %s},\n" % (size, buffer))
kernel_main_c_out("};") kernel_main_c_out("};\n")
# pipe variables [should probably be eliminated] # pipe variables [should probably be eliminated]
@ -559,7 +567,7 @@ def kernel_main_c_pipes():
"PFN_CHANNEL_RW pHS_Channel_GetW = (PFN_CHANNEL_RW)NULL;\n" + "PFN_CHANNEL_RW pHS_Channel_GetW = (PFN_CHANNEL_RW)NULL;\n" +
"PFN_CHANNEL_RWT pHS_Channel_GetWT = (PFN_CHANNEL_RWT)NULL;\n" + "PFN_CHANNEL_RWT pHS_Channel_GetWT = (PFN_CHANNEL_RWT)NULL;\n" +
"PFN_CHANNEL_RWT pKS_Channel_PutWT = _task_pipe_put;\n" + "PFN_CHANNEL_RWT pKS_Channel_PutWT = _task_pipe_put;\n" +
"PFN_CHANNEL_RWT pKS_Channel_GetWT = _task_pipe_get;") "PFN_CHANNEL_RWT pKS_Channel_GetWT = _task_pipe_get;\n")
def kernel_main_c_mailboxes(): def kernel_main_c_mailboxes():
@ -568,17 +576,17 @@ def kernel_main_c_mailboxes():
total_mbxs = len(mbx_list) total_mbxs = len(mbx_list)
if (total_mbxs == 0): if (total_mbxs == 0):
kernel_main_c_out("\nstruct mbx_struct * K_MbxList = NULL;") kernel_main_c_out("\nstruct mbx_struct * K_MbxList = NULL;\n")
return return
# mailbox descriptors # mailbox descriptors
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"struct mbx_struct K_MbxList[%d] =\n" % (total_mbxs) + "struct mbx_struct K_MbxList[%d] =\n" % (total_mbxs) +
"{") "{\n")
for mbx in mbx_list: for mbx in mbx_list:
kernel_main_c_out(" {NULL, NULL, 0},") kernel_main_c_out(" {NULL, NULL, 0},\n")
kernel_main_c_out("};") kernel_main_c_out("};\n")
def kernel_main_c_maps(): def kernel_main_c_maps():
@ -588,31 +596,32 @@ def kernel_main_c_maps():
# map global variables # map global variables
kernel_main_c_out("int K_MapCount = %d;" % (total_maps)) kernel_main_c_out("int K_MapCount = %d;\n" % (total_maps))
if (total_maps == 0): if (total_maps == 0):
kernel_main_c_out("\nstruct map_struct * K_MapList = NULL;") kernel_main_c_out("\nstruct map_struct * K_MapList = NULL;\n")
return return
# memory map buffers # memory map buffers
kernel_main_c_out("") kernel_main_c_out("\n")
for map in map_list: for map in map_list:
blocks = map[1] blocks = map[1]
block_size = map[2] block_size = map[2]
kernel_main_c_out("char __noinit __MAP_%s_buffer[%d];" % kernel_main_c_out("char __noinit __MAP_%s_buffer[%d];\n" %
(map[0], blocks * block_size)) (map[0], blocks * block_size))
# memory map descriptors # memory map descriptors
kernel_main_c_out("\nstruct map_struct K_MapList[%d] =\n{" % (total_maps)) kernel_main_c_out(
"\nstruct map_struct K_MapList[%d] =\n{\n" % (total_maps))
for map in map_list: for map in map_list:
blocks = map[1] blocks = map[1]
block_size = map[2] block_size = map[2]
kernel_main_c_out(" { %d, %d, __MAP_%s_buffer }," % kernel_main_c_out(" { %d, %d, __MAP_%s_buffer },\n" %
(blocks, block_size, map[0])) (blocks, block_size, map[0]))
kernel_main_c_out("};") kernel_main_c_out("};\n")
def kernel_main_c_pools(): def kernel_main_c_pools():
@ -622,10 +631,10 @@ def kernel_main_c_pools():
# pool global variables # pool global variables
kernel_main_c_out("\nint K_PoolCount = %d;" % (total_pools)) kernel_main_c_out("\nint K_PoolCount = %d;\n" % (total_pools))
if (total_pools == 0): if (total_pools == 0):
kernel_main_c_out("\nstruct pool_struct * K_PoolList = NULL;") kernel_main_c_out("\nstruct pool_struct * K_PoolList = NULL;\n")
return return
# start accumulating memory pool descriptor info # start accumulating memory pool descriptor info
@ -636,7 +645,7 @@ def kernel_main_c_pools():
for pool in pool_list: for pool in pool_list:
kernel_main_c_out("") kernel_main_c_out("\n")
# create local variables relating to current pool # create local variables relating to current pool
@ -671,22 +680,23 @@ def kernel_main_c_pools():
# generate block status areas # generate block status areas
for index in range(0, frag_levels): for index in range(0, frag_levels):
kernel_main_c_out("struct block_stat blockstatus_%#010x_%d[%d];" % kernel_main_c_out(
"struct block_stat blockstatus_%#010x_%d[%d];\n" %
(ident, index, block_status_sizes[index])) (ident, index, block_status_sizes[index]))
# generate memory pool fragmentation descriptor # generate memory pool fragmentation descriptor
kernel_main_c_out("\nstruct pool_block %s[%d] =\n{" % kernel_main_c_out("\nstruct pool_block %s[%d] =\n{\n" %
(frag_table, frag_levels)) (frag_table, frag_levels))
for index in range(0, frag_levels): for index in range(0, frag_levels):
kernel_main_c_out(" { %d, %d, blockstatus_%#010x_%d}," % kernel_main_c_out(" { %d, %d, blockstatus_%#010x_%d},\n" %
(frag_size_list[index], block_status_sizes[index], (frag_size_list[index], block_status_sizes[index],
ident, index)) ident, index))
kernel_main_c_out("};\n") kernel_main_c_out("};\n")
# generate memory pool buffer # generate memory pool buffer
kernel_main_c_out("char __noinit %s[%d];" % (buffer, total_memory)) kernel_main_c_out("\nchar __noinit %s[%d];\n" % (buffer, total_memory))
# append memory pool descriptor info # append memory pool descriptor info
@ -698,7 +708,7 @@ def kernel_main_c_pools():
# generate memory pool descriptor info # generate memory pool descriptor info
pool_descriptors += "};" pool_descriptors += "};\n"
kernel_main_c_out(pool_descriptors) kernel_main_c_out(pool_descriptors)
@ -879,10 +889,10 @@ def kernel_main_c_kernel_services():
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"const kernelfunc _minik_func[82] =\n" + "const kernelfunc _minik_func[82] =\n" +
"{") "{\n")
for func in func_table: for func in func_table:
kernel_main_c_out(" " + func) kernel_main_c_out(" " + func + "\n")
kernel_main_c_out("};") kernel_main_c_out("};\n")
def kernel_main_c_driver_init(): def kernel_main_c_driver_init():
@ -890,24 +900,24 @@ def kernel_main_c_driver_init():
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"void init_drivers(void)\n" + "void init_drivers(void)\n" +
"{") "{\n")
for driver_call in driver_list: for driver_call in driver_list:
kernel_main_c_out(" " + driver_call + ";") kernel_main_c_out(" " + driver_call + ";\n")
kernel_main_c_out("}") kernel_main_c_out("}\n")
def kernel_main_c_node_init(): def kernel_main_c_node_init():
""" Generate node initialization routine """ """ Generate node initialization routine """
kernel_main_c_out("\n" + kernel_main_c_out("\n" +
"void init_node(void)\n{") "void init_node(void)\n{\n")
if (len(pipe_list) > 0): if (len(pipe_list) > 0):
kernel_main_c_out(" InitPipe();") kernel_main_c_out(" InitPipe();\n")
if (len(map_list) > 0): if (len(map_list) > 0):
kernel_main_c_out(" InitMap();") kernel_main_c_out(" InitMap();\n")
if (len(pool_list) > 0): if (len(pool_list) > 0):
kernel_main_c_out(" InitPools();") kernel_main_c_out(" InitPools();\n")
kernel_main_c_out("}") kernel_main_c_out("}\n")
def kernel_main_c_main(): def kernel_main_c_main():
@ -919,15 +929,7 @@ def kernel_main_c_main():
" kernel_init();\n" + " kernel_init();\n" +
" task_group_start(EXE);\n" + " task_group_start(EXE);\n" +
" kernel_idle();\n" + " kernel_idle();\n" +
"}") "}\n")
def kernel_main_c_out(string):
""" Append a string to kernel_main.c """
global kernel_main_c_data
kernel_main_c_data += string + "\n"
def kernel_main_c_generate(): def kernel_main_c_generate():