Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_kernel_impl.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    66 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  $Id$
     
    5439
    5540/*
    56  *              カーネルの割込みコントローラ依存部(GIC用)
    57  *
    58  *  このヘッダファイルは,target_kernel_impl.h(または,そこからインク
    59  *  ルードされるファイル)のみからインクルードされる.他のファイルから
    60  *  直接インクルードしてはならない.
     41 *              カーネルの割込みコントローラ依存部(GIC用)
     42 *
     43 *  このヘッダファイルは,target_kernel_impl.h(または,そこからインク
     44 *  ルードされるファイル)のみからインクルードされる.他のファイルから
     45 *  直接インクルードしてはならない.
    6146 */
    6247
     
    6853
    6954/*
    70  *  割込み番号の数,最小値と最大値
     55 *  割込み番号の数,最小値と最大値
    7156 */
    7257#define TNUM_INTNO              GIC_TNUM_INTNO
     
    7560
    7661/*
    77  *  割込みハンドラ番号の数
     62 *  割込みハンドラ番号の数
    7863 */
    7964#define TNUM_INHNO              GIC_TNUM_INTNO
    8065
    8166/*
    82  *  割込み番号の定義
     67 *  割込み番号の定義
    8368 */
    8469#define GIC_INTNO_SGI0          0U
     
    8772
    8873/*
    89  *  割込み優å
    90 ˆåº¦ã®æ“ä½œ
    91  *
    92  *  割込み優å
    93 ˆåº¦ã®å†
    94 éƒ¨è¡¨ç¾ã¯ï¼Œuint_t型で表し,0が最高優å
    95 ˆåº¦ã§ï¼Œå€¤ãŒå¤§ã
    96  *  いほど優å
    97 ˆåº¦ãŒä¸‹ãŒã‚‹ã‚‚のとする.GICのレジスタ構成と整合させるために,
    98  *  優å
    99 ˆåº¦ã®æ®µæ•°ãŒ256段階の時にあわせて表す.
     74 *  割込み優先度の操作
     75 *
     76 *  割込み優先度の内部表現は,uint_t型で表し,0が最高優先度で,値が大き
     77 *  いほど優先度が下がるものとする.GICのレジスタ構成と整合させるために,
     78 *  優先度の段数が256段階の時にあわせて表す.
    10079 */
    10180#define GIC_PRI_LEVEL           (TMAX_INTPRI - TMIN_INTPRI + 2)
     
    12099#endif /* GIC_PRI_LEVEL == 16 */
    121100
    122 /* 外部表現への変換 */
     101/* 外部表現への変換 */
    123102#define EXT_IPM(pri) \
    124103                        (((PRI)((pri) >> GIC_PRI_SHIFT)) - (GIC_PRI_LEVEL - 1))
    125104
    126 /* å†
    127 éƒ¨è¡¨ç¾ã¸ã®å¤‰æ› */
     105/* 内部表現への変換 */
    128106#define INT_IPM(ipm) \
    129107                        (((uint_t)((ipm) + (GIC_PRI_LEVEL - 1))) << GIC_PRI_SHIFT)
    130108
    131109/*
    132  *  GICレジスタのアドレスを定義するためのマクロ
    133  *
    134  *  GICレジスタのアドレスを,アセンブリ言語からも参ç
    135 §ã§ãã‚‹ã‚ˆã†ã«ã™ã‚‹ãŸ
    136  *  めのマクロ.
     110 *  GICレジスタのアドレスを定義するためのマクロ
     111 *
     112 *  GICレジスタのアドレスを,アセンブリ言語からも参照できるようにするた
     113 *  めのマクロ.
    137114 */
    138115#ifndef GIC_REG
     
    141118
    142119/*
    143  *  CPUインタフェース関連の定義
     120 *  CPUインタフェース関連の定義
    144121 */
    145122#define GICC_CTLR               GIC_REG(GICC_BASE, 0x00)
     
    152129
    153130/*
    154  *  CPUインタフェース制御レジスタ(GICC_CTLR)の設定値(GICv1でセキュリ
    155  *  ティ拡張がない場合)
     131 *  CPUインタフェース制御レジスタ(GICC_CTLR)の設定値(GICv1でセキュリ
     132 *  ティ拡張がない場合)
    156133 */
    157134#define GICC_CTLR_DISABLE               UINT_C(0x00)
     
    159136
    160137/*
    161  *  CPUインタフェース制御レジスタ(GICC_CTLR)の設定値(GICv2でセキュリ
    162  *  ティ拡張がない場合か,拡張がある場合のセキュアモード)
     138 *  CPUインタフェース制御レジスタ(GICC_CTLR)の設定値(GICv2でセキュリ
     139 *  ティ拡張がない場合か,拡張がある場合のセキュアモード)
    163140 */
    164141#ifdef TOPPERS_SAFEG_SECURE
     
    170147
    171148/*
    172  *  ディストリビュータ関連の定義
     149 *  ディストリビュータ関連の定義
    173150 */
    174151#define GICD_CTLR                       GIC_REG(GICD_BASE, 0x000)
     
    191168
    192169/*
    193  *  ディストリビュータ制御レジスタ(GICD_CTLR)の設定値
     170 *  ディストリビュータ制御レジスタ(GICD_CTLR)の設定値
    194171 */
    195172#define GICD_CTLR_DISABLE       UINT_C(0x00)
     
    197174
    198175/*
    199  *  割込みコンフィギュレーションレジスタ(GICD_ICFGRn)の設定値
    200  *
    201  *  第1ビットは,ARM11 MPCoreおよびGICの早い時期の実è£
    202 ã§ã¯å‰²è¾¼ã¿ã®é€šçŸ¥
    203  *  å
    204 ˆãƒ—ロセッサを設定するために使用されている.
     176 *  割込みコンフィギュレーションレジスタ(GICD_ICFGRn)の設定値
     177 *
     178 *  第1ビットは,ARM11 MPCoreおよびGICの早い時期の実装では割込みの通知
     179 *  先プロセッサを設定するために使用されている.
    205180 */
    206181#define GICD_ICFGRn_LEVEL       UINT_C(0x00)
     
    214189
    215190/*
    216  *  CPUインタフェースの操作
    217  */
    218 
    219 /*
    220  *  割込み優å
    221 ˆåº¦ãƒžã‚¹ã‚¯ã‚’設定(priはå†
    222 éƒ¨è¡¨ç¾ï¼‰
     191 *  CPUインタフェースの操作
     192 */
     193
     194/*
     195 *  割込み優先度マスクを設定(priは内部表現)
    223196 */
    224197Inline void
     
    229202
    230203/*
    231  *  割込み優å
    232 ˆåº¦ãƒžã‚¹ã‚¯ã‚’取得(å†
    233 éƒ¨è¡¨ç¾ã§è¿”す)
     204 *  割込み優先度マスクを取得(内部表現で返す)
    234205 */
    235206Inline uint_t
     
    240211
    241212/*
    242  *  CPUインタフェースの初期化
     213 *  CPUインタフェースの初期化
    243214 */
    244215extern void gicc_initialize(void);
    245216
    246217/*
    247  *  CPUインタフェースの終了
     218 *  CPUインタフェースの終了
    248219 */
    249220extern void gicc_terminate(void);
    250221
    251222/*
    252  *  ディストリビュータの操作
    253  */
    254 
    255 /*
    256  *  割込み禁止(割込みイネーブルのクリア)
     223 *  ディストリビュータの操作
     224 */
     225
     226/*
     227 *  割込み禁止(割込みイネーブルのクリア)
    257228 */
    258229Inline void
     
    263234
    264235/*
    265  *  割込み許可(割込みイネーブルのセット)
     236 *  割込み許可(割込みイネーブルのセット)
    266237 */
    267238Inline void
     
    272243
    273244/*
    274  *  割込みペンディングのクリア
     245 *  割込みペンディングのクリア
    275246 */
    276247Inline void
     
    281252
    282253/*
    283  *  割込みペンディングのセット
     254 *  割込みペンディングのセット
    284255 */
    285256Inline void
     
    290261
    291262/*
    292  *  割込みペンディングのチェック
     263 *  割込みペンディングのチェック
    293264 */
    294265Inline bool_t
     
    300271
    301272/*
    302  *  割込みのコンフィグレーション
     273 *  割込みのコンフィグレーション
    303274 */
    304275Inline void
     
    315286
    316287/*
    317  *  割込みグループの設定(セキュリティ拡張)
     288 *  割込みグループの設定(セキュリティ拡張)
    318289 */
    319290Inline void
     
    330301
    331302/*
    332  *  割込み要求ラインに対する割込み優å
    333 ˆåº¦ã®è¨­å®šï¼ˆpriはå†
    334 éƒ¨è¡¨ç¾ï¼‰
     303 *  割込み要求ラインに対する割込み優先度の設定(priは内部表現)
    335304 */
    336305Inline void
     
    347316
    348317/*
    349  *  割込みターゲットプロセッサの設定
    350  *
    351  *  prcsは,ターゲットとするプロセッサを表すビットのビット毎論理和で指
    352  *  定する.
    353  *              プロセッサ0 : 0x01
    354  *              プロセッサ1 : 0x02
    355  *              プロセッサ2 : 0x04
    356  *              プロセッサ3 : 0x08
     318 *  割込みターゲットプロセッサの設定
     319 *
     320 *  prcsは,ターゲットとするプロセッサを表すビットのビット毎論理和で指
     321 *  定する.
     322 *              プロセッサ0 : 0x01
     323 *              プロセッサ1 : 0x02
     324 *              プロセッサ2 : 0x04
     325 *              プロセッサ3 : 0x08
    357326 */
    358327Inline void
     
    369338
    370339/*
    371  *  ディストリビュータの初期化
     340 *  ディストリビュータの初期化
    372341 */
    373342extern void gicd_initialize(void);
    374343
    375344/*
    376  *  ディストリビュータの終了
     345 *  ディストリビュータの終了
    377346 */
    378347extern void gicd_terminate(void);
     
    381350
    382351/*
    383  *  割込み番号の範囲の判定
     352 *  割込み番号の範囲の判定
    384353 */
    385354#define VALID_INTNO(intno)      (TMIN_INTNO <= (intno) && (intno) <= TMAX_INTNO)
    386355
    387356/*
    388  *  割込み要求ラインのための標準的な初期化æƒ
    389 å ±ã‚’生成する
     357 *  割込み要求ラインのための標準的な初期化情報を生成する
    390358 */
    391359#define USE_INTINIB_TABLE
    392360
    393361/*
    394  *  割込み要求ライン設定テーブルを生成する
     362 *  割込み要求ライン設定テーブルを生成する
    395363 */
    396364#define USE_INTCFG_TABLE
    397365
    398366/*
    399  *  コア依存部
     367 *  コア依存部
    400368 */
    401369#include "core_kernel_impl.h"
    402370
    403371/*
    404  *  ターゲット非依存部に提供する関数
     372 *  ターゲット非依存部に提供する関数
    405373 */
    406374#ifndef TOPPERS_MACRO_ONLY
    407375
    408376/*
    409  *  割込み優å
    410 ˆåº¦ãƒžã‚¹ã‚¯ã®è¨­å®š
     377 *  割込み優先度マスクの設定
    411378 */
    412379Inline void
     
    417384
    418385/*
    419  *  割込み優å
    420 ˆåº¦ãƒžã‚¹ã‚¯ã®å‚ç
    421 §
     386 *  割込み優先度マスクの参照
    422387 */
    423388Inline PRI
     
    428393
    429394/*
    430  *  割込み要求禁止フラグのセット
    431  *
    432  *  intnoで指定された割込み要求ラインに対する割込み要求禁止フラグのセッ
    433  *  トし,割込みを禁止する.割込み属性が設定されていない割込み要求ライ
    434  *  ンが指定された場合には,falseを返す.
     395 *  割込み要求禁止フラグのセット
     396 *
     397 *  intnoで指定された割込み要求ラインに対する割込み要求禁止フラグのセッ
     398 *  トし,割込みを禁止する.割込み属性が設定されていない割込み要求ライ
     399 *  ンが指定された場合には,falseを返す.
    435400 */
    436401Inline bool_t
     
    445410
    446411/*
    447  *  割込み要求禁止フラグのクリア
    448  *
    449  *  intnoで指定された割込み要求ラインに対する割込み要求禁止フラグのクリ
    450  *  アし,割込みを許可する.割込み属性が設定されていない割込み要求ライ
    451  *  ンが指定された場合には,falseを返す.
     412 *  割込み要求禁止フラグのクリア
     413 *
     414 *  intnoで指定された割込み要求ラインに対する割込み要求禁止フラグのクリ
     415 *  アし,割込みを許可する.割込み属性が設定されていない割込み要求ライ
     416 *  ンが指定された場合には,falseを返す.
    452417 */
    453418Inline bool_t
     
    462427
    463428/*
    464  *  割込み要求のクリア
     429 *  割込み要求のクリア
    465430 */
    466431Inline void
     
    471436
    472437/*
    473  *  割込み要求のチェック
     438 *  割込み要求のチェック
    474439 */
    475440Inline bool_t
     
    480445
    481446/*
    482  *  割込み要求のセット
     447 *  割込み要求のセット
    483448 */
    484449Inline void
Note: See TracChangeset for help on using the changeset viewer.