www.pudn.com > hos-v4_os.rar > knl_int.h
/* ------------------------------------------------------------------------ */
/* Hyper Operating System V4 μITRON4.0仕様 Real-Time OS */
/* カーネル依存情報定義ヘッダ 割り込み管理 */
/* */
/* Copyright (C) 1998-2002 by Project HOS */
/* http://sourceforge.jp/projects/hos/ */
/* ------------------------------------------------------------------------ */
#ifndef __HOS_V4__knl_int_h__
#define __HOS_V4__knl_int_h__
#include "knl_hos.h"
/* ------------------------------------------ */
/* 定数定義 */
/* ------------------------------------------ */
/* 割り込み番号の範囲 */
#define KERNEL_TMIN_INTNO (kernel_min_intno) /* 割り込み番号の最小値 */
#define KERNEL_TMAX_INTNO (KERNEL_TMIN_INTNO + kernel_intcb_cnt - 1)
/* 割り込み番号の最大値 */
/* IDの範囲 */
#define KERNEL_TMIN_ISRID TMIN_ISRID /* 割り込みサービスルーチンIDの最小値 */
#define KERNEL_TMAX_ISRID (KERNEL_TMIN_ISRID + kernel_isrcb_cnt - 1)
/* 割り込みサービスルーチンIDの最大値 */
/* ------------------------------------------ */
/* 型定義 */
/* ------------------------------------------ */
/* 割り込み管理コントロールブロック */
typedef struct t_kernel_intcb
{
VP_INT exinf; /* 割り込みサービスルーチンの拡張情報 */
FP isr; /* 割り込みサービスルーチンの起動番地 */
} T_KERNEL_INTCB;
/* 割り込みハンドラの定義用 */
typedef struct t_dinh
{
ATR inhatr; /* 割り込みハンドラ属性 */
FP inthdr; /* 割り込みハンドラの起動番地 */
} T_DINH;
/* 割り込みサービスルーチンコントロールブロック */
typedef struct t_kernel_isrcb
{
INTNO intno; /* 割り込み番号 */
} T_KERNEL_ISRCB;
/* ---------------------------------- */
/* グローバル変数宣言 */
/* ---------------------------------- */
/* 割り込み管理 */
extern T_KERNEL_INTCB kernel_intcb_tbl[]; /* 割り込み管理コントロールブロックテーブル */
extern const INT kernel_intcb_cnt; /* 割り込み番号数 */
extern const INTNO kernel_min_intno; /* 割り込み番号最小値 */
/* 割り込みサービスルーチン */
extern T_KERNEL_ISRCB* kernel_isrcb_tbl[]; /* 割り込みサービスルーチンコントロールブロックテーブル */
extern const INT kernel_isrcb_cnt; /* 割り込みサービスルーチンコントロールブロックの個数 */
/* 割り込み制御変数 */
extern INT kernel_int_cnt; /* 割り込みネスト回数 */
extern VP kernel_int_ssp; /* 割り込み時スタック退避 */
/* ------------------------------------------ */
/* 関数宣言 */
/* ------------------------------------------ */
#ifdef __cplusplus
extern "C" {
#endif
/* 割り込み制御 */
void kernel_sta_int(void); /* 割り込みコンテキスト開始処理 */
void kernel_end_int(void); /* 割り込みコンテキスト終了処理 */
/* 割り込み管理 */
void kernel_exe_int(INTNO intno); /* 割り込み処理実行 */
ER dis_int(INTNO intno); /* 割り込みの禁止 */
ER ena_int(INTNO intno); /* 割り込みの許可 */
/* 割り込みハンドラ */
ER def_inh(INTNO intno, T_DINH *pk_dinh); /* 割り込みハンドラ定義 */
/* 割り込みサービスルーチン */
/*
ER cre_isr();
ER acre_isr();
*/
#ifdef __cplusplus
}
#endif
#endif /* __HOS_V4__knl_int_h__ */
/* ------------------------------------------------------------------------ */
/* Copyright (C) 1998-2002 by Project HOS */
/* ------------------------------------------------------------------------ */