summaryrefslogtreecommitdiff
path: root/scripts/sysgen
diff options
context:
space:
mode:
authorJuan Manuel Cruz <juan.m.cruz.alcaraz@intel.com>2016-02-17 14:56:57 -0600
committerGerrit Code Review <gerrit@zephyrproject.org>2016-03-11 12:00:07 +0000
commitcaa17577ef6f62a96fb1c0a8ab002ba582737c03 (patch)
tree521ba5485006316931331962a371ae597c9b5a2c /scripts/sysgen
parentf206d86c10def51e246d15a5f09a86fa43c5cde2 (diff)
debug: kernel's object tracing api
Restructure the kernel's object tracing implementation to provide a public API that allows debug tools to use the debug hooks easier and allows kernel developers to extend the kernel's object tracing scope and include new kernel objects easier. The API provides the trace list abstraction to keep track of different types of kernel objects. The API contains a simple single-linked list implementation that allows to save space and simplifies the access to the data for debug tools such as gdb. Change-Id: Ic4d393d584576f67f2c5b706e61bae08869debba Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@intel.com>
Diffstat (limited to 'scripts/sysgen')
-rwxr-xr-xscripts/sysgen29
1 files changed, 15 insertions, 14 deletions
diff --git a/scripts/sysgen b/scripts/sysgen
index 9e8ee4d31..51e669806 100755
--- a/scripts/sysgen
+++ b/scripts/sysgen
@@ -254,6 +254,7 @@ def kernel_main_c_header():
do_not_edit_warning +
"\n" +
"#include <sysgen.h>\n" +
+ "#include <misc/debug/object_tracing_common.h>\n" +
"#include <micro_private_types.h>\n" +
"#include <kernel_main.h>\n" +
"#include <toolchain.h>\n" +
@@ -716,39 +717,39 @@ def kernel_main_c_node_init():
# mutex object ids
for mutex in mutex_list:
name = mutex[0]
- kernel_main_c_out("\tDEBUG_TRACING_OBJ_INIT(struct _k_mutex_struct *, " +
- "(&_k_mutex_obj_%s), _track_list_micro_mutex);\n" % (name))
+ kernel_main_c_out("\tSYS_TRACING_OBJ_INIT(micro_mutex, " +
+ "&_k_mutex_obj_%s);\n" % (name))
# semaphore object ids
for semaphore in sema_list:
name = semaphore[0]
- kernel_main_c_out("\tDEBUG_TRACING_OBJ_INIT(struct _k_sem_struct *, " +
- "(&_k_sem_obj_%s), _track_list_micro_sem);\n" % (name))
+ kernel_main_c_out("\tSYS_TRACING_OBJ_INIT(micro_sem, " +
+ "&_k_sem_obj_%s);\n" % (name))
# fifo object ids
for fifo in fifo_list:
name = fifo[0]
- kernel_main_c_out("\tDEBUG_TRACING_OBJ_INIT(struct _k_fifo_struct *, " +
- "(&_k_fifo_obj_%s), _track_list_micro_fifo);\n" % (name))
+ kernel_main_c_out("\tSYS_TRACING_OBJ_INIT(micro_fifo, " +
+ "&_k_fifo_obj_%s);\n" % (name))
# mailbox object ids
for mbx in mbx_list:
name = mbx[0]
- kernel_main_c_out("\tDEBUG_TRACING_OBJ_INIT(struct _k_mbox_struct *, " +
- "(&_k_mbox_obj_%s), _track_list_micro_mbox);\n" % (name))
+ kernel_main_c_out("\tSYS_TRACING_OBJ_INIT(micro_mbox, " +
+ "&_k_mbox_obj_%s);\n" % (name))
# pipe object id
for pipe in pipe_list:
name = pipe[0];
- kernel_main_c_out("\tDEBUG_TRACING_OBJ_INIT(struct _k_pipe_struct *, " +
- "(&_k_pipe_obj_%s), _track_list_micro_pipe);\n" % (name))
+ kernel_main_c_out("\tSYS_TRACING_OBJ_INIT(micro_pipe, " +
+ "&_k_pipe_obj_%s);\n" % (name))
# memory map object id
for map in map_list:
name = map[0];
- kernel_main_c_out("\tDEBUG_TRACING_OBJ_INIT(struct _k_mem_map_struct *, " +
- "(&_k_mem_map_obj_%s), _track_list_micro_mem_map);\n" % (name))
+ kernel_main_c_out("\tSYS_TRACING_OBJ_INIT(micro_mem_map, " +
+ "&_k_mem_map_obj_%s);\n" % (name))
# memory pool object id
pool_count = 0;
total_pools = len(pool_list);
while (pool_count < total_pools):
- kernel_main_c_out("\tDEBUG_TRACING_OBJ_INIT(struct pool_struct *, " +
- "(&(_k_mem_pool_list[%d])), _track_list_micro_mem_pool);\n" % (pool_count))
+ kernel_main_c_out("\tSYS_TRACING_OBJ_INIT(micro_mem_pool, " +
+ "&(_k_mem_pool_list[%d]));\n" % (pool_count))
pool_count = pool_count + 1;
kernel_main_c_out("#endif\n")