OSDN Git Service

d11784ec20917e1087506643a9b17fd0feea0f9b
[hos/hos-v4a.git] / kernel / source / object / inh / exe_inh.c
1 /**
2  *  Hyper Operating System V4 Advance
3  *
4  * @file  exe_inh.c
5  * @brief %jp{割込みハンドラの処理}
6  *
7  * Copyright (C) 1998-2006 by Project HOS
8  * http://sourceforge.jp/projects/hos/
9  */
10
11
12 #include "core/core.h"
13 #include "object/inhobj.h"
14
15
16 /* %jp{割込みハンドラの処理} */
17 void _kernel_exe_inh(INHNO inhno)
18 {
19         /* %jp{割込みハンドラの処理} */
20 #if _KERNEL_SPT_INH
21         {
22                 const _KERNEL_T_INHINF *pk_inhinf;
23         
24                 pk_inhinf = _KERNEL_INT_GET_INHINF(inhno);
25         
26                 if ( pk_inhinf->inthdr != NULL )
27                 {
28 #if _KERNEL_PROCATR_SPT_MULTINT
29                         _KERNEL_ENA_INT();                      /* %jp{多重割込み許可} */
30 #endif
31                         pk_inhinf->inthdr();            /* %jp{割込みハンドラの処理} */
32 #if _KERNEL_PROCATR_SPT_MULTINT
33                         _KERNEL_DIS_INT();                      /* %jp{割込み禁止} */
34 #endif
35                 }
36         }
37 #endif
38         
39         /* %jp{割込みコントローラの処理} */
40 #if _KERNEL_SPT_ISR
41         _KERNEL_EXE_IRC(inhno);
42 #endif
43
44 }
45
46
47 /* end of file */