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:
parent
04012be07c
commit
3cddec6551
1 changed files with 98 additions and 96 deletions
|
@ -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():
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue