www.pudn.com > hos-v4_os.rar > knl_hos.h


/* ------------------------------------------------------------------------ */ 
/*  Hyper Operating System V4  μITRON4.0仕様 Real-Time OS                  */ 
/*    カーネル HOS 固有部分                                                 */ 
/*                                                                          */ 
/*                                  Copyright (C) 1998-2002 by Project HOS  */ 
/*                                  http://sourceforge.jp/projects/hos/     */ 
/* ------------------------------------------------------------------------ */ 
 
 
#ifndef __HOS_V4__knl_hos_h__ 
#define __HOS_V4__knl_hos_h__ 
 
 
#include  
#include "itron.h" 
#include "mknl.h" 
#include "hoserchk.h" 
 
 
/* ------------------------------------------ */ 
/*                マクロ定義                  */ 
/* ------------------------------------------ */ 
 
/* C++ の static_cast 演算子と同じ効果のマクロ */ 
#define KERNEL_STATIC_CAST(s, m, p)	((s *)((B*)(p))-offsetof(s, m))	/* メンバのアドレスから構造体のアドレス算出 */ 
 
/* C言語の構造体を用いてポリモーフィズムを実現する際に */ 
/* 構造体メンバのポインタから、構造体先頭のポインタを  */ 
/* 算出することが必須となる。上記は C++ 言語では       */ 
/* dynamic_cast や static_cast 演算子で安全に行えるが  */ 
/* C言語ではある程度強引に実装する必要がある。         */ 
 
 
 
/* ---------------------------------- */ 
/*        グローバル変数宣言          */ 
/* ---------------------------------- */ 
 
/* カーネルシステム管理 */ 
extern STAT kernel_ctx_stat;				/* システムのコンテキスト状態 */ 
 
 
 
/* ------------------------------------------ */ 
/*                関数宣言                    */ 
/* ------------------------------------------ */ 
 
#ifdef __cplusplus 
extern "C" { 
#endif 
 
/* カーネルシステム管理 */ 
ER      sta_hos(void);								/* カーネル動作開始 */ 
 
 
/* カーネル内部関数 */ 
#define kernel_get_run_tsk()	\ 
			(KERNEL_STATIC_CAST(T_KERNEL_TCB_RAM, mtcb, mknl_get_run_tsk())) 
													/* 実行中タスク取得(マクロ関数) */ 
 
 
/* コンフィギュレーター生成関数 */ 
void    kernel_cfg_init(void);						/* 変数の初期化 */ 
void    kernel_cfg_start(void);						/* 初期化関数呼び出し */ 
 
#ifdef __cplusplus 
} 
#endif 
 
 
 
#endif	/* __HOS_V4__knl_hos_h__ */ 
 
 
/* ------------------------------------------------------------------------ */ 
/*  Copyright (C) 1998-2002 by Project HOS                                  */ 
/* ------------------------------------------------------------------------ */