Changeset 167 for UsbWattMeter/trunk/asp_dcre/kernel/interrupt.h
- Timestamp:
- Mar 8, 2016, 8:37:45 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
UsbWattMeter/trunk/asp_dcre/kernel/interrupt.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 12 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 13 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 14 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 15 * \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[ 16 * XR[hÉÜÜêĢ鱯D 17 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 18 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 19 gip 20 * Ò}j 21 AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL 22 * Ì³ÛØKèðfÚ·é±ÆD 23 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 24 * pūȢ`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 25 * ÆD 26 * (a) Äzzɺ¤hL 27 gipÒ}j 28 AÈÇjÉCãLÌ 29 * ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD 30 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 31 * ñ·é±ÆD 32 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 33 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 34 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 35 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 36 * ÆÓ·é±ÆD 11 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 37 33 * 38 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨39 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI40 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF41 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»42 * ÌÓCðíÈ¢D34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 43 39 * 44 40 * @(#) $Id$ … … 46 42 47 43 /* 48 * ÝÇ@\44 * 割込み管理機能 49 45 */ 50 46 … … 53 49 54 50 /* 55 * ÝT[rX[`ú»ubN51 * 割込みサービスルーチン初期化ブロック 56 52 */ 57 53 typedef struct isr_initialization_block { 58 ATR isratr; /* ÝT[rX[`®« */ 59 intptr_t exinf; /* ÝT[rX[`Ìg£îñ */ 60 INTNO intno; /* ÝT[rX[`ðo^·éÝÔ */ 61 QUEUE *p_isr_queue; /* o^æÝT[rX[`L 62 [ÌÔn */ 63 ISR isr; /* ÝT[rX[`ÌæªÔn */ 64 PRI isrpri; /* ÝT[rX[`Dæx */ 54 ATR isratr; /* 割込みサービスルーチン属性 */ 55 intptr_t exinf; /* 割込みサービスルーチンの拡張情報 */ 56 INTNO intno; /* 割込みサービスルーチンを登録する割込み番号 */ 57 QUEUE *p_isr_queue; /* 登録先割込みサービスルーチンキューの番地 */ 58 ISR isr; /* 割込みサービスルーチンの先頭番地 */ 59 PRI isrpri; /* 割込みサービスルーチン優先度 */ 65 60 } ISRINIB; 66 61 67 62 /* 68 * ÝT[rX[`ÇubN63 * 割込みサービスルーチン管理ブロック 69 64 */ 70 65 typedef struct isr_control_block { 71 QUEUE isr_queue; /* ÝT[rX[`ÄoµL 72 [ */ 73 const ISRINIB *p_isrinib; /* ú»ubNÖÌ|C^ */ 66 QUEUE isr_queue; /* 割込みサービスルーチン呼出しキュー */ 67 const ISRINIB *p_isrinib; /* 初期化ブロックへのポインタ */ 74 68 } ISRCB; 75 69 76 70 /* 77 * ÝT[rX[`ÄoµL 78 [ðõ·é½ßÌf[^\¢ 71 * 割込みサービスルーチン呼出しキューを検索するためのデータ構造 79 72 */ 80 73 typedef struct { 81 INTNO intno; /* ÝÔ */ 82 QUEUE *p_isr_queue; /* ÝT[rX[`ÄoµL 83 [ */ 74 INTNO intno; /* 割込み番号 */ 75 QUEUE *p_isr_queue; /* 割込みサービスルーチン呼出しキュー */ 84 76 } ISR_ENTRY; 85 77 86 78 /* 87 * ÝT[rX[`L 88 [ÌGgikernel_cfg.cj 79 * 割込みサービスルーチンキューのエントリ数(kernel_cfg.c) 89 80 */ 90 81 extern const uint_t tnum_isr_queue; 91 82 92 83 /* 93 * ÝT[rX[`L 94 [Xgikernel_cfg.cj 84 * 割込みサービスルーチンキューリスト(kernel_cfg.c) 95 85 */ 96 86 extern const ISR_ENTRY isr_queue_list[]; 97 87 98 88 /* 99 * ÝT[rX[`L 100 [ÌGAikernel_cfg.cj 89 * 割込みサービスルーチンキューのエリア(kernel_cfg.c) 101 90 */ 102 91 extern QUEUE isr_queue_table[]; 103 92 104 93 /* 105 * gpµÄ¢È¢ÝT[rX[`ÇubNÌXg94 * 使用していない割込みサービスルーチン管理ブロックのリスト 106 95 */ 107 96 extern QUEUE free_isrcb; 108 97 109 98 /* 110 * ÝT[rX[`IDÌÅålikernel_cfg.cj99 * 割込みサービスルーチンIDの最大値(kernel_cfg.c) 111 100 * 112 * ÃIɶ¬³êéÝT[rX[`ÍIDÔð½È¢½ßC113 * tmax_isrid Í®Iɶ¬³êéÝT[rX[`ÌIDÔÌÅål114 * Å éDÃIɶ¬³êéÝT[rX[`ÌÍCtnum_sisrÉÛ115 * ·éD101 * 静的に生成される割込みサービスルーチンはID番号を持たないため, 102 * tmax_isridは動的に生成される割込みサービスルーチンのID番号の最大値 103 * である.静的に生成される割込みサービスルーチンの数は,tnum_sisrに保 104 * 持する. 116 105 */ 117 106 extern const ID tmax_isrid; … … 119 108 120 109 /* 121 * ÝT[rX[`ú»ubNÌGAikernel_cfg.cj110 * 割込みサービスルーチン初期化ブロックのエリア(kernel_cfg.c) 122 111 */ 123 112 extern const ISRINIB sisrinib_table[]; … … 125 114 126 115 /* 127 * ÝT[rX[`ÇubNÌGAikernel_cfg.cj116 * 割込みサービスルーチン管理ブロックのエリア(kernel_cfg.c) 128 117 */ 129 118 extern ISRCB isrcb_table[]; 130 119 131 120 /* 132 * ÝT[rX[`ÇubN©çÝT[rX[`IDðæ133 * èo·½ßÌ}N121 * 割込みサービスルーチン管理ブロックから割込みサービスルーチンIDを取 122 * り出すためのマクロ 134 123 */ 135 124 #define ISRID(p_isrcb) ((ID)(((p_isrcb) - isrcb_table) \ … … 137 126 138 127 /* 139 * ÝT[rX[`@\Ìú»128 * 割込みサービスルーチン機能の初期化 140 129 */ 141 130 extern void initialize_isr(void); 142 131 143 132 /* 144 * ÝT[rX[`ÌÄoµ133 * 割込みサービスルーチンの呼出し 145 134 */ 146 135 extern void call_isr(QUEUE *p_isr_queue); … … 149 138 150 139 /* 151 * Ýnhú»ubN140 * 割込みハンドラ初期化ブロック 152 141 */ 153 142 typedef struct interrupt_handler_initialization_block { 154 INHNO inhno; /* ÝnhÔ*/155 ATR inhatr; /* Ýnh®«*/156 FP int_entry; /* ÝnhÌoüûÌÔn*/143 INHNO inhno; /* 割込みハンドラ番号 */ 144 ATR inhatr; /* 割込みハンドラ属性 */ 145 FP int_entry; /* 割込みハンドラの出入口処理の番地 */ 157 146 } INHINIB; 158 147 159 148 /* 160 * ÝvCú»ubN149 * 割込み要求ライン初期化ブロック 161 150 */ 162 151 typedef struct interrupt_request_initialization_block { 163 INTNO intno; /* ÝÔ*/164 ATR intatr; /* Ý®«*/165 PRI intpri; /* ÝDæx*/152 INTNO intno; /* 割込み番号 */ 153 ATR intatr; /* 割込み属性 */ 154 PRI intpri; /* 割込み優先度 */ 166 155 } INTINIB; 167 156 168 157 /* 169 * ÝnhÔÌikernel_cfg.cj158 * 割込みハンドラ番号の数(kernel_cfg.c) 170 159 */ 171 160 extern const uint_t tnum_inhno; 172 161 173 162 /* 174 * Ýnhú»ubNÌGAikernel_cfg.cj163 * 割込みハンドラ初期化ブロックのエリア(kernel_cfg.c) 175 164 */ 176 165 extern const INHINIB inhinib_table[]; 177 166 178 167 /* 179 * ÝvCÌikernel_cfg.cj168 * 割込み要求ラインの数(kernel_cfg.c) 180 169 */ 181 170 extern const uint_t tnum_intno; 182 171 183 172 /* 184 * ÝvCú»ubNÌGAikernel_cfg.cj173 * 割込み要求ライン初期化ブロックのエリア(kernel_cfg.c) 185 174 */ 186 175 extern const INTINIB intinib_table[]; … … 189 178 190 179 /* 191 * ÝÇ@\Ìú»180 * 割込み管理機能の初期化 192 181 */ 193 182 extern void initialize_interrupt(void); -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.