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

文字コードを設定

Location:
EcnlProtoTool/trunk/asp3_dcre/kernel
Files:
56 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/kernel/Makefile.kernel

    • Property svn:mime-type changed from text/x-makefile to text/x-makefile;charset=UTF-8
    r270 r321  
    99#              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010#
    11 #  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13 #  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14 #  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16 #  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17 #      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18 #      スコード中に含まれていること.
    19 #  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20 #      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23 #      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25 #      の無保証規定を掲載すること.
    26 #  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27 #      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29 #      と.
    30 #    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33 #        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34 #    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37 #        報告すること.
    38 #  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39 #      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42 #      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43 #      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45 #      å
    46 è²¬ã™ã‚‹ã“と.
     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#      免責すること.
    4733#
    48 #  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50 #  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51 #  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52 #  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53 #  の責任を負わない.
     34#  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35#  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36#  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37#  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38#  の責任を負わない.
    5439#
    55 #  $Id: Makefile.kernel 554 2016-01-17 13:21:59Z ertl-hiro $
     40#  $Id$
    5641#
    5742
    5843#
    59 #               ã‚«ãƒ¼ãƒãƒ«ã®ãƒ•ã‚¡ã‚¤ãƒ«æ§‹æˆã®å®šç¾©
     44#               カーネルのファイル構成の定義
    6045#
    6146
    6247#
    63 #  1つのソースファイルから複数のオブジェクトファイルを生成するように作
    64 æˆã•ã‚ŒãŸã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒªã‚¹ãƒˆ
     48#  1つのソースファイルから複数のオブジェクトファイルを生成するように作
     49成されたソースファイルのリスト
    6550#
    6651KERNEL_FCSRCS = startup.c task.c taskhook.c wait.c time_event.c \
     
    7156
    7257#
    73 å„ソースファイルから生成されるオブジェクトファイルのリスト
     58各ソースファイルから生成されるオブジェクトファイルのリスト
    7459#
    7560startup = sta_ker.o ext_ker.o kermem.o
     
    133118
    134119#
    135 ç”Ÿæˆã•ã‚Œã‚‹ã‚ªãƒ–ジェクトファイルの依存関係の定義
     120生成されるオブジェクトファイルの依存関係の定義
    136121#
    137122$(startup) $(startup:.o=.s): startup.c
  • EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     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 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              アラーム通知機能
     44 *              アラーム通知機能
    6045 */
    6146
     
    6550
    6651/*
    67  *  トレースログマクロのデフォルト定義
     52 *  トレースログマクロのデフォルト定義
    6853 */
    6954#ifndef LOG_ALM_ENTER
     
    116101
    117102/*
    118  *  アラーム通知の数
     103 *  アラーム通知の数
    119104 */
    120105#define tnum_alm        ((uint_t)(tmax_almid - TMIN_ALMID + 1))
     
    122107
    123108/*
    124  *  アラーム通知IDからアラーム通知管理ブロックを取り出すためのマクロ
     109 *  アラーム通知IDからアラーム通知管理ブロックを取り出すためのマクロ
    125110 */
    126111#define INDEX_ALM(almid)        ((uint_t)((almid) - TMIN_ALMID))
     
    130115
    131116/*
    132  *  使用していないアラーム通知管理ブロックのリスト
     117 *  使用していないアラーム通知管理ブロックのリスト
    133118 *
    134  *  アラーム通知管理ブロックのå
    135 ˆé ­ã«ã¯ã‚­ãƒ¥ãƒ¼ã«ã¤ãªããŸã‚ã®é ˜åŸŸãŒãªã„た
    136  *  め,タイムイベントブロック(tmevtb)の領域を用いる.
     119 *  アラーム通知管理ブロックの先頭にはキューにつなぐための領域がないた
     120 *  め,タイムイベントブロック(tmevtb)の領域を用いる.
    137121 */
    138122QUEUE   free_almcb;
    139123
    140124/*
    141  *  アラーム通知機能の初期化
     125 *  アラーム通知機能の初期化
    142126 */
    143127void
     
    170154
    171155/*
    172  *  アラーム通知の生成
     156 *  アラーム通知の生成
    173157 */
    174158#ifdef TOPPERS_acre_alm
     
    228212
    229213/*
    230  *  アラーム通知の削除
     214 *  アラーム通知の削除
    231215 */
    232216#ifdef TOPPERS_del_alm
     
    272256
    273257/*
    274  *  アラーム通知の動作開始
     258 *  アラーム通知の動作開始
    275259 */
    276260#ifdef TOPPERS_sta_alm
     
    312296
    313297/*
    314  *  アラーム通知の動作停止
     298 *  アラーム通知の動作停止
    315299 */
    316300#ifdef TOPPERS_stp_alm
     
    348332
    349333/*
    350  *  アラーム通知の状æ
    351 ‹å‚ç
    352 §
     334 *  アラーム通知の状態参照
    353335 */
    354336#ifdef TOPPERS_ref_alm
     
    389371
    390372/*
    391  *  アラーム通知起動ルーチン
     373 *  アラーム通知起動ルーチン
    392374 */
    393375#ifdef TOPPERS_almcal
     
    397379{
    398380        /*
    399          *  アラーム通知を停止状æ
    400 ‹ã«ã™ã‚‹ï¼Ž
     381         *  アラーム通知を停止状態にする.
    401382         */
    402383        p_almcb->almsta = false;
    403384
    404385        /*
    405          *  通知ハンドラを,CPUロック解除状æ
    406 ‹ã§å‘¼ã³å‡ºã™ï¼Ž
     386         *  通知ハンドラを,CPUロック解除状態で呼び出す.
    407387         */
    408388        unlock_cpu();
  • EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     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 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              アラーム通知機能
     44 *              アラーム通知機能
    6045 */
    6146
     
    6853
    6954/*
    70  *  アラーム通知初期化ブロック
     55 *  アラーム通知初期化ブロック
    7156 */
    7257typedef struct alarm_handler_initialization_block {
    73         ATR                     almatr;                 /* アラーム通知属性 */
    74         intptr_t        exinf;                  /* 通知ハンドラの拡張æƒ
    75 å ± */
    76         NFYHDR          nfyhdr;                 /* 通知ハンドラの起動番地 */
     58        ATR                     almatr;                 /* アラーム通知属性 */
     59        intptr_t        exinf;                  /* 通知ハンドラの拡張情報 */
     60        NFYHDR          nfyhdr;                 /* 通知ハンドラの起動番地 */
    7761} ALMINIB;
    7862
    7963/*
    80  *  アラーム通知管理ブロック
     64 *  アラーム通知管理ブロック
    8165 */
    8266typedef struct alarm_handler_control_block {
    83         const ALMINIB *p_alminib;       /* 初期化ブロックへのポインタ */
    84         bool_t          almsta;                 /* アラーム通知の動作状æ
    85 ‹ */
    86         TMEVTB          tmevtb;                 /* タイムイベントブロック */
     67        const ALMINIB *p_alminib;       /* 初期化ブロックへのポインタ */
     68        bool_t          almsta;                 /* アラーム通知の動作状態 */
     69        TMEVTB          tmevtb;                 /* タイムイベントブロック */
    8770} ALMCB;
    8871
    8972/*
    90  *  使用していないアラーム通知管理ブロックのリスト
     73 *  使用していないアラーム通知管理ブロックのリスト
    9174 */
    9275extern QUEUE    free_almcb;
    9376
    9477/*
    95  *  アラーム通知IDの最大値(kernel_cfg.c)
     78 *  アラーム通知IDの最大値(kernel_cfg.c)
    9679 */
    9780extern const ID tmax_almid;
     
    9982
    10083/*
    101  *  アラーム通知初期化ブロックのエリア(kernel_cfg.c)
     84 *  アラーム通知初期化ブロックのエリア(kernel_cfg.c)
    10285 */
    10386extern const ALMINIB    alminib_table[];
     
    10588
    10689/*
    107  *  アラーム通知の通知方法の格納エリア(kernel_cfg.c)
     90 *  アラーム通知の通知方法の格納エリア(kernel_cfg.c)
    10891 */
    10992extern T_NFYINFO        aalm_nfyinfo_table[];
    11093
    11194/*
    112  *  アラーム通知管理ブロックのエリア(kernel_cfg.c)
     95 *  アラーム通知管理ブロックのエリア(kernel_cfg.c)
    11396 */
    11497extern ALMCB    almcb_table[];
    11598
    11699/*
    117  *  アラーム通知管理ブロックからアラーム通知IDを取り出すためのマクロ
     100 *  アラーム通知管理ブロックからアラーム通知IDを取り出すためのマクロ
    118101 */
    119102#define ALMID(p_almcb)  ((ID)(((p_almcb) - almcb_table) + TMIN_ALMID))
    120103
    121104/*
    122  *  アラーム通知機能の初期化
     105 *  アラーム通知機能の初期化
    123106 */
    124107extern void     initialize_alarm(void);
    125108
    126109/*
    127  *  アラーム通知起動ルーチン
     110 *  アラーム通知起動ルーチン
    128111 */
    129112extern void     call_alarm(ALMCB *p_almcb);
  • EcnlProtoTool/trunk/asp3_dcre/kernel/alarm.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    99#               Graduate School of Information Science, Nagoya Univ., JAPAN
    1010#
    11 #   ä¸Šè¨˜è‘—作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    14 #   å¤‰ãƒ»å†é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    18 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    19 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23 #       è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    26 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27 #       ç”¨ã§ããªã„形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29 #       ã¨ï¼Ž
    30 #     (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    34 #     (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37 #         å ±å‘Šã™ã‚‹ã“と.
    38 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    43 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45 #       å
    46 è²¬ã™ã‚‹ã“と.
     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#       免責すること.
    4733#
    48 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    49 ãŠ
    50 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    52 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    53 #   ã®è²¬ä»»ã‚’負わない.
     34#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38#   の責任を負わない.
    5439#
    55 #   $Id: alarm.trb 588 2016-02-05 12:54:58Z ertl-hiro $
     40#   $Id$
    5641#
    5742
    5843#
    59 #               ã‚¢ãƒ©ãƒ¼ãƒ é€šçŸ¥æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     44#               アラーム通知機能の生成スクリプト
    6045#
    6146
     
    6752
    6853  def prepare(key, params)
    69     # almatrが無効の場合(E_RSATR)[NGKI2491ï¼½
    70     #(TA_STA以外のビットがセットされている場合)
     54    # almatrが無効の場合(E_RSATR)[NGKI2491]
     55    #(TA_STA以外のビットがセットされている場合)
    7156    if (params[:almatr] & ~($TA_STA)) != 0
    7257      error_illegal_id("E_RSATR", params, :almatr, :almid)
    7358    end
    7459
    75     # 通知æƒ
    76 å ±ã®å‡¦ç†
     60    # 通知情報の処理
    7761    params[:nfyhdr] = generateNotifyHandler(key, params, :almid)
    7862  end
     
    8569
    8670#
    87 #  アラーム通知に関するæƒ
    88 å ±ã®ç”Ÿæˆ
     71#  アラーム通知に関する情報の生成
    8972#
    9073$kernelCfgC.comment_header("Alarm Notification Functions")
  • EcnlProtoTool/trunk/asp3_dcre/kernel/allfunc.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    77 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    11  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    12  *  変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    14  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16  *      スコード中に含まれていること.
    17  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18  *      用できる形で再é
    19 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    20 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    21  *      è€
    22 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    23  *      の無保証規定を掲載すること.
    24  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    25  *      用できない形で再é
    26 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    27  *      と.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *    (b) 再é
    33 å¸ƒã®å½¢æ
    34 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    35  *        報告すること.
    36  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    37  *      害からも,上記著作権è€
    38 ãŠã‚ˆã³TOPPERSプロジェクトをå
    39 è²¬ã™ã‚‹ã“と.
    40  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    41  *      由に基づく請求からも,上記著作権è€
    42 ãŠã‚ˆã³TOPPERSプロジェクトを
    43  *      å
    44 è²¬ã™ã‚‹ã“と.
    45  *
    46  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    47 ãŠ
    48  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    49  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    50  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    51  *  の責任を負わない.
     9 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     10 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     11 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     21 *      と.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     25 *        報告すること.
     26 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     27 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     28 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     29 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     30 *      免責すること.
     31 *
     32 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     33 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     34 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     35 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     36 *  の責任を負わない.
    5237 *
    5338 *  $Id$
     
    5540
    5641/*
    57  *              すべての関数をコンパイルするための定義
     42 *              すべての関数をコンパイルするための定義
    5843 */
    5944
  • EcnlProtoTool/trunk/asp3_dcre/kernel/check.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
    47  *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     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 *      免責すること.
     33 *
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              エラーチェック用マクロ
     44 *              エラーチェック用マクロ
    6045 */
    6146
     
    6651
    6752/*
    68  *  オブジェクトIDの範囲の判定
     53 *  オブジェクトIDの範囲の判定
    6954 */
    7055#define VALID_TSKID(tskid)      (TMIN_TSKID <= (tskid) && (tskid) <= tmax_tskid)
     
    8065
    8166/*
    82  *  オブジェクト番号の範囲の判定
     67 *  オブジェクト番号の範囲の判定
    8368 */
    8469#ifndef VALID_INTNO_DISINT
     
    9176
    9277/*
    93  *  優å
    94 ˆåº¦ã®ç¯„囲の判定
     78 *  優先度の範囲の判定
    9579 */
    9680#define VALID_TPRI(tpri)        (TMIN_TPRI <= (tpri) && (tpri) <= TMAX_TPRI)
     
    10791
    10892/*
    109  *  相対時間の範囲の判定
     93 *  相対時間の範囲の判定
    11094 */
    11195#define VALID_RELTIM(reltim)    ((reltim) <= TMAX_RELTIM)
    11296
    11397/*
    114  *  タイムアウト指定値の範囲の判定
     98 *  タイムアウト指定値の範囲の判定
    11599 */
    116100#define VALID_TMOUT(tmout)      ((tmout) <= TMAX_RELTIM || (tmout) == TMO_FEVR \
     
    118102
    119103/*
    120  *  アラインしているかの判定
     104 *  アラインしているかの判定
    121105 */
    122106#define ALIGNED(val, align)             ((((uintptr_t)(val)) & ((align) - 1U)) == 0U)
     
    159143
    160144/*
    161  *  NULLでないことの判定
     145 *  NULLでないことの判定
    162146 */
    163147#ifdef CHECK_INTPTR_NONNULL
     
    174158
    175159/*
    176  *  呼出しコンテキストのチェック(E_CTX)
     160 *  呼出しコンテキストのチェック(E_CTX)
    177161 */
    178162#define CHECK_TSKCTX() do {                                                                     \
     
    184168
    185169/*
    186  *  CPUロック状æ
    187 ‹ã®ãƒã‚§ãƒƒã‚¯ï¼ˆE_CTX)
     170 *  CPUロック状態のチェック(E_CTX)
    188171 */
    189172#define CHECK_UNL() do {                                                                        \
     
    195178
    196179/*
    197  *  呼出しコンテキストとCPUロック状æ
    198 ‹ã®ãƒã‚§ãƒƒã‚¯ï¼ˆE_CTX)
     180 *  呼出しコンテキストとCPUロック状態のチェック(E_CTX)
    199181 */
    200182#define CHECK_TSKCTX_UNL() do {                                                         \
     
    206188
    207189/*
    208  *  ディスパッチ保留状æ
    209 ‹ã§ãªã„かのチェック(E_CTX)
     190 *  ディスパッチ保留状態でないかのチェック(E_CTX)
    210191 */
    211192#define CHECK_DISPATCH() do {                                                           \
     
    217198
    218199/*
    219  *  その他のコンテキストエラーのチェック(E_CTX)
     200 *  その他のコンテキストエラーのチェック(E_CTX)
    220201 */
    221202#define CHECK_CTX(exp) do {                                                                     \
     
    227208
    228209/*
    229  *  オブジェクトIDのチェック(E_ID)
     210 *  オブジェクトIDのチェック(E_ID)
    230211 */
    231212#define CHECK_ID(exp) do {                                                                      \
     
    237218
    238219/*
    239  *  予約属性エラーのチェック(E_RSATR)
     220 *  予約属性エラーのチェック(E_RSATR)
    240221 */
    241222#define CHECK_RSATR(atr, valid_atr) do {                                        \
     
    247228
    248229/*
    249  *  パラメータエラーのチェック(E_PAR)
     230 *  パラメータエラーのチェック(E_PAR)
    250231 */
    251232#define CHECK_PAR(exp) do {                                                                     \
     
    257238
    258239/*
    259  *  不正使用エラーのチェック(E_ILUSE)
     240 *  不正使用エラーのチェック(E_ILUSE)
    260241 */
    261242#define CHECK_ILUSE(exp) do {                                                           \
     
    267248
    268249/*
    269  *  静的なオブジェクト状æ
    270 ‹ã‚¨ãƒ©ãƒ¼ã®ãƒã‚§ãƒƒã‚¯ï¼ˆE_OBJ)
     250 *  静的なオブジェクト状態エラーのチェック(E_OBJ)
    271251 */
    272252#define CHECK_OBJ(exp) do {                                                                     \
  • EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     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 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              周期通知機能
     44 *              周期通知機能
    6045 */
    6146
     
    6550
    6651/*
    67  *  トレースログマクロのデフォルト定義
     52 *  トレースログマクロのデフォルト定義
    6853 */
    6954#ifndef LOG_CYC_ENTER
     
    116101
    117102/*
    118  *  周期通知の数
     103 *  周期通知の数
    119104 */
    120105#define tnum_cyc        ((uint_t)(tmax_cycid - TMIN_CYCID + 1))
     
    122107
    123108/*
    124  *  周期通知IDから周期通知管理ブロックを取り出すためのマクロ
     109 *  周期通知IDから周期通知管理ブロックを取り出すためのマクロ
    125110 */
    126111#define INDEX_CYC(cycid)        ((uint_t)((cycid) - TMIN_CYCID))
     
    130115
    131116/*
    132  *  使用していない周期通知管理ブロックのリスト
     117 *  使用していない周期通知管理ブロックのリスト
    133118 *
    134  *  周期通知管理ブロックのå
    135 ˆé ­ã«ã¯ã‚­ãƒ¥ãƒ¼ã«ã¤ãªããŸã‚ã®é ˜åŸŸãŒãªã„ため,
    136  *  タイムイベントブロック(tmevtb)の領域を用いる.
     119 *  周期通知管理ブロックの先頭にはキューにつなぐための領域がないため,
     120 *  タイムイベントブロック(tmevtb)の領域を用いる.
    137121 */
    138122QUEUE   free_cyccb;
    139123
    140124/*
    141  *  周期通知機能の初期化
     125 *  周期通知機能の初期化
    142126 */
    143127void
     
    155139                if ((p_cyccb->p_cycinib->cycatr & TA_STA) != 0U) {
    156140                        /*
    157                          *  初回の起動のためのタイムイベントを登録する[ASPD1035ï¼½
    158                          *  ï¼»ASPD1062].
     141                         *  初回の起動のためのタイムイベントを登録する[ASPD1035]
     142                         *  [ASPD1062].
    159143                         */
    160144                        p_cyccb->cycsta = true;
     
    181165
    182166/*
    183  *  周期通知の生成
     167 *  周期通知の生成
    184168 */
    185169#ifdef TOPPERS_acre_cyc
     
    254238
    255239/*
    256  *  周期通知の削除
     240 *  周期通知の削除
    257241 */
    258242#ifdef TOPPERS_del_cyc
     
    298282
    299283/*
    300  *  周期通知の動作開始
     284 *  周期通知の動作開始
    301285 */
    302286#ifdef TOPPERS_sta_cyc
     
    325309                }
    326310                /*
    327                  *  初回の起動のためのタイムイベントを登録する[ASPD1036].
     311                 *  初回の起動のためのタイムイベントを登録する[ASPD1036].
    328312                 */
    329313                tmevtb_enqueue(&(p_cyccb->tmevtb), p_cyccb->p_cycinib->cycphs);
     
    340324
    341325/*
    342  *  周期通知の動作停止
     326 *  周期通知の動作停止
    343327 */
    344328#ifdef TOPPERS_stp_cyc
     
    376360
    377361/*
    378  *  周期通知の状æ
    379 ‹å‚ç
    380 §
     362 *  周期通知の状態参照
    381363 */
    382364#ifdef TOPPERS_ref_cyc
     
    417399
    418400/*
    419  *  周期通知起動ルーチン
     401 *  周期通知起動ルーチン
    420402 */
    421403#ifdef TOPPERS_cyccal
     
    425407{
    426408        /*
    427          *  次回の起動のためのタイムイベントを登録する[ASPD1037].
     409         *  次回の起動のためのタイムイベントを登録する[ASPD1037].
    428410         */
    429         p_cyccb->tmevtb.evttim += p_cyccb->p_cycinib->cyctim;   /*ï¼»ASPD1038ï¼½*/
     411        p_cyccb->tmevtb.evttim += p_cyccb->p_cycinib->cyctim;   /*[ASPD1038]*/
    430412        tmevtb_register(&(p_cyccb->tmevtb));
    431413
    432414        /*
    433          *  通知ハンドラを,CPUロック解除状æ
    434 ‹ã§å‘¼ã³å‡ºã™ï¼Ž
     415         *  通知ハンドラを,CPUロック解除状態で呼び出す.
    435416         */
    436417        unlock_cpu();
  • EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     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 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              周期通知機能
     44 *              周期通知機能
    6045 */
    6146
     
    6853
    6954/*
    70  *  周期通知初期化ブロック
     55 *  周期通知初期化ブロック
    7156 */
    7257typedef struct cyclic_handler_initialization_block {
    73         ATR                     cycatr;                 /* 周期通知属性 */
    74         intptr_t        exinf;                  /* 通知ハンドラの拡張æƒ
    75 å ± */
    76         NFYHDR          nfyhdr;                 /* 通知ハンドラの起動番地 */
    77         RELTIM          cyctim;                 /* 周期通知の起動周期 */
    78         RELTIM          cycphs;                 /* 周期通知の起動位相 */
     58        ATR                     cycatr;                 /* 周期通知属性 */
     59        intptr_t        exinf;                  /* 通知ハンドラの拡張情報 */
     60        NFYHDR          nfyhdr;                 /* 通知ハンドラの起動番地 */
     61        RELTIM          cyctim;                 /* 周期通知の起動周期 */
     62        RELTIM          cycphs;                 /* 周期通知の起動位相 */
    7963} CYCINIB;
    8064
    8165/*
    82  *  周期通知管理ブロック
     66 *  周期通知管理ブロック
    8367 *
    84  *      次に周期通知を起動する時刻は,タイムイベントブロック(tmevtb)中の
    85  *      タイムイベントの発生時刻(evttim)で保持する.
     68 *      次に周期通知を起動する時刻は,タイムイベントブロック(tmevtb)中の
     69 *      タイムイベントの発生時刻(evttim)で保持する.
    8670 */
    8771typedef struct cyclic_handler_control_block {
    88         const CYCINIB *p_cycinib;       /* 初期化ブロックへのポインタ */
    89         bool_t          cycsta;                 /* 周期通知の動作状æ
    90 ‹ */
    91         TMEVTB          tmevtb;                 /* タイムイベントブロック */
     72        const CYCINIB *p_cycinib;       /* 初期化ブロックへのポインタ */
     73        bool_t          cycsta;                 /* 周期通知の動作状態 */
     74        TMEVTB          tmevtb;                 /* タイムイベントブロック */
    9275} CYCCB;
    9376
    9477/*
    95  *  使用していない周期通知管理ブロックのリスト
     78 *  使用していない周期通知管理ブロックのリスト
    9679 */
    9780extern QUEUE    free_cyccb;
    9881
    9982/*
    100  *  周期通知IDの最大値(kernel_cfg.c)
     83 *  周期通知IDの最大値(kernel_cfg.c)
    10184 */
    10285extern const ID tmax_cycid;
     
    10487
    10588/*
    106  *  周期通知初期化ブロックのエリア(kernel_cfg.c)
     89 *  周期通知初期化ブロックのエリア(kernel_cfg.c)
    10790 */
    10891extern const CYCINIB    cycinib_table[];
     
    11093
    11194/*
    112  *  周期通知の通知方法の格納エリア(kernel_cfg.c)
     95 *  周期通知の通知方法の格納エリア(kernel_cfg.c)
    11396 */
    11497extern T_NFYINFO        acyc_nfyinfo_table[];
    11598
    11699/*
    117  *  周期通知管理ブロックのエリア(kernel_cfg.c)
     100 *  周期通知管理ブロックのエリア(kernel_cfg.c)
    118101 */
    119102extern CYCCB    cyccb_table[];
    120103
    121104/*
    122  *  周期通知管理ブロックから周期通知IDを取り出すためのマクロ
     105 *  周期通知管理ブロックから周期通知IDを取り出すためのマクロ
    123106 */
    124107#define CYCID(p_cyccb)  ((ID)(((p_cyccb) - cyccb_table) + TMIN_CYCID))
    125108
    126109/*
    127  *  周期通知機能の初期化
     110 *  周期通知機能の初期化
    128111 */
    129112extern void     initialize_cyclic(void);
    130113
    131114/*
    132  *  周期通知起動ルーチン
     115 *  周期通知起動ルーチン
    133116 */
    134117extern void     call_cyclic(CYCCB *p_cyccb);
  • EcnlProtoTool/trunk/asp3_dcre/kernel/cyclic.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    99#               Graduate School of Information Science, Nagoya Univ., JAPAN
    1010#
    11 #   ä¸Šè¨˜è‘—作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    14 #   å¤‰ãƒ»å†é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    18 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    19 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23 #       è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    26 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27 #       ç”¨ã§ããªã„形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29 #       ã¨ï¼Ž
    30 #     (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    34 #     (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37 #         å ±å‘Šã™ã‚‹ã“と.
    38 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    43 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45 #       å
    46 è²¬ã™ã‚‹ã“と.
     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#       免責すること.
    4733#
    48 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    49 ãŠ
    50 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    52 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    53 #   ã®è²¬ä»»ã‚’負わない.
     34#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38#   の責任を負わない.
    5439#
    55 #   $Id: cyclic.trb 588 2016-02-05 12:54:58Z ertl-hiro $
     40#   $Id$
    5641#
    5742
    5843#
    59 #               å‘¨æœŸé€šçŸ¥æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     44#               周期通知機能の生成スクリプト
    6045#
    6146
     
    6752
    6853  def prepare(key, params)
    69     # cycatrが無効の場合(E_RSATR)[NGKI2383ï¼½
    70     #(TA_STA以外のビットがセットされている場合)
     54    # cycatrが無効の場合(E_RSATR)[NGKI2383]
     55    #(TA_STA以外のビットがセットされている場合)
    7156    if (params[:cycatr] & ~($TA_STA)) != 0
    7257      error_illegal_id("E_RSATR", params, :cycatr, :cycid)
    7358    end
    7459
    75     # (0 < cyctim && cyctim <= TMAX_RELTIM)でない場合(E_PAR)[NGKI2397ï¼½
     60    # (0 < cyctim && cyctim <= TMAX_RELTIM)でない場合(E_PAR)[NGKI2397]
    7661    if !(0 < params[:cyctim] && params[:cyctim] <= $TMAX_RELTIM)
    7762      error_illegal_id("E_PAR", params, :cyctim, :cycid)
    7863    end
    7964
    80     # (0 <= cycphs && cycphs <= TMAX_RELTIM)でない場合(E_PAR)[NGKI2399ï¼½
     65    # (0 <= cycphs && cycphs <= TMAX_RELTIM)でない場合(E_PAR)[NGKI2399]
    8166    if !(0 <= params[:cycphs] && params[:cycphs] <= $TMAX_RELTIM)
    8267      error_illegal_id("E_PAR", params, :cycphs, :cycid)
    8368    end
    8469
    85     # 通知æƒ
    86 å ±ã®å‡¦ç†
     70    # 通知情報の処理
    8771    params[:nfyhdr] = generateNotifyHandler(key, params, :cycid)
    8872  end
     
    9579
    9680#
    97 #  周期通知に関するæƒ
    98 å ±ã®ç”Ÿæˆ
     81#  周期通知に関する情報の生成
    9982#
    10083$kernelCfgC.comment_header("Cyclic Notification Functions")
  • EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r279 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     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 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              データキュー機能
     44 *              データキュー機能
    6045 */
    6146
     
    6752
    6853/*
    69  *  トレースログマクロのデフォルト定義
     54 *  トレースログマクロのデフォルト定義
    7055 */
    7156#ifndef LOG_ACRE_DTQ_ENTER
     
    158143
    159144/*
    160  *  データキューの数
     145 *  データキューの数
    161146 */
    162147#define tnum_dtq        ((uint_t)(tmax_dtqid - TMIN_DTQID + 1))
     
    164149
    165150/*
    166  *  データキューIDからデータキュー管理ブロックを取り出すためのマクロ
     151 *  データキューIDからデータキュー管理ブロックを取り出すためのマクロ
    167152 */
    168153#define INDEX_DTQ(dtqid)        ((uint_t)((dtqid) - TMIN_DTQID))
     
    172157
    173158/*
    174  *  使用していないデータキュー管理ブロックのリスト
     159 *  使用していないデータキュー管理ブロックのリスト
    175160 */
    176161QUEUE   free_dtqcb;
    177162
    178163/*
    179  *  データキュー機能の初期化
     164 *  データキュー機能の初期化
    180165 */
    181166void
     
    208193
    209194/*
    210  *  データキュー管理領域へのデータの格納
     195 *  データキュー管理領域へのデータの格納
    211196 */
    212197#ifdef TOPPERS_dtqenq
     
    226211
    227212/*
    228  *  データキュー管理領域へのデータの強制格納
     213 *  データキュー管理領域へのデータの強制格納
    229214 */
    230215#ifdef TOPPERS_dtqfenq
     
    249234
    250235/*
    251  *  データキュー管理領域からのデータの取出し
     236 *  データキュー管理領域からのデータの取出し
    252237 */
    253238#ifdef TOPPERS_dtqdeq
     
    267252
    268253/*
    269  *  データキューへのデータ送信
     254 *  データキューへのデータ送信
    270255 */
    271256#ifdef TOPPERS_dtqsnd
     
    294279
    295280/*
    296  *  データキューへのデータ強制送信
     281 *  データキューへのデータ強制送信
    297282 */
    298283#ifdef TOPPERS_dtqfsnd
     
    316301
    317302/*
    318  *  データキューからのデータ受信
     303 *  データキューからのデータ受信
    319304 */
    320305#ifdef TOPPERS_dtqrcv
     
    350335
    351336/*
    352  *  データキューの生成
     337 *  データキューの生成
    353338 */
    354339#ifdef TOPPERS_acre_dtq
     
    410395
    411396/*
    412  *  データキューの削除
     397 *  データキューの削除
    413398 */
    414399#ifdef TOPPERS_del_dtq
     
    457442
    458443/*
    459  *  データキューへの送信
     444 *  データキューへの送信
    460445 */
    461446#ifdef TOPPERS_snd_dtq
     
    503488
    504489/*
    505  *  データキューへの送信(ポーリング)
     490 *  データキューへの送信(ポーリング)
    506491 */
    507492#ifdef TOPPERS_psnd_dtq
     
    546531
    547532/*
    548  *  データキューへの送信(タイムアウトあり)
     533 *  データキューへの送信(タイムアウトあり)
    549534 */
    550535#ifdef TOPPERS_tsnd_dtq
     
    598583
    599584/*
    600  *  データキューへの強制送信
     585 *  データキューへの強制送信
    601586 */
    602587#ifdef TOPPERS_fsnd_dtq
     
    642627
    643628/*
    644  *  データキューからの受信
     629 *  データキューからの受信
    645630 */
    646631#ifdef TOPPERS_rcv_dtq
     
    693678
    694679/*
    695  *  データキューからの受信(ポーリング)
     680 *  データキューからの受信(ポーリング)
    696681 */
    697682#ifdef TOPPERS_prcv_dtq
     
    731716
    732717/*
    733  *  データキューからの受信(タイムアウトあり)
     718 *  データキューからの受信(タイムアウトあり)
    734719 */
    735720#ifdef TOPPERS_trcv_dtq
     
    787772
    788773/*
    789  *  データキューの再初期化
     774 *  データキューの再初期化
    790775 */
    791776#ifdef TOPPERS_ini_dtq
     
    827812
    828813/*
    829  *  データキューの状æ
    830 ‹å‚ç
    831 §
     814 *  データキューの状態参照
    832815 */
    833816#ifdef TOPPERS_ref_dtq
  • EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     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 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              データキュー機能
     44 *              データキュー機能
    6045 */
    6146
     
    6853
    6954/*
    70  *  データ管理ブロック
     55 *  データ管理ブロック
    7156 */
    7257typedef struct data_management_block {
    73         intptr_t        data;                   /* データ本体 */
     58        intptr_t        data;                   /* データ本体 */
    7459} DTQMB;
    7560
    7661/*
    77  *  データキュー初期化ブロック
     62 *  データキュー初期化ブロック
    7863 *
    79  *  この構造体は,同期・通信オブジェクトの初期化ブロックのå
    80 ±é€šéƒ¨åˆ†
    81  *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
    82  *  最初のフィールドがå
    83 ±é€šã«ãªã£ã¦ã„る.
     64 *  この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分
     65 *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
     66 *  最初のフィールドが共通になっている.
    8467 */
    8568typedef struct dataqueue_initialization_block {
    86         ATR                     dtqatr;                 /* データキュー属性 */
    87         uint_t          dtqcnt;                 /* データキューの容量 */
    88         DTQMB           *p_dtqmb;               /* データキュー管理領域のå
    89 ˆé ­ç•ªåœ° */
     69        ATR                     dtqatr;                 /* データキュー属性 */
     70        uint_t          dtqcnt;                 /* データキューの容量 */
     71        DTQMB           *p_dtqmb;               /* データキュー管理領域の先頭番地 */
    9072} DTQINIB;
    9173
    9274/*
    93  *  データキュー管理ブロック
     75 *  データキュー管理ブロック
    9476 *
    95  *  この構造体は,同期・通信オブジェクトの管理ブロックのå
    96 ±é€šéƒ¨åˆ†ï¼ˆWOBJCB)
    97  *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
    98  *  フィールドがå
    99 ±é€šã«ãªã£ã¦ã„る.
     77 *  この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB)
     78 *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
     79 *  フィールドが共通になっている.
    10080 */
    10181typedef struct dataqueue_control_block {
    102         QUEUE           swait_queue;    /* データキュー送信å¾
    103 ã¡ã‚­ãƒ¥ãƒ¼ */
    104         const DTQINIB *p_dtqinib;       /* 初期化ブロックへのポインタ */
    105         QUEUE           rwait_queue;    /* データキュー受信å¾
    106 ã¡ã‚­ãƒ¥ãƒ¼ */
    107         uint_t          count;                  /* データキュー中のデータの数 */
    108         uint_t          head;                   /* 最初のデータの格納場所 */
    109         uint_t          tail;                   /* 最後のデータの格納場所の次 */
     82        QUEUE           swait_queue;    /* データキュー送信待ちキュー */
     83        const DTQINIB *p_dtqinib;       /* 初期化ブロックへのポインタ */
     84        QUEUE           rwait_queue;    /* データキュー受信待ちキュー */
     85        uint_t          count;                  /* データキュー中のデータの数 */
     86        uint_t          head;                   /* 最初のデータの格納場所 */
     87        uint_t          tail;                   /* 最後のデータの格納場所の次 */
    11088} DTQCB;
    11189
    11290/*
    113  *  データキューå¾
    114 ã¡æƒ
    115 å ±ãƒ–ロックの定義
     91 *  データキュー待ち情報ブロックの定義
    11692 *
    117  *  この構造体は,同期・通信オブジェクトのå¾
    118 ã¡æƒ
    119 å ±ãƒ–ロックのå
    120 ±é€šéƒ¨åˆ†
    121  *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
    122  *  最初の2つのフィールドがå
    123 ±é€šã«ãªã£ã¦ã„る.
     93 *  この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分
     94 *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
     95 *  最初の2つのフィールドが共通になっている.
    12496 */
    12597typedef struct dataqueue_send_waiting_information {
    126         WINFO           winfo;                  /* 標準のå¾
    127 ã¡æƒ
    128 å ±ãƒ–ロック */
    129         DTQCB           *p_dtqcb;               /* å¾
    130 ã£ã¦ã„るデータキューの管理ブロック */
    131         intptr_t        data;                   /* 送信データ */
     98        WINFO           winfo;                  /* 標準の待ち情報ブロック */
     99        DTQCB           *p_dtqcb;               /* 待っているデータキューの管理ブロック */
     100        intptr_t        data;                   /* 送信データ */
    132101} WINFO_SDTQ;
    133102
    134103typedef struct dataqueue_receive_waiting_information {
    135         WINFO           winfo;                  /* 標準のå¾
    136 ã¡æƒ
    137 å ±ãƒ–ロック */
    138         DTQCB           *p_dtqcb;               /* å¾
    139 ã£ã¦ã„るデータキューの管理ブロック */
    140         intptr_t        data;                   /* 受信データ */
     104        WINFO           winfo;                  /* 標準の待ち情報ブロック */
     105        DTQCB           *p_dtqcb;               /* 待っているデータキューの管理ブロック */
     106        intptr_t        data;                   /* 受信データ */
    141107} WINFO_RDTQ;
    142108
    143109/*
    144  *  使用していないデータキュー管理ブロックのリスト
     110 *  使用していないデータキュー管理ブロックのリスト
    145111 */
    146112extern QUEUE    free_dtqcb;
    147113
    148114/*
    149  *  データキューIDの最大値(kernel_cfg.c)
     115 *  データキューIDの最大値(kernel_cfg.c)
    150116 */
    151117extern const ID tmax_dtqid;
     
    153119
    154120/*
    155  *  データキュー初期化ブロックのエリア(kernel_cfg.c)
     121 *  データキュー初期化ブロックのエリア(kernel_cfg.c)
    156122 */
    157123extern const DTQINIB    dtqinib_table[];
     
    159125
    160126/*
    161  *  データキュー管理ブロックのエリア(kernel_cfg.c)
     127 *  データキュー管理ブロックのエリア(kernel_cfg.c)
    162128 */
    163129extern DTQCB    dtqcb_table[];
    164130
    165131/*
    166  *  データキュー管理ブロックからデータキューIDを取り出すためのマクロ
     132 *  データキュー管理ブロックからデータキューIDを取り出すためのマクロ
    167133 */
    168134#define DTQID(p_dtqcb)  ((ID)(((p_dtqcb) - dtqcb_table) + TMIN_DTQID))
    169135
    170136/*
    171  *  データキュー機能の初期化
     137 *  データキュー機能の初期化
    172138 */
    173139extern void     initialize_dataqueue(void);
    174140
    175141/*
    176  *  データキュー管理領域へのデータの格納
     142 *  データキュー管理領域へのデータの格納
    177143 */
    178144extern void     enqueue_data(DTQCB *p_dtqcb, intptr_t data);
    179145
    180146/*
    181  *  データキュー管理領域へのデータの強制格納
     147 *  データキュー管理領域へのデータの強制格納
    182148 */
    183149extern void     force_enqueue_data(DTQCB *p_dtqcb, intptr_t data);
    184150
    185151/*
    186  *  データキュー管理領域からのデータの取出し
     152 *  データキュー管理領域からのデータの取出し
    187153 */
    188154extern void     dequeue_data(DTQCB *p_dtqcb, intptr_t *p_data);
    189155
    190156/*
    191  *  データキューへのデータ送信
     157 *  データキューへのデータ送信
    192158 */
    193159extern bool_t   send_data(DTQCB *p_dtqcb, intptr_t data);
    194160
    195161/*
    196  *  データキューへのデータ強制送信
     162 *  データキューへのデータ強制送信
    197163 */
    198164extern void     force_send_data(DTQCB *p_dtqcb, intptr_t data);
    199165
    200166/*
    201  *  データキューからのデータ受信
     167 *  データキューからのデータ受信
    202168 */
    203169extern bool_t   receive_data(DTQCB *p_dtqcb, intptr_t *p_data);
  • EcnlProtoTool/trunk/asp3_dcre/kernel/dataqueue.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    99#               Graduate School of Information Science, Nagoya Univ., JAPAN
    1010#
    11 #   ä¸Šè¨˜è‘—作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    14 #   å¤‰ãƒ»å†é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    18 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    19 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23 #       è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    26 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27 #       ç”¨ã§ããªã„形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29 #       ã¨ï¼Ž
    30 #     (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    34 #     (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37 #         å ±å‘Šã™ã‚‹ã“と.
    38 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    43 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45 #       å
    46 è²¬ã™ã‚‹ã“と.
     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#       免責すること.
    4733#
    48 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    49 ãŠ
    50 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    52 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    53 #   ã®è²¬ä»»ã‚’負わない.
     34#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38#   の責任を負わない.
    5439#
    55 #   $Id: dataqueue.trb 668 2016-03-03 13:57:53Z ertl-hiro $
     40#   $Id$
    5641#
    5742
    5843#
    59 #               ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     44#               データキュー機能の生成スクリプト
    6045#
    6146
     
    6651
    6752  def prepare(key, params)
    68     # パラメータが省略された時のデフォルト値の設定
     53    # パラメータが省略された時のデフォルト値の設定
    6954    params[:dtqmb] ||= "NULL"
    7055
    71     # dtqatrが無効の場合(E_RSATR)[NGKI1669ï¼½
    72     #(TA_TPRI以外のビットがセットされている場合)
     56    # dtqatrが無効の場合(E_RSATR)[NGKI1669]
     57    #(TA_TPRI以外のビットがセットされている場合)
    7358    if (params[:dtqatr] & ~($TA_TPRI)) != 0
    7459      error_illegal_id("E_RSATR", params, :dtqatr, :dtqid)
    7560    end
    7661
    77     # dtqmbがNULLでない場合(E_NOSPT)[ASPS0132ï¼½
     62    # dtqmbがNULLでない場合(E_NOSPT)[ASPS0132]
    7863    if params[:dtqmb] != "NULL"
    7964      error_illegal_id("E_NOSPT", params, :dtqmb, :dtqid)
    8065    end
    8166
    82     # データキュー管理領域
     67    # データキュー管理領域
    8368    if params[:dtqcnt] > 0
    8469      dtqmbName = "_kernel_dtqmb_#{params[:dtqid]}"
     
    9782
    9883#
    99 #  データキューに関するæƒ
    100 å ±ã®ç”Ÿæˆ
     84#  データキューに関する情報の生成
    10185#
    10286$kernelCfgC.comment_header("Dataqueue Functions")
  • EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r279 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     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 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              イベントフラグ機能
     44 *              イベントフラグ機能
    6045 */
    6146
     
    6752
    6853/*
    69  *  トレースログマクロのデフォルト定義
     54 *  トレースログマクロのデフォルト定義
    7055 */
    7156#ifndef LOG_ACRE_FLG_ENTER
     
    142127
    143128/*
    144  *  イベントフラグの数
     129 *  イベントフラグの数
    145130 */
    146131#define tnum_flg        ((uint_t)(tmax_flgid - TMIN_FLGID + 1))
     
    148133
    149134/*
    150  *  イベントフラグIDからイベントフラグ管理ブロックを取り出すためのマクロ
     135 *  イベントフラグIDからイベントフラグ管理ブロックを取り出すためのマクロ
    151136 */
    152137#define INDEX_FLG(flgid)        ((uint_t)((flgid) - TMIN_FLGID))
     
    156141
    157142/*
    158  *  使用していないイベントフラグ管理ブロックのリスト
     143 *  使用していないイベントフラグ管理ブロックのリスト
    159144 */
    160145QUEUE   free_flgcb;
    161146
    162147/*
    163  *  イベントフラグ機能の初期化
     148 *  イベントフラグ機能の初期化
    164149 */
    165150void
     
    189174
    190175/*
    191  *  イベントフラグå¾
    192 ã¡è§£é™¤æ¡ä»¶ã®ãƒã‚§ãƒƒã‚¯
     176 *  イベントフラグ待ち解除条件のチェック
    193177 */
    194178#ifdef TOPPERS_flgcnd
     
    211195
    212196/*
    213  *  イベントフラグの生成
     197 *  イベントフラグの生成
    214198 *
    215  *  pk_cflg->iflgptnは,エラーチェックをせず,一度しか参ç
    216 §ã—ないため,
    217  *  ローカル変数にコピーするå¿
    218 è¦ãŒãªã„(途中で書き換わっても支障がな
    219  *  い).
     199 *  pk_cflg->iflgptnは,エラーチェックをせず,一度しか参照しないため,
     200 *  ローカル変数にコピーする必要がない(途中で書き換わっても支障がな
     201 *  い).
    220202 */
    221203#ifdef TOPPERS_acre_flg
     
    260242
    261243/*
    262  *  イベントフラグの削除
     244 *  イベントフラグの削除
    263245 */
    264246#ifdef TOPPERS_del_flg
     
    303285
    304286/*
    305  *  イベントフラグのセット
     287 *  イベントフラグのセット
    306288 */
    307289#ifdef TOPPERS_set_flg
     
    361343
    362344/*
    363  *  イベントフラグのクリア
     345 *  イベントフラグのクリア
    364346 */
    365347#ifdef TOPPERS_clr_flg
     
    394376
    395377/*
    396  *  イベントフラグå¾
    397 ã¡
     378 *  イベントフラグ待ち
    398379 */
    399380#ifdef TOPPERS_wai_flg
     
    448429
    449430/*
    450  *  イベントフラグå¾
    451 ã¡ï¼ˆãƒãƒ¼ãƒªãƒ³ã‚°ï¼‰
     431 *  イベントフラグ待ち(ポーリング)
    452432 */
    453433#ifdef TOPPERS_pol_flg
     
    490470
    491471/*
    492  *  イベントフラグå¾
    493 ã¡ï¼ˆã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã‚り)
     472 *  イベントフラグ待ち(タイムアウトあり)
    494473 */
    495474#ifdef TOPPERS_twai_flg
     
    550529
    551530/*
    552  *  イベントフラグの再初期化
     531 *  イベントフラグの再初期化
    553532 */
    554533#ifdef TOPPERS_ini_flg
     
    587566
    588567/*
    589  *  イベントフラグの状æ
    590 ‹å‚ç
    591 §
     568 *  イベントフラグの状態参照
    592569 */
    593570#ifdef TOPPERS_ref_flg
  • EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     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 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              イベントフラグ機能
     44 *              イベントフラグ機能
    6045 */
    6146
     
    6853
    6954/*
    70  *  イベントフラグ初期化ブロック
     55 *  イベントフラグ初期化ブロック
    7156 *
    72  *  この構造体は,同期・通信オブジェクトの初期化ブロックのå
    73 ±é€šéƒ¨åˆ†
    74  *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
    75  *  最初のフィールドがå
    76 ±é€šã«ãªã£ã¦ã„る.
     57 *  この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分
     58 *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
     59 *  最初のフィールドが共通になっている.
    7760 */
    7861typedef struct eventflag_initialization_block {
    79         ATR                     flgatr;                 /* イベントフラグ属性 */
    80         FLGPTN          iflgptn;                /* イベントフラグのビットパターンの初期値 */
     62        ATR                     flgatr;                 /* イベントフラグ属性 */
     63        FLGPTN          iflgptn;                /* イベントフラグのビットパターンの初期値 */
    8164} FLGINIB;
    8265
    8366/*
    84  *  イベントフラグ管理ブロック
     67 *  イベントフラグ管理ブロック
    8568 *
    86  *  この構造体は,同期・通信オブジェクトの管理ブロックのå
    87 ±é€šéƒ¨åˆ†ï¼ˆWOBJCB)
    88  *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
    89  *  フィールドがå
    90 ±é€šã«ãªã£ã¦ã„る.
     69 *  この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB)
     70 *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
     71 *  フィールドが共通になっている.
    9172 */
    9273typedef struct eventflag_control_block {
    93         QUEUE           wait_queue;             /* イベントフラグå¾
    94 ã¡ã‚­ãƒ¥ãƒ¼ */
    95         const FLGINIB *p_flginib;       /* 初期化ブロックへのポインタ */
    96         FLGPTN          flgptn;                 /* イベントフラグ現在パターン */
     74        QUEUE           wait_queue;             /* イベントフラグ待ちキュー */
     75        const FLGINIB *p_flginib;       /* 初期化ブロックへのポインタ */
     76        FLGPTN          flgptn;                 /* イベントフラグ現在パターン */
    9777} FLGCB;
    9878
    9979/*
    100  *  イベントフラグå¾
    101 ã¡æƒ
    102 å ±ãƒ–ロックの定義
     80 *  イベントフラグ待ち情報ブロックの定義
    10381 *
    104  *  この構造体は,同期・通信オブジェクトのå¾
    105 ã¡æƒ
    106 å ±ãƒ–ロックのå
    107 ±é€šéƒ¨åˆ†
    108  *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
    109  *  最初の2つのフィールドがå
    110 ±é€šã«ãªã£ã¦ã„る.
     82 *  この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分
     83 *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
     84 *  最初の2つのフィールドが共通になっている.
    11185 *
    112  *  waiptnには,å¾
    113 ã¡çŠ¶æ
    114 ‹ã®é–“はå¾
    115 ã¡ãƒ‘ターンを,å¾
    116 ã¡è§£é™¤ã•ã‚ŒãŸå¾Œã¯å¾
    117 ã¡è§£
    118  *  除時のパターンをå
    119 ¥ã‚Œã‚‹ï¼ˆ1つのフィールドを2つの目的にå
    120 ¼ç”¨ã—ている).
     86 *  waiptnには,待ち状態の間は待ちパターンを,待ち解除された後は待ち解
     87 *  除時のパターンを入れる(1つのフィールドを2つの目的に兼用している).
    12188 */
    12289typedef struct eventflag_waiting_information {
    123         WINFO           winfo;                  /* 標準のå¾
    124 ã¡æƒ
    125 å ±ãƒ–ロック */
    126         FLGCB           *p_flgcb;               /* å¾
    127 ã£ã¦ã„るイベントフラグの管理ブロック */
    128         FLGPTN          waiptn;                 /* å¾
    129 ã¡ãƒ‘ターン/å¾
    130 ã¡è§£é™¤æ™‚のパターン */
    131         MODE            wfmode;                 /* å¾
    132 ã¡ãƒ¢ãƒ¼ãƒ‰ */
     90        WINFO           winfo;                  /* 標準の待ち情報ブロック */
     91        FLGCB           *p_flgcb;               /* 待っているイベントフラグの管理ブロック */
     92        FLGPTN          waiptn;                 /* 待ちパターン/待ち解除時のパターン */
     93        MODE            wfmode;                 /* 待ちモード */
    13394} WINFO_FLG;
    13495
    13596/*
    136  *  使用していないイベントフラグ管理ブロックのリスト
     97 *  使用していないイベントフラグ管理ブロックのリスト
    13798 */
    13899extern QUEUE    free_flgcb;
    139100
    140101/*
    141  *  イベントフラグIDの最大値(kernel_cfg.c)
     102 *  イベントフラグIDの最大値(kernel_cfg.c)
    142103 */
    143104extern const ID tmax_flgid;
     
    145106
    146107/*
    147  *  イベントフラグ初期化ブロックのエリア(kernel_cfg.c)
     108 *  イベントフラグ初期化ブロックのエリア(kernel_cfg.c)
    148109 */
    149110extern const FLGINIB    flginib_table[];
     
    151112
    152113/*
    153  *  イベントフラグ管理ブロックのエリア(kernel_cfg.c)
     114 *  イベントフラグ管理ブロックのエリア(kernel_cfg.c)
    154115 */
    155116extern FLGCB    flgcb_table[];
    156117
    157118/*
    158  *  イベントフラグ管理ブロックからイベントフラグIDを取り出すためのマクロ
     119 *  イベントフラグ管理ブロックからイベントフラグIDを取り出すためのマクロ
    159120 */
    160121#define FLGID(p_flgcb)  ((ID)(((p_flgcb) - flgcb_table) + TMIN_FLGID))
    161122
    162123/*
    163  *  イベントフラグ機能の初期化
     124 *  イベントフラグ機能の初期化
    164125 */
    165126extern void     initialize_eventflag(void);
    166127
    167128/*
    168  *  イベントフラグå¾
    169 ã¡è§£é™¤æ¡ä»¶ã®ãƒã‚§ãƒƒã‚¯
     129 *  イベントフラグ待ち解除条件のチェック
    170130 */
    171131extern bool_t   check_flg_cond(FLGCB *p_flgcb, FLGPTN waiptn,
  • EcnlProtoTool/trunk/asp3_dcre/kernel/eventflag.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    99#               Graduate School of Information Science, Nagoya Univ., JAPAN
    1010#
    11 #   ä¸Šè¨˜è‘—作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    14 #   å¤‰ãƒ»å†é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    18 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    19 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23 #       è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    26 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27 #       ç”¨ã§ããªã„形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29 #       ã¨ï¼Ž
    30 #     (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    34 #     (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37 #         å ±å‘Šã™ã‚‹ã“と.
    38 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    43 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45 #       å
    46 è²¬ã™ã‚‹ã“と.
     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#       免責すること.
    4733#
    48 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    49 ãŠ
    50 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    52 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    53 #   ã®è²¬ä»»ã‚’負わない.
     34#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38#   の責任を負わない.
    5439#
    55 #   $Id: eventflag.trb 588 2016-02-05 12:54:58Z ertl-hiro $
     40#   $Id$
    5641#
    5742
    5843#
    59 #               ã‚¤ãƒ™ãƒ³ãƒˆãƒ•ãƒ©ã‚°æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     44#               イベントフラグ機能の生成スクリプト
    6045#
    6146
     
    6651
    6752  def prepare(key, params)
    68     # flgatrが無効の場合(E_RSATR)[NGKI1562ï¼½
    69     #(TA_TPRI,TA_WMUL,TA_CLR以外のビットがセットされている場合)
     53    # flgatrが無効の場合(E_RSATR)[NGKI1562]
     54    #(TA_TPRI,TA_WMUL,TA_CLR以外のビットがセットされている場合)
    7055    if (params[:flgatr] & ~($TA_TPRI|$TA_WMUL|$TA_CLR)) != 0
    7156      error_illegal_id("E_RSATR", params, :flgatr, :flgid)
    7257    end
    7358
    74     # iflgptnがFLGPTNに格納できない場合(E_PAR)[NGKI3275ï¼½
     59    # iflgptnがFLGPTNに格納できない場合(E_PAR)[NGKI3275]
    7560    if (params[:iflgptn] & ~((1 << $TBIT_FLGPTN) - 1)) != 0
    7661      error_wrong_id("E_PAR", params, :iflgptn, :flgid, "too large")
     
    8469
    8570#
    86 #  イベントフラグに関するæƒ
    87 å ±ã®ç”Ÿæˆ
     71#  イベントフラグに関する情報の生成
    8872#
    8973$kernelCfgC.comment_header("Eventflag Functions")
  • EcnlProtoTool/trunk/asp3_dcre/kernel/exception.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     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 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              CPU例外管理機能
     44 *              CPU例外管理機能
    6045 */
    6146
     
    6550
    6651/*
    67  *  トレースログマクロのデフォルト定義
     52 *  トレースログマクロのデフォルト定義
    6853 */
    6954#ifndef LOG_XSNS_DPN_ENTER
     
    7661
    7762/*
    78  *  CPU例外ハンドラ管理機能の初期化
     63 *  CPU例外ハンドラ管理機能の初期化
    7964 */
    8065#ifdef TOPPERS_excini
     
    9782
    9883/*
    99  *  CPU例外の発生したコンテキストの参ç
    100 §
     84 *  CPU例外の発生したコンテキストの参照
    10185 */
    10286
    10387/*
    104  *  CPU例外発生時のディスパッチ保留状æ
    105 ‹ã®å‚ç
    106 §
     88 *  CPU例外発生時のディスパッチ保留状態の参照
    10789 *
    108  *  CPU例外ハンドラ中でenadspが変化することはないため,CPU例外が発生し
    109  *  た時のenadspを保存しておくå¿
    110 è¦ã¯ãªã„.
     90 *  CPU例外ハンドラ中でenadspが変化することはないため,CPU例外が発生し
     91 *  た時のenadspを保存しておく必要はない.
    11192 */
    11293#ifdef TOPPERS_xsns_dpn
  • EcnlProtoTool/trunk/asp3_dcre/kernel/exception.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     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 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              CPU例外管理機能
     44 *              CPU例外管理機能
    6045 */
    6146
     
    6853
    6954/*
    70  *  CPU例外ハンドラ初期化ブロック
     55 *  CPU例外ハンドラ初期化ブロック
    7156 */
    7257typedef struct cpu_exception_handler_initialization_block {
    73         EXCNO           excno;                  /* CPU例外ハンドラ番号 */
    74         ATR                     excatr;                 /* CPU例外ハンドラ属性 */
    75         FP                      exc_entry;              /* CPU例外ハンドラの出å
    76 ¥å£å‡¦ç†ã®ç•ªåœ° */
     58        EXCNO           excno;                  /* CPU例外ハンドラ番号 */
     59        ATR                     excatr;                 /* CPU例外ハンドラ属性 */
     60        FP                      exc_entry;              /* CPU例外ハンドラの出入口処理の番地 */
    7761} EXCINIB;
    7862
    7963/*
    80  *  定義するCPU例外ハンドラ番号の数(kernel_cfg.c)
     64 *  定義するCPU例外ハンドラ番号の数(kernel_cfg.c)
    8165 */
    8266extern const uint_t     tnum_def_excno;
    8367
    8468/*
    85  *  CPU例外ハンドラ初期化ブロックのエリア(kernel_cfg.c)
     69 *  CPU例外ハンドラ初期化ブロックのエリア(kernel_cfg.c)
    8670 */
    8771extern const EXCINIB    excinib_table[];
     
    9074
    9175/*
    92  *  CPU例外ハンドラ管理機能の初期化
     76 *  CPU例外ハンドラ管理機能の初期化
    9377 */
    9478extern void     initialize_exception(void);
  • EcnlProtoTool/trunk/asp3_dcre/kernel/exception.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    99#               Graduate School of Information Science, Nagoya Univ., JAPAN
    1010#
    11 #   ä¸Šè¨˜è‘—作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    14 #   å¤‰ãƒ»å†é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    18 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    19 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23 #       è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    26 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27 #       ç”¨ã§ããªã„形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29 #       ã¨ï¼Ž
    30 #     (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    34 #     (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37 #         å ±å‘Šã™ã‚‹ã“と.
    38 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    43 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45 #       å
    46 è²¬ã™ã‚‹ã“と.
     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#       免責すること.
    4733#
    48 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    49 ãŠ
    50 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    52 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    53 #   ã®è²¬ä»»ã‚’負わない.
     34#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38#   の責任を負わない.
    5439#
    55 #   $Id: exception.trb 663 2016-02-27 04:45:50Z ertl-hiro $
     40#   $Id$
    5641#
    5742
    5843#
    59 #               CPU例外管理機能の生成スクリプト
     44#               CPU例外管理機能の生成スクリプト
    6045#
    6146
    6247#
    63 #  kernel_cfg.cの生成
     48#  kernel_cfg.cの生成
    6449#
    6550$kernelCfgC.comment_header("CPU Exception Management Functions")
    6651
    6752#
    68 #  CPU例外ハンドラに関するエラーチェック
     53#  CPU例外ハンドラに関するエラーチェック
    6954#
    7055$cfgData[:DEF_EXC].each do |key, params|
    71   # excnoがCPU例外ハンドラ番号として正しくない場合(E_PAR)[NGKI3134ï¼½
     56  # excnoがCPU例外ハンドラ番号として正しくない場合(E_PAR)[NGKI3134]
    7257  if $EXCNO_VALID.index(params[:excno]).nil?
    7358    error_illegal("E_PAR", params, :excno)
    7459  end
    7560
    76   # excatrが無効の場合(E_RSATR)[NGKI3131ï¼½
    77   #(TARGET_EXCATR以外のビットがセットされている場合)
     61  # excatrが無効の場合(E_RSATR)[NGKI3131]
     62  #(TARGET_EXCATR以外のビットがセットされている場合)
    7863  if (params[:excatr] & ~($TARGET_EXCATR)) != 0
    7964    error_illegal_sym("E_RSATR", params, :excatr, :excno)
     
    8267
    8368#
    84 #  CPU例外ハンドラのための標準的な初期化æƒ
    85 å ±ã®ç”Ÿæˆ
     69#  CPU例外ハンドラのための標準的な初期化情報の生成
    8670#
    8771if !$OMIT_INITIALIZE_EXCEPTION
    8872  #
    89   #  定義するCPU例外ハンドラの数
     73  #  定義するCPU例外ハンドラの数
    9074  #
    9175  $kernelCfgC.add(<<EOS)
     
    9680  if $cfgData[:DEF_EXC].size != 0
    9781    #
    98     #  CPU例外ハンドラのエントリ
     82    #  CPU例外ハンドラのエントリ
    9983    #
    10084    $cfgData[:DEF_EXC].each do |key, params|
     
    10589
    10690    #
    107     #  CPU例外ハンドラ初期化ブロック
     91    #  CPU例外ハンドラ初期化ブロック
    10892    #
    10993    $kernelCfgC.add("const EXCINIB _kernel_excinib_table[TNUM_DEF_EXCNO] = {")
     
    122106
    123107#
    124 #  CPU例外管理機能初期化関数の追加
     108#  CPU例外管理機能初期化関数の追加
    125109#
    126110$initializeFunctions.push("_kernel_initialize_exception();")
  • EcnlProtoTool/trunk/asp3_dcre/kernel/genoffset.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    88#               Graduate School of Information Science, Nagoya Univ., JAPAN
    99
    10 #   ä¸Šè¨˜è‘—作権è€
    11 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    12 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    13 #   å¤‰ãƒ»å†é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    15 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    17 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    18 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22 #       è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    25 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26 #       ç”¨ã§ããªã„形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    28 #       ã¨ï¼Ž
    29 #     (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    33 #     (b) 再é
    34 å¸ƒã®å½¢æ
    35 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    36 #         å ±å‘Šã™ã‚‹ã“と.
    37 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    38 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトをå
    40 è²¬ã™ã‚‹ã“と.
    41 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    42 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    43 ãŠã‚ˆã³TOPPERSプロジェクトを
    44 #       å
    45 è²¬ã™ã‚‹ã“と.
     10#   上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     11#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     12#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     13#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15#       スコード中に含まれていること.
     16#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19#       の無保証規定を掲載すること.
     20#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     22#       と.
     23#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     25#     (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     26#         報告すること.
     27#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     29#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     30#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     31#       免責すること.
    4632
    47 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    48 ãŠ
    49 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    50 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    51 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    52 #   ã®è²¬ä»»ã‚’負わない.
     33#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     34#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     35#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     36#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     37#   の責任を負わない.
    5338#
    54 #   $Id: genoffset.trb 662 2016-02-27 02:33:51Z ertl-hiro $
     39#   $Id$
    5540#
    5641
    5742#
    58 #               ã‚ªãƒ•ã‚»ãƒƒãƒˆãƒ•ã‚¡ã‚¤ãƒ«ç”Ÿæˆç”¨ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     43#               オフセットファイル生成用の生成スクリプト
    5944#
    6045
    6146#
    62 ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ファイルの指定
     47タイムスタンプファイルの指定
    6348#
    6449$timeStampFileName = "offset.timestamp"
    6550
    6651#
    67 #  offset.hのå
    68 ˆé ­éƒ¨åˆ†ã®ç”Ÿæˆ
     52#  offset.hの先頭部分の生成
    6953#
    7054$offsetH = GenFile.new("offset.h")
     
    7256
    7357#
    74 #  #defineディレクティブの生成
     58#  #defineディレクティブの生成
    7559#
    7660def GenerateDefine(symbol, value)
     
    7963
    8064#
    81 ãƒ“ットのサーチ
     65ビットのサーチ
    8266#
    8367def SearchBit(val)
     
    9175
    9276#
    93 ãƒ“ットフィールドのオフセットとビット位置の定義の生成
     77ビットフィールドのオフセットとビット位置の定義の生成
    9478#
    9579def GenerateDefineBit(label, structSize, outputSize)
     
    138122
    139123#
    140 #  バイトé
    141 ç½®ã®ãƒã‚§ãƒƒã‚¯
     124#  バイト配置のチェック
    142125#
    143126def magicCheck(size, check)
  • EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     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 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              割込み管理機能
     44 *              割込み管理機能
    6045 */
    6146
     
    6651
    6752/*
    68  *  トレースログマクロのデフォルト定義
     53 *  トレースログマクロのデフォルト定義
    6954 */
    7055#ifndef LOG_ISR_ENTER
     
    125110
    126111/*
    127  *  割込みサービスルーチンの数
     112 *  割込みサービスルーチンの数
    128113 */
    129114#define tnum_isr        ((uint_t)(tmax_isrid - TMIN_ISRID + 1))
     
    131116
    132117/*
    133  *  割込みサービスルーチンIDから割込みサービスルーチン管理ブロックを取
    134  *  り出すためのマクロ
     118 *  割込みサービスルーチンIDから割込みサービスルーチン管理ブロックを取
     119 *  り出すためのマクロ
    135120 */
    136121#define INDEX_ISR(isrid)        ((uint_t)((isrid) - TMIN_ISRID))
     
    138123
    139124/*
    140  *  割込みサービスルーチンキューへの登録
     125 *  割込みサービスルーチンキューへの登録
    141126 */
    142127Inline void
     
    158143
    159144/*
    160  *  使用していない割込みサービスルーチン管理ブロックのリスト
     145 *  使用していない割込みサービスルーチン管理ブロックのリスト
    161146 */
    162147QUEUE   free_isrcb;
    163148
    164149/*
    165  *  割込みサービスルーチン機能の初期化
     150 *  割込みサービスルーチン機能の初期化
    166151 */
    167152void
     
    194179
    195180/*
    196  *  割込みサービスルーチンの呼出し
     181 *  割込みサービスルーチンの呼出し
    197182 */
    198183#ifdef TOPPERS_isrcal
     
    212197
    213198                if (p_queue->p_next != p_isr_queue) {
    214                         /* ISRの呼出し前の状æ
    215 ‹ã«æˆ»ã™ */
     199                        /* ISRの呼出し前の状態に戻す */
    216200                        if (sense_lock()) {
    217201                                unlock_cpu();
     
    224208
    225209/*
    226  *  割込みサービスルーチン呼出しキューの検索
     210 *  割込みサービスルーチン呼出しキューの検索
    227211 */
    228212Inline QUEUE *
     
    255239
    256240/*
    257  *  割込みサービスルーチンの生成
     241 *  割込みサービスルーチンの生成
    258242 *
    259  *  pk_cisr->exinfは,エラーチェックをせず,一度しか参ç
    260 §ã—ないため,ロー
    261  *  カル変数にコピーするå¿
    262 è¦ãŒãªã„(途中で書き換わっても支障がない).
     243 *  pk_cisr->exinfは,エラーチェックをせず,一度しか参照しないため,ロー
     244 *  カル変数にコピーする必要がない(途中で書き換わっても支障がない).
    263245 */
    264246#ifdef TOPPERS_acre_isr
     
    318300
    319301/*
    320  *  割込みサービスルーチンの削除
     302 *  割込みサービスルーチンの削除
    321303 */
    322304#ifdef TOPPERS_del_isr
     
    358340
    359341/*
    360  *  割込み管理機能の初期化
     342 *  割込み管理機能の初期化
    361343 */
    362344#ifdef TOPPERS_intini
     
    384366
    385367/*
    386  *  割込みの禁止[NGKI3555ï¼½
     368 *  割込みの禁止[NGKI3555]
    387369 */
    388370#ifdef TOPPERS_dis_int
    389 #ifdef TOPPERS_SUPPORT_DIS_INT                                  /*ï¼»NGKI3093ï¼½*/
     371#ifdef TOPPERS_SUPPORT_DIS_INT                                  /*[NGKI3093]*/
    390372
    391373ER
     
    396378
    397379        LOG_DIS_INT_ENTER(intno);
    398         CHECK_PAR(VALID_INTNO_DISINT(intno));           /*ï¼»NGKI3083][NGKI3087ï¼½*/
     380        CHECK_PAR(VALID_INTNO_DISINT(intno));           /*[NGKI3083][NGKI3087]*/
    399381
    400382        locked = sense_lock();
     
    402384                lock_cpu();
    403385        }
    404         if (disable_int(intno)) {                                       /*ï¼»NGKI3086ï¼½*/
     386        if (disable_int(intno)) {                                       /*[NGKI3086]*/
    405387                ercd = E_OK;
    406388        }
    407389        else {
    408                 ercd = E_OBJ;                                                   /*ï¼»NGKI3085ï¼½*/
     390                ercd = E_OBJ;                                                   /*[NGKI3085]*/
    409391        }
    410392        if (!locked) {
     
    421403
    422404/*
    423  *  割込みの許可[NGKI3556ï¼½
     405 *  割込みの許可[NGKI3556]
    424406 */
    425407#ifdef TOPPERS_ena_int
    426 #ifdef TOPPERS_SUPPORT_ENA_INT                                  /*ï¼»NGKI3106ï¼½*/
     408#ifdef TOPPERS_SUPPORT_ENA_INT                                  /*[NGKI3106]*/
    427409
    428410ER
     
    433415
    434416        LOG_ENA_INT_ENTER(intno);
    435         CHECK_PAR(VALID_INTNO_DISINT(intno));           /*ï¼»NGKI3096][NGKI3100ï¼½*/
     417        CHECK_PAR(VALID_INTNO_DISINT(intno));           /*[NGKI3096][NGKI3100]*/
    436418
    437419        locked = sense_lock();
     
    439421                lock_cpu();
    440422        }
    441         if (enable_int(intno)) {                                        /*ï¼»NGKI3099ï¼½*/
     423        if (enable_int(intno)) {                                        /*[NGKI3099]*/
    442424                ercd = E_OK;
    443425        }
    444426        else {
    445                 ercd = E_OBJ;                                                   /*ï¼»NGKI3098ï¼½*/
     427                ercd = E_OBJ;                                                   /*[NGKI3098]*/
    446428        }
    447429        if (!locked) {
     
    458440
    459441/*
    460  *  割込み優å
    461 ˆåº¦ãƒžã‚¹ã‚¯ã®å¤‰æ›´ï¼»NGKI3107ï¼½
     442 *  割込み優先度マスクの変更[NGKI3107]
    462443 */
    463444#ifdef TOPPERS_chg_ipm
     
    469450
    470451        LOG_CHG_IPM_ENTER(intpri);
    471         CHECK_TSKCTX_UNL();                                                     /*ï¼»NGKI3108][NGKI3109ï¼½*/
    472         CHECK_PAR(VALID_INTPRI_CHGIPM(intpri));         /*ï¼»NGKI3113][NGKI3114ï¼½*/
     452        CHECK_TSKCTX_UNL();                                                     /*[NGKI3108][NGKI3109]*/
     453        CHECK_PAR(VALID_INTPRI_CHGIPM(intpri));         /*[NGKI3113][NGKI3114]*/
    473454
    474455        lock_cpu();
    475         t_set_ipm(intpri);                                                      /*ï¼»NGKI3111ï¼½*/
     456        t_set_ipm(intpri);                                                      /*[NGKI3111]*/
    476457        if (intpri == TIPM_ENAALL && enadsp) {
    477458                dspflg = true;
     
    503484
    504485/*
    505  *  割込み優å
    506 ˆåº¦ãƒžã‚¹ã‚¯ã®å‚ç
    507 §ï¼»NGKI3115ï¼½
     486 *  割込み優先度マスクの参照[NGKI3115]
    508487 */
    509488#ifdef TOPPERS_get_ipm
     
    515494
    516495        LOG_GET_IPM_ENTER(p_intpri);
    517         CHECK_TSKCTX_UNL();                                                     /*ï¼»NGKI3116][NGKI3117ï¼½*/
     496        CHECK_TSKCTX_UNL();                                                     /*[NGKI3116][NGKI3117]*/
    518497
    519498        lock_cpu();
    520         *p_intpri = t_get_ipm();                                        /*ï¼»NGKI3120ï¼½*/
     499        *p_intpri = t_get_ipm();                                        /*[NGKI3120]*/
    521500        ercd = E_OK;
    522501        unlock_cpu();
  • EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
     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 *      免責すること.
    4733 *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     34 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38 *  の責任を負わない.
    5439 *
    5540 *  $Id$
     
    5742
    5843/*
    59  *              割込み管理機能
     44 *              割込み管理機能
    6045 */
    6146
     
    6752
    6853/*
    69  *  割込みサービスルーチン初期化ブロック
     54 *  割込みサービスルーチン初期化ブロック
    7055 */
    7156typedef struct isr_initialization_block {
    72         ATR                     isratr;                 /* 割込みサービスルーチン属性 */
    73         intptr_t        exinf;                  /* 割込みサービスルーチンの拡張æƒ
    74 å ± */
    75         QUEUE           *p_isr_queue;   /* 登録å
    76 ˆå‰²è¾¼ã¿ã‚µãƒ¼ãƒ“スルーチン呼出しキュー */
    77         ISR                     isr;                    /* 割込みサービスルーチンのå
    78 ˆé ­ç•ªåœ° */
    79         PRI                     isrpri;                 /* 割込みサービスルーチン優å
    80 ˆåº¦ */
     57        ATR                     isratr;                 /* 割込みサービスルーチン属性 */
     58        intptr_t        exinf;                  /* 割込みサービスルーチンの拡張情報 */
     59        QUEUE           *p_isr_queue;   /* 登録先割込みサービスルーチン呼出しキュー */
     60        ISR                     isr;                    /* 割込みサービスルーチンの先頭番地 */
     61        PRI                     isrpri;                 /* 割込みサービスルーチン優先度 */
    8162} ISRINIB;
    8263
    8364/*
    84  *  割込みサービスルーチン管理ブロック
     65 *  割込みサービスルーチン管理ブロック
    8566 */
    8667typedef struct isr_control_block {
    87         QUEUE           isr_queue;              /* 割込みサービスルーチン呼出しキュー */
    88         const ISRINIB *p_isrinib;       /* 初期化ブロックへのポインタ */
     68        QUEUE           isr_queue;              /* 割込みサービスルーチン呼出しキュー */
     69        const ISRINIB *p_isrinib;       /* 初期化ブロックへのポインタ */
    8970} ISRCB;
    9071
    9172/*
    92  *  割込みサービスルーチン呼出しキューを検索するためのデータ構造
     73 *  割込みサービスルーチン呼出しキューを検索するためのデータ構造
    9374 */
    9475typedef struct {
    95         INTNO           intno;                  /* 割込み番号 */
    96         QUEUE           *p_isr_queue;   /* 割込みサービスルーチン呼出しキュー */
     76        INTNO           intno;                  /* 割込み番号 */
     77        QUEUE           *p_isr_queue;   /* 割込みサービスルーチン呼出しキュー */
    9778} ISR_ENTRY;
    9879
    9980/*
    100  *  割込みサービスルーチン呼出しキューのエントリ数(kernel_cfg.c)
     81 *  割込みサービスルーチン呼出しキューのエントリ数(kernel_cfg.c)
    10182 */
    10283extern const uint_t tnum_isr_queue;
    10384
    10485/*
    105  *  割込みサービスルーチン呼出しキューリスト(kernel_cfg.c)
     86 *  割込みサービスルーチン呼出しキューリスト(kernel_cfg.c)
    10687 */
    10788extern const ISR_ENTRY isr_queue_list[];
    10889
    10990/*
    110  *  割込みサービスルーチン呼出しキューのエリア(kernel_cfg.c)
     91 *  割込みサービスルーチン呼出しキューのエリア(kernel_cfg.c)
    11192 */
    11293extern QUEUE isr_queue_table[];
    11394
    11495/*
    115  *  使用していない割込みサービスルーチン管理ブロックのリスト
     96 *  使用していない割込みサービスルーチン管理ブロックのリスト
    11697 */
    11798extern QUEUE    free_isrcb;
    11899
    119100/*
    120  *  割込みサービスルーチンIDの最大値(kernel_cfg.c)
     101 *  割込みサービスルーチンIDの最大値(kernel_cfg.c)
    121102 */
    122103extern const ID tmax_isrid;
     
    124105
    125106/*
    126  *  割込みサービスルーチン初期化ブロックのエリア(kernel_cfg.c)
     107 *  割込みサービスルーチン初期化ブロックのエリア(kernel_cfg.c)
    127108 */
    128109extern const ISRINIB    isrinib_table[];
     
    130111
    131112/*
    132  *  割込みサービスルーチン生成順序テーブル(kernel_cfg.c)
     113 *  割込みサービスルーチン生成順序テーブル(kernel_cfg.c)
    133114 */
    134115extern const ID isrorder_table[];
    135116
    136117/*
    137  *  割込みサービスルーチン管理ブロックのエリア(kernel_cfg.c)
     118 *  割込みサービスルーチン管理ブロックのエリア(kernel_cfg.c)
    138119 */
    139120extern ISRCB    isrcb_table[];
    140121
    141122/*
    142  *  割込みサービスルーチン管理ブロックから割込みサービスルーチンIDを取
    143  *  り出すためのマクロ
     123 *  割込みサービスルーチン管理ブロックから割込みサービスルーチンIDを取
     124 *  り出すためのマクロ
    144125 */
    145126#define ISRID(p_isrcb)  ((ID)(((p_isrcb) - isrcb_table) + TMIN_ISRID))
    146127
    147128/*
    148  *  割込みサービスルーチン機能の初期化
     129 *  割込みサービスルーチン機能の初期化
    149130 */
    150131extern void initialize_isr(void);
    151132
    152133/*
    153  *  割込みサービスルーチンの呼出し
     134 *  割込みサービスルーチンの呼出し
    154135 */
    155136extern void call_isr(QUEUE *p_isr_queue);
     
    158139
    159140/*
    160  *  割込みハンドラ初期化ブロック
     141 *  割込みハンドラ初期化ブロック
    161142 */
    162143typedef struct interrupt_handler_initialization_block {
    163         INHNO           inhno;                  /* 割込みハンドラ番号 */
    164         ATR                     inhatr;                 /* 割込みハンドラ属性 */
    165         FP                      int_entry;              /* 割込みハンドラの出å
    166 ¥å£å‡¦ç†ã®ç•ªåœ° */
     144        INHNO           inhno;                  /* 割込みハンドラ番号 */
     145        ATR                     inhatr;                 /* 割込みハンドラ属性 */
     146        FP                      int_entry;              /* 割込みハンドラの出入口処理の番地 */
    167147} INHINIB;
    168148
    169149/*
    170  *  定義する割込みハンドラ番号の数(kernel_cfg.c)
     150 *  定義する割込みハンドラ番号の数(kernel_cfg.c)
    171151 */
    172152extern const uint_t     tnum_def_inhno;
    173153
    174154/*
    175  *  割込みハンドラ初期化ブロックのエリア(kernel_cfg.c)
     155 *  割込みハンドラ初期化ブロックのエリア(kernel_cfg.c)
    176156 */
    177157extern const INHINIB    inhinib_table[];
     
    182162
    183163/*
    184  *  割込み要求ライン初期化ブロック
     164 *  割込み要求ライン初期化ブロック
    185165 */
    186166typedef struct interrupt_request_initialization_block {
    187         INTNO           intno;                  /* 割込み番号 */
    188         ATR                     intatr;                 /* 割込み属性 */
    189         PRI                     intpri;                 /* 割込み優å
    190 ˆåº¦ */
     167        INTNO           intno;                  /* 割込み番号 */
     168        ATR                     intatr;                 /* 割込み属性 */
     169        PRI                     intpri;                 /* 割込み優先度 */
    191170} INTINIB;
    192171
    193172/*
    194  *  設定する割込み要求ラインの数(kernel_cfg.c)
     173 *  設定する割込み要求ラインの数(kernel_cfg.c)
    195174 */
    196175extern const uint_t     tnum_cfg_intno;
    197176
    198177/*
    199  *  割込み要求ライン初期化ブロックのエリア(kernel_cfg.c)
     178 *  割込み要求ライン初期化ブロックのエリア(kernel_cfg.c)
    200179 */
    201180extern const INTINIB    intinib_table[];
     
    204183
    205184/*
    206  *  割込み管理機能の初期化
     185 *  割込み管理機能の初期化
    207186 */
    208187extern void     initialize_interrupt(void);
  • EcnlProtoTool/trunk/asp3_dcre/kernel/interrupt.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    99#               Graduate School of Information Science, Nagoya Univ., JAPAN
    1010#
    11 #   ä¸Šè¨˜è‘—作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    14 #   å¤‰ãƒ»å†é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    18 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    19 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23 #       è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    26 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27 #       ç”¨ã§ããªã„形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29 #       ã¨ï¼Ž
    30 #     (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    34 #     (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37 #         å ±å‘Šã™ã‚‹ã“と.
    38 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    43 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45 #       å
    46 è²¬ã™ã‚‹ã“と.
    47 #
    48 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    49 ãŠ
    50 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    52 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    53 #   ã®è²¬ä»»ã‚’負わない.
    54 #
    55 #   $Id: interrupt.trb 678 2016-03-06 02:36:09Z ertl-hiro $
    56 #
    57 
    58 #
    59 #               å‰²è¾¼ã¿ç®¡ç†æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
    60 #
    61 
    62 #
    63 #  kernel_cfg.cの生成
     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#       免責すること.
     33#
     34#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38#   の責任を負わない.
     39#
     40#   $Id$
     41#
     42
     43#
     44#               割込み管理機能の生成スクリプト
     45#
     46
     47#
     48#  kernel_cfg.cの生成
    6449#
    6550$kernelCfgC.comment_header("Interrupt Management Functions")
    6651
    6752#
    68 #  CRE_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号のデ
    69 ãƒ•ã‚©ãƒ«ãƒˆå®šç¾©
     53#  CRE_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号のデ
     54フォルト定義
    7055#
    7156if $INTNO_CREISR_VALID.nil?
     
    7762
    7863#
    79 #  CFG_INTで使用できる割込み優å
    80 ˆåº¦ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå®šç¾©
     64#  CFG_INTで使用できる割込み優先度のデフォルト定義
    8165#
    8266if $INTPRI_CFGINT_VALID.nil?
     
    8569
    8670#
    87 å‰²è¾¼ã¿ç•ªå·ã¨å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ç•ªå·ã®å¤‰æ›ãƒ†ãƒ¼ãƒ–ルの作成
     71割込み番号と割込みハンドラ番号の変換テーブルの作成
    8872#
    8973if $INTNO_CREISR_VALID.length != $INHNO_CREISR_VALID.length
     
    10185
    10286#
    103 å‰²è¾¼ã¿è¦æ±‚ラインに関するエラーチェック
     87割込み要求ラインに関するエラーチェック
    10488#
    10589$cfgData[:CFG_INT].each do |key, params|
    106   #     intnoが割込み番号として正しくない場合(E_PAR)[NGKI2972ï¼½
     90  #     intnoが割込み番号として正しくない場合(E_PAR)[NGKI2972]
    10791  if $INTNO_VALID.index(params[:intno]).nil?
    10892    error_illegal("E_PAR", params, :intno)
    10993  end
    11094
    111   #     intatrが無効の場合(E_RSATR)[NGKI2969ï¼½
    112   #(TA_ENAINT,TA_EDGE,TARGET_INTATR以外のビットがセットされている場合)
     95  #     intatrが無効の場合(E_RSATR)[NGKI2969]
     96  #(TA_ENAINT,TA_EDGE,TARGET_INTATR以外のビットがセットされている場合)
    11397  if (params[:intatr] & ~($TA_ENAINT|$TA_EDGE|$TARGET_INTATR)) != 0
    11498    error_illegal_sym("E_RSATR", params, :intatr, :intno)
    11599  end
    116100
    117   #     intpriがCFG_INTに対する割込み優å
    118 ˆåº¦ã¨ã—て正しくない場合(E_PAR)
    119   #     ï¼»NGKI2973ï¼½
     101  #     intpriがCFG_INTに対する割込み優先度として正しくない場合(E_PAR)
     102  #     [NGKI2973]
    120103  if $INTPRI_CFGINT_VALID.index(params[:intpri]).nil?
    121104    error_illegal_sym("E_OBJ", params, :intpri, :intno)
    122105  end
    123106
    124   # カーネル管理外に固定されているintnoに対して,intpriにTMIN_INTPRIよ
    125   #     ã‚Šã‚‚小さい値が指定されなかった場合(E_OBJ)[NGKI2983ï¼½
     107  # カーネル管理外に固定されているintnoに対して,intpriにTMIN_INTPRIよ
     108  #     りも小さい値が指定されなかった場合(E_OBJ)[NGKI2983]
    126109  if !$INTNO_FIX_NONKERNEL.nil?
    127110    if !$INTNO_FIX_NONKERNEL.index(params[:intno]).nil?
     
    133116  end
    134117
    135   #     ã‚«ãƒ¼ãƒãƒ«ç®¡ç†ã«å›ºå®šã•ã‚Œã¦ã„ã‚‹intnoに対して,intpriにTMIN_INTPRIより
    136   #     ã‚‚小さい値が指定された場合(E_OBJ)[NGKI2984ï¼½
     118  #     カーネル管理に固定されているintnoに対して,intpriにTMIN_INTPRIより
     119  #     も小さい値が指定された場合(E_OBJ)[NGKI2984]
    137120  if !$INTNO_FIX_KERNEL.nil?
    138121    if !$INTNO_FIX_KERNEL.index(params[:intno]).nil?
     
    146129
    147130#
    148 å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ã«é–¢ã™ã‚‹ã‚¨ãƒ©ãƒ¼ãƒã‚§ãƒƒã‚¯
     131割込みハンドラに関するエラーチェック
    149132#
    150133$cfgData[:DEF_INH].each do |key, params|
    151   # inhnoが割込みハンドラ番号として正しくない場合(E_PAR)[NGKI3055ï¼½
     134  # inhnoが割込みハンドラ番号として正しくない場合(E_PAR)[NGKI3055]
    152135  if $INHNO_VALID.index(params[:inhno]).nil?
    153136    error_illegal("E_PAR", params, :inhno)
    154137  end
    155138
    156   # inhatrが無効の場合(E_RSATR)[NGKI3052ï¼½
    157   #(TARGET_INHATR以外のビットがセットされている場合)
     139  # inhatrが無効の場合(E_RSATR)[NGKI3052]
     140  #(TARGET_INHATR以外のビットがセットされている場合)
    158141  if (params[:inhatr] & ~($TARGET_INHATR)) != 0
    159142    error_illegal_sym("E_RSATR", params, :inhatr, :inhno)
    160143  end
    161144
    162   #     ã‚«ãƒ¼ãƒãƒ«ç®¡ç†å¤–に固定されているinhnoに対して,inhatrにTA_NONKERNELが
    163   #     æŒ‡å®šã•ã‚Œã¦ã„ない場合(E_RSATR)[NGKI3067ï¼½
     145  #     カーネル管理外に固定されているinhnoに対して,inhatrにTA_NONKERNELが
     146  #     指定されていない場合(E_RSATR)[NGKI3067]
    164147  if !$INHNO_FIX_NONKERNEL.nil?
    165148    if !$INHNO_FIX_NONKERNEL.index(params[:inhno]).nil?
     
    171154  end
    172155
    173   #     ã‚«ãƒ¼ãƒãƒ«ç®¡ç†ã«å›ºå®šã•ã‚Œã¦ã„ã‚‹inhnoに対して,inhatrにTA_NONKERNELが指
    174   #     å®šã•ã‚Œã¦ã„る場合(E_RSATR)[NGKI3068ï¼½
     156  #     カーネル管理に固定されているinhnoに対して,inhatrにTA_NONKERNELが指
     157  #     定されている場合(E_RSATR)[NGKI3068]
    175158  if !$INHNO_FIX_KERNEL.nil?
    176159    if !$INHNO_FIX_KERNEL.index(params[:inhno]).nil?
     
    185168    intnoVal = $toIntnoVal[params[:inhno].val]
    186169
    187     # inhnoに対応するintnoに対するCFG_INTがない場合(E_OBJ)[NGKI3062ï¼½
     170    # inhnoに対応するintnoに対するCFG_INTがない場合(E_OBJ)[NGKI3062]
    188171    if !$cfgData[:CFG_INT].has_key?(intnoVal)
    189172      error_ercd("E_OBJ", params, "intno `#{intnoVal}' corresponding to " \
     
    192175      intnoParams = $cfgData[:CFG_INT][intnoVal]
    193176      if (params[:inhatr] & $TA_NONKERNEL) == 0
    194         # inhatrにTA_NONKERNELが指定されておらず,inhnoに対応するintno
    195         # に対してCFG_INTで設定された割込み優å
    196 ˆåº¦ãŒTMIN_INTPRIよりも小
    197         # さい場合(E_OBJ)[NGKI3065ï¼½
     177        # inhatrにTA_NONKERNELが指定されておらず,inhnoに対応するintno
     178        # に対してCFG_INTで設定された割込み優先度がTMIN_INTPRIよりも小
     179        # さい場合(E_OBJ)[NGKI3065]
    198180        if intnoParams[:intpri] < $TMIN_INTPRI
    199181          error_ercd("E_OBJ", params, "intpri `#{intnoParams[:intpri]}' " \
     
    201183        end
    202184      else
    203         # inhatrにTA_NONKERNELが指定されており,inhnoに対応するintnoに
    204         # 対してCFG_INTで設定された割込み優å
    205 ˆåº¦ãŒTMIN_INTPRI以上である
    206         # 場合(E_OBJ)[NGKI3066ï¼½
     185        # inhatrにTA_NONKERNELが指定されており,inhnoに対応するintnoに
     186        # 対してCFG_INTで設定された割込み優先度がTMIN_INTPRI以上である
     187        # 場合(E_OBJ)[NGKI3066]
    207188        if intnoParams[:intpri] >= $TMIN_INTPRI
    208189          error_ercd("E_OBJ", params, "intpri `#{intnoParams[:intpri]}' " \
     
    215196
    216197#
    217 å‰²è¾¼ã¿ã‚µãƒ¼ãƒ“スルーチン(ISR)に関するエラーチェック
     198割込みサービスルーチン(ISR)に関するエラーチェック
    218199#
    219200$cfgData[:CRE_ISR].sort.each do |key, params|
    220   #     isratrが無効の場合(E_RSATR)[NGKI2998ï¼½
    221   #(TARGET_ISRATR以外のビットがセットされている場合)
     201  #     isratrが無効の場合(E_RSATR)[NGKI2998]
     202  #(TARGET_ISRATR以外のビットがセットされている場合)
    222203  if (params[:isratr] & ~($TARGET_ISRATR)) != 0
    223204    error_illegal("E_RSATR", params, "isratr")
    224205  end
    225206
    226   #     intnoがCRE_ISRに対する割込み番号として正しくない場合(E_PAR)
    227   #     ï¼»NGKI3003ï¼½
     207  #     intnoがCRE_ISRに対する割込み番号として正しくない場合(E_PAR)
     208  #     [NGKI3003]
    228209  if $INTNO_CREISR_VALID.index(params[:intno]).nil?
    229210    error_illegal("E_PAR", params, "intno")
    230211  end
    231212
    232   #     (TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRI)でない場合(E_PAR)
    233   #     ï¼»NGKI3005ï¼½
     213  #     (TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRI)でない場合(E_PAR)
     214  #     [NGKI3005]
    234215  if !($TMIN_ISRPRI <= params[:isrpri] && params[:isrpri] <= $TMAX_ISRPRI)
    235216    error_illegal("E_PAR", params, "isrpri")
     
    238219
    239220$INTNO_CREISR_VALID.each do |intnoVal|
    240   # 割込み番号intnoに対して登録されたISRのリストの作成
     221  # 割込み番号intnoに対して登録されたISRのリストの作成
    241222  isrParamsList = []
    242223  $cfgData[:CRE_ISR].sort.each do |key, params|
     
    246227  end
    247228
    248   #     å‰²è¾¼ã¿ç•ªå·intnoに対して登録されたISRが存在する場合
     229  #     割込み番号intnoに対して登録されたISRが存在する場合
    249230  if isrParamsList.size > 0
    250231    inhnoVal = $toInhnoVal[intnoVal]
    251232
    252     # intnoに対応するinhnoに対してDEF_INHがある場合(E_OBJ)[NGKI3013ï¼½
     233    # intnoに対応するinhnoに対してDEF_INHがある場合(E_OBJ)[NGKI3013]
    253234    if $cfgData[:DEF_INH].has_key?(inhnoVal)
    254235      inhnoParams = $cfgData[:DEF_INH][inhnoVal]
     
    257238    end
    258239
    259     # intnoに対するCFG_INTがない場合(E_OBJ)[NGKI3012ï¼½
     240    # intnoに対するCFG_INTがない場合(E_OBJ)[NGKI3012]
    260241    if !$cfgData[:CFG_INT].has_key?(intnoVal)
    261242      error_ercd("E_OBJ", isrParamsList[0], "%%intno in %apiname " \
     
    264245      intnoParams = $cfgData[:CFG_INT][intnoVal]
    265246
    266       # intnoに対してCFG_INTで設定された割込み優å
    267 ˆåº¦ãŒTMIN_INTPRIよりも
    268       # 小さい場合(E_OBJ)[NGKI3014ï¼½
     247      # intnoに対してCFG_INTで設定された割込み優先度がTMIN_INTPRIよりも
     248      # 小さい場合(E_OBJ)[NGKI3014]
    269249      if intnoParams[:intpri] < $TMIN_INTPRI
    270250        error_ercd("E_OBJ", isrParamsList[0],
     
    277257
    278258#
    279 å‰²è¾¼ã¿ã‚µãƒ¼ãƒ“スルーチン(ISR)管理のデータ構造
     259割込みサービスルーチン(ISR)管理のデータ構造
    280260#
    281261intnoIsrList = []
     
    313293
    314294#
    315 å‰²è¾¼ã¿ã‚µãƒ¼ãƒ“スルーチン(ISR)呼出しのための割込みハンドラ
     295割込みサービスルーチン(ISR)呼出しのための割込みハンドラ
    316296#
    317297intnoIsrList.each do |intnoVal|
    318298  inhnoVal = $toInhnoVal[intnoVal]
    319299
    320   # 次のDEF_INHに相当するデータを生成
     300  # 次のDEF_INHに相当するデータを生成
    321301  # DEF_INH(inhno, { TA_NULL, _kernel_inthdr_<intno> } );
    322302  $cfgData[:DEF_INH][inhnoVal] = {
     
    326306  }
    327307
    328   # 割込みサービスルーチン用の割込みハンドラ
     308  # 割込みサービスルーチン用の割込みハンドラ
    329309  $kernelCfgC.add("void")
    330310  $kernelCfgC.add("_kernel_inthdr_#{intnoVal}(void)")
     
    335315
    336316#
    337 #  割込みサービスルーチンに関する一般的なæƒ
    338 å ±ã®ç”Ÿæˆ
     317#  割込みサービスルーチンに関する一般的な情報の生成
    339318#
    340319class IsrObject < KernelObject
     
    344323
    345324  def prepare(key, params)
    346     # エラーチェックは実施済みなので,ここでの処理は不要
     325    # エラーチェックは実施済みなので,ここでの処理は不要
    347326  end
    348327
     
    355334IsrObject.new.generate()
    356335
    357 # 割込みサービスルーチン生成順序テーブルの生成
     336# 割込みサービスルーチン生成順序テーブルの生成
    358337$kernelCfgC.add("const ID _kernel_isrorder_table[TNUM_SISRID] = { ")
    359338$kernelCfgC.append("\t")
     
    366345
    367346#
    368 #  割込みハンドラのための標準的な初期化æƒ
    369 å ±ã®ç”Ÿæˆ
     347#  割込みハンドラのための標準的な初期化情報の生成
    370348#
    371349if !$OMIT_INITIALIZE_INTERRUPT || $USE_INHINIB_TABLE
    372350  #
    373   #  定義する割込みハンドラの数
     351  #  定義する割込みハンドラの数
    374352  #
    375353  $kernelCfgC.add(<<EOS)
     
    380358  if $cfgData[:DEF_INH].size != 0
    381359    #
    382     #  割込みハンドラのエントリ
     360    #  割込みハンドラのエントリ
    383361    #
    384362    $cfgData[:DEF_INH].each do |key, params|
     
    391369
    392370    #
    393     #  割込みハンドラ初期化ブロック
     371    #  割込みハンドラ初期化ブロック
    394372    #
    395373    $kernelCfgC.add("const INHINIB _kernel_inhinib_table[TNUM_DEF_INHNO] = {")
     
    413391
    414392#
    415 #  割込み要求ラインのための標準的な初期化æƒ
    416 å ±ã®ç”Ÿæˆ
     393#  割込み要求ラインのための標準的な初期化情報の生成
    417394#
    418395if !$OMIT_INITIALIZE_INTERRUPT || $USE_INTINIB_TABLE
    419396  #
    420   #  設定する割込み要求ラインの数
     397  #  設定する割込み要求ラインの数
    421398  #
    422399  $kernelCfgC.add(<<EOS)
     
    426403
    427404  #
    428   #  割込み要求ライン初期化ブロック
     405  #  割込み要求ライン初期化ブロック
    429406  #
    430407  if $cfgData[:CFG_INT].size != 0
     
    444421
    445422#
    446 å‰²è¾¼ã¿ç®¡ç†æ©Ÿèƒ½åˆæœŸåŒ–関数の追加
     423割込み管理機能初期化関数の追加
    447424#
    448425$initializeFunctions.push("_kernel_initialize_interrupt();")
  • EcnlProtoTool/trunk/asp3_dcre/kernel/kernel.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    99#               Graduate School of Information Science, Nagoya Univ., JAPAN
    1010#
    11 #   ä¸Šè¨˜è‘—作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    14 #   å¤‰ãƒ»å†é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    18 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    19 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23 #       è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    26 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27 #       ç”¨ã§ããªã„形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29 #       ã¨ï¼Ž
    30 #     (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    34 #     (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37 #         å ±å‘Šã™ã‚‹ã“と.
    38 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    43 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45 #       å
    46 è²¬ã™ã‚‹ã“と.
     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#       免責すること.
    4733#
    48 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    49 ãŠ
    50 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    52 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    53 #   ã®è²¬ä»»ã‚’負わない.
     34#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38#   の責任を負わない.
    5439#
    55 #   $Id: kernel.trb 716 2016-03-31 06:16:23Z ertl-hiro $
     40#   $Id$
    5641#
    5742
    5843#
    59 #               ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚¿ã®ãƒ‘ス2の生成スクリプト
    60 #
    61 
    62 #
    63 ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ファイルの指定
     44#               コンフィギュレータのパス2の生成スクリプト
     45#
     46
     47#
     48タイムスタンプファイルの指定
    6449#
    6550$timeStampFileName = "kernel_cfg.timestamp"
    6651
    6752#
    68 #  kernel_cfg.hのå
    69 ˆé ­éƒ¨åˆ†ã®ç”Ÿæˆ
     53#  kernel_cfg.hの先頭部分の生成
    7054#
    7155$kernelCfgH = GenFile.new("kernel_cfg.h")
     
    7761
    7862#
    79 #  kernel_cfg.cのå
    80 ˆé ­éƒ¨åˆ†ã®ç”Ÿæˆ
     63#  kernel_cfg.cの先頭部分の生成
    8164#
    8265$kernelCfgC = GenFile.new("kernel_cfg.c")
     
    9275
    9376#
    94 ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ãƒ‡ã‚£ãƒ¬ã‚¯ãƒ†ã‚£ãƒ–(#include)
     77インクルードディレクティブ(#include)
    9578#
    9679$kernelCfgC.comment_header("Include Directives")
     
    10184
    10285#
    103 #  スタック領域の確保関数
    104 #
    105 #  スタック領域の定義分と,スタック領域のサイズ記述をé
    106 åˆ—で返す.
     86#  スタック領域の確保関数
     87#
     88#  スタック領域の定義分と,スタック領域のサイズ記述を配列で返す.
    10789#
    10890unless defined? AllocStack()
    10991  def AllocStack(stack, size)
    110     # 大きい方に丸めたサイズで確保する[NGKI1050][NGKI3220ï¼½
     92    # 大きい方に丸めたサイズで確保する[NGKI1050][NGKI3220]
    11193    $kernelCfgC.add("/*static*/ STK_T #{stack}[COUNT_STK_T(#{size})];")
    11294    return("ROUND_STK_T(#{size})")
     
    11597
    11698#
    117 #  カーネルオブジェクトに関するæƒ
    118 å ±ã®ç”Ÿæˆï¼ˆä»®æƒ³ã‚¯ãƒ©ã‚¹ï¼‰
     99#  カーネルオブジェクトに関する情報の生成(仮想クラス)
    119100#
    120101class KernelObject
     
    131112
    132113  def generate()
    133     # AID_@OBJの処理
     114    # AID_@OBJの処理
    134115    numAutoObjid = 0
    135116    $cfgData["AID_#{@OBJ}".to_sym].each do |key, params|
     
    138119    numObjid = $cfgData[@api].size + numAutoObjid
    139120
    140     # kernel_cfg.hの生成
     121    # kernel_cfg.hの生成
    141122    $kernelCfgH.add("#define TNUM_#{@OBJ}ID\t#{numObjid}")
    142123
    143     # オブジェクトのID番号のマクロ定義の生成
     124    # オブジェクトのID番号のマクロ定義の生成
    144125    $cfgData[@api].sort.each do |key, params|
    145126      $kernelCfgH.add("#define #{params[@objid]}\t#{params[@objid].val}")
     
    147128    $kernelCfgH.add()
    148129
    149     # オブジェクトのID番号を保持する変数
     130    # オブジェクトのID番号を保持する変数
    150131    if $USE_EXTERNAL_ID
    151132      $cfgData[@api].sort.each do |key, params|
     
    156137    end
    157138
    158     # 静的に生成されたオブジェクトの数
     139    # 静的に生成されたオブジェクトの数
    159140    $kernelCfgC.add("#define TNUM_S#{@OBJ}ID\t#{$cfgData[@api].size}")
    160141
    161     # オブジェクトID番号の最大値
     142    # オブジェクトID番号の最大値
    162143    $kernelCfgC.add("const ID _kernel_tmax_#{@obj}id" \
    163144                                                        " = (TMIN_#{@OBJ}ID + TNUM_#{@OBJ}ID - 1);")
     
    165146                                                        " = (TMIN_#{@OBJ}ID + TNUM_S#{@OBJ}ID - 1);")
    166147
    167     # データ構造
     148    # データ構造
    168149    if $cfgData[@api].size > 0
    169       # 事前準備(エラーチェック,メモリ領域の生成)
     150      # 事前準備(エラーチェック,メモリ領域の生成)
    170151      $cfgData[@api].sort.each do |key, params|
    171152        prepare(key, params)
    172153      end
    173154
    174       # オブジェクトå
    175 ¨ä½“に対してå¿
    176 è¦ãªãƒ¡ãƒ¢ãƒªé ˜åŸŸã®ç”Ÿæˆï¼ˆã‚ªãƒ—ション)
     155      # オブジェクト全体に対して必要なメモリ領域の生成(オプション)
    177156      if respond_to?(:generateData)
    178157        generateData()
    179158      end
    180159
    181       # オブジェクト初期化ブロックの生成
     160      # オブジェクト初期化ブロックの生成
    182161      $kernelCfgC.add("const #{@OBJ_S}INIB _kernel_#{@obj_s}inib_table" \
    183162                                                                                                        "[TNUM_S#{@OBJ}ID] = {")
     
    193172    end
    194173
    195     # 動的生成オブジェクト用のオブジェクト初期化ブロック
     174    # 動的生成オブジェクト用のオブジェクト初期化ブロック
    196175    @inibList.each do |type, array|
    197176      if numAutoObjid > 0
     
    203182
    204183    if numObjid > 0
    205       # オブジェクト管理ブロックの生成
     184      # オブジェクト管理ブロックの生成
    206185      $kernelCfgC.add2("#{@OBJ_S}CB _kernel_#{@obj_s}cb_table" \
    207186                                                                                                        "[TNUM_#{@OBJ}ID];")
    208187
    209       # オブジェクト初期化関数の追加
     188      # オブジェクト初期化関数の追加
    210189      $initializeFunctions.push("_kernel_initialize_#{@object}();")
    211190    else
     
    217196
    218197#
    219 é€šçŸ¥ãƒãƒ³ãƒ‰ãƒ©ã®ç”Ÿæˆé–¢æ•°
     198通知ハンドラの生成関数
    220199#
    221200def generateNotifyHandler(key, params, objid)
    222   # パラメータを変数に格納
     201  # パラメータを変数に格納
    223202  nfymode = params[:nfymode]
    224203  nfymode1 = nfymode & 0x0f
     
    227206  par2 = params[:par2]
    228207
    229   # 通知処理のパラメータ数による補正処理
     208  # 通知処理のパラメータ数による補正処理
    230209  if nfymode == $TNFY_HANDLER || nfymode1 == $TNFY_SETVAR \
    231210                                                                || nfymode1 == $TNFY_SETFLG \
    232211                                                                || nfymode1 == $TNFY_SNDDTQ
    233     # 通知処理のパラメータが2つの場合
     212    # 通知処理のパラメータが2つの場合
    234213        numpar = 2
    235214        epar1 = params[:par3]
    236215        epar2 = params[:par4]
    237216  else
    238     # 通知処理のパラメータが1つの場合
     217    # 通知処理のパラメータが1つの場合
    239218    numpar = 1
    240219    epar1 = params[:par2]
     
    242221  end
    243222
    244   # パラメータ数のチェック
     223  # パラメータ数のチェック
    245224  if (numpar == 2 && par2.nil?) || (nfymode2 != 0 && epar1.nil?) \
    246225                                                                || (nfymode2 == $TENFY_SETFLG && epar2.nil?)
    247     # パラメータが足りない場合
     226    # パラメータが足りない場合
    248227    error_api(params, "too few parameters for nfymode `#{nfymode}' " \
    249228                                                                                        "in %apiname of %#{objid}")
    250229  elsif (nfymode2 == 0 && !epar1.nil?) \
    251230                                        || (nfymode2 != $TENFY_SETFLG && !epar2.nil?)
    252     # パラメータが多すぎる場合
     231    # パラメータが多すぎる場合
    253232    error_api(params, "too many parameters for nfymode `#{nfymode}' " \
    254233                                                                                        "in %apiname of %#{objid}")
    255234  elsif nfymode == $TNFY_HANDLER
    256     # タイムイベントハンドラの呼出し
     235    # タイムイベントハンドラの呼出し
    257236    funcname = "(NFYHDR)(#{par2})"
    258237  else
    259     # 通知ハンドラの関数名
     238    # 通知ハンドラの関数名
    260239    funcname = "_kernel_nfyhdr_#{params[objid]}"
    261240
    262     # エラー通知のための変数のアドレスとオブジェクトIDを格納する
    263     # 変数の生成(エラーチェックのためにå¿
    264 è¦ï¼‰
     241    # エラー通知のための変数のアドレスとオブジェクトIDを格納する
     242    # 変数の生成(エラーチェックのために必要)
    265243    if nfymode2 == $TENFY_SETVAR || nfymode2 == $TENFY_INCVAR
    266244      $kernelCfgC.add2("intptr_t *const #{funcname}_p_evar =" \
     
    276254    end
    277255
    278     # 関数のå
    279 ˆé ­éƒ¨åˆ†ã®ç”Ÿæˆ
     256    # 関数の先頭部分の生成
    280257    $kernelCfgC.add("static void")
    281258    $kernelCfgC.add("#{funcname}(intptr_t exinf)")
     
    283260
    284261    if nfymode2 == 0
    285       # エラー通知がない場合
     262      # エラー通知がない場合
    286263      errorCode = "(void) "
    287264    else
    288       # エラー通知がある場合
     265      # エラー通知がある場合
    289266      $kernelCfgC.add2("\tER\tercd;")
    290267      errorCode = "ercd = "
    291268    end
    292269
    293     # イベント通知処理の処理
     270    # イベント通知処理の処理
    294271    if nfymode1 == $TNFY_SETVAR && nfymode2 == 0
    295       # 変数の設定
     272      # 変数の設定
    296273      $kernelCfgC.add("\t*((intptr_t *) exinf) = (#{par2});")
    297274    elsif nfymode1 == $TNFY_INCVAR && nfymode2 == 0
    298       # 変数のインクリメント
     275      # 変数のインクリメント
    299276      $kernelCfgC.add("\t(void) loc_cpu();")
    300277      $kernelCfgC.add("\t*((intptr_t *) exinf) += 1;")
    301278      $kernelCfgC.add("\t(void) unl_cpu();")
    302279    elsif nfymode1 == $TNFY_ACTTSK
    303       # タスクの起動
     280      # タスクの起動
    304281      $kernelCfgC.add("\t#{errorCode}act_tsk((ID) exinf);")
    305282    elsif nfymode1 == $TNFY_WUPTSK
    306       # タスクの起床
     283      # タスクの起床
    307284      $kernelCfgC.add("\t#{errorCode}wup_tsk((ID) exinf);")
    308285    elsif nfymode1 == $TNFY_SIGSEM
    309       # セマフォの返却
     286      # セマフォの返却
    310287      $kernelCfgC.add("\t#{errorCode}sig_sem((ID) exinf);")
    311288    elsif nfymode1 == $TNFY_SETFLG
    312       # イベントフラグのセット
     289      # イベントフラグのセット
    313290      $kernelCfgC.add("\t#{errorCode}set_flg(((ID) exinf), #{par2});")
    314291    elsif nfymode1 == $TNFY_SNDDTQ
    315       # データキューへの送信
     292      # データキューへの送信
    316293      $kernelCfgC.add("\t#{errorCode}psnd_dtq(((ID) exinf), #{par2});")
    317294    else
     
    320297                       
    321298    if nfymode2 != 0
    322       # エラー通知処理の処理
     299      # エラー通知処理の処理
    323300      $kernelCfgC.add("\tif (ercd != E_OK) {")
    324301
    325302
    326303      if nfymode2 == $TENFY_SETVAR
    327         # 変数の設定
     304        # 変数の設定
    328305        $kernelCfgC.add("\t\t*#{funcname}_p_evar = (intptr_t) ercd;")
    329306      elsif nfymode2 == $TENFY_INCVAR
    330         # 変数のインクリメント
     307        # 変数のインクリメント
    331308        $kernelCfgC.add("\t\t(void) loc_cpu();")
    332309        $kernelCfgC.add("\t\t*#{funcname}_p_evar += 1;")
    333310        $kernelCfgC.add("\t\t(void) unl_cpu();")
    334311      elsif nfymode2 == $TENFY_ACTTSK
    335         # タスクの起動
     312        # タスクの起動
    336313        $kernelCfgC.add("\t\t(void) act_tsk(#{funcname}_etskid);")
    337314      elsif nfymode2 == $TENFY_WUPTSK
    338         # タスクの起床
     315        # タスクの起床
    339316        $kernelCfgC.add("\t\t(void) wup_tsk(#{funcname}_etskid);")
    340317      elsif nfymode2 == $TENFY_SIGSEM
    341         # セマフォの返却
     318        # セマフォの返却
    342319        $kernelCfgC.add("\t\t(void) sig_sem(#{funcname}_esemid);")
    343320      elsif nfymode2 == $TENFY_SETFLG
    344         # イベントフラグのセット
     321        # イベントフラグのセット
    345322        $kernelCfgC.add("\t\t(void) set_flg(#{funcname}_eflgid, #{epar2});")
    346323      elsif nfymode2 == $TENFY_SNDDTQ
    347         # データキューへの送信
     324        # データキューへの送信
    348325        $kernelCfgC.add("\t\t(void) psnd_dtq(#{funcname}_edtqid," \
    349326                                                                                                        " (intptr_t) ercd);")
     
    354331    end
    355332
    356     # 関数の末尾部分の生成
     333    # 関数の末尾部分の生成
    357334    $kernelCfgC.add2("}")
    358335  end
     
    361338
    362339#
    363 å„機能モジュールのコンフィギュレーション
     340各機能モジュールのコンフィギュレーション
    364341#
    365342$initializeFunctions = []
     
    377354
    378355#
    379 éžã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆç”¨ã®ã‚¹ã‚¿ãƒƒã‚¯é ˜åŸŸ
     356非タスクコンテキスト用のスタック領域
    380357#
    381358$kernelCfgC.comment_header("Stack Area for Non-task Context")
    382359
    383360if $cfgData[:DEF_ICS].size == 0
    384   # DEF_ICSがない場合のデフォルト値の設定
     361  # DEF_ICSがない場合のデフォルト値の設定
    385362  if $DEFAULT_ISTK.nil?
    386     # スタック領域の自動割付け
     363    # スタック領域の自動割付け
    387364    istksz = AllocStack("_kernel_istack", "DEFAULT_ISTKSZ")
    388365    istk = "_kernel_istack"
     
    392369  end
    393370else
    394   # 静的API「DEF_ICS」が複数ある(E_OBJ)[NGKI3216ï¼½
     371  # 静的API「DEF_ICS」が複数ある(E_OBJ)[NGKI3216]
    395372  if $cfgData[:DEF_ICS].size > 1
    396373    error("E_OBJ: too many DEF_ICS")
    397374  end
    398375
    399   # DEF_ICSがある場合の処理
     376  # DEF_ICSがある場合の処理
    400377  params = $cfgData[:DEF_ICS][1]
    401378
    402   # パラメータが省略された時のデフォルト値の設定
     379  # パラメータが省略された時のデフォルト値の設定
    403380  params[:istk] ||= "NULL"
    404381
    405   # istkszがターゲット定義の最小値(TARGET_MIN_ISTKSZ,未定義の場合は1)
    406   # よりも小さい場合(E_PAR)[NGKI3254ï¼½
     382  # istkszがターゲット定義の最小値(TARGET_MIN_ISTKSZ,未定義の場合は1)
     383  # よりも小さい場合(E_PAR)[NGKI3254]
    407384  if params[:istksz] < $TARGET_MIN_ISTKSZ
    408385    error_wrong("E_PAR", params, :istksz, "too small")
     
    410387
    411388  if params[:istk] == "NULL"
    412     # スタック領域の自動割付け
     389    # スタック領域の自動割付け
    413390    istksz = AllocStack("_kernel_istack", params[:istksz])
    414391    istk = "_kernel_istack"
    415392  else
    416     # istkszがスタック領域のサイズとして正しくない場合(E_PAR)[NGKI3222ï¼½
     393    # istkszがスタック領域のサイズとして正しくない場合(E_PAR)[NGKI3222]
    417394    if (params[:istksz] & ($CHECK_STKSZ_ALIGN - 1)) != 0
    418395      error_wrong("E_PAR", params, :istksz, "not aligned")
     
    434411
    435412#
    436 ã‚«ãƒ¼ãƒãƒ«ãŒå‰²ã‚Šä»˜ã‘るメモリ領域
     413カーネルが割り付けるメモリ領域
    437414#
    438415$kernelCfgC.comment_header("Memory Area Allocated by Kernel")
    439416
    440417if $cfgData[:DEF_KMM].size == 0
    441   # DEF_KMMがない場合のデフォルト値の設定
     418  # DEF_KMMがない場合のデフォルト値の設定
    442419  kmmsz = "0"
    443420  kmm = "NULL"
    444421else
    445   # 静的API「DEF_KMM」が複数ある(E_OBJ)
     422  # 静的API「DEF_KMM」が複数ある(E_OBJ)
    446423  if ($cfgData[:DEF_KMM].size > 1)
    447424    error("E_OBJ: too many DEF_KMM")
    448425  end
    449426
    450   # DEF_KMMがある場合の処理
     427  # DEF_KMMがある場合の処理
    451428  params = $cfgData[:DEF_KMM][1]
    452429
    453   # パラメータが省略された時のデフォルト値の設定
     430  # パラメータが省略された時のデフォルト値の設定
    454431  params[:kmm] ||= "NULL"
    455432
    456   # kmmszが0の場合(E_PAR)
     433  # kmmszが0の場合(E_PAR)
    457434  if params[:kmmsz] == 0
    458435    error_wrong("E_PAR", params, :kmmsz, "zero")
     
    460437
    461438  if params[:kmm] == "NULL"
    462     # カーネルが割り付けるメモリ領域の自動割付け
     439    # カーネルが割り付けるメモリ領域の自動割付け
    463440    $kernelCfgC.add("static MB_T _kernel_memory" \
    464441                                        "[TOPPERS_COUNT_SZ(#{params[:kmmsz]}, sizeof(MB_T))];")
     
    466443    kmm = "_kernel_memory"
    467444  else
    468     # kmmszがカーネルが割り付けるメモリ領域のサイズとして正しくない場合
    469     # (E_PAR)
     445    # kmmszがカーネルが割り付けるメモリ領域のサイズとして正しくない場合
     446    # (E_PAR)
    470447    if (params[:kmmsz] & ($CHECK_MB_ALIGN - 1)) != 0
    471448      error_wrong("E_PAR", params, :kmmsz, "not aligned")
     
    483460
    484461#
    485 ã‚¿ã‚¤ãƒ ã‚¤ãƒ™ãƒ³ãƒˆç®¡ç†
     462タイムイベント管理
    486463#
    487464$kernelCfgC.comment_header("Time Event Management")
     
    491468
    492469#
    493 å„モジュールの初期化関数
     470各モジュールの初期化関数
    494471#
    495472$kernelCfgC.comment_header("Module Initialization Function")
     
    505482
    506483#
    507 åˆæœŸåŒ–ルーチン機能
     484初期化ルーチン機能
    508485#
    509486$kernelCfgC.comment_header("Initialization Routine")
    510487
    511 # エラーチェック
     488# エラーチェック
    512489$cfgData[:ATT_INI].each do |key, params|
    513   # iniatrが無効の場合(E_RSATR)[NGKI3241ï¼½
    514   #(TA_NULLでない場合)
     490  # iniatrが無効の場合(E_RSATR)[NGKI3241]
     491  #(TA_NULLでない場合)
    515492  if (params[:iniatr] != $TA_NULL)
    516493    error_illegal_sym("E_RSATR", params, :iniatr, :inirtn)
     
    518495end
    519496
    520 # 初期化ルーチンの実行関数の生成
     497# 初期化ルーチンの実行関数の生成
    521498$kernelCfgC.append(<<EOS)
    522499void
     
    531508
    532509#
    533 çµ‚了処理ルーチン機能
     510終了処理ルーチン機能
    534511#
    535512$kernelCfgC.comment_header("Termination Routine")
    536513
    537 # エラーチェック
     514# エラーチェック
    538515$cfgData[:ATT_TER].each do |key, params|
    539   # teratrが無効の場合(E_RSATR)[NGKI3248ï¼½
    540   #(TA_NULLでない場合)
     516  # teratrが無効の場合(E_RSATR)[NGKI3248]
     517  #(TA_NULLでない場合)
    541518  if (params[:teratr] != $TA_NULL)
    542519    error_illegal_sym("E_RSATR", params, :teratr, :terrtn)
     
    544521end
    545522
    546 # 終了処理ルーチンの実行関数の生成
     523# 終了処理ルーチンの実行関数の生成
    547524$kernelCfgC.append(<<EOS)
    548525void
     
    557534
    558535#
    559 #  kernel_cfg.hの末尾部分の生成
     536#  kernel_cfg.hの末尾部分の生成
    560537#
    561538$kernelCfgH.append(<<EOS)
  • EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_check.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r270 r321  
    99#               Graduate School of Information Science, Nagoya Univ., JAPAN
    1010
    11 #   ä¸Šè¨˜è‘—作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    14 #   å¤‰ãƒ»å†é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    18 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    19 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23 #       è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    26 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27 #       ç”¨ã§ããªã„形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29 #       ã¨ï¼Ž
    30 #     (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    34 #     (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37 #         å ±å‘Šã™ã‚‹ã“と.
    38 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    43 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45 #       å
    46 è²¬ã™ã‚‹ã“と.
     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#       免責すること.
    4733
    48 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    49 ãŠ
    50 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    52 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    53 #   ã®è²¬ä»»ã‚’負わない.
    54 #
    55 #   $Id: kernel_check.trb 662 2016-02-27 02:33:51Z ertl-hiro $
     34#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     35#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     36#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     37#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     38#   の責任を負わない.
     39#
     40#   $Id$
    5641
    5742
    5843#
    59 #               ã‚³ãƒ³ãƒ•ã‚£ã‚®ãƒ¥ãƒ¬ãƒ¼ã‚¿ã®ãƒ‘ス3の生成スクリプト
    60 #
    61 
    62 #
    63 ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ファイルの指定
     44#               コンフィギュレータのパス3の生成スクリプト
     45#
     46
     47#
     48タイムスタンプファイルの指定
    6449#
    6550$timeStampFileName = "check.timestamp"
    6651
    6752#
    68 ãƒ‡ãƒ¼ã‚¿ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®LMAからVMAへのコピー
     53データセクションのLMAからVMAへのコピー
    6954#
    7055if !$lmaList.nil?
     
    8671
    8772#
    88 #  通知æƒ
    89 å ±ã®ãƒã‚§ãƒƒã‚¯é–¢æ•°
     73#  通知情報のチェック関数
    9074#
    9175$tmax_tskid = $TMIN_TSKID + $cfgData[:CRE_TSK].size - 1
     
    9579
    9680def checkNotifyHandler(key, params, objid, exinf, nfyhdr)
    97   # パラメータを変数に格納
     81  # パラメータを変数に格納
    9882  nfymode = params[:nfymode]
    9983  nfymode1 = nfymode & 0x0f
     
    10387  funcname = "_kernel_nfyhdr_#{params[objid]}"
    10488
    105   # 通知処理のパラメータ数による補正処理
     89  # 通知処理のパラメータ数による補正処理
    10690  if nfymode1 == $TNFY_SETVAR || nfymode1 == $TNFY_SETFLG \
    10791                                                                || nfymode1 == $TNFY_SNDDTQ
    108     # 通知処理のパラメータが2つの場合
     92    # 通知処理のパラメータが2つの場合
    10993    epar1 = params[:par3]
    11094    epar2 = params[:par4]
    11195  else
    112     # 通知処理のパラメータが1つの場合
     96    # 通知処理のパラメータが1つの場合
    11397    epar1 = params[:par2]
    11498    epar2 = params[:par3]
    11599  end
    116100
    117   #     ã‚¿ã‚¤ãƒ ã‚¤ãƒ™ãƒ³ãƒˆãƒãƒ³ãƒ‰ãƒ©ã®å
    118 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI3693ï¼½
     101  #     タイムイベントハンドラの先頭番地のチェック[NGKI3693]
    119102  if nfymode == $TNFY_HANDLER
    120103    tmehdr = nfyhdr
     
    129112  end
    130113
    131   #     ã‚¤ãƒ™ãƒ³ãƒˆé€šçŸ¥å‡¦ç†ã®å¤‰æ•°ã®ç•ªåœ°ã¨ã‚ªãƒ–ジェクトIDのチェック
     114  #     イベント通知処理の変数の番地とオブジェクトIDのチェック
    132115  if nfymode1 == $TNFY_SETVAR || nfymode1 == $TNFY_INCVAR
    133     # 変数の設定/インクリメントによるタイムイベントの通知
     116    # 変数の設定/インクリメントによるタイムイベントの通知
    134117        p_var = exinf
    135118    params1 = params.dup
    136119    params1[:p_var] = par1
    137120
    138     # 変数の番地のチェック[NGKI3699][NGKI3897ï¼½
     121    # 変数の番地のチェック[NGKI3699][NGKI3897]
    139122    if (p_var & ($CHECK_INTPTR_ALIGN - 1)) != 0
    140123      error_wrong_id("E_PAR", params1, :p_var, objid, "not aligned")
     
    144127    end
    145128  elsif (nfymode1 == $TNFY_ACTTSK || nfymode1 == $TNFY_WUPTSK)
    146     # タスクの起動/起床によるタイムイベントの通知
     129    # タスクの起動/起床によるタイムイベントの通知
    147130    tskid = exinf
    148131    params1 = params.dup
    149132    params1[:tskid] = par1
    150133
    151     # タスクIDのチェック[NGKI3704ï¼½
     134    # タスクIDのチェック[NGKI3704]
    152135    if !($TMIN_TSKID <= tskid && tskid <= $tmax_tskid)
    153136      error_illegal_id("E_ID", params1, :tskid, objid)
    154137    end
    155138  elsif nfymode1 == $TNFY_SIGSEM
    156     # セマフォの資源の返却によるタイムイベントの通知
     139    # セマフォの資源の返却によるタイムイベントの通知
    157140    semid = exinf
    158141    params1 = params.dup
    159142    params1[:semid] = par1
    160143
    161     # セマフォIDのチェック[NGKI3707ï¼½
     144    # セマフォIDのチェック[NGKI3707]
    162145    if !($TMIN_SEMID <= semid && semid <= $tmax_semid)
    163146      error_illegal_id("E_ID", params1, :semid, objid)
    164147    end
    165148  elsif nfymode1 == $TNFY_SETFLG
    166     # イベントフラグのセットによるタイムイベントの通知
     149    # イベントフラグのセットによるタイムイベントの通知
    167150    flgid = exinf
    168151    params1 = params.dup
    169152    params1[:flgid] = par1
    170153
    171     # イベントフラグIDのチェック[NGKI3710ï¼½
     154    # イベントフラグIDのチェック[NGKI3710]
    172155    if !($TMIN_FLGID <= flgid && flgid <= $tmax_flgid)
    173156      error_illegal_id("E_ID", params1, :flgid, objid)
    174157    end
    175158  elsif nfymode1 == $TNFY_SNDDTQ
    176     # データキューへの送信によるタイムイベントの通知
     159    # データキューへの送信によるタイムイベントの通知
    177160    dtqid = exinf
    178161    params1 = params.dup
    179162    params1[:dtqid] = par1
    180163
    181     # データキューIDのチェック[NGKI3713ï¼½
     164    # データキューIDのチェック[NGKI3713]
    182165    if !($TMIN_DTQID <= dtqid && dtqid <= $tmax_dtqid)
    183166      error_illegal_id("E_ID", params1, :dtqid, objid)
     
    185168  end
    186169
    187   # エラー通知処理の変数の番地とオブジェクトIDのチェック
     170  # エラー通知処理の変数の番地とオブジェクトIDのチェック
    188171  if (nfymode2 == $TENFY_SETVAR || nfymode2 == $TENFY_INCVAR)
    189     # 変数の設定/インクリメントによるエラーの通知
     172    # 変数の設定/インクリメントによるエラーの通知
    190173    p_var = PEEK(SYMBOL(funcname + "_p_evar"), $sizeof_intptr_t)
    191174    params1 = params.dup
    192175    params1[:p_var] = epar1
    193176
    194     # 変数の番地のチェック[NGKI3701][NGKI3897ï¼½
     177    # 変数の番地のチェック[NGKI3701][NGKI3897]
    195178    if (p_var & ($CHECK_INTPTR_ALIGN - 1)) != 0
    196179      error_wrong_id("E_PAR", params1, :p_var, objid, "not aligned")
     
    200183    end
    201184  elsif nfymode2 == $TENFY_ACTTSK || nfymode2 == $TENFY_WUPTSK
    202     # タスクの起動/起床によるエラーの通知
     185    # タスクの起動/起床によるエラーの通知
    203186    tskid = PEEK(SYMBOL(funcname + "_etskid"), $sizeof_ID)
    204187    params1 = params.dup
    205188    params1[:tskid] = epar1
    206189
    207     # タスクIDのチェック[NGKI3704ï¼½
     190    # タスクIDのチェック[NGKI3704]
    208191    if !($TMIN_TSKID <= tskid && tskid <= $tmax_tskid)
    209192      error_illegal_id("E_ID", params1, :tskid, objid)
    210193    end
    211194  elsif nfymode2 == $TENFY_SIGSEM
    212     # セマフォの資源の返却によるエラーの通知
     195    # セマフォの資源の返却によるエラーの通知
    213196        semid = PEEK(SYMBOL(funcname + "_esemid"), $sizeof_ID)
    214197    params1 = params.dup
    215198    params1[:semid] = epar1
    216199
    217     # セマフォIDのチェック[NGKI3707ï¼½
     200    # セマフォIDのチェック[NGKI3707]
    218201    if !($TMIN_SEMID <= semid && semid <= $tmax_semid)
    219202      error_illegal_id("E_ID", params1, :semid, objid)
    220203    end
    221204  elsif nfymode2 == $TENFY_SETFLG
    222     # イベントフラグのセットによるエラーの通知
     205    # イベントフラグのセットによるエラーの通知
    223206    flgid = PEEK(SYMBOL(funcname + "_eflgid"), $sizeof_ID)
    224207    params1 = params.dup
    225208    params1[:flgid] = epar1
    226209
    227     # イベントフラグIDのチェック[NGKI3710ï¼½
     210    # イベントフラグIDのチェック[NGKI3710]
    228211    if !($TMIN_FLGID <= flgid && flgid <= $tmax_flgid)
    229212      error_illegal_id("E_ID", params1, :flgid, objid)
    230213    end
    231214  elsif nfymode2 == $TENFY_SNDDTQ
    232     # データキューへの送信によるエラーの通知
     215    # データキューへの送信によるエラーの通知
    233216    dtqid = PEEK(SYMBOL(funcname + "_edtqid"), $sizeof_ID)
    234217    params1 = params.dup
    235218    params1[:dtqid] = epar1
    236219
    237     # データキューIDのチェック[NGKI3715ï¼½
     220    # データキューIDのチェック[NGKI3715]
    238221    if !($TMIN_DTQID <= dtqid && dtqid <= $tmax_dtqid)
    239222      error_illegal_id("E_ID", params1, :dtqid, objid)
     
    243226
    244227#
    245 ã‚¿ã‚¹ã‚¯ã«é–¢ã™ã‚‹ãƒã‚§ãƒƒã‚¯
     228タスクに関するチェック
    246229#
    247230tinib = SYMBOL("_kernel_tinib_table")
     
    249232  task = PEEK(tinib + $offsetof_TINIB_task, $sizeof_TASK)
    250233
    251   # タスクのå
    252 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI1033ï¼½
     234  # タスクの先頭番地のチェック[NGKI1033]
    253235  if (task & ($CHECK_FUNC_ALIGN - 1)) != 0
    254236    error_wrong_id("E_PAR", params, :task, :tskid, "not aligned")
     
    258240  end
    259241
    260   # タスクのスタック領域のå
    261 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI1056ï¼½
     242  # タスクのスタック領域の先頭番地のチェック[NGKI1056]
    262243  if $USE_TSKINICTXB
    263244    stk = GetStackTskinictxb(key, params, tinib)
     
    276257
    277258#
    278 å›ºå®šé•·ãƒ¡ãƒ¢ãƒªãƒ—ールに関するチェック
     259固定長メモリプールに関するチェック
    279260#
    280261mpfinib = SYMBOL("_kernel_mpfinib_table")
     
    282263  mpf = PEEK(mpfinib + $offsetof_MPFINIB_mpf, $sizeof_void_ptr)
    283264
    284   # 固定長メモリプール領域のå
    285 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI2249ï¼½
     265  # 固定長メモリプール領域の先頭番地のチェック[NGKI2249]
    286266  if (mpf & ($CHECK_MPF_ALIGN - 1)) != 0
    287267    error_wrong_id("E_PAR", params, :mpf, :mpfid, "not aligned")
     
    295275
    296276#
    297 å‘¨æœŸé€šçŸ¥ã«é–¢ã™ã‚‹ãƒã‚§ãƒƒã‚¯
     277周期通知に関するチェック
    298278#
    299279cycinib = SYMBOL("_kernel_cycinib_table")
     
    302282  nfyhdr = PEEK(cycinib + $offsetof_CYCINIB_nfyhdr, $sizeof_NFYHDR)
    303283
    304   #     é€šçŸ¥æƒ
    305 å ±ã®ãƒã‚§ãƒƒã‚¯
     284  #     通知情報のチェック
    306285  checkNotifyHandler(key, params, :cycid, exinf, nfyhdr)
    307286
     
    310289
    311290#
    312 ã‚¢ãƒ©ãƒ¼ãƒ é€šçŸ¥ã«é–¢ã™ã‚‹ãƒã‚§ãƒƒã‚¯
     291アラーム通知に関するチェック
    313292#
    314293alminib = SYMBOL("_kernel_alminib_table")
     
    317296  nfyhdr = PEEK(alminib + $offsetof_ALMINIB_nfyhdr, $sizeof_NFYHDR)
    318297
    319   #     é€šçŸ¥æƒ
    320 å ±ã®ãƒã‚§ãƒƒã‚¯
     298  #     通知情報のチェック
    321299  checkNotifyHandler(key, params, :almid, exinf, nfyhdr)
    322300
     
    325303
    326304#
    327 å‰²è¾¼ã¿ã‚µãƒ¼ãƒ“スルーチンに関するチェック
     305割込みサービスルーチンに関するチェック
    328306#
    329307isrinib = SYMBOL("_kernel_isrinib_table")
     
    331309  isr = PEEK(isrinib + $offsetof_ISRINIB_isr, $sizeof_ISR)
    332310
    333   # 割込みサービスルーチンのå
    334 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI3004ï¼½
     311  # 割込みサービスルーチンの先頭番地のチェック[NGKI3004]
    335312  if (isr & ($CHECK_FUNC_ALIGN - 1)) != 0
    336313    error_wrong_id("E_PAR", params, :isr, :isrid, "not aligned")
     
    344321
    345322#
    346 éžã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆç”¨ã®ã‚¹ã‚¿ãƒƒã‚¯é ˜åŸŸã«é–¢ã™ã‚‹ãƒã‚§ãƒƒã‚¯
     323非タスクコンテキスト用のスタック領域に関するチェック
    347324#
    348325istkAddr = SYMBOL("_kernel_istk")
     
    350327  istk = PEEK(istkAddr, $sizeof_void_ptr)
    351328
    352   # 非タスクコンテキスト用のスタック領域のå
    353 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI3222ï¼½
     329  # 非タスクコンテキスト用のスタック領域の先頭番地のチェック[NGKI3222]
    354330  if (istk & ($CHECK_STACK_ALIGN - 1)) != 0
    355331    error_wrong("E_PAR", $cfgData[:DEF_ICS][1], :istk, "not aligned")
     
    361337
    362338#
    363 ã‚«ãƒ¼ãƒãƒ«ãŒå‰²ã‚Šä»˜ã‘るメモリ領域に関するチェック
     339カーネルが割り付けるメモリ領域に関するチェック
    364340#
    365341kmmAddr = SYMBOL("_kernel_kmm")
     
    367343  kmm = PEEK(kmmAddr, $sizeof_void_ptr)
    368344
    369   # カーネルが割り付けるメモリ領域のå
    370 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯
     345  # カーネルが割り付けるメモリ領域の先頭番地のチェック
    371346  if (kmm & ($CHECK_MB_ALIGN - 1)) != 0
    372347    error_wrong("E_PAR", $cfgData[:DEF_KMM][1], :kmm, "not aligned")
  • EcnlProtoTool/trunk/asp3_dcre/kernel/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  
    99 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    1010 *
    11  *  上記著作権è€
    12 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    13  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    14  *  変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    29  *      と.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *    (b) 再é
    35 å¸ƒã®å½¢æ
    36 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    37  *        報告すること.
    38  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    39  *      害からも,上記著作権è€
    40 ãŠã‚ˆã³TOPPERSプロジェクトをå
    41 è²¬ã™ã‚‹ã“と.
    42  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    43  *      由に基づく請求からも,上記著作権è€
    44 ãŠã‚ˆã³TOPPERSプロジェクトを
    45  *      å
    46 è²¬ã™ã‚‹ã“と.
    47  *
    48  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    49 ãŠ
    50  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    51  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    52  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    53  *  の責任を負わない.
     11 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     12 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     13 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16 *      スコード中に