2 * Hyper Operating System V4 Advance
5 * @brief %jp{プロセッサアーキテクチャ固有機能(SH2 processor)}
7 * @version $Id: proc.h,v 1.1 2006-08-16 16:27:03 ryuz Exp $
9 * Copyright (C) 1998-2006 by Project HOS
10 * http://sourceforge.jp/projects/hos/
14 #ifndef KERNEL__arch__sh2__proc_h__
15 #define KERNEL__arch__sh2__proc_h__
18 /** %jp{コンテキスト情報保存ブロック}%en{Execution context control block} */
19 typedef struct _kernel_t_ctxcb
30 void _kernel_ena_int(void); /**< %jp{割り込み許可}%en{Enable interrupt} */
31 void _kernel_dis_int(void); /**< %jp{割り込み禁止}%en{Disable interrupt} */
32 void _kernel_wai_int(void); /**< %jp{割り込み待ち(アイドル時の処理)}%en{Wait for interrupt(sleep)} */
34 void _kernel_cre_ctx(_KERNEL_T_CTXCB *pk_ctxcb, VP isp, FP entry, VP_INT par1, VP_INT par2); /**< %jp{実行コンテキストの作成}%en{Create execution context)} */
35 void _kernel_sta_ctx(_KERNEL_T_CTXCB *pk_ctxcb); /**< %jp{実行コンテキストの開始}%en{Stert context)} */
36 void _kernel_rst_ctx(VP_INT par1, VP_INT par2, VP isp, FP entry); /**< %jp{実行コンテキストのリスタート}%en{Restert context)} */
37 void _kernel_swi_ctx(_KERNEL_T_CTXCB *pk_ctxcb_nxt, _KERNEL_T_CTXCB *pk_ctxcb_now); /**< %jp{実行コンテキストの切替}%en{Switch context)} */
46 #define _KERNEL_INI_PRC() /**< %jp{プロセッサの初期化}%en{Initialize processor} */
48 #define _KERNEL_ENA_INT() _kernel_ena_int() /**< %jp{割り込み許可}%en{Enable interrupt} */
49 #define _KERNEL_DIS_INT() _kernel_dis_int() /**< %jp{割り込み禁止}%en{Disable interrupt} */
50 #define _KERNEL_WAI_INT() _kernel_wai_int() /**< %jp{割り込み待ち(アイドル時の処理)}%en{Wait for interrupt(sleep)} */
52 #define _KERNEL_CRE_CTX(pk_ctxcb, stksz, stk, isp, entry, par1, par2) \
53 _kernel_cre_ctx((pk_ctxcb), (isp), (entry), (par1), (par2)) /**< %jp{実行コンテキスト生成}%en{Create execution context)} */
54 #define _KERNEL_DEL_CTX(pk_ctxcb) _kernel_del_ctx(pk_ctxcb)
55 #define _KERNEL_RST_CTX(pk_ctxcb, stksz, stk, isp, entry, par1, par2) \
56 _kernel_rst_ctx((par1), (par2), (isp), (entry)) /**< %jp{実行コンテキストリスタート}%en{Restert context)} */
57 #define _KERNEL_STA_CTX(pk_ctxcb) _kernel_sta_ctx(pk_ctxcb)
58 #define _KERNEL_SWI_CTX(pk_ctxcb_now, pk_ctxcb_nxt) \
59 _kernel_swi_ctx((pk_ctxcb_nxt), (pk_ctxcb_now)) /**< %jp{コンテキストのスイッチ}%en{Switch context)} */
64 #endif /* KERNEL__HOS_V4a__sh2__sh2_h__ */