From 07d556c9da036e1d2d1e52790d65a897b8b2756a Mon Sep 17 00:00:00 2001 From: Ahreum Jeong Date: Fri, 4 Aug 2017 18:11:57 +0900 Subject: [PATCH] Unify header files for ttrace. It should be in os/include/tinyara folder because ttrace is a special feature, not common for TizenRT --- .../testcase/le_tc/ttrace/ttrace_tc_main.c | 2 +- apps/examples/ttrace/ttrace_main.c | 2 +- apps/system/utils/kdbg_ttrace.c | 18 +++- lib/libc/ttrace/lib_ttrace.c | 67 ++++++++++++--- os/arch/arm/src/armv7-r/arm_unblocktask.c | 2 +- os/include/tinyara/{ttrace_internal.h => ttrace.h} | 95 +++++++--------------- os/include/ttrace.h | 82 ------------------- os/kernel/mqueue/mq_rcvinternal.c | 2 +- os/kernel/mqueue/mq_sndinternal.c | 2 +- os/kernel/pthread/pthread_cancel.c | 2 +- os/kernel/pthread/pthread_condtimedwait.c | 4 +- os/kernel/pthread/pthread_create.c | 2 +- os/kernel/pthread/pthread_detach.c | 2 +- os/kernel/pthread/pthread_initialize.c | 3 +- os/kernel/pthread/pthread_join.c | 5 +- os/kernel/sched/sched_processtimer.c | 1 + os/kernel/task/task_create.c | 2 +- os/kernel/task/task_exit.c | 2 +- os/kernel/task/task_onexit.c | 2 +- os/kernel/task/task_prctl.c | 2 +- os/kernel/task/task_restart.c | 2 +- os/kernel/task/task_setup.c | 2 +- os/kernel/task/task_start.c | 2 +- os/kernel/task/task_terminate.c | 3 +- 24 files changed, 127 insertions(+), 181 deletions(-) rename os/include/tinyara/{ttrace_internal.h => ttrace.h} (64%) delete mode 100644 os/include/ttrace.h diff --git a/apps/examples/testcase/le_tc/ttrace/ttrace_tc_main.c b/apps/examples/testcase/le_tc/ttrace/ttrace_tc_main.c index 403a18b..b7f8270 100644 --- a/apps/examples/testcase/le_tc/ttrace/ttrace_tc_main.c +++ b/apps/examples/testcase/le_tc/ttrace/ttrace_tc_main.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include #include "tc_common.h" diff --git a/apps/examples/ttrace/ttrace_main.c b/apps/examples/ttrace/ttrace_main.c index 72b38e6..f2502c6 100644 --- a/apps/examples/ttrace/ttrace_main.c +++ b/apps/examples/ttrace/ttrace_main.c @@ -21,7 +21,7 @@ ****************************************************************************/ #include -#include +#include #include #include diff --git a/apps/system/utils/kdbg_ttrace.c b/apps/system/utils/kdbg_ttrace.c index b4fa262..984c40d 100644 --- a/apps/system/utils/kdbg_ttrace.c +++ b/apps/system/utils/kdbg_ttrace.c @@ -22,12 +22,26 @@ #include #include #include -#include #include #include #include +#include #include -#include + +struct tag_list { + const char *name; + const char *longname; + const int tags; +}; + +static const struct tag_list ttrace_tags[] = { + {"none", "None", TTRACE_TAG_OFF}, + {"apps", "Applications", TTRACE_TAG_APPS}, + {"libs", "Libraries", TTRACE_TAG_LIBS}, + {"lock", "Lock", TTRACE_TAG_LOCK}, + {"task", "TASK", TTRACE_TAG_TASK}, + {"ipc", "IPC", TTRACE_TAG_IPC}, +}; int param = 0; int selected_tags = 0; diff --git a/lib/libc/ttrace/lib_ttrace.c b/lib/libc/ttrace/lib_ttrace.c index 558c9d3..334bf28 100644 --- a/lib/libc/ttrace/lib_ttrace.c +++ b/lib/libc/ttrace/lib_ttrace.c @@ -23,16 +23,17 @@ #include #include #include -#include #include #include #include -#include +#include #include /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ +#define TTRACE_EVENT_TYPE_BEGIN 'b' +#define TTRACE_EVENT_TYPE_END 'e' /**************************************************************************** * Private Type Declarations @@ -66,7 +67,7 @@ int fd = -1; /**************************************************************************** * Private Functions ****************************************************************************/ -int is_fd_available(void) +static int is_fd_available(void) { if (fd < 0) { fd = open("/dev/ttrace", O_WRONLY); @@ -75,19 +76,63 @@ int is_fd_available(void) return fd; } -int is_tag_available(int tag) +static bool is_tag_available(int tag) { - return ioctl(fd, TTRACE_FUNC_TAG, tag); + int ret; + + ret = ioctl(fd, TTRACE_FUNC_TAG, tag); + if (!(ret & tag)) { + return false; + } + + return true; +} + +static int show_packet(struct trace_packet *packet) +{ + int uid = (packet->codelen & TTRACE_CODE_UNIQUE) >> 7; + int msg_len = (packet->codelen & ~TTRACE_CODE_UNIQUE); + int pad = 0; + ttdbg("time: %06d.%06d\r\n", packet->ts.tv_sec, packet->ts.tv_usec); + ttdbg("event_type: %c, %d\r\n", packet->event_type, packet->event_type); + ttdbg("pid: %d\r\n", packet->pid); + ttdbg("codelen: %d\r\n", packet->codelen); + ttdbg("unique code? %d\r\n", uid); + if (uid == TRUE) { + ttdbg("uid: %d\r\n", (packet->codelen & ~TTRACE_CODE_UNIQUE)); + pad = TTRACE_MSG_BYTES; + } else { + ttdbg("message: %s\r\n", packet->msg.message); + pad = 0; + } + + return sizeof(struct trace_packet) - pad; } -int send_packet_sched(struct trace_packet *packet) +static int show_sched_packet(struct trace_packet *packet) +{ + ttdbg("[%06d:%06d] %03d: %c|prev_comm=%s prev_pid=%u prev_prio=%u prev_state=%u ==> next_comm=%s next_pid=%u next_prio=%u\r\n", + packet->ts.tv_sec, packet->ts.tv_usec, + packet->pid, + (char)packet->event_type, + packet->msg.sched_msg.prev_comm, + packet->msg.sched_msg.prev_pid, + packet->msg.sched_msg.prev_prio, + packet->msg.sched_msg.prev_state, + packet->msg.sched_msg.next_comm, + packet->msg.sched_msg.next_pid, + packet->msg.sched_msg.next_prio); + return sizeof(struct trace_packet); +} + +static int send_packet_sched(struct trace_packet *packet) { int ret = 0; ret = write(fd, packet, sizeof(struct trace_packet)); return ret; } -int create_packet_sched(struct trace_packet *packet, struct tcb_s *prev, struct tcb_s *next) +static int create_packet_sched(struct trace_packet *packet, struct tcb_s *prev, struct tcb_s *next) { int ret = TTRACE_VALID; int msg_len = sizeof(struct sched_message); @@ -127,7 +172,7 @@ int create_packet_sched(struct trace_packet *packet, struct tcb_s *prev, struct return ret; } -int send_packet(struct trace_packet *packet) +static int send_packet(struct trace_packet *packet) { int ret = 0; @@ -140,7 +185,7 @@ int send_packet(struct trace_packet *packet) return ret; } -int create_packet(struct trace_packet *packet, char type, char *str, va_list valist) +static int create_packet(struct trace_packet *packet, char type, char *str, va_list valist) { int ret = TTRACE_VALID; int msg_len = strlen(str); @@ -160,7 +205,7 @@ int create_packet(struct trace_packet *packet, char type, char *str, va_list val return ret; } -int create_packet_u(struct trace_packet *packet, char type, int8_t uid) +static int create_packet_u(struct trace_packet *packet, char type, int8_t uid) { int ret = 0; gettimeofday(&(packet->ts), NULL); @@ -174,7 +219,6 @@ int create_packet_u(struct trace_packet *packet, char type, int8_t uid) /**************************************************************************** * Public Functions ****************************************************************************/ - int trace_sched(struct tcb_s *prev_tcb, struct tcb_s *next_tcb) { int ret = TTRACE_VALID; @@ -200,6 +244,7 @@ int trace_sched(struct tcb_s *prev_tcb, struct tcb_s *next_tcb) return ret; } + /**************************************************************************** * Name: trace_begin * diff --git a/os/arch/arm/src/armv7-r/arm_unblocktask.c b/os/arch/arm/src/armv7-r/arm_unblocktask.c index bfb7b15..3c410cd 100644 --- a/os/arch/arm/src/armv7-r/arm_unblocktask.c +++ b/os/arch/arm/src/armv7-r/arm_unblocktask.c @@ -58,7 +58,7 @@ #include #include -#include +#include #include #include diff --git a/os/include/tinyara/ttrace_internal.h b/os/include/tinyara/ttrace.h similarity index 64% rename from os/include/tinyara/ttrace_internal.h rename to os/include/tinyara/ttrace.h index 0668e03..4150df2 100644 --- a/os/include/tinyara/ttrace_internal.h +++ b/os/include/tinyara/ttrace.h @@ -22,18 +22,18 @@ * @{ */ -///@file ttrace_internal.h -///@brief ttrace internal APIs +///@file ttrace.h +///@brief ttrace APIs -#ifndef __INCLUDE_TINYARA_TTRACE_INTERNAL_H -#define __INCLUDE_TINYARA_TTRACE_INTERNAL_H +#ifndef __INCLUDE_TINYARA_TTRACE_H +#define __INCLUDE_TINYARA_TTRACE_H /**************************************************************************** * Included Files ****************************************************************************/ - #include +#ifdef CONFIG_TTRACE #include #include #include @@ -60,9 +60,6 @@ #define TTRACE_CODE_VARIABLE 0 #define TTRACE_CODE_UNIQUE (1 << 7) -#define TTRACE_EVENT_TYPE_BEGIN 'b' -#define TTRACE_EVENT_TYPE_END 'e' - #define TTRACE_MSG_BYTES 32 #define TTRACE_COMM_BYTES 12 #define TTRACE_BYTE_ALIGN 4 @@ -71,12 +68,16 @@ #define TTRACE_INVALID -1 #define TTRACE_VALID 0 -/**************************************************************************** - * Public Variables - ****************************************************************************/ +#define TTRACE_TAG_ALL -1 +#define TTRACE_TAG_OFF 0 +#define TTRACE_TAG_APPS (1 << 0) +#define TTRACE_TAG_LIBS (1 << 1) +#define TTRACE_TAG_LOCK (1 << 2) +#define TTRACE_TAG_TASK (1 << 3) +#define TTRACE_TAG_IPC (1 << 4) /**************************************************************************** - * Public Function Prototypes + * Public Variables ****************************************************************************/ #if defined(__cplusplus) @@ -84,21 +85,6 @@ extern "C" { #endif -struct tag_list { - const char *name; - const char *longname; - const int tags; -}; - -static const struct tag_list ttrace_tags[] = { - {"none", "None", TTRACE_TAG_OFF}, - {"apps", "Applications", TTRACE_TAG_APPS}, - {"libs", "Libraries", TTRACE_TAG_LIBS}, - {"lock", "Lock", TTRACE_TAG_LOCK}, - {"task", "TASK", TTRACE_TAG_TASK}, - {"ipc", "IPC", TTRACE_TAG_IPC}, -}; - struct sched_message { // total 32B pid_t prev_pid; // 2B uint8_t prev_prio; // 1B @@ -123,46 +109,27 @@ struct trace_packet { // total 44 byte(message), 12byte(uid) union trace_message msg; // 32B }; -static int show_packet(struct trace_packet *packet) -{ - int uid = (packet->codelen & TTRACE_CODE_UNIQUE) >> 7; - int msg_len = (packet->codelen & ~TTRACE_CODE_UNIQUE); - int pad = 0; - ttdbg("time: %06d.%06d\r\n", packet->ts.tv_sec, packet->ts.tv_usec); - ttdbg("event_type: %c, %d\r\n", packet->event_type, packet->event_type); - ttdbg("pid: %d\r\n", packet->pid); - ttdbg("codelen: %d\r\n", packet->codelen); - ttdbg("unique code? %d\r\n", uid); - if (uid == TRUE) { - ttdbg("uid: %d\r\n", (packet->codelen & ~TTRACE_CODE_UNIQUE)); - pad = TTRACE_MSG_BYTES; - } else { - ttdbg("message: %s\r\n", packet->msg.message); - pad = 0; - } - - return sizeof(struct trace_packet) - pad; -} - -static int show_sched_packet(struct trace_packet *packet) -{ - ttdbg("[%06d:%06d] %03d: %c|prev_comm=%s prev_pid=%u prev_prio=%u prev_state=%u ==> next_comm=%s next_pid=%u next_prio=%u\r\n", - packet->ts.tv_sec, packet->ts.tv_usec, - packet->pid, - (char)packet->event_type, - packet->msg.sched_msg.prev_comm, - packet->msg.sched_msg.prev_pid, - packet->msg.sched_msg.prev_prio, - packet->msg.sched_msg.prev_state, - packet->msg.sched_msg.next_comm, - packet->msg.sched_msg.next_pid, - packet->msg.sched_msg.next_prio); - return sizeof(struct trace_packet); -} +/**************************************************************************** + * Public Function Prototypes + ****************************************************************************/ +int trace_begin(int tag, char *str, ...); +int trace_begin_u(int tag, int8_t uid); +int trace_end(int tag); +int trace_end_u(int tag); +int trace_sched(struct tcb_s *prev, struct tcb_s *next); +#else +#define trace_begin(a, b, ...) +#define trace_begin_u(a, b) +#define trace_end(a) +#define trace_end_u(a) +#define trace_sched(a, b) #if defined(__cplusplus) } #endif +#endif /* CONFIG_TTRACE */ #endif /* __INCLUDE_TINYARA_TTRACE_INTERNAL_H */ -/** @} */ +/** + * @} + */ diff --git a/os/include/ttrace.h b/os/include/ttrace.h deleted file mode 100644 index 4bf31e1..0000000 --- a/os/include/ttrace.h +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** - * - * Copyright 2016 Samsung Electronics All Rights Reserved. - * - * 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. - * - ****************************************************************************/ -/** - * @defgroup TTRACE_LIBC TTRACE - * @ingroup KERNEL - * - * @{ - */ - -///@file ttrace.h -///@brief ttrace APIs - -#ifndef __INCLUDE_TTRACE_H -#define __INCLUDE_TTRACE_H - -/**************************************************************************** - * Included Files - ****************************************************************************/ -#include -#include - -/**************************************************************************** - * Public Type Declarations - ****************************************************************************/ -#define TTRACE_TAG_ALL -1 -#define TTRACE_TAG_OFF 0 -#define TTRACE_TAG_APPS (1 << 0) -#define TTRACE_TAG_LIBS (1 << 1) -#define TTRACE_TAG_LOCK (1 << 2) -#define TTRACE_TAG_TASK (1 << 3) -#define TTRACE_TAG_IPC (1 << 4) - -/**************************************************************************** - * Public Variables - ****************************************************************************/ - -/**************************************************************************** - * Public Function Prototypes - ****************************************************************************/ - -#if defined(__cplusplus) -extern "C" -{ -#endif - -#ifdef CONFIG_TTRACE -int trace_begin(int tag, char *str, ...); -int trace_begin_u(int tag, int8_t uid); -int trace_end(int tag); -int trace_end_u(int tag); -int trace_sched(struct tcb_s *prev, struct tcb_s *next); -#else -#define trace_begin(a, b, ...) -#define trace_begin_u(a, b) -#define trace_end(a) -#define trace_end_u(a) -#define trace_sched(a, b) -#endif - -#if defined(__cplusplus) -} -#endif - -#endif /* __INCLUDE_TTRACE_H */ -/** - * @} - */ diff --git a/os/kernel/mqueue/mq_rcvinternal.c b/os/kernel/mqueue/mq_rcvinternal.c index 2101df6..049046e 100644 --- a/os/kernel/mqueue/mq_rcvinternal.c +++ b/os/kernel/mqueue/mq_rcvinternal.c @@ -67,10 +67,10 @@ #include #include +#include #include "sched/sched.h" #include "mqueue/mqueue.h" -#include /**************************************************************************** * Pre-processor Definitions diff --git a/os/kernel/mqueue/mq_sndinternal.c b/os/kernel/mqueue/mq_sndinternal.c index 723a8bd..4bded73 100644 --- a/os/kernel/mqueue/mq_sndinternal.c +++ b/os/kernel/mqueue/mq_sndinternal.c @@ -69,12 +69,12 @@ #include #include #include +#include #include "sched/sched.h" #ifndef CONFIG_DISABLE_SIGNALS #include "signal/signal.h" #endif #include "mqueue/mqueue.h" -#include /**************************************************************************** * Pre-processor Definitions diff --git a/os/kernel/pthread/pthread_cancel.c b/os/kernel/pthread/pthread_cancel.c index 9829c88..2d0efdf 100644 --- a/os/kernel/pthread/pthread_cancel.c +++ b/os/kernel/pthread/pthread_cancel.c @@ -60,11 +60,11 @@ #include #include #include +#include #include "sched/sched.h" #include "task/task.h" #include "pthread/pthread.h" -#include /************************************************************************** * Private Definitions diff --git a/os/kernel/pthread/pthread_condtimedwait.c b/os/kernel/pthread/pthread_condtimedwait.c index 8cfce90..520973e 100644 --- a/os/kernel/pthread/pthread_condtimedwait.c +++ b/os/kernel/pthread/pthread_condtimedwait.c @@ -65,15 +65,15 @@ #include #include #include -#include +#include #include +#include #include "sched/sched.h" #include "pthread/pthread.h" #include "clock/clock.h" #include "signal/signal.h" -#include /**************************************************************************** * Definitions diff --git a/os/kernel/pthread/pthread_create.c b/os/kernel/pthread/pthread_create.c index 9f54731..895f1e9 100644 --- a/os/kernel/pthread/pthread_create.c +++ b/os/kernel/pthread/pthread_create.c @@ -70,12 +70,12 @@ #include #include #include +#include #include "sched/sched.h" #include "group/group.h" #include "clock/clock.h" #include "pthread/pthread.h" -#include /**************************************************************************** * Public Data diff --git a/os/kernel/pthread/pthread_detach.c b/os/kernel/pthread/pthread_detach.c index 65648cc..3fc96da 100644 --- a/os/kernel/pthread/pthread_detach.c +++ b/os/kernel/pthread/pthread_detach.c @@ -62,11 +62,11 @@ #include #include #include +#include #include "sched/sched.h" #include "group/group.h" #include "pthread/pthread.h" -#include /************************************************************************ * Pre-processor Definitions diff --git a/os/kernel/pthread/pthread_initialize.c b/os/kernel/pthread/pthread_initialize.c index 519779c..6f5397b 100644 --- a/os/kernel/pthread/pthread_initialize.c +++ b/os/kernel/pthread/pthread_initialize.c @@ -61,10 +61,9 @@ #include #include #include +#include #include "pthread/pthread.h" -#include - /**************************************************************************** * Definitions ****************************************************************************/ diff --git a/os/kernel/pthread/pthread_join.c b/os/kernel/pthread/pthread_join.c index 5f41a60..a8c7cd1 100644 --- a/os/kernel/pthread/pthread_join.c +++ b/os/kernel/pthread/pthread_join.c @@ -58,14 +58,15 @@ #include #include #include -#include #include #include +#include +#include + #include "sched/sched.h" #include "group/group.h" #include "pthread/pthread.h" -#include /**************************************************************************** * Pre-processor Definitions diff --git a/os/kernel/sched/sched_processtimer.c b/os/kernel/sched/sched_processtimer.c index 8634eff..08f6551 100644 --- a/os/kernel/sched/sched_processtimer.c +++ b/os/kernel/sched/sched_processtimer.c @@ -61,6 +61,7 @@ #if CONFIG_RR_INTERVAL > 0 #include #include +#include #endif #include "sched/sched.h" diff --git a/os/kernel/task/task_create.c b/os/kernel/task/task_create.c index 170dc8a..fc3aa72 100644 --- a/os/kernel/task/task_create.c +++ b/os/kernel/task/task_create.c @@ -64,11 +64,11 @@ #include #include #include +#include #include "sched/sched.h" #include "group/group.h" #include "task/task.h" -#include /**************************************************************************** * Preprocessor Definitions diff --git a/os/kernel/task/task_exit.c b/os/kernel/task/task_exit.c index 11d021e..30c469b 100644 --- a/os/kernel/task/task_exit.c +++ b/os/kernel/task/task_exit.c @@ -64,7 +64,7 @@ #include "signal/signal.h" #endif #include "task/task.h" -#include +#include /**************************************************************************** * Pre-processor Definitions diff --git a/os/kernel/task/task_onexit.c b/os/kernel/task/task_onexit.c index fbfd4c2..4955da6 100644 --- a/os/kernel/task/task_onexit.c +++ b/os/kernel/task/task_onexit.c @@ -63,10 +63,10 @@ #include #include +#include #include "sched/sched.h" #include "task/task.h" -#include #ifdef CONFIG_SCHED_ONEXIT diff --git a/os/kernel/task/task_prctl.c b/os/kernel/task/task_prctl.c index 1646a21..a1fefdf 100644 --- a/os/kernel/task/task_prctl.c +++ b/os/kernel/task/task_prctl.c @@ -63,10 +63,10 @@ #include #include +#include #include "sched/sched.h" #include "task/task.h" -#include /************************************************************************ * Private Functions diff --git a/os/kernel/task/task_restart.c b/os/kernel/task/task_restart.c index 26a2c46..1144b7a 100644 --- a/os/kernel/task/task_restart.c +++ b/os/kernel/task/task_restart.c @@ -61,12 +61,12 @@ #include #include +#include #include "sched/sched.h" #include "group/group.h" #include "signal/signal.h" #include "task/task.h" -#include /**************************************************************************** * Definitions diff --git a/os/kernel/task/task_setup.c b/os/kernel/task/task_setup.c index c899c6c..44ca430 100644 --- a/os/kernel/task/task_setup.c +++ b/os/kernel/task/task_setup.c @@ -64,13 +64,13 @@ #include #include +#include #include "sched/sched.h" #include "pthread/pthread.h" #include "group/group.h" #include "task/task.h" #include "clock/clock.h" -#include /**************************************************************************** * Pre-processor Definitions diff --git a/os/kernel/task/task_start.c b/os/kernel/task/task_start.c index 1be2262..b8a9d73 100644 --- a/os/kernel/task/task_start.c +++ b/os/kernel/task/task_start.c @@ -62,10 +62,10 @@ #include #include +#include #include "sched/sched.h" #include "task/task.h" -#include /**************************************************************************** * Pre-processor Definitions diff --git a/os/kernel/task/task_terminate.c b/os/kernel/task/task_terminate.c index 7739e38..15af8f6 100644 --- a/os/kernel/task/task_terminate.c +++ b/os/kernel/task/task_terminate.c @@ -62,6 +62,8 @@ #include #include +#include + #include #include "sched/sched.h" @@ -69,7 +71,6 @@ #include "signal/signal.h" #endif #include "task/task.h" -#include /**************************************************************************** * Definitions -- 2.7.4