📄 tool_config.h
字号:
/* * TOPPERS/JSP Kernel * Toyohashi Open Platform for Embedded Real-Time Systems/ * Just Standard Profile Kernel * * Copyright (C) 2003 by Embedded and Real-Time Systems Laboratory * Toyohashi Univ. of Technology, JAPAN * * 惧淡螟侯涪荚は·笆布の (1)×(4) の掘凤か·Free Software Foundation * によって给山されている GNU General Public License の Version 2 に淡 * 揭されている掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェア * を猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· * 网脱と钙ぶ∷することを痰浸で钓满するˉ * (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 * 涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 * スコ〖ド面に崔まれていることˉ * (2) 塑ソフトウェアを·ライブラリ妨及など·戮のソフトウェア倡券に蝗 * 脱できる妨で浩芹邵する眷圭には·浩芹邵に燃うドキュメント∈网脱 * 荚マニュアルなど∷に·惧淡の螟侯涪山绩·この网脱掘凤および布淡 * の痰瘦沮惮年を非很することˉ * (3) 塑ソフトウェアを·怠达に寥み哈むなど·戮のソフトウェア倡券に蝗 * 脱できない妨で浩芹邵する眷圭には·肌のいずれかの掘凤を塔たすこ * とˉ * (a) 浩芹邵に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟 * 侯涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ * (b) 浩芹邵の妨轮を·侍に年める数恕によって·TOPPERSプロジェクトに * 鼠桂することˉ * (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 * 巢からも·惧淡螟侯涪荚およびTOPPERSプロジェクトを倘勒することˉ * * 塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚お * よびTOPPERSプロジェクトは·塑ソフトウェアに簇して·その努脱材墙拉も * 崔めて·いかなる瘦沮も乖わないˉまた·塑ソフトウェアの网脱により木 * 儡弄または粗儡弄に栏じたいかなる禄巢に簇しても·その勒扦を砷わないˉ * * @(#) $Id: tool_config.h,v 1.11 2005/07/27 11:18:14 honda Exp $ *//* * 倡券茨董巴赂モジュ〖ル */#ifndef _TOOL_CONFIG_H_#define _TOOL_CONFIG_H_#include <s_services.h>#include <kernel_debug.h>/* * 倡券茨董巴赂の介袋步は蝗脱しない */#define tool_initialize()/* * __EMPTY_LABELマクロの年盗 */#if defined(_MSC_VER) || defined(__BORLANDC__) #define __EMPTY_LABEL(x,y) _declspec(naked) void y(void){}#endif#ifndef _MACRO_ONLY#ifdef EVENTLOG_ENABLE#ifdef __cplusplus extern "C" void event_write(unsigned int logtype, unsigned int valid, UINT bufsz, ... ); extern "C" void event_write_svc_enter(int fncd, unsigned int params, ... ); extern "C" void event_write_svc_leave(int fncd, unsigned int ercd); extern "C" void event_write_tskstat(void * tcb); extern "C" void event_write_comment(const char *, ... );#else extern void event_write(unsigned int logtype, unsigned int valid, UINT bufsz, ... ); extern void event_write_svc_enter(int fncd, unsigned int params, ... ); extern void event_write_svc_leave(int fncd, unsigned int ercd, unsigned int retaddr); extern void event_write_tskstat(void * tcb); extern void event_write_comment(const char *, ... );#endif /* * 提り戎孟艰评マクロ */#if defined(_MSC_VER)#define GET_RETURNADDRESS(x) __asm { mov eax, dword ptr [ebp + 4] } __asm { mov dword ptr [x], eax }#elif defined(__GNUC__)#define GET_RETURNADDRESS(x) { x = 0; }#elif#define GET_RETURNADDRESS(x) { x = 0: }#endif#define LOG_SVC_ENTER(x) { DWORD address; GET_RETURNADDRESS(address); event_write_svc_enter x; }#define LOG_SVC_LEAVE(x) { DWORD address; GET_RETURNADDRESS(address); event_write_svc_leave x; }#define LOG_EVENT(x) { event_write x; }#define LOG_EVENT_TSKSTAT(x) { event_write_tskstat x; }#endif /* EVENTLOGG_ENABLED */#endif /* _MACRO_ONLY */ /* ログを蝗脱できない眷圭 */#ifndef LOG_EVENT#define LOG_SVC_ENTER(x)#define LOG_SVC_LEAVE(x)#define LOG_EVENT(x)#define LOG_EVENT_TSKSTAT(x)#endif/* * トレ〖スログの肋年 */#define LOG_INH_ENTER(inhno) LOG_EVENT((LOG_TYPE_INH|LOG_ENTER, 0x1, sizeof(int), (int)(inhno)));#define LOG_INH_LEAVE(inhno) LOG_EVENT((LOG_TYPE_INH|LOG_LEAVE, 0x1, sizeof(int), (int)(inhno)));#define LOG_ISR_ENTER(intno)#define LOG_ISR_LEAVE(intno)#define LOG_CYC_ENTER(cyccb) LOG_EVENT((LOG_TYPE_CYC|LOG_ENTER, 0x7, sizeof(int)*3, OBJ_CYCLICHANDLER,(int)((cyccb) - cyccb_table)+1,(unsigned int)(cyccb)->cycinib->exinf));#define LOG_CYC_LEAVE(cyccb) LOG_EVENT((LOG_TYPE_CYC|LOG_LEAVE, 0x7, sizeof(int)*3, OBJ_CYCLICHANDLER,(int)((cyccb) - cyccb_table)+1,(unsigned int)(cyccb)->cycinib->exinf));#define LOG_EXC_ENTER(excno) LOG_EVENT((LOG_TYPE_EXC|LOG_ENTER, 0x1, sizeof(int), (int)(excno)));#define LOG_EXC_LEAVE(excno) LOG_EVENT((LOG_TYPE_EXC|LOG_LEAVE, 0x1, sizeof(int), (int)(excno)));#define LOG_TEX_ENTER(texptn) LOG_EVENT((LOG_TYPE_TEX|LOG_ENTER, 0x3, sizeof(int)*2, (int)TSKID(runtsk), (int)(texptn)));#define LOG_TEX_LEAVE(texptn) LOG_EVENT((LOG_TYPE_TEX|LOG_LEAVE, 0x3, sizeof(int)*2, (int)TSKID(runtsk), (int)(texptn)));#define LOG_TSKSTAT(tcb) LOG_EVENT_TSKSTAT((tcb));#define LOG_DSP_ENTER_INT(tcb) LOG_EVENT((LOG_TYPE_DSP|LOG_ENTER, 0x1, sizeof(int)*2, TSKID(tcb),1));#define LOG_DSP_ENTER_TSK(tcb) LOG_EVENT((LOG_TYPE_DSP|LOG_ENTER, 0x1, sizeof(int)*2, TSKID(tcb),0));#define LOG_DSP_LEAVE(tcb) LOG_EVENT((LOG_TYPE_DSP|LOG_LEAVE, 0x1, sizeof(int), TSKID(tcb)));#define LOG_ACT_TSK_ENTER(tskid) LOG_SVC_ENTER((TFN_ACT_TSK, 1, tskid, address))#define LOG_ACT_TSK_LEAVE(ercd) LOG_SVC_LEAVE((TFN_ACT_TSK, ercd, address))#define LOG_IACT_TSK_ENTER(tskid) LOG_SVC_ENTER((TFN_IACT_TSK, 1, tskid, address))#define LOG_IACT_TSK_LEAVE(ercd) LOG_SVC_LEAVE((TFN_IACT_TSK, ercd, address))#define LOG_CAN_ACT_ENTER(tskid) LOG_SVC_ENTER((TFN_CAN_ACT, 1, tskid, address))#define LOG_CAN_ACT_LEAVE(ercd) LOG_SVC_LEAVE((TFN_CAN_ACT, ercd, address))#define LOG_EXT_TSK_ENTER() LOG_SVC_ENTER((TFN_EXT_TSK, 0, address))#define LOG_TER_TSK_ENTER(tskid) LOG_SVC_ENTER((TFN_TER_TSK, 1, tskid, address))#define LOG_TER_TSK_LEAVE(ercd) LOG_SVC_LEAVE((TFN_TER_TSK, ercd, address))#define LOG_CHG_PRI_ENTER(tskid, tskpri) LOG_SVC_ENTER((TFN_CHG_PRI, 2, tskid, tskpri, address))#define LOG_CHG_PRI_LEAVE(ercd) LOG_SVC_LEAVE((TFN_CHG_PRI, ercd, address))#define LOG_GET_PRI_ENTER(tskid, p_tskpri) LOG_SVC_ENTER((TFN_GET_PRI, 2, tskid, p_tskpri, address))#define LOG_GET_PRI_LEAVE(ercd, tskpri) LOG_SVC_LEAVE((TFN_GET_PRI, ercd, address))#define LOG_SLP_TSK_ENTER() LOG_SVC_ENTER((TFN_SLP_TSK, 0, address))#define LOG_SLP_TSK_LEAVE(ercd) LOG_SVC_LEAVE((TFN_SLP_TSK, ercd, address))#define LOG_TSLP_TSK_ENTER(tmout) LOG_SVC_ENTER((TFN_TSLP_TSK, 1, tmout, address))#define LOG_TSLP_TSK_LEAVE(ercd) LOG_SVC_LEAVE((TFN_TSLP_TSK, ercd, address))#define LOG_WUP_TSK_ENTER(tskid) LOG_SVC_ENTER((TFN_WUP_TSK, 1, tskid, address))#define LOG_WUP_TSK_LEAVE(ercd) LOG_SVC_LEAVE((TFN_WUP_TSK, ercd, address))#define LOG_IWUP_TSK_ENTER(tskid) LOG_SVC_ENTER((TFN_IWUP_TSK, 1, tskid, address))#define LOG_IWUP_TSK_LEAVE(ercd) LOG_SVC_LEAVE((TFN_IWUP_TSK, ercd, address))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -