debug: add debug tracing support for task initialization

Change-Id: I3d6ec2364f97b415bc27c0ce36df289e8eae9397
Signed-off-by: Juan Manuel Cruz <juan.m.cruz.alcaraz@intel.com>
This commit is contained in:
Juan Manuel Cruz 2016-03-09 19:54:51 -06:00 committed by Anas Nashif
commit 568df1b17d
4 changed files with 8 additions and 0 deletions

View file

@ -104,6 +104,9 @@ struct k_task {
int worksize; int worksize;
void (*fn_abort)(void); void (*fn_abort)(void);
struct k_args *args; struct k_args *args;
#ifdef CONFIG_DEBUG_TRACING_KERNEL_OBJECTS
struct k_task *__next;
#endif
}; };
/** /**

View file

@ -44,6 +44,7 @@ extern struct pool_struct *_trace_list_micro_mem_pool;
extern struct _k_mem_map_struct *_trace_list_micro_mem_map; extern struct _k_mem_map_struct *_trace_list_micro_mem_map;
extern struct _k_event_struct *_trace_list_micro_event; extern struct _k_event_struct *_trace_list_micro_event;
extern struct k_timer *_trace_list_micro_timer; extern struct k_timer *_trace_list_micro_timer;
extern struct k_task *_trace_list_micro_task;
#endif /*CONFIG_MICROKERNEL*/ #endif /*CONFIG_MICROKERNEL*/
/** /**

View file

@ -135,6 +135,7 @@ struct pool_struct *_trace_list_micro_mem_pool;
struct _k_mem_map_struct *_trace_list_micro_mem_map; struct _k_mem_map_struct *_trace_list_micro_mem_map;
struct _k_event_struct *_trace_list_micro_event; struct _k_event_struct *_trace_list_micro_event;
struct k_timer *_trace_list_micro_timer; struct k_timer *_trace_list_micro_timer;
struct k_task *_trace_list_micro_task;
#endif /*CONFIG_MICROKERNEL*/ #endif /*CONFIG_MICROKERNEL*/

View file

@ -27,6 +27,7 @@
#include <micro_private.h> #include <micro_private.h>
#include <nano_private.h> #include <nano_private.h>
#include <start_task_arch.h> #include <start_task_arch.h>
#include <misc/debug/object_tracing_common.h>
extern ktask_t _k_task_ptr_start[]; extern ktask_t _k_task_ptr_start[];
extern ktask_t _k_task_ptr_end[]; extern ktask_t _k_task_ptr_end[];
@ -289,6 +290,7 @@ void _k_task_op(struct k_args *A)
switch (A->args.g1.opt) { switch (A->args.g1.opt) {
case TASK_START: case TASK_START:
start_task(X, X->fn_start); start_task(X, X->fn_start);
SYS_TRACING_OBJ_INIT(micro_task, X);
break; break;
case TASK_ABORT: case TASK_ABORT:
abort_task(X); abort_task(X);
@ -354,6 +356,7 @@ void _k_task_group_op(struct k_args *A)
switch (opt) { switch (opt) {
case TASK_GROUP_START: case TASK_GROUP_START:
start_task(X, X->fn_start); start_task(X, X->fn_start);
SYS_TRACING_OBJ_INIT(micro_task, X);
break; break;
case TASK_GROUP_ABORT: case TASK_GROUP_ABORT:
abort_task(X); abort_task(X);