sysgen: generate sysgen.h instead of zephyr.h
use zephyr.h as the main include in applications, no need to have nano/micro includes in applications and samples. Inclusion of the proper kernel headers is be handled in the zephyr.h based on the configured and used kernel. Change-Id: If5275cef5d2ad1f475dfb39102cb71cfe5630f6c Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
parent
c06c666ec9
commit
8b45f4e50b
3 changed files with 79 additions and 51 deletions
3
Makefile
3
Makefile
|
@ -366,6 +366,7 @@ ZEPHYRINCLUDE := \
|
|||
$(if $(KBUILD_SRC), -I$(srctree)/include) \
|
||||
-I$(srctree)/include \
|
||||
-I$(CURDIR)/include/generated \
|
||||
-I$(CURDIR)/misc/generated/sysgen \
|
||||
$(USERINCLUDE) \
|
||||
$(STDINCLUDE)
|
||||
|
||||
|
@ -937,7 +938,7 @@ kselftest:
|
|||
CLEAN_DIRS += $(MODVERDIR)
|
||||
|
||||
CLEAN_FILES += misc/generated/sysgen/kernel_main.c \
|
||||
misc/generated/sysgen/zephyr.h \
|
||||
misc/generated/sysgen/sysgen.h \
|
||||
misc/generated/sysgen/prj.mdef
|
||||
|
||||
# Directories & files removed with 'make mrproper'
|
||||
|
|
27
include/zephyr.h
Normal file
27
include/zephyr.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* Copyright (c) 2015 Intel Corporation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef _ZEPHYR__H
|
||||
#define _ZEPHYR__H
|
||||
|
||||
#if CONFIG_MICROKERNEL
|
||||
#include <microkernel.h>
|
||||
#include <sysgen.h>
|
||||
#else
|
||||
#include <nanokernel.h>
|
||||
#endif /* CONFIG_MICROKERNEL */
|
||||
|
||||
#endif /* _ZEPHYR__H */
|
100
scripts/sysgen
100
scripts/sysgen
|
@ -26,7 +26,7 @@
|
|||
# - kernel_main.c file
|
||||
# - kernel_main.h file (local copy)
|
||||
# - micro_private_types.h file (local copy)
|
||||
# - zephyr.h file
|
||||
# - sysgen.h file
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
@ -239,7 +239,7 @@ def kernel_main_c_header():
|
|||
copyright +
|
||||
do_not_edit_warning +
|
||||
"\n" +
|
||||
"#include <zephyr.h>\n" +
|
||||
"#include <sysgen.h>\n" +
|
||||
"#include <micro_private_types.h>\n" +
|
||||
"#include <kernel_main.h>\n" +
|
||||
"#include <toolchain.h>\n" +
|
||||
|
@ -811,49 +811,49 @@ def micro_private_types_h_generate():
|
|||
|
||||
|
||||
#
|
||||
# GENERATE zephyr.h FILE
|
||||
# GENERATE sysgen.h FILE
|
||||
#
|
||||
|
||||
|
||||
zephyr_h_data = ""
|
||||
sysgen_h_data = ""
|
||||
|
||||
zephyr_h_filename_str = \
|
||||
"/* zephyr.h - microkernel master header file */\n\n"
|
||||
sysgen_h_filename_str = \
|
||||
"/* sysgen.h - system generated microkernel definitions */\n\n"
|
||||
|
||||
zephyr_h_include_guard = "_ZEPHYR__H_"
|
||||
sysgen_h_include_guard = "_SYSGEN__H_"
|
||||
|
||||
zephyr_h_header_include_guard_str = \
|
||||
"#ifndef " + zephyr_h_include_guard + "\n" \
|
||||
"#define " + zephyr_h_include_guard + "\n\n"
|
||||
sysgen_h_header_include_guard_str = \
|
||||
"#ifndef " + sysgen_h_include_guard + "\n" \
|
||||
"#define " + sysgen_h_include_guard + "\n\n"
|
||||
|
||||
|
||||
def generate_zephyr_h_header():
|
||||
def generate_sysgen_h_header():
|
||||
|
||||
global zephyr_h_data
|
||||
zephyr_h_data += \
|
||||
zephyr_h_filename_str + \
|
||||
global sysgen_h_data
|
||||
sysgen_h_data += \
|
||||
sysgen_h_filename_str + \
|
||||
copyright + \
|
||||
do_not_edit_warning + \
|
||||
zephyr_h_header_include_guard_str + \
|
||||
"#include <microkernel.h>\n" + \
|
||||
sysgen_h_header_include_guard_str + \
|
||||
"\n"
|
||||
|
||||
|
||||
def generate_taskgroup_line(taskgroup, group_id):
|
||||
|
||||
global zephyr_h_data
|
||||
zephyr_h_data += \
|
||||
global sysgen_h_data
|
||||
sysgen_h_data += \
|
||||
"#define " + taskgroup + " 0x%8.8x\n" % group_id
|
||||
|
||||
|
||||
def generate_zephyr_h_taskgroups():
|
||||
def generate_sysgen_h_taskgroups():
|
||||
|
||||
global zephyr_h_data
|
||||
global sysgen_h_data
|
||||
|
||||
for group in group_key_list:
|
||||
generate_taskgroup_line(group, group_dictionary[group])
|
||||
|
||||
zephyr_h_data += "\n"
|
||||
sysgen_h_data += "\n"
|
||||
|
||||
|
||||
def generate_obj_id_line(name, obj_id):
|
||||
|
@ -874,52 +874,52 @@ def generate_obj_id_lines(obj_types):
|
|||
return data
|
||||
|
||||
|
||||
def generate_zephyr_h_obj_ids():
|
||||
def generate_sysgen_h_obj_ids():
|
||||
|
||||
global zephyr_h_data
|
||||
global sysgen_h_data
|
||||
|
||||
base_event = 4 # no need to generate ids for the 4 pre-defined events
|
||||
event_id = base_event
|
||||
for event in event_list:
|
||||
zephyr_h_data += "#define %s %u\n" % (str(event[0]), event_id)
|
||||
sysgen_h_data += "#define %s %u\n" % (str(event[0]), event_id)
|
||||
event_id += 1
|
||||
if event_id > base_event:
|
||||
zephyr_h_data += "\n"
|
||||
sysgen_h_data += "\n"
|
||||
|
||||
# mutex object ids
|
||||
|
||||
for mutex in mutex_list:
|
||||
name = mutex[0]
|
||||
zephyr_h_data += \
|
||||
sysgen_h_data += \
|
||||
"extern struct _k_mutex_struct _k_mutex_obj_%s;\n" % (name)
|
||||
zephyr_h_data += \
|
||||
sysgen_h_data += \
|
||||
"#define %s ((kmutex_t)&_k_mutex_obj_%s)\n\n" % (name, name)
|
||||
|
||||
# semaphore object ids
|
||||
|
||||
for semaphore in sema_list:
|
||||
name = semaphore[0]
|
||||
zephyr_h_data += \
|
||||
sysgen_h_data += \
|
||||
"extern struct _k_sem_struct _k_sem_obj_%s;\n" % (name)
|
||||
zephyr_h_data += \
|
||||
sysgen_h_data += \
|
||||
"#define %s ((ksem_t)&_k_sem_obj_%s)\n\n" % (name, name)
|
||||
|
||||
# fifo object ids
|
||||
|
||||
for fifo in fifo_list:
|
||||
name = fifo[0]
|
||||
zephyr_h_data += \
|
||||
sysgen_h_data += \
|
||||
"extern struct _k_fifo_struct _k_fifo_obj_%s;\n" % (name)
|
||||
zephyr_h_data += \
|
||||
sysgen_h_data += \
|
||||
"#define %s ((kfifo_t)&_k_fifo_obj_%s)\n\n" % (name, name)
|
||||
|
||||
# mailbox object ids
|
||||
|
||||
for mbx in mbx_list:
|
||||
name = mbx[0]
|
||||
zephyr_h_data += \
|
||||
sysgen_h_data += \
|
||||
"extern struct _k_mbox_struct _k_mbox_obj_%s;\n" % (name)
|
||||
zephyr_h_data += \
|
||||
sysgen_h_data += \
|
||||
"#define %s ((kmbox_t)&_k_mbox_obj_%s)\n\n" % (name, name)
|
||||
|
||||
# pipe object id
|
||||
|
@ -927,7 +927,7 @@ def generate_zephyr_h_obj_ids():
|
|||
kernel_main_c_out("\n")
|
||||
for pipe in pipe_list:
|
||||
name = pipe[0];
|
||||
zephyr_h_data += \
|
||||
sysgen_h_data += \
|
||||
"extern struct _k_pipe_struct _k_pipe_obj_%s;\n" % (name) + \
|
||||
"#define %s ((kpipe_t)&_k_pipe_obj_%s)\n\n" % (name, name)
|
||||
|
||||
|
@ -936,7 +936,7 @@ def generate_zephyr_h_obj_ids():
|
|||
kernel_main_c_out("\n")
|
||||
for map in map_list:
|
||||
name = map[0];
|
||||
zephyr_h_data += \
|
||||
sysgen_h_data += \
|
||||
"extern struct _k_mem_map_struct _k_mem_map_obj_%s;\n" % (name) + \
|
||||
"#define %s ((kmemory_map_t)&_k_mem_map_obj_%s)\n" % (name, name)
|
||||
|
||||
|
@ -945,7 +945,7 @@ def generate_zephyr_h_obj_ids():
|
|||
kernel_main_c_out("\n")
|
||||
for task in task_list:
|
||||
name = task[0];
|
||||
zephyr_h_data += \
|
||||
sysgen_h_data += \
|
||||
"extern struct k_task _k_task_obj_%s;\n" % (name) + \
|
||||
"#define %s ((ktask_t)&_k_task_obj_%s)\n" % (name, name)
|
||||
|
||||
|
@ -955,29 +955,29 @@ def generate_zephyr_h_obj_ids():
|
|||
obj_types = [
|
||||
[pool_list, 0],
|
||||
]
|
||||
zephyr_h_data += generate_obj_id_lines(obj_types)
|
||||
sysgen_h_data += generate_obj_id_lines(obj_types)
|
||||
|
||||
|
||||
zephyr_h_footer_include_guard_str = \
|
||||
"\n#endif /* " + zephyr_h_include_guard + " */\n"
|
||||
sysgen_h_footer_include_guard_str = \
|
||||
"\n#endif /* " + sysgen_h_include_guard + " */\n"
|
||||
|
||||
|
||||
def generate_zephyr_h_footer():
|
||||
def generate_sysgen_h_footer():
|
||||
|
||||
global zephyr_h_data
|
||||
zephyr_h_data += \
|
||||
zephyr_h_footer_include_guard_str
|
||||
global sysgen_h_data
|
||||
sysgen_h_data += \
|
||||
sysgen_h_footer_include_guard_str
|
||||
|
||||
|
||||
def zephyr_h_generate():
|
||||
""" Generate zephyr.h file """
|
||||
def sysgen_h_generate():
|
||||
""" Generate sysgen.h file """
|
||||
|
||||
generate_zephyr_h_header()
|
||||
generate_zephyr_h_taskgroups()
|
||||
generate_zephyr_h_obj_ids()
|
||||
generate_zephyr_h_footer()
|
||||
generate_sysgen_h_header()
|
||||
generate_sysgen_h_taskgroups()
|
||||
generate_sysgen_h_obj_ids()
|
||||
generate_sysgen_h_footer()
|
||||
|
||||
write_file(output_dir + 'zephyr.h', zephyr_h_data)
|
||||
write_file(output_dir + 'sysgen.h', sysgen_h_data)
|
||||
|
||||
|
||||
#
|
||||
|
@ -990,4 +990,4 @@ get_output_dir()
|
|||
kernel_main_c_generate()
|
||||
kernel_main_h_generate()
|
||||
micro_private_types_h_generate()
|
||||
zephyr_h_generate()
|
||||
sysgen_h_generate()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue