From 8b45f4e50b42677736028ec54c85ac34c9bbcdd2 Mon Sep 17 00:00:00 2001 From: Anas Nashif Date: Wed, 21 Oct 2015 07:24:39 -0400 Subject: [PATCH] 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 --- Makefile | 3 +- include/zephyr.h | 27 +++++++++++++ scripts/sysgen | 100 +++++++++++++++++++++++------------------------ 3 files changed, 79 insertions(+), 51 deletions(-) create mode 100644 include/zephyr.h diff --git a/Makefile b/Makefile index f44159e8b5a..826a15d86ba 100644 --- a/Makefile +++ b/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' diff --git a/include/zephyr.h b/include/zephyr.h new file mode 100644 index 00000000000..bc5f352d9b3 --- /dev/null +++ b/include/zephyr.h @@ -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 +#include +#else +#include +#endif /* CONFIG_MICROKERNEL */ + +#endif /* _ZEPHYR__H */ diff --git a/scripts/sysgen b/scripts/sysgen index 00f8b279ff1..310179fb4cf 100755 --- a/scripts/sysgen +++ b/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 \n" + + "#include \n" + "#include \n" + "#include \n" + "#include \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 \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()