Ignore:
Timestamp:
Jul 23, 2017, 2:29:40 PM (7 years ago)
Author:
coas-nagasima
Message:

SVNプロパティを設定

Location:
rubycfg_asp/trunk/asp_dcre/kernel
Files:
54 edited

Legend:

Unmodified
Added
Removed
  • rubycfg_asp/trunk/asp_dcre/kernel/Makefile.kernel

    • Property svn:mime-type changed from text/x-makefile to text/x-makefile; charset=UTF-8
    r313 r315  
    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: Makefile.kernel 2414 2012-09-05 21:32:05Z ertl-hiro $
     
    5742
    5843#
    59 #               ã‚«ãƒ¼ãƒãƒ«ã®ãƒ•ã‚¡ã‚¤ãƒ«æ§‹æˆã®å®šç¾©
     44#               カーネルのファイル構成の定義
    6045#
    6146
    6247#
    63 #  1つのソースファイルから複数のオブジェクトファイルを生成するように作
    64 æˆã•ã‚ŒãŸã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒªã‚¹ãƒˆ
     48#  1つのソースファイルから複数のオブジェクトファイルを生成するように作
     49成されたソースファイルのリスト
    6550#
    6651KERNEL_FCSRCS = startup.c task.c wait.c time_event.c \
     
    7156
    7257#
    73 å„ソースファイルから生成されるオブジェクトファイルのリスト
     58各ソースファイルから生成されるオブジェクトファイルのリスト
    7459#
    7560startup = sta_ker.o ext_ker.o kermem.o
     
    132117
    133118#
    134 ç”Ÿæˆã•ã‚Œã‚‹ã‚ªãƒ–ジェクトファイルの依存関係の定義
     119生成されるオブジェクトファイルの依存関係の定義
    135120#
    136121$(startup) $(startup:.o=.s) $(startup:.o=.d): startup.c
  • rubycfg_asp/trunk/asp_dcre/kernel/alarm.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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
     
    132117
    133118/*
    134  *  アラームハンドラの数
     119 *  アラームハンドラの数
    135120 */
    136121#define tnum_alm        ((uint_t)(tmax_almid - TMIN_ALMID + 1))
     
    138123
    139124/*
    140  *  アラームハンドラIDからアラームハンドラ管理ブロックを取り出すためのマクロ
     125 *  アラームハンドラIDからアラームハンドラ管理ブロックを取り出すためのマクロ
    141126 */
    142127#define INDEX_ALM(almid)        ((uint_t)((almid) - TMIN_ALMID))
     
    146131
    147132/*
    148  *  使用していないアラームハンドラ管理ブロックのリスト
     133 *  使用していないアラームハンドラ管理ブロックのリスト
    149134 *
    150  *  アラームハンドラ管理ブロックのå
    151 ˆé ­ã«ã¯ã‚­ãƒ¥ãƒ¼ã«ã¤ãªããŸã‚ã®é ˜åŸŸãŒãª
    152  *  いため,タイムイベントブロック(tmevtb)の領域を用いる.
     135 *  アラームハンドラ管理ブロックの先頭にはキューにつなぐための領域がな
     136 *  いため,タイムイベントブロック(tmevtb)の領域を用いる.
    153137 */
    154138QUEUE   free_almcb;
    155139
    156140/*
    157  *  アラームハンドラ機能の初期化
     141 *  アラームハンドラ機能の初期化
    158142 */
    159143void
     
    182166
    183167/*
    184  *  アラームハンドラの生成
     168 *  アラームハンドラの生成
    185169 */
    186170#ifdef TOPPERS_acre_alm
     
    224208
    225209/*
    226  *  アラームハンドラの削除
     210 *  アラームハンドラの削除
    227211 */
    228212#ifdef TOPPERS_del_alm
     
    268252
    269253/*
    270  *  アラームハンドラの動作開始
     254 *  アラームハンドラの動作開始
    271255 */
    272256#ifdef TOPPERS_sta_alm
     
    309293
    310294/*
    311  *  アラームハンドラの動作開始(非タスクコンテキスト用)
     295 *  アラームハンドラの動作開始(非タスクコンテキスト用)
    312296 */
    313297#ifdef TOPPERS_ista_alm
     
    350334
    351335/*
    352  *  アラームハンドラの動作停止
     336 *  アラームハンドラの動作停止
    353337 */
    354338#ifdef TOPPERS_stp_alm
     
    386370
    387371/*
    388  *  アラームハンドラの動作停止(非タスクコンテキスト用)
     372 *  アラームハンドラの動作停止(非タスクコンテキスト用)
    389373 */
    390374#ifdef TOPPERS_istp_alm
     
    422406
    423407/*
    424  *  アラームハンドラの状æ
    425 ‹å‚ç
    426 §
     408 *  アラームハンドラの状態参照
    427409 */
    428410#ifdef TOPPERS_ref_alm
     
    463445
    464446/*
    465  *  アラームハンドラ起動ルーチン
     447 *  アラームハンドラ起動ルーチン
    466448 */
    467449#ifdef TOPPERS_almcal
     
    473455
    474456        /*
    475          *  アラームハンドラを停止状æ
    476 ‹ã«ã™ã‚‹ï¼Ž
     457         *  アラームハンドラを停止状態にする.
    477458         */
    478459        p_almcb->almsta = false;
    479460
    480461        /*
    481          *  アラームハンドラを,CPUロック解除状æ
    482 ‹ã§å‘¼ã³å‡ºã™ï¼Ž
     462         *  アラームハンドラを,CPUロック解除状態で呼び出す.
    483463         */
    484464        saved_ipm = i_get_ipm();
  • rubycfg_asp/trunk/asp_dcre/kernel/alarm.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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 alarm_handler_initialization_block {
    72         ATR                     almatr;                 /* アラームハンドラ属性 */
    73         intptr_t        exinf;                  /* アラームハンドラの拡張æƒ
    74 å ± */
    75         ALMHDR          almhdr;                 /* アラームハンドラの起動番地 */
     57        ATR                     almatr;                 /* アラームハンドラ属性 */
     58        intptr_t        exinf;                  /* アラームハンドラの拡張情報 */
     59        ALMHDR          almhdr;                 /* アラームハンドラの起動番地 */
    7660} ALMINIB;
    7761
    7862/*
    79  *  アラームハンドラ管理ブロック
     63 *  アラームハンドラ管理ブロック
    8064 */
    8165typedef struct alarm_handler_control_block {
    82         const ALMINIB *p_alminib;       /* 初期化ブロックへのポインタ */
    83         bool_t          almsta;                 /* アラームハンドラの動作状æ
    84 ‹ */
    85         TMEVTB          tmevtb;                 /* タイムイベントブロック */
     66        const ALMINIB *p_alminib;       /* 初期化ブロックへのポインタ */
     67        bool_t          almsta;                 /* アラームハンドラの動作状態 */
     68        TMEVTB          tmevtb;                 /* タイムイベントブロック */
    8669} ALMCB;
    8770
    8871/*
    89  *  使用していないアラームハンドラ管理ブロックのリスト
     72 *  使用していないアラームハンドラ管理ブロックのリスト
    9073 */
    9174extern QUEUE    free_almcb;
    9275
    9376/*
    94  *  アラームハンドラIDの最大値(kernel_cfg.c)
     77 *  アラームハンドラIDの最大値(kernel_cfg.c)
    9578 */
    9679extern const ID tmax_almid;
     
    9881
    9982/*
    100  *  アラームハンドラ初期化ブロックのエリア(kernel_cfg.c)
     83 *  アラームハンドラ初期化ブロックのエリア(kernel_cfg.c)
    10184 */
    10285extern const ALMINIB    alminib_table[];
     
    10487
    10588/*
    106  *  アラームハンドラ管理ブロックのエリア(kernel_cfg.c)
     89 *  アラームハンドラ管理ブロックのエリア(kernel_cfg.c)
    10790 */
    10891extern ALMCB    almcb_table[];
    10992
    11093/*
    111  *  アラームハンドラ管理ブロックからアラームハンドラIDを取り出すための
    112  *  マクロ
     94 *  アラームハンドラ管理ブロックからアラームハンドラIDを取り出すための
     95 *  マクロ
    11396 */
    11497#define ALMID(p_almcb)  ((ID)(((p_almcb) - almcb_table) + TMIN_ALMID))
    11598
    11699/*
    117  *  アラームハンドラ機能の初期化
     100 *  アラームハンドラ機能の初期化
    118101 */
    119102extern void     initialize_alarm(void);
    120103
    121104/*
    122  *  アラームハンドラ起動ルーチン
     105 *  アラームハンドラ起動ルーチン
    123106 */
    124107extern void     call_almhdr(ALMCB *p_almcb);
  • rubycfg_asp/trunk/asp_dcre/kernel/alarm.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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: alarm.trb 588 2016-02-05 12:54:58Z ertl-hiro $
     
    5742
    5843#
    59 #               ã‚¢ãƒ©ãƒ¼ãƒ é€šçŸ¥æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     44#               アラーム通知機能の生成スクリプト
    6045#
    6146
     
    6651
    6752  def prepare(key, params)
    68     # almatrが無効の場合(E_RSATR)[NGKI2491ï¼½
    69     #(TA_STA以外のビットがセットされている場合)
     53    # almatrが無効の場合(E_RSATR)[NGKI2491]
     54    #(TA_STA以外のビットがセットされている場合)
    7055    if (params[:almatr] & ~($TA_STA)) != 0
    7156      error_illegal_id("E_RSATR", params, :almatr, :almid)
     
    7964
    8065#
    81 #  アラーム通知に関するæƒ
    82 å ±ã®ç”Ÿæˆ
     66#  アラーム通知に関する情報の生成
    8367#
    8468$kernelCfgC.comment_header("Alarm Handler Functions")
  • rubycfg_asp/trunk/asp_dcre/kernel/allfunc.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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
  • rubycfg_asp/trunk/asp_dcre/kernel/check.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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
     
    6449
    6550/*
    66  *  予約属性エラーのチェック(E_PAR)
     51 *  予約属性エラーのチェック(E_PAR)
    6752 */
    6853#define CHECK_RSATR(atr, valid_atr) do {                                        \
     
    7459
    7560/*
    76  *  優å
    77 ˆåº¦ã®ç¯„囲の判定
     61 *  優先度の範囲の判定
    7862 */
    7963#define VALID_TPRI(tpri)        (TMIN_TPRI <= (tpri) && (tpri) <= TMAX_TPRI)
     
    9276
    9377/*
    94  *  タスク優å
    95 ˆåº¦ã®ãƒã‚§ãƒƒã‚¯ï¼ˆE_PAR)
     78 *  タスク優先度のチェック(E_PAR)
    9679 */
    9780#define CHECK_TPRI(tpri) do {                                                           \
     
    117100
    118101/*
    119  *  データ優å
    120 ˆåº¦ã®ãƒã‚§ãƒƒã‚¯ï¼ˆE_PAR)
     102 *  データ優先度のチェック(E_PAR)
    121103 */
    122104#define CHECK_DPRI(dpri) do {                                                           \
     
    128110
    129111/*
    130  *  メッセージ優å
    131 ˆåº¦ã®ãƒã‚§ãƒƒã‚¯ï¼ˆE_PAR)
     112 *  メッセージ優先度のチェック(E_PAR)
    132113 */
    133114#define CHECK_MPRI(mpri) do {                                                           \
     
    139120
    140121/*
    141  *  割込みサービスルーチン優å
    142 ˆåº¦ã®ãƒã‚§ãƒƒã‚¯ï¼ˆE_PAR)
     122 *  割込みサービスルーチン優先度のチェック(E_PAR)
    143123 */
    144124#define CHECK_ISRPRI(isrpri) do {                                                       \
     
    150130
    151131/*
    152  *  タイムアウト指定値のチェック(E_PAR)
     132 *  タイムアウト指定値のチェック(E_PAR)
    153133 */
    154134#define CHECK_TMOUT(tmout) do {                                                         \
     
    160140
    161141/*
    162  *  割込み優å
    163 ˆåº¦ã®ãƒã‚§ãƒƒã‚¯ï¼ˆE_PAR)
     142 *  割込み優先度のチェック(E_PAR)
    164143 */
    165144#define CHECK_INTPRI_CHGIPM(intpri) do {                                        \
     
    171150
    172151/*
    173  *  割込み番号のチェック(E_PAR)
     152 *  割込み番号のチェック(E_PAR)
    174153 */
    175154#define CHECK_INTNO_CREISR(intno) do {                                          \
     
    188167
    189168/*
    190  *  アラインしているかの判定
     169 *  アラインしているかの判定
    191170 */
    192171#define ALIGNED(val, align)             ((((uintptr_t)(val)) & ((align) - 1U)) == 0U)
     
    223202
    224203/*
    225  *  NULLでないことのチェック
     204 *  NULLでないことのチェック
    226205 */
    227206#ifdef CHECK_FUNC_NONNULL
     
    232211
    233212/*
    234  *  関数のå
    235 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼ˆE_PAR)
     213 *  関数の先頭番地のチェック(E_PAR)
    236214 */
    237215#define CHECK_ALIGN_FUNC(func) do {                                                     \
     
    250228
    251229/*
    252  *  スタックサイズのチェック(E_PAR)
     230 *  スタックサイズのチェック(E_PAR)
    253231 */
    254232#define CHECK_ALIGN_STKSZ(stksz) do {                                           \
     
    260238
    261239/*
    262  *  スタックのå
    263 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼ˆE_PAR)
     240 *  スタックの先頭番地のチェック(E_PAR)
    264241 */
    265242#define CHECK_ALIGN_STACK(stack) do {                                           \
     
    271248
    272249/*
    273  *  固定長メモリプール領域のå
    274 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼ˆE_PAR)
     250 *  固定長メモリプール領域の先頭番地のチェック(E_PAR)
    275251 */
    276252#define CHECK_ALIGN_MPF(mpf) do {                                                       \
     
    282258
    283259/*
    284  *  管理領域のå
    285 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼ˆE_PAR)
     260 *  管理領域の先頭番地のチェック(E_PAR)
    286261 */
    287262#define CHECK_ALIGN_MB(mb) do {                                                         \
     
    293268
    294269/*
    295  *  その他のパラメータエラーのチェック(E_PAR)
     270 *  その他のパラメータエラーのチェック(E_PAR)
    296271 */
    297272#define CHECK_PAR(exp) do {                                                                     \
     
    303278
    304279/*
    305  *  オブジェクトIDの範囲の判定
     280 *  オブジェクトIDの範囲の判定
    306281 */
    307282#define VALID_TSKID(tskid)      (TMIN_TSKID <= (tskid) && (tskid) <= tmax_tskid)
     
    317292
    318293/*
    319  *  オブジェクトIDのチェック(E_ID)
     294 *  オブジェクトIDのチェック(E_ID)
    320295 */
    321296#define CHECK_TSKID(tskid) do {                                                         \
     
    397372
    398373/*
    399  *  呼出しコンテキストのチェック(E_CTX)
     374 *  呼出しコンテキストのチェック(E_CTX)
    400375 */
    401376#define CHECK_TSKCTX() do {                                                                     \
     
    414389
    415390/*
    416  *  呼出しコンテキストとCPUロック状æ
    417 ‹ã®ãƒã‚§ãƒƒã‚¯ï¼ˆE_CTX)
     391 *  呼出しコンテキストとCPUロック状態のチェック(E_CTX)
    418392 */
    419393#define CHECK_TSKCTX_UNL() do {                                                         \
     
    432406
    433407/*
    434  *  ディスパッチ保留状æ
    435 ‹ã§ãªã„かのチェック(E_CTX)
     408 *  ディスパッチ保留状態でないかのチェック(E_CTX)
    436409 */
    437410#define CHECK_DISPATCH() do {                                                           \
     
    443416
    444417/*
    445  *  その他のコンテキストエラーのチェック(E_CTX)
     418 *  その他のコンテキストエラーのチェック(E_CTX)
    446419 */
    447420#define CHECK_CTX(exp) do {                                                                     \
     
    453426
    454427/*
    455  *  自タスクを指定していないかのチェック(E_ILUSE)
     428 *  自タスクを指定していないかのチェック(E_ILUSE)
    456429 */
    457430#define CHECK_NONSELF(p_tcb) do {                                                       \
     
    463436
    464437/*
    465  *  その他の不正使用エラーのチェック(E_ILUSE)
     438 *  その他の不正使用エラーのチェック(E_ILUSE)
    466439 */
    467440#define CHECK_ILUSE(exp) do {                                                           \
     
    473446
    474447/*
    475  *  未サポート機能エラーのチェック(E_NOSPT)
     448 *  未サポート機能エラーのチェック(E_NOSPT)
    476449 */
    477450#define CHECK_NOSPT(exp) do {                                                           \
     
    483456
    484457/*
    485  *  静的なオブジェクト状æ
    486 ‹ã‚¨ãƒ©ãƒ¼ã®ãƒã‚§ãƒƒã‚¯ï¼ˆE_OBJ)
     458 *  静的なオブジェクト状態エラーのチェック(E_OBJ)
    487459 */
    488460#define CHECK_OBJ(exp) do {                                                                     \
  • rubycfg_asp/trunk/asp_dcre/kernel/cyclic.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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))
     
    128113
    129114/*
    130  *  周期ハンドラ起動のためのタイムイベントブロックの登録
     115 *  周期ハンドラ起動のためのタイムイベントブロックの登録
    131116 */
    132117Inline void
     
    141126
    142127/*
    143  *  使用していない周期ハンドラ管理ブロックのリスト
     128 *  使用していない周期ハンドラ管理ブロックのリスト
    144129 *
    145  *  周期ハンドラ管理ブロックのå
    146 ˆé ­ã«ã¯ã‚­ãƒ¥ãƒ¼ã«ã¤ãªããŸã‚ã®é ˜åŸŸãŒãªã„た
    147  *  め,タイムイベントブロック(tmevtb)の領域を用いる.
     130 *  周期ハンドラ管理ブロックの先頭にはキューにつなぐための領域がないた
     131 *  め,タイムイベントブロック(tmevtb)の領域を用いる.
    148132 */
    149133QUEUE   free_cyccb;
    150134
    151135/*
    152  *  周期ハンドラ機能の初期化
     136 *  周期ハンドラ機能の初期化
    153137 */
    154138void
     
    183167
    184168/*
    185  *  周期ハンドラの生成
     169 *  周期ハンドラの生成
    186170 */
    187171#ifdef TOPPERS_acre_cyc
     
    236220
    237221/*
    238  *  周期ハンドラの削除
     222 *  周期ハンドラの削除
    239223 */
    240224#ifdef TOPPERS_del_cyc
     
    280264
    281265/*
    282  *  周期ハンドラの動作開始
     266 *  周期ハンドラの動作開始
    283267 */
    284268#ifdef TOPPERS_sta_cyc
     
    319303
    320304/*
    321  *  周期ハンドラの動作停止
     305 *  周期ハンドラの動作停止
    322306 */
    323307#ifdef TOPPERS_stp_cyc
     
    355339
    356340/*
    357  *  周期ハンドラの状æ
    358 ‹å‚ç
    359 §
     341 *  周期ハンドラの状態参照
    360342 */
    361343#ifdef TOPPERS_ref_cyc
     
    396378
    397379/*
    398  *  周期ハンドラ起動ルーチン
     380 *  周期ハンドラ起動ルーチン
    399381 */
    400382#ifdef TOPPERS_cyccal
     
    406388
    407389        /*
    408          *  次回の起動のためのタイムイベントブロックを登録する.
     390         *  次回の起動のためのタイムイベントブロックを登録する.
    409391         *
    410          *  同じタイムティックで周期ハンドラを再度起動すべき場合には,この
    411          *  関数からsignal_timeに戻った後に,再度この関数が呼ばれることにな
    412          *  る.
     392         *  同じタイムティックで周期ハンドラを再度起動すべき場合には,この
     393         *  関数からsignal_timeに戻った後に,再度この関数が呼ばれることにな
     394         *  る.
    413395         */
    414396        tmevtb_enqueue_cyc(p_cyccb, p_cyccb->evttim + p_cyccb->p_cycinib->cyctim);
    415397
    416398        /*
    417          *  周期ハンドラを,CPUロック解除状æ
    418 ‹ã§å‘¼ã³å‡ºã™ï¼Ž
     399         *  周期ハンドラを,CPUロック解除状態で呼び出す.
    419400         */
    420401        saved_ipm = i_get_ipm();
  • rubycfg_asp/trunk/asp_dcre/kernel/cyclic.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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 cyclic_handler_initialization_block {
    72         ATR                     cycatr;                 /* 周期ハンドラ属性 */
    73         intptr_t        exinf;                  /* 周期ハンドラの拡張æƒ
    74 å ± */
    75         CYCHDR          cychdr;                 /* 周期ハンドラの起動番地 */
    76         RELTIM          cyctim;                 /* 周期ハンドラの起動周期 */
    77         RELTIM          cycphs;                 /* 周期ハンドラの起動位相 */
     57        ATR                     cycatr;                 /* 周期ハンドラ属性 */
     58        intptr_t        exinf;                  /* 周期ハンドラの拡張情報 */
     59        CYCHDR          cychdr;                 /* 周期ハンドラの起動番地 */
     60        RELTIM          cyctim;                 /* 周期ハンドラの起動周期 */
     61        RELTIM          cycphs;                 /* 周期ハンドラの起動位相 */
    7862} CYCINIB;
    7963
    8064/*
    81  *  周期ハンドラ管理ブロック
     65 *  周期ハンドラ管理ブロック
    8266 */
    8367typedef struct cyclic_handler_control_block {
    84         const CYCINIB *p_cycinib;       /* 初期化ブロックへのポインタ */
    85         bool_t          cycsta;                 /* 周期ハンドラの動作状æ
    86 ‹ */
    87         EVTTIM          evttim;                 /* 次に周期ハンドラを起動する時刻 */
    88         TMEVTB          tmevtb;                 /* タイムイベントブロック */
     68        const CYCINIB *p_cycinib;       /* 初期化ブロックへのポインタ */
     69        bool_t          cycsta;                 /* 周期ハンドラの動作状態 */
     70        EVTTIM          evttim;                 /* 次に周期ハンドラを起動する時刻 */
     71        TMEVTB          tmevtb;                 /* タイムイベントブロック */
    8972} CYCCB;
    9073
    9174/*
    92  *  使用していない周期ハンドラ管理ブロックのリスト
     75 *  使用していない周期ハンドラ管理ブロックのリスト
    9376 */
    9477extern QUEUE    free_cyccb;
    9578
    9679/*
    97  *  周期ハンドラIDの最大値(kernel_cfg.c)
     80 *  周期ハンドラIDの最大値(kernel_cfg.c)
    9881 */
    9982extern const ID tmax_cycid;
     
    10184
    10285/*
    103  *  周期ハンドラ初期化ブロックのエリア(kernel_cfg.c)
     86 *  周期ハンドラ初期化ブロックのエリア(kernel_cfg.c)
    10487 */
    10588extern const CYCINIB    cycinib_table[];
     
    10790
    10891/*
    109  *  周期ハンドラ管理ブロックのエリア(kernel_cfg.c)
     92 *  周期ハンドラ管理ブロックのエリア(kernel_cfg.c)
    11093 */
    11194extern CYCCB    cyccb_table[];
    11295
    11396/*
    114  *  周期ハンドラ管理ブロックから周期ハンドラIDを取り出すためのマクロ
     97 *  周期ハンドラ管理ブロックから周期ハンドラIDを取り出すためのマクロ
    11598 */
    11699#define CYCID(p_cyccb)  ((ID)(((p_cyccb) - cyccb_table) + TMIN_CYCID))
    117100
    118101/*
    119  *  周期ハンドラ機能の初期化
     102 *  周期ハンドラ機能の初期化
    120103 */
    121104extern void     initialize_cyclic(void);
    122105
    123106/*
    124  *  周期ハンドラ起動ルーチン
     107 *  周期ハンドラ起動ルーチン
    125108 */
    126109extern void     call_cychdr(CYCCB *p_cyccb);
  • rubycfg_asp/trunk/asp_dcre/kernel/cyclic.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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: cyclic.trb 588 2016-02-05 12:54:58Z ertl-hiro $
     
    5742
    5843#
    59 #               å‘¨æœŸé€šçŸ¥æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     44#               周期通知機能の生成スクリプト
    6045#
    6146
     
    6651
    6752  def prepare(key, params)
    68     # cycatrが無効の場合(E_RSATR)[NGKI2383ï¼½
    69     #(TA_STA以外のビットがセットされている場合)
     53    # cycatrが無効の場合(E_RSATR)[NGKI2383]
     54    #(TA_STA以外のビットがセットされている場合)
    7055    if (params[:cycatr] & ~($TA_STA)) != 0
    7156      error_illegal_id("E_RSATR", params, :cycatr, :cycid)
    7257    end
    7358
    74     # (0 < cyctim && cyctim <= TMAX_RELTIM)でない場合(E_PAR)[NGKI2397ï¼½
     59    # (0 < cyctim && cyctim <= TMAX_RELTIM)でない場合(E_PAR)[NGKI2397]
    7560    if !(0 < params[:cyctim] && params[:cyctim] <= $TMAX_RELTIM)
    7661      error_illegal_id("E_PAR", params, :cyctim, :cycid)
    7762    end
    7863
    79     # (0 <= cycphs && cycphs <= TMAX_RELTIM)でない場合(E_PAR)[NGKI2399ï¼½
     64    # (0 <= cycphs && cycphs <= TMAX_RELTIM)でない場合(E_PAR)[NGKI2399]
    8065    if !(0 <= params[:cycphs] && params[:cycphs] <= $TMAX_RELTIM)
    8166      error_illegal_id("E_PAR", params, :cycphs, :cycid)
     
    8974
    9075#
    91 #  周期通知に関するæƒ
    92 å ±ã®ç”Ÿæˆ
     76#  周期通知に関する情報の生成
    9377#
    9478$kernelCfgC.comment_header("Cyclic Handler Functions")
  • rubycfg_asp/trunk/asp_dcre/kernel/dataqueue.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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
     
    174159
    175160/*
    176  *  データキューの数
     161 *  データキューの数
    177162 */
    178163#define tnum_dtq        ((uint_t)(tmax_dtqid - TMIN_DTQID + 1))
     
    180165
    181166/*
    182  *  データキューIDからデータキュー管理ブロックを取り出すためのマクロ
     167 *  データキューIDからデータキュー管理ブロックを取り出すためのマクロ
    183168 */
    184169#define INDEX_DTQ(dtqid)        ((uint_t)((dtqid) - TMIN_DTQID))
     
    188173
    189174/*
    190  *  使用していないデータキュー管理ブロックのリスト
     175 *  使用していないデータキュー管理ブロックのリスト
    191176 */
    192177QUEUE   free_dtqcb;
    193178
    194179/*
    195  *  データキュー機能の初期化
     180 *  データキュー機能の初期化
    196181 */
    197182void
     
    224209
    225210/*
    226  *  データキュー管理領域へのデータの格納
     211 *  データキュー管理領域へのデータの格納
    227212 */
    228213#ifdef TOPPERS_dtqenq
     
    242227
    243228/*
    244  *  データキュー管理領域へのデータの強制格納
     229 *  データキュー管理領域へのデータの強制格納
    245230 */
    246231#ifdef TOPPERS_dtqfenq
     
    265250
    266251/*
    267  *  データキュー管理領域からのデータの取出し
     252 *  データキュー管理領域からのデータの取出し
    268253 */
    269254#ifdef TOPPERS_dtqdeq
     
    283268
    284269/*
    285  *  データキューへのデータ送信
     270 *  データキューへのデータ送信
    286271 */
    287272#ifdef TOPPERS_dtqsnd
     
    311296
    312297/*
    313  *  データキューへのデータ強制送信
     298 *  データキューへのデータ強制送信
    314299 */
    315300#ifdef TOPPERS_dtqfsnd
     
    334319
    335320/*
    336  *  データキューからのデータ受信
     321 *  データキューからのデータ受信
    337322 */
    338323#ifdef TOPPERS_dtqrcv
     
    371356
    372357/*
    373  *  データキューの生成
     358 *  データキューの生成
    374359 */
    375360#ifdef TOPPERS_acre_dtq
     
    430415
    431416/*
    432  *  データキューの削除
     417 *  データキューの削除
    433418 */
    434419#ifdef TOPPERS_del_dtq
     
    480465
    481466/*
    482  *  データキューへの送信
     467 *  データキューへの送信
    483468 */
    484469#ifdef TOPPERS_snd_dtq
     
    524509
    525510/*
    526  *  データキューへの送信(ポーリング)
     511 *  データキューへの送信(ポーリング)
    527512 */
    528513#ifdef TOPPERS_psnd_dtq
     
    563548
    564549/*
    565  *  データキューへの送信(ポーリング,非タスクコンテキスト用)
     550 *  データキューへの送信(ポーリング,非タスクコンテキスト用)
    566551 */
    567552#ifdef TOPPERS_ipsnd_dtq
     
    602587
    603588/*
    604  *  データキューへの送信(タイムアウトあり)
     589 *  データキューへの送信(タイムアウトあり)
    605590 */
    606591#ifdef TOPPERS_tsnd_dtq
     
    652637
    653638/*
    654  *  データキューへの強制送信
     639 *  データキューへの強制送信
    655640 */
    656641#ifdef TOPPERS_fsnd_dtq
     
    690675
    691676/*
    692  *  データキューへの強制送信(非タスクコンテキスト用)
     677 *  データキューへの強制送信(非タスクコンテキスト用)
    693678 */
    694679#ifdef TOPPERS_ifsnd_dtq
     
    728713
    729714/*
    730  *  データキューからの受信
     715 *  データキューからの受信
    731716 */
    732717#ifdef TOPPERS_rcv_dtq
     
    777762
    778763/*
    779  *  データキューからの受信(ポーリング)
     764 *  データキューからの受信(ポーリング)
    780765 */
    781766#ifdef TOPPERS_prcv_dtq
     
    816801
    817802/*
    818  *  データキューからの受信(タイムアウトあり)
     803 *  データキューからの受信(タイムアウトあり)
    819804 */
    820805#ifdef TOPPERS_trcv_dtq
     
    870855
    871856/*
    872  *  データキューの再初期化
     857 *  データキューの再初期化
    873858 */
    874859#ifdef TOPPERS_ini_dtq
     
    913898
    914899/*
    915  *  データキューの状æ
    916 ‹å‚ç
    917 §
     900 *  データキューの状態参照
    918901 */
    919902#ifdef TOPPERS_ref_dtq
  • rubycfg_asp/trunk/asp_dcre/kernel/dataqueue.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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 */
    7055typedef struct data_management_block {
    71         intptr_t        data;                   /* データ本体 */
     56        intptr_t        data;                   /* データ本体 */
    7257} DTQMB;
    7358
    7459/*
    75  *  データキュー初期化ブロック
     60 *  データキュー初期化ブロック
    7661 *
    77  *  この構造体は,同期・通信オブジェクトの初期化ブロックのå
    78 ±é€šéƒ¨åˆ†
    79  *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
    80  *  最初のフィールドがå
    81 ±é€šã«ãªã£ã¦ã„る.
     62 *  この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分
     63 *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
     64 *  最初のフィールドが共通になっている.
    8265 */
    8366typedef struct dataqueue_initialization_block {
    84         ATR                     dtqatr;                 /* データキュー属性 */
    85         uint_t          dtqcnt;                 /* データキューの容量 */
    86         DTQMB           *p_dtqmb;               /* データキュー管理領域のå
    87 ˆé ­ç•ªåœ° */
     67        ATR                     dtqatr;                 /* データキュー属性 */
     68        uint_t          dtqcnt;                 /* データキューの容量 */
     69        DTQMB           *p_dtqmb;               /* データキュー管理領域の先頭番地 */
    8870} DTQINIB;
    8971
    9072/*
    91  *  データキュー管理ブロック
     73 *  データキュー管理ブロック
    9274 *
    93  *  この構造体は,同期・通信オブジェクトの管理ブロックのå
    94 ±é€šéƒ¨åˆ†ï¼ˆWOBJCB)
    95  *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
    96  *  フィールドがå
    97 ±é€šã«ãªã£ã¦ã„る.
     75 *  この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB)
     76 *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
     77 *  フィールドが共通になっている.
    9878 */
    9979typedef struct dataqueue_control_block {
    100         QUEUE           swait_queue;    /* データキュー送信å¾
    101 ã¡ã‚­ãƒ¥ãƒ¼ */
    102         const DTQINIB *p_dtqinib;       /* 初期化ブロックへのポインタ */
    103         QUEUE           rwait_queue;    /* データキュー受信å¾
    104 ã¡ã‚­ãƒ¥ãƒ¼ */
    105         uint_t          count;                  /* データキュー中のデータの数 */
    106         uint_t          head;                   /* 最初のデータの格納場所 */
    107         uint_t          tail;                   /* 最後のデータの格納場所の次 */
     80        QUEUE           swait_queue;    /* データキュー送信待ちキュー */
     81        const DTQINIB *p_dtqinib;       /* 初期化ブロックへのポインタ */
     82        QUEUE           rwait_queue;    /* データキュー受信待ちキュー */
     83        uint_t          count;                  /* データキュー中のデータの数 */
     84        uint_t          head;                   /* 最初のデータの格納場所 */
     85        uint_t          tail;                   /* 最後のデータの格納場所の次 */
    10886} DTQCB;
    10987
    11088/*
    111  *  データキューå¾
    112 ã¡æƒ
    113 å ±ãƒ–ロックの定義
     89 *  データキュー待ち情報ブロックの定義
    11490 *
    115  *  この構造体は,同期・通信オブジェクトのå¾
    116 ã¡æƒ
    117 å ±ãƒ–ロックのå
    118 ±é€šéƒ¨åˆ†
    119  *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
    120  *  最初の2つのフィールドがå
    121 ±é€šã«ãªã£ã¦ã„る.
    122  *  データキューへの送信å¾
    123 ã¡ã¨ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‹ã‚‰ã®å—ä¿¡å¾
    124 ã¡ã§ï¼ŒåŒã˜å¾
    125 ã¡æƒ
    126 
    127  *  報ブロックを使う.
     91 *  この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分
     92 *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
     93 *  最初の2つのフィールドが共通になっている.
     94 *  データキューへの送信待ちとデータキューからの受信待ちで,同じ待ち情
     95 *  報ブロックを使う.
    12896 */
    12997typedef struct dataqueue_waiting_information {
    130         WINFO           winfo;                  /* 標準のå¾
    131 ã¡æƒ
    132 å ±ãƒ–ロック */
    133         DTQCB           *p_dtqcb;               /* å¾
    134 ã£ã¦ã„るデータキューの管理ブロック */
    135         intptr_t        data;                   /* 送受信データ */
     98        WINFO           winfo;                  /* 標準の待ち情報ブロック */
     99        DTQCB           *p_dtqcb;               /* 待っているデータキューの管理ブロック */
     100        intptr_t        data;                   /* 送受信データ */
    136101} WINFO_DTQ;
    137102
    138103/*
    139  *  使用していないデータキュー管理ブロックのリスト
     104 *  使用していないデータキュー管理ブロックのリスト
    140105 */
    141106extern QUEUE    free_dtqcb;
    142107
    143108/*
    144  *  データキューIDの最大値(kernel_cfg.c)
     109 *  データキューIDの最大値(kernel_cfg.c)
    145110 */
    146111extern const ID tmax_dtqid;
     
    148113
    149114/*
    150  *  データキュー初期化ブロックのエリア(kernel_cfg.c)
     115 *  データキュー初期化ブロックのエリア(kernel_cfg.c)
    151116 */
    152117extern const DTQINIB    dtqinib_table[];
     
    154119
    155120/*
    156  *  データキュー管理ブロックのエリア(kernel_cfg.c)
     121 *  データキュー管理ブロックのエリア(kernel_cfg.c)
    157122 */
    158123extern DTQCB    dtqcb_table[];
    159124
    160125/*
    161  *  データキュー管理ブロックからデータキューIDを取り出すためのマクロ
     126 *  データキュー管理ブロックからデータキューIDを取り出すためのマクロ
    162127 */
    163128#define DTQID(p_dtqcb)  ((ID)(((p_dtqcb) - dtqcb_table) + TMIN_DTQID))
    164129
    165130/*
    166  *  データキュー機能の初期化
     131 *  データキュー機能の初期化
    167132 */
    168133extern void     initialize_dataqueue(void);
    169134
    170135/*
    171  *  データキュー管理領域へのデータの格納
     136 *  データキュー管理領域へのデータの格納
    172137 */
    173138extern void     enqueue_data(DTQCB *p_dtqcb, intptr_t data);
    174139
    175140/*
    176  *  データキュー管理領域へのデータの強制格納
     141 *  データキュー管理領域へのデータの強制格納
    177142 */
    178143extern void     force_enqueue_data(DTQCB *p_dtqcb, intptr_t data);
    179144
    180145/*
    181  *  データキュー管理領域からのデータの取出し
     146 *  データキュー管理領域からのデータの取出し
    182147 */
    183148extern void     dequeue_data(DTQCB *p_dtqcb, intptr_t *p_data);
    184149
    185150/*
    186  *  データキューへのデータ送信
     151 *  データキューへのデータ送信
    187152 */
    188153extern bool_t   send_data(DTQCB *p_dtqcb, intptr_t data, bool_t *p_dspreq);
    189154
    190155/*
    191  *  データキューへのデータ強制送信
     156 *  データキューへのデータ強制送信
    192157 */
    193158extern bool_t   force_send_data(DTQCB *p_dtqcb, intptr_t data);
    194159
    195160/*
    196  *  データキューからのデータ受信
     161 *  データキューからのデータ受信
    197162 */
    198163extern bool_t   receive_data(DTQCB *p_dtqcb, intptr_t *p_data,
  • rubycfg_asp/trunk/asp_dcre/kernel/dataqueue.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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: dataqueue.trb 668 2016-03-03 13:57:53Z ertl-hiro $
     
    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")
  • rubycfg_asp/trunk/asp_dcre/kernel/eventflag.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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
     
    150135
    151136/*
    152  *  イベントフラグの数
     137 *  イベントフラグの数
    153138 */
    154139#define tnum_flg        ((uint_t)(tmax_flgid - TMIN_FLGID + 1))
     
    156141
    157142/*
    158  *  イベントフラグIDからイベントフラグ管理ブロックを取り出すためのマクロ
     143 *  イベントフラグIDからイベントフラグ管理ブロックを取り出すためのマクロ
    159144 */
    160145#define INDEX_FLG(flgid)        ((uint_t)((flgid) - TMIN_FLGID))
     
    164149
    165150/*
    166  *  使用していないイベントフラグ管理ブロックのリスト
     151 *  使用していないイベントフラグ管理ブロックのリスト
    167152 */
    168153QUEUE   free_flgcb;
    169154
    170155/*
    171  *  イベントフラグ機能の初期化
     156 *  イベントフラグ機能の初期化
    172157 */
    173158void
     
    197182
    198183/*
    199  *  イベントフラグå¾
    200 ã¡è§£é™¤æ¡ä»¶ã®ãƒã‚§ãƒƒã‚¯
     184 *  イベントフラグ待ち解除条件のチェック
    201185 */
    202186#ifdef TOPPERS_flgcnd
     
    219203
    220204/*
    221  *  イベントフラグの生成
     205 *  イベントフラグの生成
    222206 */
    223207#ifdef TOPPERS_acre_flg
     
    258242
    259243/*
    260  *  イベントフラグの削除
     244 *  イベントフラグの削除
    261245 */
    262246#ifdef TOPPERS_del_flg
     
    302286
    303287/*
    304  *  イベントフラグのセット
     288 *  イベントフラグのセット
    305289 */
    306290#ifdef TOPPERS_set_flg
     
    358342
    359343/*
    360  *  イベントフラグのセット(非タスクコンテキスト用)
     344 *  イベントフラグのセット(非タスクコンテキスト用)
    361345 */
    362346#ifdef TOPPERS_iset_flg
     
    410394
    411395/*
    412  *  イベントフラグのクリア
     396 *  イベントフラグのクリア
    413397 */
    414398#ifdef TOPPERS_clr_flg
     
    443427
    444428/*
    445  *  イベントフラグå¾
    446 ã¡
     429 *  イベントフラグ待ち
    447430 */
    448431#ifdef TOPPERS_wai_flg
     
    494477
    495478/*
    496  *  イベントフラグå¾
    497 ã¡ï¼ˆãƒãƒ¼ãƒªãƒ³ã‚°ï¼‰
     479 *  イベントフラグ待ち(ポーリング)
    498480 */
    499481#ifdef TOPPERS_pol_flg
     
    536518
    537519/*
    538  *  イベントフラグå¾
    539 ã¡ï¼ˆã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã‚り)
     520 *  イベントフラグ待ち(タイムアウトあり)
    540521 */
    541522#ifdef TOPPERS_twai_flg
     
    593574
    594575/*
    595  *  イベントフラグの再初期化
     576 *  イベントフラグの再初期化
    596577 */
    597578#ifdef TOPPERS_ini_flg
     
    631612
    632613/*
    633  *  イベントフラグの状æ
    634 ‹å‚ç
    635 §
     614 *  イベントフラグの状態参照
    636615 */
    637616#ifdef TOPPERS_ref_flg
  • rubycfg_asp/trunk/asp_dcre/kernel/eventflag.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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 *
    70  *  この構造体は,同期・通信オブジェクトの初期化ブロックのå
    71 ±é€šéƒ¨åˆ†
    72  *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
    73  *  最初のフィールドがå
    74 ±é€šã«ãªã£ã¦ã„る.
     55 *  この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分
     56 *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
     57 *  最初のフィールドが共通になっている.
    7558 */
    7659typedef struct eventflag_initialization_block {
    77         ATR                     flgatr;                 /* イベントフラグ属性 */
    78         FLGPTN          iflgptn;                /* イベントフラグのビットパターンの初期値 */
     60        ATR                     flgatr;                 /* イベントフラグ属性 */
     61        FLGPTN          iflgptn;                /* イベントフラグのビットパターンの初期値 */
    7962} FLGINIB;
    8063
    8164/*
    82  *  イベントフラグ管理ブロック
     65 *  イベントフラグ管理ブロック
    8366 *
    84  *  この構造体は,同期・通信オブジェクトの管理ブロックのå
    85 ±é€šéƒ¨åˆ†ï¼ˆWOBJCB)
    86  *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
    87  *  フィールドがå
    88 ±é€šã«ãªã£ã¦ã„る.
     67 *  この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB)
     68 *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
     69 *  フィールドが共通になっている.
    8970 */
    9071typedef struct eventflag_control_block {
    91         QUEUE           wait_queue;             /* イベントフラグå¾
    92 ã¡ã‚­ãƒ¥ãƒ¼ */
    93         const FLGINIB *p_flginib;       /* 初期化ブロックへのポインタ */
    94         FLGPTN          flgptn;                 /* イベントフラグ現在パターン */
     72        QUEUE           wait_queue;             /* イベントフラグ待ちキュー */
     73        const FLGINIB *p_flginib;       /* 初期化ブロックへのポインタ */
     74        FLGPTN          flgptn;                 /* イベントフラグ現在パターン */
    9575} FLGCB;
    9676
    9777/*
    98  *  イベントフラグå¾
    99 ã¡æƒ
    100 å ±ãƒ–ロックの定義
     78 *  イベントフラグ待ち情報ブロックの定義
    10179 *
    102  *  この構造体は,同期・通信オブジェクトのå¾
    103 ã¡æƒ
    104 å ±ãƒ–ロックのå
    105 ±é€šéƒ¨åˆ†
    106  *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
    107  *  最初の2つのフィールドがå
    108 ±é€šã«ãªã£ã¦ã„る.
     80 *  この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分
     81 *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
     82 *  最初の2つのフィールドが共通になっている.
    10983 *
    110  *  flgptnは,waiptnおよびwfmodeと同時に使うことはないため,å
    111 ±ç”¨ä½“を使
    112  *  えばメモリを節約することが可能である.
     84 *  flgptnは,waiptnおよびwfmodeと同時に使うことはないため,共用体を使
     85 *  えばメモリを節約することが可能である.
    11386 */
    11487typedef struct eventflag_waiting_information {
    115         WINFO           winfo;                  /* 標準のå¾
    116 ã¡æƒ
    117 å ±ãƒ–ロック */
    118         FLGCB           *p_flgcb;               /* å¾
    119 ã£ã¦ã„るイベントフラグの管理ブロック */
    120         FLGPTN          waiptn;                 /* å¾
    121 ã¡ãƒ‘ターン */
    122         MODE            wfmode;                 /* å¾
    123 ã¡ãƒ¢ãƒ¼ãƒ‰ */
    124         FLGPTN          flgptn;                 /* å¾
    125 ã¡è§£é™¤æ™‚のパターン */
     88        WINFO           winfo;                  /* 標準の待ち情報ブロック */
     89        FLGCB           *p_flgcb;               /* 待っているイベントフラグの管理ブロック */
     90        FLGPTN          waiptn;                 /* 待ちパターン */
     91        MODE            wfmode;                 /* 待ちモード */
     92        FLGPTN          flgptn;                 /* 待ち解除時のパターン */
    12693} WINFO_FLG;
    12794
    12895/*
    129  *  使用していないイベントフラグ管理ブロックのリスト
     96 *  使用していないイベントフラグ管理ブロックのリスト
    13097 */
    13198extern QUEUE    free_flgcb;
    13299
    133100/*
    134  *  イベントフラグIDの最大値(kernel_cfg.c)
     101 *  イベントフラグIDの最大値(kernel_cfg.c)
    135102 */
    136103extern const ID tmax_flgid;
     
    138105
    139106/*
    140  *  イベントフラグ初期化ブロックのエリア(kernel_cfg.c)
     107 *  イベントフラグ初期化ブロックのエリア(kernel_cfg.c)
    141108 */
    142109extern const FLGINIB    flginib_table[];
     
    144111
    145112/*
    146  *  イベントフラグ管理ブロックのエリア(kernel_cfg.c)
     113 *  イベントフラグ管理ブロックのエリア(kernel_cfg.c)
    147114 */
    148115extern FLGCB    flgcb_table[];
    149116
    150117/*
    151  *  イベントフラグ管理ブロックからイベントフラグIDを取り出すためのマクロ
     118 *  イベントフラグ管理ブロックからイベントフラグIDを取り出すためのマクロ
    152119 */
    153120#define FLGID(p_flgcb)  ((ID)(((p_flgcb) - flgcb_table) + TMIN_FLGID))
    154121
    155122/*
    156  *  イベントフラグ機能の初期化
     123 *  イベントフラグ機能の初期化
    157124 */
    158125extern void     initialize_eventflag(void);
    159126
    160127/*
    161  *  イベントフラグå¾
    162 ã¡è§£é™¤æ¡ä»¶ã®ãƒã‚§ãƒƒã‚¯
     128 *  イベントフラグ待ち解除条件のチェック
    163129 */
    164130extern bool_t   check_flg_cond(FLGCB *p_flgcb, FLGPTN waiptn,
  • rubycfg_asp/trunk/asp_dcre/kernel/eventflag.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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: eventflag.trb 588 2016-02-05 12:54:58Z ertl-hiro $
     
    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")
  • rubycfg_asp/trunk/asp_dcre/kernel/exception.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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
     
    8469
    8570/*
    86  *  CPU例外ハンドラ管理機能の初期化
     71 *  CPU例外ハンドラ管理機能の初期化
    8772 */
    8873#ifdef TOPPERS_excini
     
    10590
    10691/*
    107  *  CPU例外の発生したコンテキストの参ç
    108 §
     92 *  CPU例外の発生したコンテキストの参照
    10993 */
    11094
    11195/*
    112  *  CPU例外発生時のディスパッチ保留状æ
    113 ‹ã®å‚ç
    114 §
     96 *  CPU例外発生時のディスパッチ保留状態の参照
    11597 *
    116  *  CPU例外ハンドラ中でdisdspが変化することはないため,CPU例外が発生し
    117  *  た時のdisdspを保存しておくå¿
    118 è¦ã¯ãªã„.
     98 *  CPU例外ハンドラ中でdisdspが変化することはないため,CPU例外が発生し
     99 *  た時のdisdspを保存しておく必要はない.
    119100 */
    120101#ifdef TOPPERS_xsns_dpn
     
    135116
    136117/*
    137  *  CPU例外発生時のタスク例外処理保留状æ
    138 ‹ã®å‚ç
    139 §
     118 *  CPU例外発生時のタスク例外処理保留状態の参照
    140119 *
    141  *  CPU例外ハンドラ中でp_runtskとp_runtsk->enatexが変化することはない
    142  *  ため,CPU例外が発生した時のp_runtsk->enatexを保存しておくå¿
    143 è¦ã¯ãª
    144  *  い.
     120 *  CPU例外ハンドラ中でp_runtskとp_runtsk->enatexが変化することはない
     121 *  ため,CPU例外が発生した時のp_runtsk->enatexを保存しておく必要はな
     122 *  い.
    145123 */
    146124#ifdef TOPPERS_xsns_xpn
  • rubycfg_asp/trunk/asp_dcre/kernel/exception.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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
     
    6651
    6752/*
    68  *  CPU例外ハンドラ初期化ブロック
     53 *  CPU例外ハンドラ初期化ブロック
    6954 */
    7055typedef struct cpu_exception_handler_initialization_block {
    71         EXCNO           excno;                  /* CPU例外ハンドラ番号 */
    72         ATR                     excatr;                 /* CPU例外ハンドラ属性 */
    73         FP                      exc_entry;              /* CPU例外ハンドラの出å
    74 ¥å£å‡¦ç†ã®ç•ªåœ° */
     56        EXCNO           excno;                  /* CPU例外ハンドラ番号 */
     57        ATR                     excatr;                 /* CPU例外ハンドラ属性 */
     58        FP                      exc_entry;              /* CPU例外ハンドラの出入口処理の番地 */
    7559} EXCINIB;
    7660
    7761/*
    78  *  CPU例外ハンドラ番号の数(kernel_cfg.c)
     62 *  CPU例外ハンドラ番号の数(kernel_cfg.c)
    7963 */
    8064extern const uint_t     tnum_excno;
    8165
    8266/*
    83  *  CPU例外ハンドラ初期化ブロックのエリア(kernel_cfg.c)
     67 *  CPU例外ハンドラ初期化ブロックのエリア(kernel_cfg.c)
    8468 */
    8569extern const EXCINIB    excinib_table[];
     
    8872
    8973/*
    90  *  CPU例外ハンドラ管理機能の初期化
     74 *  CPU例外ハンドラ管理機能の初期化
    9175 */
    9276extern void     initialize_exception(void);
  • rubycfg_asp/trunk/asp_dcre/kernel/exception.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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: exception.trb 663 2016-02-27 04:45:50Z ertl-hiro $
     
    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_EXCNO] = {")
     
    122106
    123107#
    124 #  CPU例外管理機能初期化関数の追加
     108#  CPU例外管理機能初期化関数の追加
    125109#
    126110$initializeFunctions.push("_kernel_initialize_exception();")
  • rubycfg_asp/trunk/asp_dcre/kernel/genoffset.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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#
    5439#   $Id: genoffset.trb 662 2016-02-27 02:33:51Z ertl-hiro $
     
    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)
  • rubycfg_asp/trunk/asp_dcre/kernel/interrupt.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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) + tnum_sisr)
    130115
    131116/*
    132  *  割込みサービスルーチンIDから割込みサービスルーチン管理ブロックを取
    133  *  り出すためのマクロ
     117 *  割込みサービスルーチンIDから割込みサービスルーチン管理ブロックを取
     118 *  り出すためのマクロ
    134119 */
    135120#define INDEX_ISR(isrid)        ((uint_t)((isrid) - TMIN_ISRID) + tnum_sisr)
     
    137122
    138123/*
    139  *  割込みサービスルーチンキューへの登録
     124 *  割込みサービスルーチンキューへの登録
    140125 */
    141126Inline void
     
    157142
    158143/*
    159  *  使用していない割込みサービスルーチン管理ブロックのリスト
     144 *  使用していない割込みサービスルーチン管理ブロックのリスト
    160145 */
    161146QUEUE   free_isrcb;
    162147
    163148/*
    164  *  割込みサービスルーチン機能の初期化
     149 *  割込みサービスルーチン機能の初期化
    165150 */
    166151void
     
    192177
    193178/*
    194  *  割込みサービスルーチンの呼出し
     179 *  割込みサービスルーチンの呼出し
    195180 */
    196181#ifdef TOPPERS_isrcal
     
    212197
    213198                if (p_queue->p_next != p_isr_queue) {
    214                         /* ISRの呼出し前の状æ
    215 ‹ã«æˆ»ã™ */
     199                        /* ISRの呼出し前の状態に戻す */
    216200                        if (i_sense_lock()) {
    217201                                i_unlock_cpu();
     
    225209
    226210/*
    227  *  割込みサービスルーチン呼出しキューの検索
     211 *  割込みサービスルーチン呼出しキューの検索
    228212 */
    229213Inline QUEUE *
     
    256240
    257241/*
    258  *  割込みサービスルーチンの生成
     242 *  割込みサービスルーチンの生成
    259243 */
    260244#ifdef TOPPERS_acre_isr
     
    305289
    306290/*
    307  *  割込みサービスルーチンの削除
     291 *  割込みサービスルーチンの削除
    308292 */
    309293#ifdef TOPPERS_del_isr
     
    342326
    343327/*
    344  *  割込み管理機能の初期化
     328 *  割込み管理機能の初期化
    345329 */
    346330#ifdef TOPPERS_intini
     
    368352
    369353/*
    370  *  割込みの禁止
     354 *  割込みの禁止
    371355 */
    372356#ifdef TOPPERS_dis_int
     
    406390
    407391/*
    408  *  割込みの許可
     392 *  割込みの許可
    409393 */
    410394#ifdef TOPPERS_ena_int
     
    444428
    445429/*
    446  *  割込み優å
    447 ˆåº¦ãƒžã‚¹ã‚¯ã®å¤‰æ›´
     430 *  割込み優先度マスクの変更
    448431 */
    449432#ifdef TOPPERS_chg_ipm
     
    487470
    488471/*
    489  *  割込み優å
    490 ˆåº¦ãƒžã‚¹ã‚¯ã®å‚ç
    491 §
     472 *  割込み優先度マスクの参照
    492473 */
    493474#ifdef TOPPERS_get_ipm
  • rubycfg_asp/trunk/asp_dcre/kernel/interrupt.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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 */
    7055typedef struct isr_initialization_block {
    71         ATR                     isratr;                 /* 割込みサービスルーチン属性 */
    72         intptr_t        exinf;                  /* 割込みサービスルーチンの拡張æƒ
    73 å ± */
    74         INTNO           intno;                  /* 割込みサービスルーチンを登録する割込み番号 */
    75         QUEUE           *p_isr_queue;   /* 登録å
    76 ˆå‰²è¾¼ã¿ã‚µãƒ¼ãƒ“スルーチンキューの番地 */
    77         ISR                     isr;                    /* 割込みサービスルーチンのå
    78 ˆé ­ç•ªåœ° */
    79         PRI                     isrpri;                 /* 割込みサービスルーチン優å
    80 ˆåº¦ */
     56        ATR                     isratr;                 /* 割込みサービスルーチン属性 */
     57        intptr_t        exinf;                  /* 割込みサービスルーチンの拡張情報 */
     58        INTNO           intno;                  /* 割込みサービスルーチンを登録する割込み番号 */
     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 *
    122  *  静的に生成される割込みサービスルーチンはID番号を持たないため,
    123  *  tmax_isridは動的に生成される割込みサービスルーチンのID番号の最大値
    124  *  である.静的に生成される割込みサービスルーチンの数は,tnum_sisrに保
    125  *  持する.
     103 *  静的に生成される割込みサービスルーチンはID番号を持たないため,
     104 *  tmax_isridは動的に生成される割込みサービスルーチンのID番号の最大値
     105 *  である.静的に生成される割込みサービスルーチンの数は,tnum_sisrに保
     106 *  持する.
    126107 */
    127108extern const ID         tmax_isrid;
     
    129110
    130111/*
    131  *  割込みサービスルーチン初期化ブロックのエリア(kernel_cfg.c)
     112 *  割込みサービスルーチン初期化ブロックのエリア(kernel_cfg.c)
    132113 */
    133114extern const ISRINIB    sisrinib_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) \
     
    147128
    148129/*
    149  *  割込みサービスルーチン機能の初期化
     130 *  割込みサービスルーチン機能の初期化
    150131 */
    151132extern void initialize_isr(void);
    152133
    153134/*
    154  *  割込みサービスルーチンの呼出し
     135 *  割込みサービスルーチンの呼出し
    155136 */
    156137extern void call_isr(QUEUE *p_isr_queue);
     
    159140
    160141/*
    161  *  割込みハンドラ初期化ブロック
     142 *  割込みハンドラ初期化ブロック
    162143 */
    163144typedef struct interrupt_handler_initialization_block {
    164         INHNO           inhno;                  /* 割込みハンドラ番号 */
    165         ATR                     inhatr;                 /* 割込みハンドラ属性 */
    166         FP                      int_entry;              /* 割込みハンドラの出å
    167 ¥å£å‡¦ç†ã®ç•ªåœ° */
     145        INHNO           inhno;                  /* 割込みハンドラ番号 */
     146        ATR                     inhatr;                 /* 割込みハンドラ属性 */
     147        FP                      int_entry;              /* 割込みハンドラの出入口処理の番地 */
    168148} INHINIB;
    169149
    170150/*
    171  *  割込み要求ライン初期化ブロック
     151 *  割込み要求ライン初期化ブロック
    172152 */
    173153typedef struct interrupt_request_initialization_block {
    174         INTNO           intno;                  /* 割込み番号 */
    175         ATR                     intatr;                 /* 割込み属性 */
    176         PRI                     intpri;                 /* 割込み優å
    177 ˆåº¦ */
     154        INTNO           intno;                  /* 割込み番号 */
     155        ATR                     intatr;                 /* 割込み属性 */
     156        PRI                     intpri;                 /* 割込み優先度 */
    178157} INTINIB;
    179158
    180159/*
    181  *  割込みハンドラ番号の数(kernel_cfg.c)
     160 *  割込みハンドラ番号の数(kernel_cfg.c)
    182161 */
    183162extern const uint_t     tnum_inhno;
    184163
    185164/*
    186  *  割込みハンドラ初期化ブロックのエリア(kernel_cfg.c)
     165 *  割込みハンドラ初期化ブロックのエリア(kernel_cfg.c)
    187166 */
    188167extern const INHINIB    inhinib_table[];
    189168
    190169/*
    191  *  割込み要求ラインの数(kernel_cfg.c)
     170 *  割込み要求ラインの数(kernel_cfg.c)
    192171 */
    193172extern const uint_t     tnum_intno;
    194173
    195174/*
    196  *  割込み要求ライン初期化ブロックのエリア(kernel_cfg.c)
     175 *  割込み要求ライン初期化ブロックのエリア(kernel_cfg.c)
    197176 */
    198177extern const INTINIB    intinib_table[];
     
    201180
    202181/*
    203  *  割込み管理機能の初期化
     182 *  割込み管理機能の初期化
    204183 */
    205184extern void     initialize_interrupt(void);
  • rubycfg_asp/trunk/asp_dcre/kernel/interrupt.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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: interrupt.trb 678 2016-03-06 02:36:09Z ertl-hiro $
     
    5742
    5843#
    59 #               å‰²è¾¼ã¿ç®¡ç†æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
    60 #
    61 
    62 #
    63 #  kernel_cfg.cの生成
     44#               割込み管理機能の生成スクリプト
     45#
     46
     47#
     48#  kernel_cfg.cの生成
    6449#
    6550$kernelCfgC.comment_header("Interrupt Management Functions")
    6651
    6752#
    68 #  ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号のデ
    69 ãƒ•ã‚©ãƒ«ãƒˆå®šç¾©
     53#  ATT_ISRで使用できる割込み番号とそれに対応する割込みハンドラ番号のデ
     54フォルト定義
    7055#
    7156if $INTNO_ATTISR_VALID.nil?
     
    7762
    7863#
    79 #  CFG_INTで使用できる割込み優å
    80 ˆåº¦ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå®šç¾©
     64#  CFG_INTで使用できる割込み優先度のデフォルト定義
    8165#
    8266if $INTPRI_CFGINT_VALID.nil?
     
    8569
    8670#
    87 å‰²è¾¼ã¿ç•ªå·ã¨å‰²è¾¼ã¿ãƒãƒ³ãƒ‰ãƒ©ç•ªå·ã®å¤‰æ›ãƒ†ãƒ¼ãƒ–ルの作成
     71割込み番号と割込みハンドラ番号の変換テーブルの作成
    8872#
    8973if $INTNO_ATTISR_VALID.length != $INHNO_ATTISR_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[:ATT_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がATT_ISRに対する割込み番号として正しくない場合(E_PAR)
    227   #     ï¼»NGKI3003ï¼½
     207  #     intnoがATT_ISRに対する割込み番号として正しくない場合(E_PAR)
     208  #     [NGKI3003]
    228209  if $INTNO_ATTISR_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_ATTISR_VALID.each do |intnoVal|
    240   # 割込み番号intnoに対して登録されたISRのリストの作成
     221  # 割込み番号intnoに対して登録されたISRのリストの作成
    241222  isrParamsList = []
    242223  $cfgData[:ATT_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)")
     
    337317
    338318#
    339 #  割込みサービスルーチンに関する一般的なæƒ
    340 å ±ã®ç”Ÿæˆ
     319#  割込みサービスルーチンに関する一般的な情報の生成
    341320#
    342321class IsrObject
     
    346325
    347326  def generate()
    348     # AID_ISRの処理
     327    # AID_ISRの処理
    349328    numAutoObjid = 0
    350329    $cfgData[:AID_ISR].each do |key, params|
     
    353332    numObjid = $cfgData[:ATT_ISR].size + numAutoObjid
    354333
    355     # kernel_cfg.hの生成
     334    # kernel_cfg.hの生成
    356335    $kernelCfgH.add("#define TNUM_ISRID\t#{numAutoObjid}")
    357336
    358     # オブジェクトのID番号のマクロ定義の生成
     337    # オブジェクトのID番号のマクロ定義の生成
    359338    $cfgData[:ATT_ISR].sort.each do |key, params|
    360339      if params[:isrid]
     
    364343    $kernelCfgH.add()
    365344
    366     # オブジェクトのID番号を保持する変数
     345    # オブジェクトのID番号を保持する変数
    367346    if $USE_EXTERNAL_ID
    368347      $cfgData[:ATT_ISR].sort.each do |key, params|
     
    375354    end
    376355
    377     # 静的に生成されたオブジェクトの数
     356    # 静的に生成されたオブジェクトの数
    378357    $kernelCfgC.add("#define TNUM_SISR\t#{$cfgData[:ATT_ISR].size}")
    379358    $kernelCfgC.add("#define TNUM_ISR\t#{numObjid}")
    380359
    381     # オブジェクトID番号の最大値
     360    # オブジェクトID番号の最大値
    382361    $kernelCfgC.add("const ID _kernel_tmax_isrid" \
    383362                                                        " = (TMIN_ISRID + TNUM_ISRID - 1);")
    384363    $kernelCfgC.add("const uint_t _kernel_tnum_sisr = TNUM_SISR;")
    385364
    386     # データ構造
     365    # データ構造
    387366    if $cfgData[:ATT_ISR].size > 0
    388       # 事前準備(エラーチェック,メモリ領域の生成)
     367      # 事前準備(エラーチェック,メモリ領域の生成)
    389368      $cfgData[:ATT_ISR].sort.each do |key, params|
    390369        prepare(key, params)
    391370      end
    392371
    393       # オブジェクトå
    394 ¨ä½“に対してå¿
    395 è¦ãªãƒ¡ãƒ¢ãƒªé ˜åŸŸã®ç”Ÿæˆï¼ˆã‚ªãƒ—ション)
     372      # オブジェクト全体に対して必要なメモリ領域の生成(オプション)
    396373      if respond_to?(:generateData)
    397374        generateData()
    398375      end
    399376
    400       # オブジェクト初期化ブロックの生成
     377      # オブジェクト初期化ブロックの生成
    401378      $kernelCfgC.add("const ISRINIB _kernel_sisrinib_table" \
    402379                                                                                                        "[TNUM_SISR] = {")
     
    412389    end
    413390
    414     # 動的生成オブジェクト用のオブジェクト初期化ブロック
     391    # 動的生成オブジェクト用のオブジェクト初期化ブロック
    415392    @inibList.each do |type, array|
    416393      if numAutoObjid > 0
     
    422399
    423400    if numObjid > 0
    424       # オブジェクト管理ブロックの生成
     401      # オブジェクト管理ブロックの生成
    425402      $kernelCfgC.add2("ISRCB _kernel_isrcb_table" \
    426403                                                                                                        "[TNUM_ISR];")
    427404
    428       # オブジェクト初期化関数の追加
     405      # オブジェクト初期化関数の追加
    429406      $initializeFunctions.push("_kernel_initialize_isr();")
    430407    else
     
    435412
    436413  def prepare(key, params)
    437     # エラーチェックは実施済みなので,ここでの処理は不要
     414    # エラーチェックは実施済みなので,ここでの処理は不要
    438415  end
    439416
     
    448425
    449426#
    450 #  割込みハンドラのための標準的な初期化æƒ
    451 å ±ã®ç”Ÿæˆ
     427#  割込みハンドラのための標準的な初期化情報の生成
    452428#
    453429if !$OMIT_INITIALIZE_INTERRUPT || $USE_INHINIB_TABLE
    454430  #
    455   #  定義する割込みハンドラの数
     431  #  定義する割込みハンドラの数
    456432  #
    457433  $kernelCfgC.add(<<EOS)
     
    462438  if $cfgData[:DEF_INH].size != 0
    463439    #
    464     #  割込みハンドラのエントリ
     440    #  割込みハンドラのエントリ
    465441    #
    466442    $cfgData[:DEF_INH].each do |key, params|
     
    473449
    474450    #
    475     #  割込みハンドラ初期化ブロック
     451    #  割込みハンドラ初期化ブロック
    476452    #
    477453    $kernelCfgC.add("const INHINIB _kernel_inhinib_table[TNUM_INHNO] = {")
     
    495471
    496472#
    497 #  割込み要求ラインのための標準的な初期化æƒ
    498 å ±ã®ç”Ÿæˆ
     473#  割込み要求ラインのための標準的な初期化情報の生成
    499474#
    500475if !$OMIT_INITIALIZE_INTERRUPT || $USE_INTINIB_TABLE
    501476  #
    502   #  設定する割込み要求ラインの数
     477  #  設定する割込み要求ラインの数
    503478  #
    504479  $kernelCfgC.add(<<EOS)
     
    508483
    509484  #
    510   #  割込み要求ライン初期化ブロック
     485  #  割込み要求ライン初期化ブロック
    511486  #
    512487  if $cfgData[:CFG_INT].size != 0
     
    526501
    527502#
    528 å‰²è¾¼ã¿ç®¡ç†æ©Ÿèƒ½åˆæœŸåŒ–関数の追加
     503割込み管理機能初期化関数の追加
    529504#
    530505$initializeFunctions.push("_kernel_initialize_interrupt();")
  • rubycfg_asp/trunk/asp_dcre/kernel/kernel.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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: kernel.trb 716 2016-03-31 06:16:23Z ertl-hiro $
     
    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 (#include)")
     
    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      if params[@objid]
     
    149130    $kernelCfgH.add()
    150131
    151     # オブジェクトのID番号を保持する変数
     132    # オブジェクトのID番号を保持する変数
    152133    if $USE_EXTERNAL_ID
    153134      $cfgData[@api].sort.each do |key, params|
     
    160141    end
    161142
    162     # 静的に生成されたオブジェクトの数
     143    # 静的に生成されたオブジェクトの数
    163144    $kernelCfgC.add("#define TNUM_S#{@OBJ}ID\t#{$cfgData[@api].size}")
    164145
    165     # オブジェクトID番号の最大値
     146    # オブジェクトID番号の最大値
    166147    $kernelCfgC.add("const ID _kernel_tmax_#{@obj}id" \
    167148                                                        " = (TMIN_#{@OBJ}ID + TNUM_#{@OBJ}ID - 1);")
     
    169150                                                        " = (TMIN_#{@OBJ}ID + TNUM_S#{@OBJ}ID - 1);")
    170151
    171     # データ構造
     152    # データ構造
    172153    if $cfgData[@api].size > 0
    173       # 事前準備(エラーチェック,メモリ領域の生成)
     154      # 事前準備(エラーチェック,メモリ領域の生成)
    174155      $cfgData[@api].sort.each do |key, params|
    175156        prepare(key, params)
    176157      end
    177158
    178       # オブジェクトå
    179 ¨ä½“に対してå¿
    180 è¦ãªãƒ¡ãƒ¢ãƒªé ˜åŸŸã®ç”Ÿæˆï¼ˆã‚ªãƒ—ション)
     159      # オブジェクト全体に対して必要なメモリ領域の生成(オプション)
    181160      if respond_to?(:generateData)
    182161        generateData()
    183162      end
    184163
    185       # オブジェクト初期化ブロックの生成
     164      # オブジェクト初期化ブロックの生成
    186165      $kernelCfgC.add("const #{@OBJ_S}INIB _kernel_#{@obj_s}inib_table" \
    187166                                                                                                        "[TNUM_S#{@OBJ}ID] = {")
     
    197176    end
    198177
    199     # 動的生成オブジェクト用のオブジェクト初期化ブロック
     178    # 動的生成オブジェクト用のオブジェクト初期化ブロック
    200179    @inibList.each do |type, array|
    201180      if numAutoObjid > 0
     
    207186
    208187    if numObjid > 0
    209       # オブジェクト管理ブロックの生成
     188      # オブジェクト管理ブロックの生成
    210189      $kernelCfgC.add2("#{@OBJ_S}CB _kernel_#{@obj_s}cb_table" \
    211190                                                                                                        "[TNUM_#{@OBJ}ID];")
    212191
    213       # オブジェクト初期化関数の追加
     192      # オブジェクト初期化関数の追加
    214193      $initializeFunctions.push("_kernel_initialize_#{@object}();")
    215194    else
     
    221200
    222201#
    223 å„機能モジュールのコンフィギュレーション
     202各機能モジュールのコンフィギュレーション
    224203#
    225204$initializeFunctions = []
     
    237216
    238217#
    239 éžã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆç”¨ã®ã‚¹ã‚¿ãƒƒã‚¯é ˜åŸŸ
     218非タスクコンテキスト用のスタック領域
    240219#
    241220$kernelCfgC.comment_header("Stack Area for Non-task Context")
    242221
    243222if $cfgData[:DEF_ICS].size == 0
    244   # DEF_ICSがない場合のデフォルト値の設定
     223  # DEF_ICSがない場合のデフォルト値の設定
    245224  if $DEFAULT_ISTK.nil?
    246     # スタック領域の自動割付け
     225    # スタック領域の自動割付け
    247226    istksz = AllocStack("_kernel_istack", "DEFAULT_ISTKSZ")
    248227    istk = "_kernel_istack"
     
    252231  end
    253232else
    254   # 静的API「DEF_ICS」が複数ある(E_OBJ)[NGKI3216ï¼½
     233  # 静的API「DEF_ICS」が複数ある(E_OBJ)[NGKI3216]
    255234  if $cfgData[:DEF_ICS].size > 1
    256235    error("E_OBJ: too many DEF_ICS")
    257236  end
    258237
    259   # DEF_ICSがある場合の処理
     238  # DEF_ICSがある場合の処理
    260239  params = $cfgData[:DEF_ICS][1]
    261240
    262   # パラメータが省略された時のデフォルト値の設定
     241  # パラメータが省略された時のデフォルト値の設定
    263242  params[:istk] ||= "NULL"
    264243
    265   # istkszがターゲット定義の最小値(TARGET_MIN_ISTKSZ,未定義の場合は1)
    266   # よりも小さい場合(E_PAR)[NGKI3254ï¼½
     244  # istkszがターゲット定義の最小値(TARGET_MIN_ISTKSZ,未定義の場合は1)
     245  # よりも小さい場合(E_PAR)[NGKI3254]
    267246  if params[:istksz] < $TARGET_MIN_ISTKSZ
    268247    error_wrong("E_PAR", params, :istksz, "too small")
     
    270249
    271250  if params[:istk] == "NULL"
    272     # スタック領域の自動割付け
     251    # スタック領域の自動割付け
    273252    istksz = AllocStack("_kernel_istack", params[:istksz])
    274253    istk = "_kernel_istack"
    275254  else
    276     # istkszがスタック領域のサイズとして正しくない場合(E_PAR)[NGKI3222ï¼½
     255    # istkszがスタック領域のサイズとして正しくない場合(E_PAR)[NGKI3222]
    277256    if (params[:istksz] & ($CHECK_STKSZ_ALIGN - 1)) != 0
    278257      error_wrong("E_PAR", params, :istksz, "not aligned")
     
    294273
    295274#
    296 ã‚«ãƒ¼ãƒãƒ«ãŒå‰²ã‚Šä»˜ã‘るメモリ領域
     275カーネルが割り付けるメモリ領域
    297276#
    298277$kernelCfgC.comment_header("Memory Area Allocated by Kernel")
    299278
    300279if $cfgData[:DEF_KMM].size == 0
    301   # DEF_KMMがない場合のデフォルト値の設定
     280  # DEF_KMMがない場合のデフォルト値の設定
    302281  kmmsz = "0"
    303282  kmm = "NULL"
    304283else
    305   # 静的API「DEF_KMM」が複数ある(E_OBJ)
     284  # 静的API「DEF_KMM」が複数ある(E_OBJ)
    306285  if ($cfgData[:DEF_KMM].size > 1)
    307286    error("E_OBJ: too many DEF_KMM")
    308287  end
    309288
    310   # DEF_KMMがある場合の処理
     289  # DEF_KMMがある場合の処理
    311290  params = $cfgData[:DEF_KMM][1]
    312291
    313   # パラメータが省略された時のデフォルト値の設定
     292  # パラメータが省略された時のデフォルト値の設定
    314293  params[:kmm] ||= "NULL"
    315294
    316   # kmmszが0の場合(E_PAR)
     295  # kmmszが0の場合(E_PAR)
    317296  if params[:kmmsz] == 0
    318297    error_wrong("E_PAR", params, :kmmsz, "zero")
     
    320299
    321300  if params[:kmm] == "NULL"
    322     # カーネルが割り付けるメモリ領域の自動割付け
     301    # カーネルが割り付けるメモリ領域の自動割付け
    323302    $kernelCfgC.add("static MB_T _kernel_memory" \
    324303                                        "[TOPPERS_COUNT_SZ(#{params[:kmmsz]}, sizeof(MB_T))];")
     
    326305    kmm = "_kernel_memory"
    327306  else
    328     # kmmszがカーネルが割り付けるメモリ領域のサイズとして正しくない場合
    329     # (E_PAR)
     307    # kmmszがカーネルが割り付けるメモリ領域のサイズとして正しくない場合
     308    # (E_PAR)
    330309    if (params[:kmmsz] & ($CHECK_MB_ALIGN - 1)) != 0
    331310      error_wrong("E_PAR", params, :kmmsz, "not aligned")
     
    343322
    344323#
    345 ã‚¿ã‚¤ãƒ ã‚¤ãƒ™ãƒ³ãƒˆç®¡ç†
     324タイムイベント管理
    346325#
    347326$kernelCfgC.comment_header("Time Event Management")
     
    351330
    352331#
    353 å„モジュールの初期化関数
     332各モジュールの初期化関数
    354333#
    355334$kernelCfgC.comment_header("Module Initialization Function")
     
    365344
    366345#
    367 åˆæœŸåŒ–ルーチン機能
     346初期化ルーチン機能
    368347#
    369348$kernelCfgC.comment_header("Initialization Routine")
    370349
    371 # エラーチェック
     350# エラーチェック
    372351$cfgData[:ATT_INI].each do |key, params|
    373   # iniatrが無効の場合(E_RSATR)[NGKI3241ï¼½
    374   #(TA_NULLでない場合)
     352  # iniatrが無効の場合(E_RSATR)[NGKI3241]
     353  #(TA_NULLでない場合)
    375354  if (params[:iniatr] != $TA_NULL)
    376355    error_illegal_sym("E_RSATR", params, :iniatr, :inirtn)
     
    378357end
    379358
    380 # 初期化ルーチンの実行関数の生成
     359# 初期化ルーチンの実行関数の生成
    381360$kernelCfgC.append(<<EOS)
    382361void
     
    391370
    392371#
    393 çµ‚了処理ルーチン機能
     372終了処理ルーチン機能
    394373#
    395374$kernelCfgC.comment_header("Termination Routine")
    396375
    397 # エラーチェック
     376# エラーチェック
    398377$cfgData[:ATT_TER].each do |key, params|
    399   # teratrが無効の場合(E_RSATR)[NGKI3248ï¼½
    400   #(TA_NULLでない場合)
     378  # teratrが無効の場合(E_RSATR)[NGKI3248]
     379  #(TA_NULLでない場合)
    401380  if (params[:teratr] != $TA_NULL)
    402381    error_illegal_sym("E_RSATR", params, :teratr, :terrtn)
     
    404383end
    405384
    406 # 終了処理ルーチンの実行関数の生成
     385# 終了処理ルーチンの実行関数の生成
    407386$kernelCfgC.append(<<EOS)
    408387void
     
    417396
    418397#
    419 #  kernel_cfg.hの末尾部分の生成
     398#  kernel_cfg.hの末尾部分の生成
    420399#
    421400$kernelCfgH.append(<<EOS)
  • rubycfg_asp/trunk/asp_dcre/kernel/kernel_check.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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: kernel_check.trb 662 2016-02-27 02:33:51Z ertl-hiro $
     
    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
     
    9680
    9781#
    98 ã‚¿ã‚¹ã‚¯ã«é–¢ã™ã‚‹ãƒã‚§ãƒƒã‚¯
     82タスクに関するチェック
    9983#
    10084tinib = SYMBOL("_kernel_tinib_table")
     
    10286  task = PEEK(tinib + $offsetof_TINIB_task, $sizeof_TASK)
    10387
    104   # タスクのå
    105 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI1033ï¼½
     88  # タスクの先頭番地のチェック[NGKI1033]
    10689  if (task & ($CHECK_FUNC_ALIGN - 1)) != 0
    10790    error_wrong_id("E_PAR", params, :task, :tskid, "not aligned")
     
    11194  end
    11295
    113   # タスクのスタック領域のå
    114 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI1056ï¼½
     96  # タスクのスタック領域の先頭番地のチェック[NGKI1056]
    11597  if $USE_TSKINICTXB
    11698    stk = GetStackTskinictxb(key, params, tinib)
     
    129111
    130112#
    131 å›ºå®šé•·ãƒ¡ãƒ¢ãƒªãƒ—ールに関するチェック
     113固定長メモリプールに関するチェック
    132114#
    133115mpfinib = SYMBOL("_kernel_mpfinib_table")
     
    135117  mpf = PEEK(mpfinib + $offsetof_MPFINIB_mpf, $sizeof_void_ptr)
    136118
    137   # 固定長メモリプール領域のå
    138 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI2249ï¼½
     119  # 固定長メモリプール領域の先頭番地のチェック[NGKI2249]
    139120  if (mpf & ($CHECK_MPF_ALIGN - 1)) != 0
    140121    error_wrong_id("E_PAR", params, :mpf, :mpfid, "not aligned")
     
    148129
    149130#
    150 å‘¨æœŸé€šçŸ¥ã«é–¢ã™ã‚‹ãƒã‚§ãƒƒã‚¯
     131周期通知に関するチェック
    151132#
    152133cycinib = SYMBOL("_kernel_cycinib_table")
     
    155136  cychdr = PEEK(cycinib + $offsetof_CYCINIB_cychdr, $sizeof_CYCHDR)
    156137
    157   # ハンドラのå
    158 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI3135ï¼½
     138  # ハンドラの先頭番地のチェック[NGKI3135]
    159139  if (cychdr && ($CHECK_FUNC_ALIGN - 1)) != 0
    160140    error_wrong_id("E_PAR", params, :cychdr, :cycid, "not aligned")
     
    168148
    169149#
    170 ã‚¢ãƒ©ãƒ¼ãƒ é€šçŸ¥ã«é–¢ã™ã‚‹ãƒã‚§ãƒƒã‚¯
     150アラーム通知に関するチェック
    171151#
    172152alminib = SYMBOL("_kernel_alminib_table")
     
    175155  almhdr = PEEK(alminib + $offsetof_ALMINIB_almhdr, $sizeof_ALMHDR)
    176156
    177   # ハンドラのå
    178 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI3135ï¼½
     157  # ハンドラの先頭番地のチェック[NGKI3135]
    179158  if (almhdr && ($CHECK_FUNC_ALIGN - 1)) != 0
    180159    error_wrong_id("E_PAR", params, :almhdr, :almid, "not aligned")
     
    188167
    189168#
    190 å‰²è¾¼ã¿ã‚µãƒ¼ãƒ“スルーチンに関するチェック
     169割込みサービスルーチンに関するチェック
    191170#
    192171isrinib = SYMBOL("_kernel_sisrinib_table")
     
    194173  isr = PEEK(isrinib + $offsetof_ISRINIB_isr, $sizeof_ISR)
    195174
    196   # 割込みサービスルーチンのå
    197 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI3004ï¼½
     175  # 割込みサービスルーチンの先頭番地のチェック[NGKI3004]
    198176  if (isr & ($CHECK_FUNC_ALIGN - 1)) != 0
    199177    error_wrong_id("E_PAR", params, :isr, :isrid, "not aligned")
     
    207185
    208186#
    209 éžã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆç”¨ã®ã‚¹ã‚¿ãƒƒã‚¯é ˜åŸŸã«é–¢ã™ã‚‹ãƒã‚§ãƒƒã‚¯
     187非タスクコンテキスト用のスタック領域に関するチェック
    210188#
    211189istkAddr = SYMBOL("_kernel_istk")
     
    213191  istk = PEEK(istkAddr, $sizeof_void_ptr)
    214192
    215   # 非タスクコンテキスト用のスタック領域のå
    216 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯ï¼»NGKI3222ï¼½
     193  # 非タスクコンテキスト用のスタック領域の先頭番地のチェック[NGKI3222]
    217194  if (istk & ($CHECK_STACK_ALIGN - 1)) != 0
    218195    error_wrong("E_PAR", $cfgData[:DEF_ICS][1], :istk, "not aligned")
     
    224201
    225202#
    226 ã‚«ãƒ¼ãƒãƒ«ãŒå‰²ã‚Šä»˜ã‘るメモリ領域に関するチェック
     203カーネルが割り付けるメモリ領域に関するチェック
    227204#
    228205kmmAddr = SYMBOL("_kernel_kmm")
     
    230207  kmm = PEEK(kmmAddr, $sizeof_void_ptr)
    231208
    232   # カーネルが割り付けるメモリ領域のå
    233 ˆé ­ç•ªåœ°ã®ãƒã‚§ãƒƒã‚¯
     209  # カーネルが割り付けるメモリ領域の先頭番地のチェック
    234210  if (kmm & ($CHECK_MB_ALIGN - 1)) != 0
    235211    error_wrong("E_PAR", $cfgData[:DEF_KMM][1], :kmm, "not aligned")
  • rubycfg_asp/trunk/asp_dcre/kernel/kernel_impl.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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  *              TOPPERS/ASPカーネルå†
    60 éƒ¨å‘け標準ヘッダファイル
    61  *
    62  *  このヘッダファイルは,カーネルを構成するプログラムのソースファイル
    63  *  でå¿
    64 ãšã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ã™ã‚‹ã¹ãæ¨™æº–ヘッダファイルである.
    65  *
    66  *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
    67  *  は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を
    68  *  除くようになっている.
     44 *              TOPPERS/ASPカーネル内部向け標準ヘッダファイル
     45 *
     46 *  このヘッダファイルは,カーネルを構成するプログラムのソースファイル
     47 *  で必ずインクルードするべき標準ヘッダファイルである.
     48 *
     49 *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
     50 *  は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を
     51 *  除くようになっている.
    6952 */
    7053
     
    7356
    7457/*
    75  *  カーネルのå†
    76 éƒ¨è­˜åˆ¥åã®ãƒªãƒãƒ¼ãƒ 
     58 *  カーネルの内部識別名のリネーム
    7759 */
    7860#include "kernel_rename.h"
    7961
    8062/*
    81  *  アプリケーションとå
    82 ±é€šã®ãƒ˜ãƒƒãƒ€ãƒ•ã‚¡ã‚¤ãƒ«
     63 *  アプリケーションと共通のヘッダファイル
    8364 */
    8465#include <kernel.h>
    8566
    8667/*
    87  *  システムログ機能のための定義
     68 *  システムログ機能のための定義
    8869 */
    8970#include <t_syslog.h>
    9071
    9172/*
    92  *  型キャストを行うマクロの定義
     73 *  型キャストを行うマクロの定義
    9374 */
    9475#ifndef CAST
     
    9778
    9879/*
    99  *  ターゲット依存æƒ
    100 å ±ã®å®šç¾©
     80 *  ターゲット依存情報の定義
    10181 */
    10282#include "target_config.h"
    10383
    10484/*
    105  *  すべての関数をコンパイルするための定義
     85 *  すべての関数をコンパイルするための定義
    10686 */
    10787#ifdef ALLFUNC
     
    11090
    11191/*
    112  *  ビットフィールドでの符号無し整数型
    113  *
    114  *  8ビット以下のå¹
    115 ã®ãƒ“ットフィールドで,符号無し整数値を保持したい場合
    116  *  に用いるべきデータ型.ANSI Cでは,ビットフィールドのデータ型には
    117  *  intとunsigned intしか許されないため,デフォルトの定義はunsigned
    118  *  intとしているが,ターゲットおよびツール依存で,unsigned charまたは
    119  *  unsigned shortに定義した方が効率が良い場合がある.
     92 *  ビットフィールドでの符号無し整数型
     93 *
     94 *  8ビット以下の幅のビットフィールドで,符号無し整数値を保持したい場合
     95 *  に用いるべきデータ型.ANSI Cでは,ビットフィールドのデータ型には
     96 *  intとunsigned intしか許されないため,デフォルトの定義はunsigned
     97 *  intとしているが,ターゲットおよびツール依存で,unsigned charまたは
     98 *  unsigned shortに定義した方が効率が良い場合がある.
    12099 */
    121100#ifndef BIT_FIELD_UINT
     
    124103
    125104/*
    126  *  ビットフィールドでのブール型
    127  *
    128  *  1ビットå¹
    129 ã®ãƒ“ットフィールドで,ブール値を保持したい場合に用いるべき
    130  *  データ型.デフォルトではBIT_FIELD_UINTと同一に定義しているが,ブー
    131  *  ル値を保持することを明示するために別の名称としている.
     105 *  ビットフィールドでのブール型
     106 *
     107 *  1ビット幅のビットフィールドで,ブール値を保持したい場合に用いるべき
     108 *  データ型.デフォルトではBIT_FIELD_UINTと同一に定義しているが,ブー
     109 *  ル値を保持することを明示するために別の名称としている.
    132110 */
    133111#ifndef BIT_FIELD_BOOL
     
    136114
    137115/*
    138  *  オブジェクトIDの最小値の定義
    139  */
    140 #define TMIN_TSKID              1               /* タスクIDの最小値 */
    141 #define TMIN_SEMID              1               /* セマフォIDの最小値 */
    142 #define TMIN_FLGID              1               /* フラグIDの最小値 */
    143 #define TMIN_DTQID              1               /* データキューIDの最小値 */
    144 #define TMIN_PDQID              1               /* 優å
    145 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼IDの最小値 */
    146 #define TMIN_MBXID              1               /* メールボックスIDの最小値 */
    147 #define TMIN_MPFID              1               /* 固定長メモリプールIDの最小値 */
    148 #define TMIN_CYCID              1               /* 周期ハンドラIDの最小値 */
    149 #define TMIN_ALMID              1               /* アラームハンドラIDの最小値 */
    150 #define TMIN_ISRID              1               /* 割込みサービスルーチンIDの最小値 */
    151 
    152 /*
    153  *  優å
    154 ˆåº¦ã®æ®µéšŽæ•°ã®å®šç¾©
     116 *  オブジェクトIDの最小値の定義
     117 */
     118#define TMIN_TSKID              1               /* タスクIDの最小値 */
     119#define TMIN_SEMID              1               /* セマフォIDの最小値 */
     120#define TMIN_FLGID              1               /* フラグIDの最小値 */
     121#define TMIN_DTQID              1               /* データキューIDの最小値 */
     122#define TMIN_PDQID              1               /* 優先度データキューIDの最小値 */
     123#define TMIN_MBXID              1               /* メールボックスIDの最小値 */
     124#define TMIN_MPFID              1               /* 固定長メモリプールIDの最小値 */
     125#define TMIN_CYCID              1               /* 周期ハンドラIDの最小値 */
     126#define TMIN_ALMID              1               /* アラームハンドラIDの最小値 */
     127#define TMIN_ISRID              1               /* 割込みサービスルーチンIDの最小値 */
     128
     129/*
     130 *  優先度の段階数の定義
    155131 */
    156132#define TNUM_TPRI               (TMAX_TPRI - TMIN_TPRI + 1)
     
    159135
    160136/*
    161  *  カーネルå†
    162 éƒ¨ã§ä½¿ç”¨ã™ã‚‹å±žæ€§ã®å®šç¾©
    163  */
    164 #define TA_NOEXS                ((ATR)(-1))                     /* 未登録状æ
    165 ‹ */
     137 *  カーネル内部で使用する属性の定義
     138 */
     139#define TA_NOEXS                ((ATR)(-1))                     /* 未登録状態 */
    166140
    167141#ifndef TA_MEMALLOC
    168 #define TA_MEMALLOC             UINT_C(0x8000)          /* メモリ領域をカーネルで確保 */
     142#define TA_MEMALLOC             UINT_C(0x8000)          /* メモリ領域をカーネルで確保 */
    169143#endif /* TA_MEMALLOC */
    170144#ifndef TA_MBALLOC
    171 #define TA_MBALLOC              UINT_C(0x4000)          /* 管理領域をカーネルで確保 */
     145#define TA_MBALLOC              UINT_C(0x4000)          /* 管理領域をカーネルで確保 */
    172146#endif /* TA_MBALLOC */
    173147
    174148/*
    175  *  ターゲット定義のエラーチェックマクロのデフォルト値の定義
     149 *  ターゲット定義のエラーチェックマクロのデフォルト値の定義
    176150 */
    177151#ifndef TARGET_TSKATR
    178 #define TARGET_TSKATR           0U              /* ターゲット定義のタスク属性 */
     152#define TARGET_TSKATR           0U              /* ターゲット定義のタスク属性 */
    179153#endif /* TARGET_TSKATR */
    180154
    181155#ifndef TARGET_ISRATR
    182 #define TARGET_ISRATR           0U              /* ターゲット定義のISR属性 */
     156#define TARGET_ISRATR           0U              /* ターゲット定義のISR属性 */
    183157#endif /* TARGET_ISRATR */
    184158
    185159/*
    186  *  ヘッダファイルを持たないモジュールの関数・変数の宣言
     160 *  ヘッダファイルを持たないモジュールの関数・変数の宣言
    187161 */
    188162#ifndef TOPPERS_MACRO_ONLY
    189163
    190164/*
    191  *  各モジュールの初期化(kernel_cfg.c)
     165 *  各モジュールの初期化(kernel_cfg.c)
    192166 */
    193167extern void     initialize_object(void);
    194168
    195169/*
    196  *  初期化ルーチンの実行(kernel_cfg.c)
     170 *  初期化ルーチンの実行(kernel_cfg.c)
    197171 */
    198172extern void     call_inirtn(void);
    199173
    200174/*
    201  *  終了処理ルーチンの実行(kernel_cfg.c)
     175 *  終了処理ルーチンの実行(kernel_cfg.c)
    202176 */
    203177extern void     call_terrtn(void);
    204178
    205179/*
    206  *  非タスクコンテキスト用のスタック領域(kernel_cfg.c)
    207  */
    208 extern const SIZE       istksz;         /* スタック領域のサイズ(丸めた値) */
    209 extern STK_T *const     istk;           /* スタック領域のå
    210 ˆé ­ç•ªåœ° */
     180 *  非タスクコンテキスト用のスタック領域(kernel_cfg.c)
     181 */
     182extern const SIZE       istksz;         /* スタック領域のサイズ(丸めた値) */
     183extern STK_T *const     istk;           /* スタック領域の先頭番地 */
    211184#ifdef TOPPERS_ISTKPT
    212 extern STK_T *const     istkpt;         /* スタックポインタの初期値 */
     185extern STK_T *const     istkpt;         /* スタックポインタの初期値 */
    213186#endif /* TOPPERS_ISTKPT */
    214187
    215188/*
    216  *  カーネルが割り付けるメモリ領域(kernel_cfg.c)
    217  */
    218 extern const SIZE       kmmsz;          /* カーネルが割り付けるメモリ領域のサイズ */
    219 extern MB_T *const      kmm;            /* カーネルが割り付けるメモリ領域のå
    220 ˆé ­ç•ªåœ° */
    221 
    222 /*
    223  *  カーネル動作状æ
    224 ‹ãƒ•ãƒ©ã‚°ï¼ˆstartup.c)
     189 *  カーネルが割り付けるメモリ領域(kernel_cfg.c)
     190 */
     191extern const SIZE       kmmsz;          /* カーネルが割り付けるメモリ領域のサイズ */
     192extern MB_T *const      kmm;            /* カーネルが割り付けるメモリ領域の先頭番地 */
     193
     194/*
     195 *  カーネル動作状態フラグ(startup.c)
    225196 */
    226197extern bool_t   kerflg;
    227198
    228199/*
    229  *  カーネルの起動(startup.c)
     200 *  カーネルの起動(startup.c)
    230201 */
    231202extern void     sta_ker(void);
    232203
    233204/*
    234  *  カーネルの終了処理(startup.c)
     205 *  カーネルの終了処理(startup.c)
    235206 */
    236207extern void     exit_kernel(void);
    237208
    238209/*
    239  *  カーネルの割り付けるメモリ領域の管理(startup.c)
     210 *  カーネルの割り付けるメモリ領域の管理(startup.c)
    240211 */
    241212extern void initialize_kmm(void);
  • rubycfg_asp/trunk/asp_dcre/kernel/kernel_int.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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  *              kernel_cfg.c(およびcfg1_out.c)用ヘッダファイル
     44 *              kernel_cfg.c(およびcfg1_out.c)用ヘッダファイル
    6045 */
    6146
     
    6449
    6550/*
    66  *  カーネル標準ヘッダファイル
     51 *  カーネル標準ヘッダファイル
    6752 */
    6853#include "kernel_impl.h"
    6954
    7055/*
    71  *  カーネルの各ヘッダファイル
     56 *  カーネルの各ヘッダファイル
    7257 */
    7358#include "task.h"
     
    8570
    8671/*
    87  *  リネームしたシンボルをå
    88 ƒã«æˆ»ã™ãŸã‚ã®ãƒ˜ãƒƒãƒ€ãƒ•ã‚¡ã‚¤ãƒ«
     72 *  リネームしたシンボルを元に戻すためのヘッダファイル
    8973 */
    9074#include "kernel_unrename.h"
    9175
    9276/*
    93  *  å†
    94 å®¹ãŒç©ºã®é
    95 åˆ—を生成するためのマクロ
     77 *  内容が空の配列を生成するためのマクロ
    9678 */
    9779#ifndef TOPPERS_EMPTY_LABEL
  • rubycfg_asp/trunk/asp_dcre/kernel/kernel_rename.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
  • rubycfg_asp/trunk/asp_dcre/kernel/kernel_unrename.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
  • rubycfg_asp/trunk/asp_dcre/kernel/mailbox.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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_MBX_ENTER
     
    134119
    135120/*
    136  *  メールボックスの数
     121 *  メールボックスの数
    137122 */
    138123#define tnum_mbx        ((uint_t)(tmax_mbxid - TMIN_MBXID + 1))
     
    140125
    141126/*
    142  *  メールボックスIDからメールボックス管理ブロックを取り出すためのマクロ
     127 *  メールボックスIDからメールボックス管理ブロックを取り出すためのマクロ
    143128 */
    144129#define INDEX_MBX(mbxid)        ((uint_t)((mbxid) - TMIN_MBXID))
     
    148133
    149134/*
    150  *  使用していないメールボックス管理ブロックのリスト
     135 *  使用していないメールボックス管理ブロックのリスト
    151136 */
    152137QUEUE   free_mbxcb;
    153138
    154139/*
    155  *  メールボックス機能の初期化
     140 *  メールボックス機能の初期化
    156141 */
    157142void
     
    181166
    182167/*
    183  *  メッセージ優å
    184 ˆåº¦ã®å–出し
     168 *  メッセージ優先度の取出し
    185169 */
    186170#define MSGPRI(pk_msg)  (((T_MSG_PRI *)(pk_msg))->msgpri)
    187171
    188172/*
    189  *  優å
    190 ˆåº¦é †ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚­ãƒ¥ãƒ¼ã¸ã®æŒ¿å
    191 ¥
     173 *  優先度順メッセージキューへの挿入
    192174 */
    193175Inline void
     
    207189
    208190/*
    209  *  メールボックスの生成
     191 *  メールボックスの生成
    210192 */
    211193#ifdef TOPPERS_acre_mbx
     
    248230
    249231/*
    250  *  メールボックスの削除
     232 *  メールボックスの削除
    251233 */
    252234#ifdef TOPPERS_del_mbx
     
    292274
    293275/*
    294  *  メールボックスへの送信
     276 *  メールボックスへの送信
    295277 */
    296278#ifdef TOPPERS_snd_mbx
     
    350332
    351333/*
    352  *  メールボックスからの受信
     334 *  メールボックスからの受信
    353335 */
    354336#ifdef TOPPERS_rcv_mbx
     
    394376
    395377/*
    396  *  メールボックスからの受信(ポーリング)
     378 *  メールボックスからの受信(ポーリング)
    397379 */
    398380#ifdef TOPPERS_prcv_mbx
     
    431413
    432414/*
    433  *  メールボックスからの受信(タイムアウトあり)
     415 *  メールボックスからの受信(タイムアウトあり)
    434416 */
    435417#ifdef TOPPERS_trcv_mbx
     
    481463
    482464/*
    483  *  メールボックスの再初期化
     465 *  メールボックスの再初期化
    484466 */
    485467#ifdef TOPPERS_ini_mbx
     
    519501
    520502/*
    521  *  メールボックスの状æ
    522 ‹å‚ç
    523 §
     503 *  メールボックスの状態参照
    524504 */
    525505#ifdef TOPPERS_ref_mbx
  • rubycfg_asp/trunk/asp_dcre/kernel/mailbox.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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 *
    70  *  この構造体は,同期・通信オブジェクトの初期化ブロックのå
    71 ±é€šéƒ¨åˆ†
    72  *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
    73  *  最初のフィールドがå
    74 ±é€šã«ãªã£ã¦ã„る.
     55 *  この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分
     56 *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
     57 *  最初のフィールドが共通になっている.
    7558 */
    7659typedef struct mailbox_initialization_block {
    77         ATR                     mbxatr;                 /* メールボックス属性 */
    78         PRI                     maxmpri;                /* メッセージ優å
    79 ˆåº¦ã®æœ€å¤§å€¤ */
     60        ATR                     mbxatr;                 /* メールボックス属性 */
     61        PRI                     maxmpri;                /* メッセージ優先度の最大値 */
    8062} MBXINIB;
    8163
    8264/*
    83  *  メールボックス管理ブロック
     65 *  メールボックス管理ブロック
    8466 *
    85  *  この構造体は,同期・通信オブジェクトの管理ブロックのå
    86 ±é€šéƒ¨åˆ†ï¼ˆWOBJCB)
    87  *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
    88  *  フィールドがå
    89 ±é€šã«ãªã£ã¦ã„る.
     67 *  この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB)
     68 *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
     69 *  フィールドが共通になっている.
    9070 *
    91  *  メッセージキューがメッセージの優å
    92 ˆåº¦é †ã®å ´åˆã«ã¯ï¼Œpk_lastは使わな
    93  *  い.また,メッセージキューが空の場合(pk_headがNULLの場合)にも,
    94  *  pk_lastは無効である.
     71 *  メッセージキューがメッセージの優先度順の場合には,pk_lastは使わな
     72 *  い.また,メッセージキューが空の場合(pk_headがNULLの場合)にも,
     73 *  pk_lastは無効である.
    9574 */
    9675typedef struct mailbox_control_block {
    97         QUEUE           wait_queue;             /* メールボックスå¾
    98 ã¡ã‚­ãƒ¥ãƒ¼ */
    99         const MBXINIB *p_mbxinib;       /* 初期化ブロックへのポインタ */
    100         T_MSG           *pk_head;               /* å
    101 ˆé ­ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ */
    102         T_MSG           *pk_last;               /* 末尾のメッセージ */
     76        QUEUE           wait_queue;             /* メールボックス待ちキュー */
     77        const MBXINIB *p_mbxinib;       /* 初期化ブロックへのポインタ */
     78        T_MSG           *pk_head;               /* 先頭のメッセージ */
     79        T_MSG           *pk_last;               /* 末尾のメッセージ */
    10380} MBXCB;
    10481
    10582/*
    106  *  メールボックスå¾
    107 ã¡æƒ
    108 å ±ãƒ–ロックの定義
     83 *  メールボックス待ち情報ブロックの定義
    10984 *
    110  *  この構造体は,同期・通信オブジェクトのå¾
    111 ã¡æƒ
    112 å ±ãƒ–ロックのå
    113 ±é€šéƒ¨åˆ†
    114  *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
    115  *  最初の2つのフィールドがå
    116 ±é€šã«ãªã£ã¦ã„る.
     85 *  この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分
     86 *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
     87 *  最初の2つのフィールドが共通になっている.
    11788 */
    11889typedef struct mailbox_waiting_information {
    119         WINFO           winfo;                  /* 標準のå¾
    120 ã¡æƒ
    121 å ±ãƒ–ロック */
    122         MBXCB           *p_mbxcb;               /* å¾
    123 ã£ã¦ã„るメールボックスの管理ブロック */
    124         T_MSG           *pk_msg;                /* 受信したメッセージ */
     90        WINFO           winfo;                  /* 標準の待ち情報ブロック */
     91        MBXCB           *p_mbxcb;               /* 待っているメールボックスの管理ブロック */
     92        T_MSG           *pk_msg;                /* 受信したメッセージ */
    12593} WINFO_MBX;
    12694
    12795/*
    128  *  使用していないメールボックス管理ブロックのリスト
     96 *  使用していないメールボックス管理ブロックのリスト
    12997 */
    13098extern QUEUE    free_mbxcb;
    13199
    132100/*
    133  *  メールボックスIDの最大値(kernel_cfg.c)
     101 *  メールボックスIDの最大値(kernel_cfg.c)
    134102 */
    135103extern const ID tmax_mbxid;
     
    137105
    138106/*
    139  *  メールボックス初期化ブロックのエリア(kernel_cfg.c)
     107 *  メールボックス初期化ブロックのエリア(kernel_cfg.c)
    140108 */
    141109extern const MBXINIB    mbxinib_table[];
     
    143111
    144112/*
    145  *  メールボックス管理ブロックのエリア(kernel_cfg.c)
     113 *  メールボックス管理ブロックのエリア(kernel_cfg.c)
    146114 */
    147115extern MBXCB    mbxcb_table[];
    148116
    149117/*
    150  *  メールボックス管理ブロックからメールボックスIDを取り出すためのマクロ
     118 *  メールボックス管理ブロックからメールボックスIDを取り出すためのマクロ
    151119 */
    152120#define MBXID(p_mbxcb)  ((ID)(((p_mbxcb) - mbxcb_table) + TMIN_MBXID))
    153121
    154122/*
    155  *  メールボックス機能の初期化
     123 *  メールボックス機能の初期化
    156124 */
    157125extern void     initialize_mailbox(void);
  • rubycfg_asp/trunk/asp_dcre/kernel/mailbox.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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: mailbox.trb 630 2016-02-14 11:30:17Z ertl-hiro $
     
    5742
    5843#
    59 #               ãƒ¡ãƒ¼ãƒ«ãƒœãƒƒã‚¯ã‚¹æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     44#               メールボックス機能の生成スクリプト
    6045#
    6146
     
    6651
    6752  def prepare(key, params)
    68     # mbxatrが無効の場合(E_RSATR)
    69     # (TA_NULL,TA_TPRI,TA_MPRIのいずれでもない場合)
     53    # mbxatrが無効の場合(E_RSATR)
     54    # (TA_NULL,TA_TPRI,TA_MPRIのいずれでもない場合)
    7055    if !(params[:mbxatr] == $TA_NULL || params[:mbxatr] == $TA_TPRI \
    7156                                                                                || params[:mbxatr] == $TA_MPRI)
     
    7459
    7560    if params[:mbxatr] == $TA_MPRI
    76       # 優å
    77 ˆåº¦ä¸Šé™ãƒ¡ãƒ¼ãƒ«ãƒœãƒƒã‚¯ã‚¹ã®å ´åˆ
    78       # maxmpriが未指定の場合はエラーとする
     61      # 優先度上限メールボックスの場合
     62      # maxmpriが未指定の場合はエラーとする
    7963      if params[:maxmpri].nil?
    8064        error_api(params, "maxmpri must be specified in %apiname of %mbxid")
    8165
    82       # (TMIN_MPRI <= maxmpri && maxmpri <= TMAX_MPRI)でない場合(E_PAR)
     66      # (TMIN_MPRI <= maxmpri && maxmpri <= TMAX_MPRI)でない場合(E_PAR)
    8367      elsif !($TMIN_MPRI <= params[:maxmpri] && params[:maxmpri] <= $TMAX_MPRI)
    8468        error_illegal_id("E_PAR", params, :maxmpri, :mbxid)
    8569      end
    8670    else
    87       # 優å
    88 ˆåº¦ä¸Šé™ãƒ¡ãƒ¼ãƒ«ãƒœãƒƒã‚¯ã‚¹ã§ãªã„場合
    89       # maxmpriが指定されている場合は警告メッセージを出す
     71      # 優先度上限メールボックスでない場合
     72      # maxmpriが指定されている場合は警告メッセージを出す
    9073      if !params[:maxmpri].nil?
    9174        warning_api(params, "%%maxmpri is ignored in %apiname of %mbxid")
     
    9477    end
    9578
    96     # mprihdがNULLでない場合(E_NOSPT)
     79    # mprihdがNULLでない場合(E_NOSPT)
    9780    if !params[:mprihd].nil? && params[:mprihd] != "NULL"
    9881      error_illegal_id("E_NOSPT", params, :mprihd, :mbxid)
     
    10689
    10790#
    108 #  メールボックスに関するæƒ
    109 å ±ã®ç”Ÿæˆ
     91#  メールボックスに関する情報の生成
    11092#
    11193$kernelCfgC.comment_header("Mailbox Functions")
  • rubycfg_asp/trunk/asp_dcre/kernel/mempfix.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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_MPF_ENTER
     
    134119
    135120/*
    136  *  固定長メモリプールの数
     121 *  固定長メモリプールの数
    137122 */
    138123#define tnum_mpf        ((uint_t)(tmax_mpfid - TMIN_MPFID + 1))
     
    140125
    141126/*
    142  *  固定長メモリプールIDから固定長メモリプール管理ブロックを取り出すた
    143  *  めのマクロ
     127 *  固定長メモリプールIDから固定長メモリプール管理ブロックを取り出すた
     128 *  めのマクロ
    144129 */
    145130#define INDEX_MPF(mpfid)        ((uint_t)((mpfid) - TMIN_MPFID))
     
    147132
    148133/*
    149  *  特殊なインデックス値の定義
    150  */
    151 #define INDEX_NULL              (~0U)           /* 空きブロックリストの最後 */
    152 #define INDEX_ALLOC             (~1U)           /* 割当て済みのブロック */
     134 *  特殊なインデックス値の定義
     135 */
     136#define INDEX_NULL              (~0U)           /* 空きブロックリストの最後 */
     137#define INDEX_ALLOC             (~1U)           /* 割当て済みのブロック */
    153138
    154139#ifdef TOPPERS_mpfini
    155140
    156141/*
    157  *  使用していない固定長メモリプール管理ブロックのリスト
     142 *  使用していない固定長メモリプール管理ブロックのリスト
    158143 */
    159144QUEUE   free_mpfcb;
    160145
    161146/*
    162  *  固定長メモリプール機能の初期化
     147 *  固定長メモリプール機能の初期化
    163148 */
    164149void
     
    190175
    191176/*
    192  *  固定長メモリプールからブロックを獲得
     177 *  固定長メモリプールからブロックを獲得
    193178 */
    194179#ifdef TOPPERS_mpfget
     
    216201
    217202/*
    218  *  固定長メモリプールの生成
     203 *  固定長メモリプールの生成
    219204 */
    220205#ifdef TOPPERS_acre_mpf
     
    295280
    296281/*
    297  *  固定長メモリプールの削除
     282 *  固定長メモリプールの削除
    298283 */
    299284#ifdef TOPPERS_del_mpf
     
    345330
    346331/*
    347  *  固定長メモリブロックの獲得
     332 *  固定長メモリブロックの獲得
    348333 */
    349334#ifdef TOPPERS_get_mpf
     
    388373
    389374/*
    390  *  固定長メモリブロックの獲得(ポーリング)
     375 *  固定長メモリブロックの獲得(ポーリング)
    391376 */
    392377#ifdef TOPPERS_pget_mpf
     
    424409
    425410/*
    426  *  固定長メモリブロックの獲得(タイムアウトあり)
     411 *  固定長メモリブロックの獲得(タイムアウトあり)
    427412 */
    428413#ifdef TOPPERS_tget_mpf
     
    473458
    474459/*
    475  *  固定長メモリブロックの返却
     460 *  固定長メモリブロックの返却
    476461 */
    477462#ifdef TOPPERS_rel_mpf
     
    530515
    531516/*
    532  *  固定長メモリプールの再初期化
     517 *  固定長メモリプールの再初期化
    533518 */
    534519#ifdef TOPPERS_ini_mpf
     
    570555
    571556/*
    572  *  固定長メモリプールの状æ
    573 ‹å‚ç
    574 §
     557 *  固定長メモリプールの状態参照
    575558 */
    576559#ifdef TOPPERS_ref_mpf
  • rubycfg_asp/trunk/asp_dcre/kernel/mempfix.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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 *
    70  *  nextフィールドには,メモリブロックが割当て済みの場合はINDEX_ALLOCを,
    71  *  未割当ての場合は次の未割当てブロックのインデックス番号を格納する.
    72  *  最後の未割当てブロックの場合には,INDEX_NULLを格納する.
     55 *  nextフィールドには,メモリブロックが割当て済みの場合はINDEX_ALLOCを,
     56 *  未割当ての場合は次の未割当てブロックのインデックス番号を格納する.
     57 *  最後の未割当てブロックの場合には,INDEX_NULLを格納する.
    7358 */
    7459typedef struct fixed_memoryblock_management_block {
    75         uint_t          next;                   /* 次の未割当てブロック */
     60        uint_t          next;                   /* 次の未割当てブロック */
    7661} MPFMB;
    7762
    7863/*
    79  *  固定長メモリプール初期化ブロック
     64 *  固定長メモリプール初期化ブロック
    8065 *
    81  *  この構造体は,同期・通信オブジェクトの初期化ブロックのå
    82 ±é€šéƒ¨åˆ†
    83  *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
    84  *  最初のフィールドがå
    85 ±é€šã«ãªã£ã¦ã„る.
     66 *  この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分
     67 *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
     68 *  最初のフィールドが共通になっている.
    8669 */
    8770typedef struct fixed_memorypool_initialization_block {
    88         ATR                     mpfatr;                 /* 固定長メモリプール属性 */
    89         uint_t          blkcnt;                 /* メモリブロック数 */
    90         uint_t          blksz;                  /* メモリブロックのサイズ(丸めた値) */
    91         void            *mpf;                   /* 固定長メモリプール領域のå
    92 ˆé ­ç•ªåœ° */
    93         MPFMB           *p_mpfmb;               /* 固定長メモリプール管理領域のå
    94 ˆé ­ç•ªåœ° */
     71        ATR                     mpfatr;                 /* 固定長メモリプール属性 */
     72        uint_t          blkcnt;                 /* メモリブロック数 */
     73        uint_t          blksz;                  /* メモリブロックのサイズ(丸めた値) */
     74        void            *mpf;                   /* 固定長メモリプール領域の先頭番地 */
     75        MPFMB           *p_mpfmb;               /* 固定長メモリプール管理領域の先頭番地 */
    9576} MPFINIB;
    9677
    9778/*
    98  *  固定長メモリプール管理ブロック
     79 *  固定長メモリプール管理ブロック
    9980 *
    100  *  この構造体は,同期・通信オブジェクトの管理ブロックのå
    101 ±é€šéƒ¨åˆ†ï¼ˆWOBJCB)
    102  *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
    103  *  フィールドがå
    104 ±é€šã«ãªã£ã¦ã„る.
     81 *  この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB)
     82 *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
     83 *  フィールドが共通になっている.
    10584 */
    10685typedef struct fixed_memorypool_control_block {
    107         QUEUE           wait_queue;             /* 固定長メモリプールå¾
    108 ã¡ã‚­ãƒ¥ãƒ¼ */
    109         const MPFINIB *p_mpfinib;       /* 初期化ブロックへのポインタ */
    110         uint_t          fblkcnt;                /* 未割当てブロック数 */
    111         uint_t          unused;                 /* 未使用ブロックのå
    112 ˆé ­ */
    113         uint_t          freelist;               /* 未割当てブロックのリスト */
     86        QUEUE           wait_queue;             /* 固定長メモリプール待ちキュー */
     87        const MPFINIB *p_mpfinib;       /* 初期化ブロックへのポインタ */
     88        uint_t          fblkcnt;                /* 未割当てブロック数 */
     89        uint_t          unused;                 /* 未使用ブロックの先頭 */
     90        uint_t          freelist;               /* 未割当てブロックのリスト */
    11491} MPFCB;
    11592
    11693/*
    117  *  固定長メモリプールå¾
    118 ã¡æƒ
    119 å ±ãƒ–ロックの定義
     94 *  固定長メモリプール待ち情報ブロックの定義
    12095 *
    121  *  この構造体は,同期・通信オブジェクトのå¾
    122 ã¡æƒ
    123 å ±ãƒ–ロックのå
    124 ±é€šéƒ¨åˆ†
    125  *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
    126  *  最初の2つのフィールドがå
    127 ±é€šã«ãªã£ã¦ã„る.
     96 *  この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分
     97 *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
     98 *  最初の2つのフィールドが共通になっている.
    12899 */
    129100typedef struct fixed_memorypool_waiting_information {
    130         WINFO           winfo;                  /* 標準のå¾
    131 ã¡æƒ
    132 å ±ãƒ–ロック */
    133         MPFCB           *p_mpfcb;               /* å¾
    134 ã£ã¦ã„る固定長メモリプールの管理ブロック*/
    135         void            *blk;                   /* 獲得したメモリブロック */
     101        WINFO           winfo;                  /* 標準の待ち情報ブロック */
     102        MPFCB           *p_mpfcb;               /* 待っている固定長メモリプールの管理ブロック*/
     103        void            *blk;                   /* 獲得したメモリブロック */
    136104} WINFO_MPF;
    137105
    138106/*
    139  *  使用していない固定長メモリプール管理ブロックのリスト
     107 *  使用していない固定長メモリプール管理ブロックのリスト
    140108 */
    141109extern QUEUE    free_mpfcb;
    142110
    143111/*
    144  *  固定長メモリプールIDの最大値(kernel_cfg.c)
     112 *  固定長メモリプールIDの最大値(kernel_cfg.c)
    145113 */
    146114extern const ID tmax_mpfid;
     
    148116
    149117/*
    150  *  固定長メモリプール初期化ブロックのエリア(kernel_cfg.c)
     118 *  固定長メモリプール初期化ブロックのエリア(kernel_cfg.c)
    151119 */
    152120extern const MPFINIB    mpfinib_table[];
     
    154122
    155123/*
    156  *  固定長メモリプール管理ブロックのエリア(kernel_cfg.c)
     124 *  固定長メモリプール管理ブロックのエリア(kernel_cfg.c)
    157125 */
    158126extern MPFCB    mpfcb_table[];
    159127
    160128/*
    161  *  固定長メモリプール管理ブロックから固定長メモリプールIDを取り出すた
    162  *  めのマクロ
     129 *  固定長メモリプール管理ブロックから固定長メモリプールIDを取り出すた
     130 *  めのマクロ
    163131 */
    164132#define MPFID(p_mpfcb)  ((ID)(((p_mpfcb) - mpfcb_table) + TMIN_MPFID))
    165133
    166134/*
    167  *  固定長メモリプール機能の初期化
     135 *  固定長メモリプール機能の初期化
    168136 */
    169137extern void     initialize_mempfix(void);
    170138
    171139/*
    172  *  固定長メモリプールからブロックを獲得
     140 *  固定長メモリプールからブロックを獲得
    173141 */
    174142extern void     get_mpf_block(MPFCB *p_mpfcb, void **p_blk);
  • rubycfg_asp/trunk/asp_dcre/kernel/mempfix.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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: mempfix.trb 672 2016-03-05 15:33:08Z ertl-hiro $
     
    5742
    5843#
    59 #               å›ºå®šé•·ãƒ¡ãƒ¢ãƒªãƒ—ール機能の生成スクリプト
     44#               固定長メモリプール機能の生成スクリプト
    6045#
    6146
     
    6651
    6752  def prepare(key, params)
    68     # パラメータが省略された時のデフォルト値の設定
     53    # パラメータが省略された時のデフォルト値の設定
    6954    params[:mpf] ||= "NULL"
    7055    params[:mpfmb] ||= "NULL"
    7156
    72     # mpfatrが無効の場合(E_RSATR)[NGKI2225ï¼½
    73     #(TA_TPRI以外のビットがセットされている場合)
     57    # mpfatrが無効の場合(E_RSATR)[NGKI2225]
     58    #(TA_TPRI以外のビットがセットされている場合)
    7459    if (params[:mpfatr] & ~($TA_TPRI)) != 0
    7560      error_illegal_id("E_RSATR", params, :mpfatr, :mpfid)
    7661    end
    7762
    78     # blkcntが0の場合(E_PAR)[NGKI2229ï¼½
     63    # blkcntが0の場合(E_PAR)[NGKI2229]
    7964    if params[:blkcnt] == 0
    8065      error_illegal_id("E_PAR", params, :blkcnt, :mpfid)
    8166    end
    8267
    83     # blkszが0の場合(E_PAR)[NGKI2230ï¼½
     68    # blkszが0の場合(E_PAR)[NGKI2230]
    8469    if params[:blksz] == 0
    8570      error_illegal_id("E_PAR", params, :blksz, :mpfid)
    8671    end
    8772
    88     # 固定長メモリプール領域
     73    # 固定長メモリプール領域
    8974    if params[:mpf] == "NULL"
    9075      mpfName = "_kernel_mpf_#{params[:mpfid]}"
     
    9681    end
    9782
    98     # mpfmbがNULLでない場合(E_NOSPT)[ASPS0166ï¼½
     83    # mpfmbがNULLでない場合(E_NOSPT)[ASPS0166]
    9984    if params[:mpfmb] != "NULL"
    10085      error_illegal_id("E_NOSPT", params, :mpfmb, :mpfid)
    10186    end
    10287
    103     # 固定長メモリプール管理領域
     88    # 固定長メモリプール管理領域
    10489    mpfmbName = "_kernel_mpfmb_#{params[:mpfid]}"
    10590    $kernelCfgC.add("static MPFMB #{mpfmbName}[#{params[:blkcnt]}];")
     
    115100
    116101#
    117 #  固定長メモリプールに関するæƒ
    118 å ±ã®ç”Ÿæˆ
     102#  固定長メモリプールに関する情報の生成
    119103#
    120104$kernelCfgC.comment_header("Fixed-sized Memorypool Functions")
  • rubycfg_asp/trunk/asp_dcre/kernel/pridataq.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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  *              優å
    60 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼æ©Ÿèƒ½
     44 *              優先度データキュー機能
    6145 */
    6246
     
    6852
    6953/*
    70  *  トレースログマクロのデフォルト定義
     54 *  トレースログマクロのデフォルト定義
    7155 */
    7256#ifndef LOG_ACRE_PDQ_ENTER
     
    159143
    160144/*
    161  *  優å
    162 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®æ•°
     145 *  優先度データキューの数
    163146 */
    164147#define tnum_pdq        ((uint_t)(tmax_pdqid - TMIN_PDQID + 1))
     
    166149
    167150/*
    168  *  優å
    169 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼IDから優å
    170 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†ãƒ–ロックを取り出すた
    171  *  めのマクロ
     151 *  優先度データキューIDから優先度データキュー管理ブロックを取り出すた
     152 *  めのマクロ
    172153 */
    173154#define INDEX_PDQ(pdqid)        ((uint_t)((pdqid) - TMIN_PDQID))
     
    177158
    178159/*
    179  *  使用していない優å
    180 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†ãƒ–ロックのリスト
     160 *  使用していない優先度データキュー管理ブロックのリスト
    181161 */
    182162QUEUE   free_pdqcb;
    183163
    184164/*
    185  *  優å
    186 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼æ©Ÿèƒ½ã®åˆæœŸåŒ–
     165 *  優先度データキュー機能の初期化
    187166 */
    188167void
     
    216195
    217196/*
    218  *  優å
    219 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†é ˜åŸŸã¸ã®ãƒ‡ãƒ¼ã‚¿ã®æ ¼ç´
     197 *  優先度データキュー管理領域へのデータの格納
    220198 */
    221199#ifdef TOPPERS_pdqenq
     
    254232
    255233/*
    256  *  優å
    257 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†é ˜åŸŸã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿ã®å–出し
     234 *  優先度データキュー管理領域からのデータの取出し
    258235 */
    259236#ifdef TOPPERS_pdqdeq
     
    278255
    279256/*
    280  *  優å
    281 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã¸ã®ãƒ‡ãƒ¼ã‚¿é€ä¿¡
     257 *  優先度データキューへのデータ送信
    282258 */
    283259#ifdef TOPPERS_pdqsnd
     
    308284
    309285/*
    310  *  優å
    311 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿å—ä¿¡
     286 *  優先度データキューからのデータ受信
    312287 */
    313288#ifdef TOPPERS_pdqrcv
     
    350325
    351326/*
    352  *  優å
    353 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®ç”Ÿæˆ
     327 *  優先度データキューの生成
    354328 */
    355329#ifdef TOPPERS_acre_pdq
     
    413387
    414388/*
    415  *  優å
    416 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®å‰Šé™¤
     389 *  優先度データキューの削除
    417390 */
    418391#ifdef TOPPERS_del_pdq
     
    464437
    465438/*
    466  *  優å
    467 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã¸ã®é€ä¿¡
     439 *  優先度データキューへの送信
    468440 */
    469441#ifdef TOPPERS_snd_pdq
     
    514486
    515487/*
    516  *  優å
    517 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã¸ã®é€ä¿¡ï¼ˆãƒãƒ¼ãƒªãƒ³ã‚°ï¼‰
     488 *  優先度データキューへの送信(ポーリング)
    518489 */
    519490#ifdef TOPPERS_psnd_pdq
     
    558529
    559530/*
    560  *  優å
    561 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã¸ã®é€ä¿¡ï¼ˆãƒãƒ¼ãƒªãƒ³ã‚°ï¼Œéžã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆç”¨ï¼‰
     531 *  優先度データキューへの送信(ポーリング,非タスクコンテキスト用)
    562532 */
    563533#ifdef TOPPERS_ipsnd_pdq
     
    602572
    603573/*
    604  *  優å
    605 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã¸ã®é€ä¿¡ï¼ˆã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã‚り)
     574 *  優先度データキューへの送信(タイムアウトあり)
    606575 */
    607576#ifdef TOPPERS_tsnd_pdq
     
    658627
    659628/*
    660  *  優å
    661 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‹ã‚‰ã®å—ä¿¡
     629 *  優先度データキューからの受信
    662630 */
    663631#ifdef TOPPERS_rcv_pdq
     
    709677
    710678/*
    711  *  優å
    712 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‹ã‚‰ã®å—信(ポーリング)
     679 *  優先度データキューからの受信(ポーリング)
    713680 */
    714681#ifdef TOPPERS_prcv_pdq
     
    749716
    750717/*
    751  *  優å
    752 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‹ã‚‰ã®å—信(タイムアウトあり)
     718 *  優先度データキューからの受信(タイムアウトあり)
    753719 */
    754720#ifdef TOPPERS_trcv_pdq
     
    805771
    806772/*
    807  *  優å
    808 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®å†åˆæœŸåŒ–
     773 *  優先度データキューの再初期化
    809774 */
    810775#ifdef TOPPERS_ini_pdq
     
    850815
    851816/*
    852  *  優å
    853 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®çŠ¶æ
    854 ‹å‚ç
    855 §
     817 *  優先度データキューの状態参照
    856818 */
    857819#ifdef TOPPERS_ref_pdq
  • rubycfg_asp/trunk/asp_dcre/kernel/pridataq.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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  *              優å
    60 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼æ©Ÿèƒ½
     44 *              優先度データキュー機能
    6145 */
    6246
     
    6751
    6852/*
    69  *  優å
    70 ˆåº¦ãƒ‡ãƒ¼ã‚¿ç®¡ç†ãƒ–ロック
     53 *  優先度データ管理ブロック
    7154 */
    7255typedef struct pridata_management_block PDQMB;
    7356
    7457struct pridata_management_block {
    75         PDQMB           *p_next;                /* 次のデータ */
    76         intptr_t        data;                   /* データ本体 */
    77         PRI                     datapri;                /* データ優å
    78 ˆåº¦ */
     58        PDQMB           *p_next;                /* 次のデータ */
     59        intptr_t        data;                   /* データ本体 */
     60        PRI                     datapri;                /* データ優先度 */
    7961};
    8062
    8163/*
    82  *  優å
    83 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼åˆæœŸåŒ–ブロック
     64 *  優先度データキュー初期化ブロック
    8465 *
    85  *  この構造体は,同期・通信オブジェクトの初期化ブロックのå
    86 ±é€šéƒ¨åˆ†
    87  *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
    88  *  最初のフィールドがå
    89 ±é€šã«ãªã£ã¦ã„る.
     66 *  この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分
     67 *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
     68 *  最初のフィールドが共通になっている.
    9069 */
    9170typedef struct pridataq_initialization_block {
    92         ATR                     pdqatr;                 /* 優å
    93 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼å±žæ€§ */
    94         uint_t          pdqcnt;                 /* 優å
    95 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®å®¹é‡ */
    96         PRI                     maxdpri;                /* データ優å
    97 ˆåº¦ã®æœ€å¤§å€¤ */
    98         PDQMB           *p_pdqmb;               /* 優å
    99 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†é ˜åŸŸã®å
    100 ˆé ­ç•ªåœ° */
     71        ATR                     pdqatr;                 /* 優先度データキュー属性 */
     72        uint_t          pdqcnt;                 /* 優先度データキューの容量 */
     73        PRI                     maxdpri;                /* データ優先度の最大値 */
     74        PDQMB           *p_pdqmb;               /* 優先度データキュー管理領域の先頭番地 */
    10175} PDQINIB;
    10276
    10377/*
    104  *  優å
    105 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†ãƒ–ロック
     78 *  優先度データキュー管理ブロック
    10679 *
    107  *  この構造体は,同期・通信オブジェクトの管理ブロックのå
    108 ±é€šéƒ¨åˆ†ï¼ˆWOBJCB)
    109  *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
    110  *  フィールドがå
    111 ±é€šã«ãªã£ã¦ã„る.
     80 *  この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB)
     81 *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
     82 *  フィールドが共通になっている.
    11283 */
    11384typedef struct pridataq_control_block {
    114         QUEUE           swait_queue;    /* 優å
    115 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼é€ä¿¡å¾
    116 ã¡ã‚­ãƒ¥ãƒ¼ */
    117         const PDQINIB *p_pdqinib;       /* 初期化ブロックへのポインタ */
    118         QUEUE           rwait_queue;    /* 優å
    119 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼å—ä¿¡å¾
    120 ã¡ã‚­ãƒ¥ãƒ¼ */
    121         uint_t          count;                  /* 優å
    122 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ä¸­ã®ãƒ‡ãƒ¼ã‚¿ã®æ•° */
    123         PDQMB           *p_head;                /* 最初のデータ */
    124         uint_t          unused;                 /* 未使用データ管理ブロックのå
    125 ˆé ­ */
    126         PDQMB           *p_freelist;    /* 未割当てデータ管理ブロックのリスト */
     85        QUEUE           swait_queue;    /* 優先度データキュー送信待ちキュー */
     86        const PDQINIB *p_pdqinib;       /* 初期化ブロックへのポインタ */
     87        QUEUE           rwait_queue;    /* 優先度データキュー受信待ちキュー */
     88        uint_t          count;                  /* 優先度データキュー中のデータの数 */
     89        PDQMB           *p_head;                /* 最初のデータ */
     90        uint_t          unused;                 /* 未使用データ管理ブロックの先頭 */
     91        PDQMB           *p_freelist;    /* 未割当てデータ管理ブロックのリスト */
    12792} PDQCB;
    12893
    12994/*
    130  *  優å
    131 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼å¾
    132 ã¡æƒ
    133 å ±ãƒ–ロックの定義
     95 *  優先度データキュー待ち情報ブロックの定義
    13496 *
    135  *  この構造体は,同期・通信オブジェクトのå¾
    136 ã¡æƒ
    137 å ±ãƒ–ロックのå
    138 ±é€šéƒ¨åˆ†
    139  *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
    140  *  最初の2つのフィールドがå
    141 ±é€šã«ãªã£ã¦ã„る.
    142  *  優å
    143 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã¸ã®é€ä¿¡å¾
    144 ã¡ã¨å„ªå
    145 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‹ã‚‰ã®å—ä¿¡å¾
    146 ã¡ã§ï¼Œ
    147  *  同じå¾
    148 ã¡æƒ
    149 å ±ãƒ–ロックを使う.
     97 *  この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分
     98 *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
     99 *  最初の2つのフィールドが共通になっている.
     100 *  優先度データキューへの送信待ちと優先度データキューからの受信待ちで,
     101 *  同じ待ち情報ブロックを使う.
    150102 */
    151103typedef struct pridataq_waiting_information {
    152         WINFO           winfo;                  /* 標準のå¾
    153 ã¡æƒ
    154 å ±ãƒ–ロック */
    155         PDQCB           *p_pdqcb;               /* å¾
    156 ã£ã¦ã„る優å
    157 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®ç®¡ç†ãƒ–ロック*/
    158         intptr_t        data;                   /* 送受信データ */
    159         PRI                     datapri;                /* データ優å
    160 ˆåº¦ */
     104        WINFO           winfo;                  /* 標準の待ち情報ブロック */
     105        PDQCB           *p_pdqcb;               /* 待っている優先度データキューの管理ブロック*/
     106        intptr_t        data;                   /* 送受信データ */
     107        PRI                     datapri;                /* データ優先度 */
    161108} WINFO_PDQ;
    162109
    163110/*
    164  *  使用していない優å
    165 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†ãƒ–ロックのリスト
     111 *  使用していない優先度データキュー管理ブロックのリスト
    166112 */
    167113extern QUEUE    free_pdqcb;
    168114
    169115/*
    170  *  優å
    171 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼IDの最大値(kernel_cfg.c)
     116 *  優先度データキューIDの最大値(kernel_cfg.c)
    172117 */
    173118extern const ID tmax_pdqid;
     
    175120
    176121/*
    177  *  優å
    178 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼åˆæœŸåŒ–ブロックのエリア(kernel_cfg.c)
     122 *  優先度データキュー初期化ブロックのエリア(kernel_cfg.c)
    179123 */
    180124extern const PDQINIB    pdqinib_table[];
     
    182126
    183127/*
    184  *  優å
    185 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†ãƒ–ロックのエリア(kernel_cfg.c)
     128 *  優先度データキュー管理ブロックのエリア(kernel_cfg.c)
    186129 */
    187130extern PDQCB    pdqcb_table[];
    188131
    189132/*
    190  *  優å
    191 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†ãƒ–ロックから優å
    192 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼IDを取り出すた
    193  *  めのマクロ
     133 *  優先度データキュー管理ブロックから優先度データキューIDを取り出すた
     134 *  めのマクロ
    194135 */
    195136#define PDQID(p_pdqcb)  ((ID)(((p_pdqcb) - pdqcb_table) + TMIN_PDQID))
    196137
    197138/*
    198  *  優å
    199 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼æ©Ÿèƒ½ã®åˆæœŸåŒ–
     139 *  優先度データキュー機能の初期化
    200140 */
    201141extern void     initialize_pridataq(void);
    202142
    203143/*
    204  *  優å
    205 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†é ˜åŸŸã¸ã®ãƒ‡ãƒ¼ã‚¿ã®æ ¼ç´
     144 *  優先度データキュー管理領域へのデータの格納
    206145 */
    207146extern void     enqueue_pridata(PDQCB *p_pdqcb, intptr_t data, PRI datapri);
    208147
    209148/*
    210  *  優å
    211 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†é ˜åŸŸã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿ã®å–出し
     149 *  優先度データキュー管理領域からのデータの取出し
    212150 */
    213151extern void     dequeue_pridata(PDQCB *p_pdqcb, intptr_t *p_data, PRI *p_datapri);
    214152
    215153/*
    216  *  優å
    217 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã¸ã®ãƒ‡ãƒ¼ã‚¿é€ä¿¡
     154 *  優先度データキューへのデータ送信
    218155 */
    219156extern bool_t   send_pridata(PDQCB *p_pdqcb, intptr_t data,
     
    221158
    222159/*
    223  *  優å
    224 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿å—ä¿¡
     160 *  優先度データキューからのデータ受信
    225161 */
    226162extern bool_t   receive_pridata(PDQCB *p_pdqcb, intptr_t *p_data,
  • rubycfg_asp/trunk/asp_dcre/kernel/pridataq.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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: pridataq.trb 668 2016-03-03 13:57:53Z ertl-hiro $
     
    5742
    5843#
    59 #               å„ªå
    60 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     44#               優先度データキュー機能の生成スクリプト
    6145#
    6246
     
    6751
    6852  def prepare(key, params)
    69     # パラメータが省略された時のデフォルト値の設定
     53    # パラメータが省略された時のデフォルト値の設定
    7054    params[:pdqmb] ||= "NULL"
    7155
    72     # pdqatrが無効の場合(E_RSATR)[NGKI1804ï¼½
    73     #(TA_TPRI以外のビットがセットされている場合)
     56    # pdqatrが無効の場合(E_RSATR)[NGKI1804]
     57    #(TA_TPRI以外のビットがセットされている場合)
    7458    if (params[:pdqatr] & ~($TA_TPRI)) != 0
    7559      error_illegal_id("E_RSATR", params, :pdqatr, :pdqid)
    7660    end
    7761
    78     # (TMIN_DPRI <= maxdpri && maxdpri <= TMAX_DPRI)でない場合(E_PAR)
    79     # ï¼»NGKI1819ï¼½
     62    # (TMIN_DPRI <= maxdpri && maxdpri <= TMAX_DPRI)でない場合(E_PAR)
     63    # [NGKI1819]
    8064    if !($TMIN_DPRI <= params[:maxdpri] && params[:maxdpri] <= $TMAX_DPRI)
    8165      error_illegal_id("E_PAR", params, :maxdpri, :pdqid)
    8266    end
    8367
    84     # pdqmbがNULLでない場合(E_NOSPT)[ASPS0142ï¼½
     68    # pdqmbがNULLでない場合(E_NOSPT)[ASPS0142]
    8569    if params[:pdqmb] != "NULL"
    8670      error_illegal_id("E_NOSPT", params, :pdqmb, :pdqid)
    8771    end
    8872
    89     # 優å
    90 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†é ˜åŸŸ
     73    # 優先度データキュー管理領域
    9174    if params[:pdqcnt] > 0
    9275      pdqmbName = "_kernel_pdqmb_#{params[:pdqid]}"
     
    10588
    10689#
    107 #  優å
    108 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã«é–¢ã™ã‚‹æƒ
    109 å ±ã®ç”Ÿæˆ
     90#  優先度データキューに関する情報の生成
    11091#
    11192$kernelCfgC.comment_header("Priority Dataqueue Functions")
  • rubycfg_asp/trunk/asp_dcre/kernel/semaphore.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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_SEM_ENTER
     
    142127
    143128/*
    144  *  セマフォの数
     129 *  セマフォの数
    145130 */
    146131#define tnum_sem        ((uint_t)(tmax_semid - TMIN_SEMID + 1))
     
    148133
    149134/*
    150  *  セマフォIDからセマフォ管理ブロックを取り出すためのマクロ
     135 *  セマフォIDからセマフォ管理ブロックを取り出すためのマクロ
    151136 */
    152137#define INDEX_SEM(semid)        ((uint_t)((semid) - TMIN_SEMID))
     
    156141
    157142/*
    158  *  使用していないセマフォ管理ブロックのリスト
     143 *  使用していないセマフォ管理ブロックのリスト
    159144 */
    160145QUEUE   free_semcb;
    161146
    162147/*
    163  *  セマフォ機能の初期化
     148 *  セマフォ機能の初期化
    164149 */
    165150void
     
    189174
    190175/*
    191  *  セマフォの生成
     176 *  セマフォの生成
    192177 */
    193178#ifdef TOPPERS_acre_sem
     
    231216
    232217/*
    233  *  セマフォの削除
     218 *  セマフォの削除
    234219 */
    235220#ifdef TOPPERS_del_sem
     
    275260
    276261/*
    277  *  セマフォ資源の返却
     262 *  セマフォ資源の返却
    278263 */
    279264#ifdef TOPPERS_sig_sem
     
    319304
    320305/*
    321  *  セマフォ資源の返却(非タスクコンテキスト用)
     306 *  セマフォ資源の返却(非タスクコンテキスト用)
    322307 */
    323308#ifdef TOPPERS_isig_sem
     
    363348
    364349/*
    365  *  セマフォ資源の獲得
     350 *  セマフォ資源の獲得
    366351 */
    367352#ifdef TOPPERS_wai_sem
     
    403388
    404389/*
    405  *  セマフォ資源の獲得(ポーリング)
     390 *  セマフォ資源の獲得(ポーリング)
    406391 */
    407392#ifdef TOPPERS_pol_sem
     
    439424
    440425/*
    441  *  セマフォ資源の獲得(タイムアウトあり)
     426 *  セマフォ資源の獲得(タイムアウトあり)
    442427 */
    443428#ifdef TOPPERS_twai_sem
     
    485470
    486471/*
    487  *  セマフォの再初期化
     472 *  セマフォの再初期化
    488473 */
    489474#ifdef TOPPERS_ini_sem
     
    523508
    524509/*
    525  *  セマフォの状æ
    526 ‹å‚ç
    527 §
     510 *  セマフォの状態参照
    528511 */
    529512#ifdef TOPPERS_ref_sem
  • rubycfg_asp/trunk/asp_dcre/kernel/semaphore.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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 *
    70  *  この構造体は,同期・通信オブジェクトの初期化ブロックのå
    71 ±é€šéƒ¨åˆ†
    72  *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
    73  *  最初のフィールドがå
    74 ±é€šã«ãªã£ã¦ã„る.
     55 *  この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分
     56 *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
     57 *  最初のフィールドが共通になっている.
    7558 */
    7659typedef struct semaphore_initialization_block {
    77         ATR                     sematr;                 /* セマフォ属性 */
    78         uint_t          isemcnt;                /* セマフォの資源数の初期値 */
    79         uint_t          maxsem;                 /* セマフォの最大資源数 */
     60        ATR                     sematr;                 /* セマフォ属性 */
     61        uint_t          isemcnt;                /* セマフォの資源数の初期値 */
     62        uint_t          maxsem;                 /* セマフォの最大資源数 */
    8063} SEMINIB;
    8164
    8265/*
    83  *  セマフォ管理ブロック
     66 *  セマフォ管理ブロック
    8467 *
    85  *  この構造体は,同期・通信オブジェクトの管理ブロックのå
    86 ±é€šéƒ¨åˆ†ï¼ˆWOBJCB)
    87  *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
    88  *  フィールドがå
    89 ±é€šã«ãªã£ã¦ã„る.
     68 *  この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB)
     69 *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
     70 *  フィールドが共通になっている.
    9071 */
    9172typedef struct semaphore_control_block {
    92         QUEUE           wait_queue;             /* セマフォå¾
    93 ã¡ã‚­ãƒ¥ãƒ¼ */
    94         const SEMINIB *p_seminib;       /* 初期化ブロックへのポインタ */
    95         uint_t          semcnt;                 /* セマフォ現在カウント値 */
     73        QUEUE           wait_queue;             /* セマフォ待ちキュー */
     74        const SEMINIB *p_seminib;       /* 初期化ブロックへのポインタ */
     75        uint_t          semcnt;                 /* セマフォ現在カウント値 */
    9676} SEMCB;
    9777
    9878/*
    99  *  セマフォå¾
    100 ã¡æƒ
    101 å ±ãƒ–ロックの定義
     79 *  セマフォ待ち情報ブロックの定義
    10280 *
    103  *  この構造体は,同期・通信オブジェクトのå¾
    104 ã¡æƒ
    105 å ±ãƒ–ロックのå
    106 ±é€šéƒ¨åˆ†
    107  *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
    108  *  すべてのフィールドがå
    109 ±é€šã«ãªã£ã¦ã„る.
     81 *  この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分
     82 *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
     83 *  すべてのフィールドが共通になっている.
    11084 */
    11185typedef struct semaphore_waiting_information {
    112         WINFO   winfo;                  /* 標準のå¾
    113 ã¡æƒ
    114 å ±ãƒ–ロック */
    115         SEMCB   *p_semcb;               /* å¾
    116 ã£ã¦ã„るセマフォの管理ブロック */
     86        WINFO   winfo;                  /* 標準の待ち情報ブロック */
     87        SEMCB   *p_semcb;               /* 待っているセマフォの管理ブロック */
    11788} WINFO_SEM;
    11889
    11990/*
    120  *  使用していないセマフォ管理ブロックのリスト
     91 *  使用していないセマフォ管理ブロックのリスト
    12192 */
    12293extern QUEUE    free_semcb;
    12394
    12495/*
    125  *  セマフォIDの最大値(kernel_cfg.c)
     96 *  セマフォIDの最大値(kernel_cfg.c)
    12697 */
    12798extern const ID tmax_semid;
     
    129100
    130101/*
    131  *  セマフォ初期化ブロックのエリア(kernel_cfg.c)
     102 *  セマフォ初期化ブロックのエリア(kernel_cfg.c)
    132103 */
    133104extern const SEMINIB    seminib_table[];
     
    135106
    136107/*
    137  *  セマフォ管理ブロックのエリア(kernel_cfg.c)
     108 *  セマフォ管理ブロックのエリア(kernel_cfg.c)
    138109 */
    139110extern SEMCB    semcb_table[];
    140111
    141112/*
    142  *  セマフォ管理ブロックからセマフォIDを取り出すためのマクロ
     113 *  セマフォ管理ブロックからセマフォIDを取り出すためのマクロ
    143114 */
    144115#define SEMID(p_semcb)  ((ID)(((p_semcb) - semcb_table) + TMIN_SEMID))
    145116
    146117/*
    147  *  セマフォ機能の初期化
     118 *  セマフォ機能の初期化
    148119 */
    149120extern void     initialize_semaphore(void);
  • rubycfg_asp/trunk/asp_dcre/kernel/semaphore.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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: semaphore.trb 588 2016-02-05 12:54:58Z ertl-hiro $
     
    5742
    5843#
    59 #               ã‚»ãƒžãƒ•ã‚©æ©Ÿèƒ½ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     44#               セマフォ機能の生成スクリプト
    6045#
    6146
     
    6651
    6752  def prepare(key, params)
    68     # sematrが無効の場合(E_RSATR)[NGKI1456ï¼½
    69     #(TA_TPRI以外のビットがセットされている場合)
     53    # sematrが無効の場合(E_RSATR)[NGKI1456]
     54    #(TA_TPRI以外のビットがセットされている場合)
    7055    if (params[:sematr] & ~($TA_TPRI)) != 0
    7156      error_illegal_id("E_RSATR", params, :sematr, :semid)
    7257    end
    7358
    74     # (1 <= maxsem && maxsem <= TMAX_MAXSEM)でない場合(E_PAR)[NGKI1468ï¼½
     59    # (1 <= maxsem && maxsem <= TMAX_MAXSEM)でない場合(E_PAR)[NGKI1468]
    7560    if !(1 <= params[:maxsem] && params[:maxsem] <= $TMAX_MAXSEM)
    7661      error_illegal_id("E_PAR", params, :maxsem, :semid)
    7762    end
    7863
    79     # (0 <= isemcnt && isemcnt <= maxsem)でない場合(E_PAR)[NGKI1466ï¼½
     64    # (0 <= isemcnt && isemcnt <= maxsem)でない場合(E_PAR)[NGKI1466]
    8065    if !(0 <= params[:isemcnt] && params[:isemcnt] <= params[:maxsem])
    8166      error_wrong_id("E_PAR", params, :isemcnt, :semid, "too large")
     
    8974
    9075#
    91 #  セマフォに関するæƒ
    92 å ±ã®ç”Ÿæˆ
     76#  セマフォに関する情報の生成
    9377#
    9478$kernelCfgC.comment_header("Semaphore Functions")
  • rubycfg_asp/trunk/asp_dcre/kernel/startup.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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
     
    6550
    6651/*
    67  *  トレースログマクロのデフォルト定義
     52 *  トレースログマクロのデフォルト定義
    6853 */
    6954#ifndef LOG_KER_ENTER
     
    8671
    8772/*
    88  *  カーネル動作状æ
    89 ‹ãƒ•ãƒ©ã‚°
     73 *  カーネル動作状態フラグ
    9074 *
    91  *  スタートアップルーチンで,false(=0)に初期化されることを期å¾
    92 ã—て
    93  *  いる.
     75 *  スタートアップルーチンで,false(=0)に初期化されることを期待して
     76 *  いる.
    9477 */
    9578bool_t  kerflg = false;
    9679
    9780/*
    98  *  カーネルの起動
     81 *  カーネルの起動
    9982 */
    10083void
     
    10285{
    10386        /*
    104          *  ターゲット依存の初期化
     87         *  ターゲット依存の初期化
    10588         */
    10689        target_initialize();
    10790
    10891        /*
    109          *  各モジュールの初期化
     92         *  各モジュールの初期化
    11093         *
    111          *  タイムイベント管理モジュールは他のモジュールよりå
    112 ˆã«åˆæœŸåŒ–
    113          *  するå¿
    114 è¦ãŒã‚る.
     94         *  タイムイベント管理モジュールは他のモジュールより先に初期化
     95         *  する必要がある.
    11596         */
    11697        initialize_kmm();
     
    119100
    120101        /*
    121          *  初期化ルーチンの実行
     102         *  初期化ルーチンの実行
    122103         */
    123104        call_inirtn();
    124105
    125106        /*
    126          *  カーネル動作の開始
     107         *  カーネル動作の開始
    127108         */
    128109        kerflg = true;
     
    135116
    136117/*
    137  *  カーネルの終了
     118 *  カーネルの終了
    138119 */
    139120#ifdef TOPPERS_ext_ker
     
    147128
    148129        /*
    149          *  割込みロック状æ
    150 ‹ã«ç§»è¡Œ
     130         *  割込みロック状態に移行
    151131         */
    152132        SIL_LOC_INT();
    153133
    154134        /*
    155          *  カーネル動作の終了
     135         *  カーネル動作の終了
    156136         */
    157137        LOG_KER_LEAVE();
     
    159139
    160140        /*
    161          *  カーネルの終了処理の呼出し
     141         *  カーネルの終了処理の呼出し
    162142         *
    163          *  非タスクコンテキストに切り換えて,exit_kernelを呼び出す.
     143         *  非タスクコンテキストに切り換えて,exit_kernelを呼び出す.
    164144         */
    165145        call_exit_kernel();
    166146
    167147        /*
    168          *  コンパイラの警告対策(ここへ来ることはないはず)
     148         *  コンパイラの警告対策(ここへ来ることはないはず)
    169149         */
    170150        SIL_UNL_INT();
     
    174154
    175155/*
    176  *  カーネルの終了処理
     156 *  カーネルの終了処理
    177157 */
    178158void
     
    180160{
    181161        /*
    182          *  終了処理ルーチンの実行
     162         *  終了処理ルーチンの実行
    183163         */
    184164        call_terrtn();
    185165
    186166        /*
    187          *  ターゲット依存の終了処理
     167         *  ターゲット依存の終了処理
    188168         */
    189169        target_exit();
     
    194174
    195175/*
    196  *  カーネルの割り付けるメモリ領域の管理
     176 *  カーネルの割り付けるメモリ領域の管理
    197177 *
    198  *  メモリ領域をå
    199 ˆé ­ã‹ã‚‰é †ã«å‰²ã‚Šå½“て,解放されたメモリ領域を再利用しな
    200  *  いメモリ管理モジュール.
     178 *  メモリ領域を先頭から順に割り当て,解放されたメモリ領域を再利用しな
     179 *  いメモリ管理モジュール.
    201180 */
    202181#ifdef TOPPERS_kermem
  • rubycfg_asp/trunk/asp_dcre/kernel/sys_manage.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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  *              システム状æ
    60 ‹ç®¡ç†æ©Ÿèƒ½
     44 *              システム状態管理機能
    6145 */
    6246
     
    6650
    6751/*
    68  *  トレースログマクロのデフォルト定義
     52 *  トレースログマクロのデフォルト定義
    6953 */
    7054#ifndef LOG_ROT_RDQ_ENTER
     
    189173
    190174/*
    191  *  タスクの優å
    192 ˆé †ä½ã®å›žè»¢
     175 *  タスクの優先順位の回転
    193176 */
    194177#ifdef TOPPERS_rot_rdq
     
    220203
    221204/*
    222  *  タスクの優å
    223 ˆé †ä½ã®å›žè»¢ï¼ˆéžã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆç”¨ï¼‰
     205 *  タスクの優先順位の回転(非タスクコンテキスト用)
    224206 */
    225207#ifdef TOPPERS_irot_rdq
     
    249231
    250232/*
    251  *  実行状æ
    252 ‹ã®ã‚¿ã‚¹ã‚¯IDの参ç
    253 §
     233 *  実行状態のタスクIDの参照
    254234 */
    255235#ifdef TOPPERS_get_tid
     
    276256
    277257/*
    278  *  実行状æ
    279 ‹ã®ã‚¿ã‚¹ã‚¯IDの参ç
    280 §ï¼ˆéžã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆç”¨ï¼‰
     258 *  実行状態のタスクIDの参照(非タスクコンテキスト用)
    281259 */
    282260#ifdef TOPPERS_iget_tid
     
    303281
    304282/*
    305  *  CPUロック状æ
    306 ‹ã¸ã®ç§»è¡Œ
     283 *  CPUロック状態への移行
    307284 */
    308285#ifdef TOPPERS_loc_cpu
     
    329306
    330307/*
    331  *  CPUロック状æ
    332 ‹ã¸ã®ç§»è¡Œï¼ˆéžã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆç”¨ï¼‰
     308 *  CPUロック状態への移行(非タスクコンテキスト用)
    333309 */
    334310#ifdef TOPPERS_iloc_cpu
     
    355331
    356332/*
    357  *  CPUロック状æ
    358 ‹ã®è§£é™¤
     333 *  CPUロック状態の解除
    359334 *
    360  *  CPUロック中は,ディスパッチがå¿
    361 è¦ã¨ãªã‚‹ã‚µãƒ¼ãƒ“スコールを呼び出すこ
    362  *  とはできないため,CPUロック状æ
    363 ‹ã®è§£é™¤æ™‚にディスパッチャを起動する
    364  *  å¿
    365 è¦ã¯ãªã„.
     335 *  CPUロック中は,ディスパッチが必要となるサービスコールを呼び出すこ
     336 *  とはできないため,CPUロック状態の解除時にディスパッチャを起動する
     337 *  必要はない.
    366338 */
    367339#ifdef TOPPERS_unl_cpu
     
    388360
    389361/*
    390  *  CPUロック状æ
    391 ‹ã®è§£é™¤ï¼ˆéžã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆç”¨ï¼‰
     362 *  CPUロック状態の解除(非タスクコンテキスト用)
    392363 *
    393  *  CPUロック中は,ディスパッチがå¿
    394 è¦ã¨ãªã‚‹ã‚µãƒ¼ãƒ“スコールを呼び出すこ
    395  *  とはできないため,CPUロック状æ
    396 ‹ã®è§£é™¤æ™‚にディスパッチャの起動を要
    397  *  求するå¿
    398 è¦ã¯ãªã„.
     364 *  CPUロック中は,ディスパッチが必要となるサービスコールを呼び出すこ
     365 *  とはできないため,CPUロック状態の解除時にディスパッチャの起動を要
     366 *  求する必要はない.
    399367 */
    400368#ifdef TOPPERS_iunl_cpu
     
    421389
    422390/*
    423  *  ディスパッチの禁止
     391 *  ディスパッチの禁止
    424392 */
    425393#ifdef TOPPERS_dis_dsp
     
    447415
    448416/*
    449  *  ディスパッチの許可
     417 *  ディスパッチの許可
    450418 */
    451419#ifdef TOPPERS_ena_dsp
     
    478446
    479447/*
    480  *  コンテキストの参ç
    481 §
     448 *  コンテキストの参照
    482449 */
    483450#ifdef TOPPERS_sns_ctx
     
    497464
    498465/*
    499  *  CPUロック状æ
    500 ‹ã®å‚ç
    501 §
     466 *  CPUロック状態の参照
    502467 */
    503468#ifdef TOPPERS_sns_loc
     
    517482
    518483/*
    519  *  ディスパッチ禁止状æ
    520 ‹ã®å‚ç
    521 §
     484 *  ディスパッチ禁止状態の参照
    522485 */
    523486#ifdef TOPPERS_sns_dsp
     
    537500
    538501/*
    539  *  ディスパッチ保留状æ
    540 ‹ã®å‚ç
    541 §
     502 *  ディスパッチ保留状態の参照
    542503 */
    543504#ifdef TOPPERS_sns_dpn
     
    557518
    558519/*
    559  *  カーネル非動作状æ
    560 ‹ã®å‚ç
    561 §
     520 *  カーネル非動作状態の参照
    562521 */
    563522#ifdef TOPPERS_sns_ker
  • rubycfg_asp/trunk/asp_dcre/kernel/task.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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_TEX_ENTER
     
    7863
    7964/*
    80  *  実行状æ
    81 ‹ã®ã‚¿ã‚¹ã‚¯
     65 *  実行状態のタスク
    8266 */
    8367TCB             *p_runtsk;
    8468
    8569/*
    86  *  最高優å
    87 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯
     70 *  最高優先順位のタスク
    8871 */
    8972TCB             *p_schedtsk;
    9073
    9174/*
    92  *  タスクディスパッチ/タスク例外処理ルーチン起動要求フラグ
     75 *  タスクディスパッチ/タスク例外処理ルーチン起動要求フラグ
    9376 */
    9477bool_t  reqflg;
    9578
    9679/*
    97  *  割込み優å
    98 ˆåº¦ãƒžã‚¹ã‚¯å
    99 ¨è§£é™¤çŠ¶æ
    100 ‹
     80 *  割込み優先度マスク全解除状態
    10181 */
    10282bool_t  ipmflg;
    10383
    10484/*
    105  *  ディスパッチ禁止状æ
    106 ‹
     85 *  ディスパッチ禁止状態
    10786 */
    10887bool_t  disdsp;
    10988
    11089/*
    111  *  タスクディスパッチ可能状æ
    112 ‹
     90 *  タスクディスパッチ可能状態
    11391 */
    11492bool_t  dspflg;
    11593
    11694/*
    117  *  レディキュー
     95 *  レディキュー
    11896 */
    11997QUEUE   ready_queue[TNUM_TPRI];
    12098
    12199/*
    122  *  レディキューサーチのためのビットマップ
     100 *  レディキューサーチのためのビットマップ
    123101 */
    124102uint16_t        ready_primap;
    125103
    126104/*
    127  *  使用していないTCBのリスト
     105 *  使用していないTCBのリスト
    128106 */
    129107QUEUE   free_tcb;
    130108
    131109/*
    132  *  タスク管理モジュールの初期化
     110 *  タスク管理モジュールの初期化
    133111 */
    134112void
     
    174152
    175153/*
    176  *  ビットマップサーチ関数
    177  *
    178  *  bitmapå†
    179 ã®1のビットのå†
    180 ï¼Œæœ€ã‚‚下位(右)のものをサーチし,そのビッ
    181  *  ト番号を返す.ビット番号は,最下位ビットを0とする.bitmapに0を指定
    182  *  してはならない.この関数では,bitmapが16ビットであることを仮定し,
    183  *  uint16_t型としている.
    184  *
    185  *  ビットサーチ命令を持つプロセッサでは,ビットサーチ命令を使うように
    186  *  書き直した方が効率が良い場合がある.このような場合には,ターゲット
    187  *  依存部でビットサーチ命令を使ったbitmap_searchを定義し,
    188  *  OMIT_BITMAP_SEARCHをマクロ定義すればよい.また,ビットサーチ命令の
    189  *  サーチ方向が逆などの理由で優å
    190 ˆåº¦ã¨ãƒ“ットとの対応を変更したい場合に
    191  *  は,PRIMAP_BITをマクロ定義すればよい.
    192  *
    193  *  また,ライブラリにffsがあるなら,次のように定義してライブラリ関数を
    194  *  使った方が効率が良い可能性もある.
     154 *  ビットマップサーチ関数
     155 *
     156 *  bitmap内の1のビットの内,最も下位(右)のものをサーチし,そのビッ
     157 *  ト番号を返す.ビット番号は,最下位ビットを0とする.bitmapに0を指定
     158 *  してはならない.この関数では,bitmapが16ビットであることを仮定し,
     159 *  uint16_t型としている.
     160 *
     161 *  ビットサーチ命令を持つプロセッサでは,ビットサーチ命令を使うように
     162 *  書き直した方が効率が良い場合がある.このような場合には,ターゲット
     163 *  依存部でビットサーチ命令を使ったbitmap_searchを定義し,
     164 *  OMIT_BITMAP_SEARCHをマクロ定義すればよい.また,ビットサーチ命令の
     165 *  サーチ方向が逆などの理由で優先度とビットとの対応を変更したい場合に
     166 *  は,PRIMAP_BITをマクロ定義すればよい.
     167 *
     168 *  また,ライブラリにffsがあるなら,次のように定義してライブラリ関数を
     169 *  使った方が効率が良い可能性もある.
    195170 *              #define bitmap_search(bitmap) (ffs(bitmap) - 1)
    196171 */
     
    224199
    225200/*
    226  *  優å
    227 ˆåº¦ãƒ“ットマップが空かのチェック
     201 *  優先度ビットマップが空かのチェック
    228202 */
    229203Inline bool_t
     
    234208
    235209/*
    236  *  優å
    237 ˆåº¦ãƒ“ットマップのサーチ
     210 *  優先度ビットマップのサーチ
    238211 */
    239212Inline uint_t
     
    244217
    245218/*
    246  *  優å
    247 ˆåº¦ãƒ“ットマップのセット
     219 *  優先度ビットマップのセット
    248220 */
    249221Inline void
     
    254226
    255227/*
    256  *  優å
    257 ˆåº¦ãƒ“ットマップのクリア
     228 *  優先度ビットマップのクリア
    258229 */
    259230Inline void
     
    264235
    265236/*
    266  *  最高優å
    267 ˆé †ä½ã‚¿ã‚¹ã‚¯ã®ã‚µãƒ¼ãƒ
     237 *  最高優先順位タスクのサーチ
    268238 */
    269239#ifdef TOPPERS_tsksched
     
    281251
    282252/*
    283  *  実行できる状æ
    284 ‹ã¸ã®é·ç§»
    285  *
    286  *  最高優å
    287 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ã‚’更新するのは,実行できるタスクがなかった場合
    288  *  と,p_tcbの優å
    289 ˆåº¦ãŒæœ€é«˜å„ªå
    290 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ã®å„ªå
    291 ˆåº¦ã‚ˆã‚Šã‚‚高い場合であ
    292  *  る.
     253 *  実行できる状態への遷移
     254 *
     255 *  最高優先順位のタスクを更新するのは,実行できるタスクがなかった場合
     256 *  と,p_tcbの優先度が最高優先順位のタスクの優先度よりも高い場合であ
     257 *  る.
    293258 */
    294259#ifdef TOPPERS_tskrun
     
    312277
    313278/*
    314  *  実行できる状æ
    315 ‹ã‹ã‚‰ä»–の状æ
    316 ‹ã¸ã®é·ç§»
    317  *
    318  *  最高優å
    319 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ã‚’更新するのは,p_tcbが最高優å
    320 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ã§
    321  *  あった場合である.p_tcbと同じ優å
    322 ˆåº¦ã®ã‚¿ã‚¹ã‚¯ãŒä»–にある場合は,p_tcb
    323  *  の次のタスクが最高優å
    324 ˆé †ä½ã«ãªã‚‹ï¼Žãã†ã§ãªã„場合は,レディキューを
    325  *  サーチするå¿
    326 è¦ãŒã‚る.
     279 *  実行できる状態から他の状態への遷移
     280 *
     281 *  最高優先順位のタスクを更新するのは,p_tcbが最高優先順位のタスクで
     282 *  あった場合である.p_tcbと同じ優先度のタスクが他にある場合は,p_tcb
     283 *  の次のタスクが最高優先順位になる.そうでない場合は,レディキューを
     284 *  サーチする必要がある.
    327285 */
    328286#ifdef TOPPERS_tsknrun
     
    354312
    355313/*
    356  *  休止状æ
    357 ‹ã¸ã®é·ç§»
     314 *  休止状態への遷移
    358315 */
    359316#ifdef TOPPERS_tskdmt
     
    373330
    374331/*
    375  *  休止状æ
    376 ‹ã‹ã‚‰å®Ÿè¡Œã§ãã‚‹çŠ¶æ
    377 ‹ã¸ã®é·ç§»
     332 *  休止状態から実行できる状態への遷移
    378333 */
    379334#ifdef TOPPERS_tskact
     
    391346
    392347/*
    393  *  タスクの優å
    394 ˆåº¦ã®å¤‰æ›´
    395  *
    396  *  タスクが実行できる状æ
    397 ‹ã®å ´åˆã«ã¯ï¼Œãƒ¬ãƒ‡ã‚£ã‚­ãƒ¥ãƒ¼ã®ä¸­ã§ã®ä½ç½®ã‚’変更す
    398  *  る.オブジェクトのå¾
    399 ã¡ã‚­ãƒ¥ãƒ¼ã®ä¸­ã§å¾
    400 ã¡çŠ¶æ
    401 ‹ã«ãªã£ã¦ã„る場合には,å¾
    402 
    403  *  ちキューの中での位置を変更する.
    404  *
    405  *  最高優å
    406 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ã‚’更新するのは,(1) p_tcbが最高優å
    407 ˆé †ä½ã®ã‚¿ã‚¹
    408  *  クであって,その優å
    409 ˆåº¦ã‚’下げた場合,(2) p_tcbが最高優å
    410 ˆé †ä½ã®ã‚¿ã‚¹
    411  *  クではなく,変更後の優å
    412 ˆåº¦ãŒæœ€é«˜å„ªå
    413 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ã®å„ªå
    414 ˆåº¦ã‚ˆã‚Šã‚‚高い
    415  *  場合である.(1)の場合には,レディキューをサーチするå¿
    416 è¦ãŒã‚る.
     348 *  タスクの優先度の変更
     349 *
     350 *  タスクが実行できる状態の場合には,レディキューの中での位置を変更す
     351 *  る.オブジェクトの待ちキューの中で待ち状態になっている場合には,待
     352 *  ちキューの中での位置を変更する.
     353 *
     354 *  最高優先順位のタスクを更新するのは,(1) p_tcbが最高優先順位のタス
     355 *  クであって,その優先度を下げた場合,(2) p_tcbが最高優先順位のタス
     356 *  クではなく,変更後の優先度が最高優先順位のタスクの優先度よりも高い
     357 *  場合である.(1)の場合には,レディキューをサーチする必要がある.
    417358 */
    418359#ifdef TOPPERS_tskpri
     
    428369        if (TSTAT_RUNNABLE(p_tcb->tstat)) {
    429370                /*
    430                  *  タスクが実行できる状æ
    431 ‹ã®å ´åˆ
     371                 *  タスクが実行できる状態の場合
    432372                 */
    433373                queue_delete(&(p_tcb->task_queue));
     
    454394                if (TSTAT_WAIT_WOBJCB(p_tcb->tstat)) {
    455395                        /*
    456                          *  タスクが,同期・通信オブジェクトの管理ブロックのå
    457 ±é€šéƒ¨
    458                          *  分(WOBJCB)のå¾
    459 ã¡ã‚­ãƒ¥ãƒ¼ã«ã¤ãªãŒã‚Œã¦ã„る場合
     396                         *  タスクが,同期・通信オブジェクトの管理ブロックの共通部
     397                         *  分(WOBJCB)の待ちキューにつながれている場合
    460398                         */
    461399                        wobj_change_priority(((WINFO_WOBJ *)(p_tcb->p_winfo))->p_wobjcb,
     
    469407
    470408/*
    471  *  レディキューの回転
    472  *
    473  *  最高優å
    474 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ã‚’更新するのは,最高優å
    475 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ãŒã‚¿ã‚¹ã‚¯ã‚­
    476  *  ューの末尾に移動した場合である.
     409 *  レディキューの回転
     410 *
     411 *  最高優先順位のタスクを更新するのは,最高優先順位のタスクがタスクキ
     412 *  ューの末尾に移動した場合である.
    477413 */
    478414#ifdef TOPPERS_tskrot
     
    498434
    499435/*
    500  *  タスク例外処理ルーチンの呼出し
    501  *
    502  *  ASPカーネルでは,タスク例外処理ルーチンå†
    503 ã§CPUロック状æ
    504 ‹ã«é·ç§»ã—,
    505  *  å
    506 ƒã®çŠ¶æ
    507 ‹ã«æˆ»ã•ãšã«ãƒªã‚¿ãƒ¼ãƒ³ã—た場合,カーネルがå
    508 ƒã®çŠ¶æ
    509 ‹ã«æˆ»ã™ï¼Ž
     436 *  タスク例外処理ルーチンの呼出し
     437 *
     438 *  ASPカーネルでは,タスク例外処理ルーチン内でCPUロック状態に遷移し,
     439 *  元の状態に戻さずにリターンした場合,カーネルが元の状態に戻す.
    510440 */
    511441#ifdef TOPPERS_tsktex
     
    540470                if (p_runtsk != p_schedtsk && dspflg) {
    541471                        /*
    542                          *  ここでdispatchを呼び出す処理は,相互再帰呼出しになって
    543                          *  いるが,dispatchを呼ぶ前にp_runtsk->enatexをfalseにして
    544                          *  おけば支障がない.その理由については,「TOPPERS/ASP カー
    545                          *  ネル 設計メモ」を参ç
    546 §ã®ã“と.
     472                         *  ここでdispatchを呼び出す処理は,相互再帰呼出しになって
     473                         *  いるが,dispatchを呼ぶ前にp_runtsk->enatexをfalseにして
     474                         *  おけば支障がない.その理由については,「TOPPERS/ASP カー
     475                         *  ネル 設計メモ」を参照のこと.
    547476                         */
    548477                        dispatch();
     
    553482
    554483/*
    555  *  タスク例外処理ルーチンの起動
     484 *  タスク例外処理ルーチンの起動
    556485 */
    557486#ifndef OMIT_CALLTEX
  • rubycfg_asp/trunk/asp_dcre/kernel/task.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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_TSKSTAT
     
    7459
    7560/*
    76  *  タスク優å
    77 ˆåº¦ã®å†
    78 éƒ¨è¡¨ç¾ãƒ»å¤–部表現変換マクロ
     61 *  タスク優先度の内部表現・外部表現変換マクロ
    7962 */
    8063#define INT_PRIORITY(x)         ((uint_t)((x) - TMIN_TPRI))
     
    8265
    8366/*
    84  *  タスク状æ
    85 ‹ã®å†
    86 éƒ¨è¡¨ç¾
    87  *
    88  *  TCB中のタスク状æ
    89 ‹ã§ã¯ï¼Œå®Ÿè¡ŒçŠ¶æ
    90 ‹ï¼ˆRUNNING)と実行可能状æ
    91 ‹ï¼ˆREADY)
    92  *  は区別しない.両状æ
    93 ‹ã‚’総称して,実行できる状æ
    94 ‹ï¼ˆRUNNABLE)と呼ぶ.
    95  *  二重å¾
    96 ã¡çŠ¶æ
    97 ‹ã¯ï¼Œ(TS_WAITING | TS_SUSPENDED)で表す.TS_WAIT_???はå¾
    98 
    99  *  ち要因を表し,å¾
    100 ã¡çŠ¶æ
    101 ‹ï¼ˆäºŒé‡å¾
    102 ã¡çŠ¶æ
    103 ‹ã‚’含む)の場合にのみ設定する.
    104  */
    105 #define TS_DORMANT              0x00U                   /* 休止状æ
    106 ‹ */
    107 #define TS_RUNNABLE             0x01U                   /* 実行できる状æ
    108 ‹ */
    109 #define TS_WAITING              0x02U                   /* å¾
    110 ã¡çŠ¶æ
    111 ‹ */
    112 #define TS_SUSPENDED    0x04U                   /* 強制å¾
    113 ã¡çŠ¶æ
    114 ‹ */
    115 
    116 #define TS_WAIT_DLY             (0x00U << 3)    /* 時間経過å¾
    117 ã¡ */
    118 #define TS_WAIT_SLP             (0x01U << 3)    /* 起床å¾
    119 ã¡ */
    120 #define TS_WAIT_RDTQ    (0x02U << 3)    /* データキューからの受信å¾
    121 ã¡ */
    122 #define TS_WAIT_RPDQ    (0x03U << 3)    /* 優å
    123 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‹ã‚‰ã®å—ä¿¡å¾
    124 ã¡ */
    125 #define TS_WAIT_SEM             (0x04U << 3)    /* セマフォ資源の獲得å¾
    126 ã¡ */
    127 #define TS_WAIT_FLG             (0x05U << 3)    /* イベントフラグå¾
    128 ã¡ */
    129 #define TS_WAIT_SDTQ    (0x06U << 3)    /* データキューへの送信å¾
    130 ã¡ */
    131 #define TS_WAIT_SPDQ    (0x07U << 3)    /* 優å
    132 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã¸ã®é€ä¿¡å¾
    133 ã¡ */
    134 #define TS_WAIT_MBX             (0x08U << 3)    /* メールボックスからの受信å¾
    135 ã¡ */
    136 #define TS_WAIT_MPF             (0x09U << 3)    /* 固定長メモリブロックの獲得å¾
    137 ã¡ */
    138 
    139 /*
    140  *  タスク状æ
    141 ‹åˆ¤åˆ¥ãƒžã‚¯ãƒ­
    142  *
    143  *  TSTAT_DORMANTはタスクが休止状æ
    144 ‹ã§ã‚るかどうかを,TSTAT_RUNNABLEは
    145  *  タスクが実行できる状æ
    146 ‹ã§ã‚るかどうかを判別する.TSTAT_WAITINGはå¾
    147 
    148  *  ち状æ
    149 ‹ã¨äºŒé‡å¾
    150 ã¡çŠ¶æ
    151 ‹ã®ã„ずれかであるかどうかを,TSTAT_SUSPENDEDは
    152  *  強制å¾
    153 ã¡çŠ¶æ
    154 ‹ã¨äºŒé‡å¾
    155 ã¡çŠ¶æ
    156 ‹ã®ã„ずれかであるかどうかを判別する.
     67 *  タスク状態の内部表現
     68 *
     69 *  TCB中のタスク状態では,実行状態(RUNNING)と実行可能状態(READY)
     70 *  は区別しない.両状態を総称して,実行できる状態(RUNNABLE)と呼ぶ.
     71 *  二重待ち状態は,(TS_WAITING | TS_SUSPENDED)で表す.TS_WAIT_???は待
     72 *  ち要因を表し,待ち状態(二重待ち状態を含む)の場合にのみ設定する.
     73 */
     74#define TS_DORMANT              0x00U                   /* 休止状態 */
     75#define TS_RUNNABLE             0x01U                   /* 実行できる状態 */
     76#define TS_WAITING              0x02U                   /* 待ち状態 */
     77#define TS_SUSPENDED    0x04U                   /* 強制待ち状態 */
     78
     79#define TS_WAIT_DLY             (0x00U << 3)    /* 時間経過待ち */
     80#define TS_WAIT_SLP             (0x01U << 3)    /* 起床待ち */
     81#define TS_WAIT_RDTQ    (0x02U << 3)    /* データキューからの受信待ち */
     82#define TS_WAIT_RPDQ    (0x03U << 3)    /* 優先度データキューからの受信待ち */
     83#define TS_WAIT_SEM             (0x04U << 3)    /* セマフォ資源の獲得待ち */
     84#define TS_WAIT_FLG             (0x05U << 3)    /* イベントフラグ待ち */
     85#define TS_WAIT_SDTQ    (0x06U << 3)    /* データキューへの送信待ち */
     86#define TS_WAIT_SPDQ    (0x07U << 3)    /* 優先度データキューへの送信待ち */
     87#define TS_WAIT_MBX             (0x08U << 3)    /* メールボックスからの受信待ち */
     88#define TS_WAIT_MPF             (0x09U << 3)    /* 固定長メモリブロックの獲得待ち */
     89
     90/*
     91 *  タスク状態判別マクロ
     92 *
     93 *  TSTAT_DORMANTはタスクが休止状態であるかどうかを,TSTAT_RUNNABLEは
     94 *  タスクが実行できる状態であるかどうかを判別する.TSTAT_WAITINGは待
     95 *  ち状態と二重待ち状態のいずれかであるかどうかを,TSTAT_SUSPENDEDは
     96 *  強制待ち状態と二重待ち状態のいずれかであるかどうかを判別する.
    15797 */
    15898#define TSTAT_DORMANT(tstat)    ((tstat) == TS_DORMANT)
     
    162102
    163103/*
    164  *  タスクå¾
    165 ã¡è¦å› åˆ¤åˆ¥ãƒžã‚¯ãƒ­
    166  *
    167  *  TSTAT_WAIT_SLPはタスクが起床å¾
    168 ã¡ã§ã‚るかどうかを,TSTAT_WAIT_WOBJ
    169  *  はタスクが同期・通信オブジェクトに対するå¾
    170 ã¡ã§ã‚るか(言い換えると,
    171  *  同期通信オブジェクトのå¾
    172 ã¡ã‚­ãƒ¥ãƒ¼ã«ã¤ãªãŒã‚Œã¦ã„るか)どうかを判別す
    173  *  る.また,TSTAT_WAIT_WOBJCBはタスクが同期・通信オブジェクトの管理
    174  *  ブロックのå
    175 ±é€šéƒ¨åˆ†ï¼ˆWOBJCB)のå¾
    176 ã¡ã‚­ãƒ¥ãƒ¼ã«ã¤ãªãŒã‚Œã¦ã„るかどうかを
    177  *  判別する.
    178  *
    179  *  TSTAT_WAIT_SLPは,任意のタスク状æ
    180 ‹ã®ä¸­ã‹ã‚‰ï¼Œã‚¿ã‚¹ã‚¯ãŒèµ·åºŠå¾
    181 ã¡ã§ã‚ã‚‹
    182  *  ことを判別できる.すなわち,TSTAT_WAITINGによりå¾
    183 ã¡çŠ¶æ
    184 ‹ã§ã‚ることを
    185  *  判別せずに,TSTAT_SLPだけを用いて起床å¾
    186 ã¡çŠ¶æ
    187 ‹ã§ã‚ることを判別できる.
    188  *  これを効率的に実現するために,TS_WAIT_SLPの値を,(0x00U << 3)ではな
    189  *  く(0x01U << 3)としている.そのため,タスクが時間経過å¾
    190 ã¡çŠ¶æ
    191 ‹ã§ã‚ã‚‹
    192  *  ことを判別するためのTSTAT_WAIT_DLYを,TSTAT_WAIT_SLPと同様の方法で
    193  *  実現することはできない.
    194  */
    195 #define TS_WAIT_MASK    (0x0fU << 3)    /* å¾
    196 ã¡è¦å› ã®å–出しマスク */
     104 *  タスク待ち要因判別マクロ
     105 *
     106 *  TSTAT_WAIT_SLPはタスクが起床待ちであるかどうかを,TSTAT_WAIT_WOBJ
     107 *  はタスクが同期・通信オブジェクトに対する待ちであるか(言い換えると,
     108 *  同期通信オブジェクトの待ちキューにつながれているか)どうかを判別す
     109 *  る.また,TSTAT_WAIT_WOBJCBはタスクが同期・通信オブジェクトの管理
     110 *  ブロックの共通部分(WOBJCB)の待ちキューにつながれているかどうかを
     111 *  判別する.
     112 *
     113 *  TSTAT_WAIT_SLPは,任意のタスク状態の中から,タスクが起床待ちである
     114 *  ことを判別できる.すなわち,TSTAT_WAITINGにより待ち状態であることを
     115 *  判別せずに,TSTAT_SLPだけを用いて起床待ち状態であることを判別できる.
     116 *  これを効率的に実現するために,TS_WAIT_SLPの値を,(0x00U << 3)ではな
     117 *  く(0x01U << 3)としている.そのため,タスクが時間経過待ち状態である
     118 *  ことを判別するためのTSTAT_WAIT_DLYを,TSTAT_WAIT_SLPと同様の方法で
     119 *  実現することはできない.
     120 */
     121#define TS_WAIT_MASK    (0x0fU << 3)    /* 待ち要因の取出しマスク */
    197122
    198123#define TSTAT_WAIT_SLP(tstat)           (((tstat) & TS_WAIT_MASK) == TS_WAIT_SLP)
     
    201126
    202127/*
    203  *  å¾
    204 ã¡æƒ
    205 å ±ãƒ–ロック(WINFO)の定義
    206  *
    207  *  タスクがå¾
    208 ã¡çŠ¶æ
    209 ‹ã®é–“は,TCBおよびそのp_winfoで指されるWINFOを次の
    210  *  ように設定しなければならない.
    211  *
    212  *  (a) TCBのタスク状æ
    213 ‹ã‚’å¾
    214 ã¡çŠ¶æ
    215 ‹ï¼ˆTS_WAITING)にする.その際に,å¾
    216 ã¡
    217  *  要因(TS_WAIT_???)も設定する.
    218  *
    219  *  (b) タイムアウトを監視するために,タイムイベントブロックを登録する.
    220  *  登録するタイムイベントブロックは,å¾
    221 ã¡ã«å
    222 ¥ã‚‹ã‚µãƒ¼ãƒ“スコール処理関数
    223  *  のローカル変数として確保し,それへのポインタをWINFOのp_tmevtbに記
    224  *  憶する.タイムアウトの監視がå¿
    225 è¦ãªã„場合(永ä¹
    226 å¾
    227 ã¡ã®å ´åˆï¼‰ã«ã¯ï¼Œ
    228  *  p_tmevtbをNULLにする.
    229  *
    230  *  同期・通信オブジェクトに対するå¾
    231 ã¡çŠ¶æ
    232 ‹ã®å ´åˆã«ã¯ï¼Œæ¨™æº–のWINFOに
    233  *  p_wobjcbフィールドを追加した構造体(WINFO_WOBJ,wait.hで定義)を使
    234  *  う.また,以下の(c)~(e)の設定を行うå¿
    235 è¦ãŒã‚る.同期・通信オブジェ
    236  *  クトに関係しないå¾
    237 ã¡ï¼ˆèµ·åºŠå¾
    238 ã¡ï¼Œæ™‚間経過å¾
    239 ã¡ï¼‰ã®å ´åˆã«ã¯ï¼Œ(c)~(e)
    240  *  はå¿
    241 è¦ãªã„.
    242  *
    243  *  (c) TCBをå¾
    244 ã¡å¯¾è±¡ã®åŒæœŸãƒ»é€šä¿¡ã‚ªãƒ–ジェクトのå¾
    245 ã¡ã‚­ãƒ¥ãƒ¼ã«ã¤ãªãï¼Žå¾
    246 
    247  *  ちキューにつなぐために,task_queueを使う.
    248  *
    249  *  (d) å¾
    250 ã¡å¯¾è±¡ã®åŒæœŸãƒ»é€šä¿¡ã‚ªãƒ–ジェクトの管理ブロックへのポインタを,
    251  *  WINFO_WOBJのp_wobjcbに記憶する.
    252  *
    253  *  (e) å¾
    254 ã¡å¯¾è±¡ã®åŒæœŸãƒ»é€šä¿¡ã‚ªãƒ–ジェクトに依存して記憶することがå¿
    255 è¦ãª
    256  *  æƒ
    257 å ±ãŒã‚る場合には,WINFO_WOBJにå¿
    258 è¦ãªæƒ
    259 å ±ã®ãŸã‚ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’追加
    260  *  した構造体を定義し,WINFO_WOBJの代わりに用いる.
    261  *
    262  *  å¾
    263 ã¡çŠ¶æ
    264 ‹ã‚’解除する際には,å¾
    265 ã¡è§£é™¤ã—たタスクに対する返値をWINFOの
    266  *  wercdに設定する.wercdがå¿
    267 è¦ãªã®ã¯å¾
    268 ã¡è§£é™¤ä»¥é™ã§ã‚るのに対して,
    269  *  p_tmevtbはå¾
    270 ã¡è§£é™¤å¾Œã¯å¿
    271 è¦ãªã„ため,メモリ節約のためにå
    272 ±ç”¨ä½“を使っ
    273  *  ている.そのため,wercdへエラーコードを設定するのは,タイムイベント
    274  *  ブロックを登録解除した後にしなければならない.
     128 *  待ち情報ブロック(WINFO)の定義
     129 *
     130 *  タスクが待ち状態の間は,TCBおよびそのp_winfoで指されるWINFOを次の
     131 *  ように設定しなければならない.
     132 *
     133 *  (a) TCBのタスク状態を待ち状態(TS_WAITING)にする.その際に,待ち
     134 *  要因(TS_WAIT_???)も設定する.
     135 *
     136 *  (b) タイムアウトを監視するために,タイムイベントブロックを登録する.
     137 *  登録するタイムイベントブロックは,待ちに入るサービスコール処理関数
     138 *  のローカル変数として確保し,それへのポインタをWINFOのp_tmevtbに記
     139 *  憶する.タイムアウトの監視が必要ない場合(永久待ちの場合)には,
     140 *  p_tmevtbをNULLにする.
     141 *
     142 *  同期・通信オブジェクトに対する待ち状態の場合には,標準のWINFOに
     143 *  p_wobjcbフィールドを追加した構造体(WINFO_WOBJ,wait.hで定義)を使
     144 *  う.また,以下の(c)~(e)の設定を行う必要がある.同期・通信オブジェ
     145 *  クトに関係しない待ち(起床待ち,時間経過待ち)の場合には,(c)~(e)
     146 *  は必要ない.
     147 *
     148 *  (c) TCBを待ち対象の同期・通信オブジェクトの待ちキューにつなぐ.待
     149 *  ちキューにつなぐために,task_queueを使う.
     150 *
     151 *  (d) 待ち対象の同期・通信オブジェクトの管理ブロックへのポインタを,
     152 *  WINFO_WOBJのp_wobjcbに記憶する.
     153 *
     154 *  (e) 待ち対象の同期・通信オブジェクトに依存して記憶することが必要な
     155 *  情報がある場合には,WINFO_WOBJに必要な情報のためのフィールドを追加
     156 *  した構造体を定義し,WINFO_WOBJの代わりに用いる.
     157 *
     158 *  待ち状態を解除する際には,待ち解除したタスクに対する返値をWINFOの
     159 *  wercdに設定する.wercdが必要なのは待ち解除以降であるのに対して,
     160 *  p_tmevtbは待ち解除後は必要ないため,メモリ節約のために共用体を使っ
     161 *  ている.そのため,wercdへエラーコードを設定するのは,タイムイベント
     162 *  ブロックを登録解除した後にしなければならない.
    275163 */
    276164typedef union waiting_information {
    277         ER              wercd;                  /* å¾
    278 ã¡è§£é™¤æ™‚のエラーコード */
    279         TMEVTB  *p_tmevtb;              /* å¾
    280 ã¡çŠ¶æ
    281 ‹ç”¨ã®ã‚¿ã‚¤ãƒ ã‚¤ãƒ™ãƒ³ãƒˆãƒ–ロック */
     165        ER              wercd;                  /* 待ち解除時のエラーコード */
     166        TMEVTB  *p_tmevtb;              /* 待ち状態用のタイムイベントブロック */
    282167} WINFO;
    283168
    284169/*
    285  *  タスク初期化ブロック
    286  *
    287  *  タスクに関するæƒ
    288 å ±ã‚’,値が変わらないためにROMに置ける部分(タスク
    289  *  初期化ブロック)と,値が変化するためにRAMに置かなければならない部
    290  *  分(タスク管理ブロック,TCB)に分離し,TCBå†
    291 ã«å¯¾å¿œã™ã‚‹ã‚¿ã‚¹ã‚¯åˆæœŸåŒ–
    292  *  ブロックを指すポインタをå
    293 ¥ã‚Œã‚‹ï¼Žã‚¿ã‚¹ã‚¯åˆæœŸåŒ–ブロックå†
    294 ã«å¯¾å¿œã™ã‚‹
    295  *  TCBを指すポインタをå
    296 ¥ã‚Œã‚‹æ–¹æ³•ã®æ–¹ãŒï¼ŒRAMの節約の観点からは望ましい
    297  *  が,実行効率が悪くなるために採用していない.他のオブジェクトについ
    298  *  ても同様に扱う.
    299  *
    300  *  タスク初期化ブロックには,DEF_TEXで定義されるタスク例外処理ルーチ
    301  *  ンに関するæƒ
    302 å ±ã‚‚含む.
     170 *  タスク初期化ブロック
     171 *
     172 *  タスクに関する情報を,値が変わらないためにROMに置ける部分(タスク
     173 *  初期化ブロック)と,値が変化するためにRAMに置かなければならない部
     174 *  分(タスク管理ブロック,TCB)に分離し,TCB内に対応するタスク初期化
     175 *  ブロックを指すポインタを入れる.タスク初期化ブロック内に対応する
     176 *  TCBを指すポインタを入れる方法の方が,RAMの節約の観点からは望ましい
     177 *  が,実行効率が悪くなるために採用していない.他のオブジェクトについ
     178 *  ても同様に扱う.
     179 *
     180 *  タスク初期化ブロックには,DEF_TEXで定義されるタスク例外処理ルーチ
     181 *  ンに関する情報も含む.
    303182 */
    304183typedef struct task_initialization_block {
    305         ATR                     tskatr;                 /* タスク属性 */
    306         intptr_t        exinf;                  /* タスクの拡張æƒ
    307 å ± */
    308         TASK            task;                   /* タスクの起動番地 */
    309         uint_t          ipriority;              /* タスクの起動時優å
    310 ˆåº¦ï¼ˆå†
    311 éƒ¨è¡¨ç¾ï¼‰ */
     184        ATR                     tskatr;                 /* タスク属性 */
     185        intptr_t        exinf;                  /* タスクの拡張情報 */
     186        TASK            task;                   /* タスクの起動番地 */
     187        uint_t          ipriority;              /* タスクの起動時優先度(内部表現) */
    312188
    313189#ifdef USE_TSKINICTXB
    314         TSKINICTXB      tskinictxb;             /* タスク初期化コンテキストブロック */
     190        TSKINICTXB      tskinictxb;             /* タスク初期化コンテキストブロック */
    315191#else /* USE_TSKINICTXB */
    316         SIZE            stksz;                  /* スタック領域のサイズ(丸めた値) */
    317         void            *stk;                   /* スタック領域のå
    318 ˆé ­ç•ªåœ° */
     192        SIZE            stksz;                  /* スタック領域のサイズ(丸めた値) */
     193        void            *stk;                   /* スタック領域の先頭番地 */
    319194#endif /* USE_TSKINICTXB */
    320195
    321         ATR                     texatr;                 /* タスク例外処理ルーチン属性 */
    322         TEXRTN          texrtn;                 /* タスク例外処理ルーチンの起動番地 */
     196        ATR                     texatr;                 /* タスク例外処理ルーチン属性 */
     197        TEXRTN          texrtn;                 /* タスク例外処理ルーチンの起動番地 */
    323198} TINIB;
    324199
    325200/*
    326  *  TCB中のフィールドのビットå¹
    327 ã®å®šç¾©
    328  *
    329  *  プロセッサによっては,TCB中のフィールドのビットå¹
    330 ã§ãƒ¡ãƒ¢ãƒªä½¿ç”¨é‡ã¨
    331  *  性能がトレードオフになるため,ターゲット依存にフィールドのビットå¹
    332 
    333  *  を変更することを許している.
     201 *  TCB中のフィールドのビット幅の定義
     202 *
     203 *  プロセッサによっては,TCB中のフィールドのビット幅でメモリ使用量と
     204 *  性能がトレードオフになるため,ターゲット依存にフィールドのビット幅
     205 *  を変更することを許している.
    334206 */
    335207#ifndef TBIT_TCB_PRIORITY
    336 #define TBIT_TCB_PRIORITY               8               /* priorityフィールドのビットå¹
    337  */
     208#define TBIT_TCB_PRIORITY               8               /* priorityフィールドのビット幅 */
    338209#endif /* TBIT_TCB_PRIORITY */
    339210
    340211/*
    341  *  タスク管理ブロック(TCB)
    342  *
    343  *  ASPカーネルでは,タスクの起動要求キューイング数の最大値(TMAX_ACTCNT)
    344  *  と起床要求キューイング数の最大値(TMAX_WUPCNT)は1に固定されている
    345  *  ため,キューイングされているかどうかの真偽値で表現することができる.
    346  *  また,強制å¾
    347 ã¡è¦æ±‚ネスト数の最大値(TMAX_SUSCNT)が1に固定されてい
    348  *  るので,強制å¾
    349 ã¡è¦æ±‚ネスト数(suscnt)はå¿
    350 è¦ãªã„.
    351  *
    352  *  TCBのいくつかのフィールドは,特定のタスク状æ
    353 ‹ã§ã®ã¿æœ‰åŠ¹ãªå€¤ã‚’保持し,
    354  *  それ以外の場合は値が保証されない(よって,参ç
    355 §ã—てはならない).各
    356  *  フィールドが有効な値を保持する条件は次の通り.
    357  *
    358  *  ・初期化後は常に有効:
    359  *              p_tinib,tstat,actque
    360  *  ・休止状æ
    361 ‹ä»¥å¤–で有効(休止状æ
    362 ‹ã§ã¯åˆæœŸå€¤ã«ãªã£ã¦ã„る):
    363  *              priority,wupque,enatex,texptn
    364  *  ・å¾
    365 ã¡çŠ¶æ
    366 ‹ï¼ˆäºŒé‡å¾
    367 ã¡çŠ¶æ
    368 ‹ã‚’含む)で有効:
     212 *  タスク管理ブロック(TCB)
     213 *
     214 *  ASPカーネルでは,タスクの起動要求キューイング数の最大値(TMAX_ACTCNT)
     215 *  と起床要求キューイング数の最大値(TMAX_WUPCNT)は1に固定されている
     216 *  ため,キューイングされているかどうかの真偽値で表現することができる.
     217 *  また,強制待ち要求ネスト数の最大値(TMAX_SUSCNT)が1に固定されてい
     218 *  るので,強制待ち要求ネスト数(suscnt)は必要ない.
     219 *
     220 *  TCBのいくつかのフィールドは,特定のタスク状態でのみ有効な値を保持し,
     221 *  それ以外の場合は値が保証されない(よって,参照してはならない).各
     222 *  フィールドが有効な値を保持する条件は次の通り.
     223 *
     224 *  ・初期化後は常に有効:
     225 *              p_tinib,tstat,actque
     226 *  ・休止状態以外で有効(休止状態では初期値になっている):
     227 *              priority,wupque,enatex,texptn
     228 *  ・待ち状態(二重待ち状態を含む)で有効:
    369229 *              p_winfo
    370  *  ・実行できる状æ
    371 ‹ã¨åŒæœŸãƒ»é€šä¿¡ã‚ªãƒ–ジェクトに対するå¾
    372 ã¡çŠ¶æ
    373 ‹ã§æœ‰åŠ¹ï¼š
     230 *  ・実行できる状態と同期・通信オブジェクトに対する待ち状態で有効:
    374231 *              task_queue
    375  *  ・実行可能状æ
    376 ‹ï¼Œå¾
    377 ã¡çŠ¶æ
    378 ‹ï¼Œå¼·åˆ¶å¾
    379 ã¡çŠ¶æ
    380 ‹ï¼ŒäºŒé‡å¾
    381 ã¡çŠ¶æ
    382 ‹ã§æœ‰åŠ¹ï¼š
     232 *  ・実行可能状態,待ち状態,強制待ち状態,二重待ち状態で有効:
    383233 *              tskctxb
    384234 */
    385235typedef struct task_control_block {
    386         QUEUE                   task_queue;             /* タスクキュー */
    387         const TINIB             *p_tinib;               /* 初期化ブロックへのポインタ */
     236        QUEUE                   task_queue;             /* タスクキュー */
     237        const TINIB             *p_tinib;               /* 初期化ブロックへのポインタ */
    388238
    389239#ifdef UINT8_MAX
    390         uint8_t                 tstat;                  /* タスク状æ
    391 ‹ï¼ˆå†
    392 éƒ¨è¡¨ç¾ï¼‰*/
     240        uint8_t                 tstat;                  /* タスク状態(内部表現)*/
    393241#else /* UINT8_MAX */
    394         BIT_FIELD_UINT  tstat : 8;              /* タスク状æ
    395 ‹ï¼ˆå†
    396 éƒ¨è¡¨ç¾ï¼‰*/
     242        BIT_FIELD_UINT  tstat : 8;              /* タスク状態(内部表現)*/
    397243#endif /* UINT8_MAX */
    398244#if defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8)
    399         uint8_t                 priority;               /* 現在の優å
    400 ˆåº¦ï¼ˆå†
    401 éƒ¨è¡¨ç¾ï¼‰*/
     245        uint8_t                 priority;               /* 現在の優先度(内部表現)*/
    402246#else /* defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8) */
    403247        BIT_FIELD_UINT  priority : TBIT_TCB_PRIORITY;
    404                                                                         /* 現在の優å
    405 ˆåº¦ï¼ˆå†
    406 éƒ¨è¡¨ç¾ï¼‰*/
     248                                                                        /* 現在の優先度(内部表現)*/
    407249#endif /* defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8) */
    408         BIT_FIELD_BOOL  actque : 1;             /* 起動要求キューイング */
    409         BIT_FIELD_BOOL  wupque : 1;             /* 起床要求キューイング */
    410         BIT_FIELD_BOOL  enatex : 1;             /* タスク例外処理許可状æ
    411 ‹ */
    412 
    413         TEXPTN                  texptn;                 /* 保留例外要因 */
    414         WINFO                   *p_winfo;               /* å¾
    415 ã¡æƒ
    416 å ±ãƒ–ロックへのポインタ */
    417         TSKCTXB                 tskctxb;                /* タスクコンテキストブロック */
     250        BIT_FIELD_BOOL  actque : 1;             /* 起動要求キューイング */
     251        BIT_FIELD_BOOL  wupque : 1;             /* 起床要求キューイング */
     252        BIT_FIELD_BOOL  enatex : 1;             /* タスク例外処理許可状態 */
     253
     254        TEXPTN                  texptn;                 /* 保留例外要因 */
     255        WINFO                   *p_winfo;               /* 待ち情報ブロックへのポインタ */
     256        TSKCTXB                 tskctxb;                /* タスクコンテキストブロック */
    418257} TCB;
    419258
    420259/*
    421  *  実行状æ
    422 ‹ã®ã‚¿ã‚¹ã‚¯
    423  *
    424  *  実行状æ
    425 ‹ã®ã‚¿ã‚¹ã‚¯ï¼ˆï¼ãƒ—ロセッサがコンテキストを持っているタスク)の
    426  *  TCBを指すポインタ.実行状æ
    427 ‹ã®ã‚¿ã‚¹ã‚¯ãŒãªã„場合はNULLにする.
    428  *
    429  *  サービスコールの処理中で,自タスク(サービスコールを呼び出したタス
    430  *  ク)に関するæƒ
    431 å ±ã‚’参ç
    432 §ã™ã‚‹å ´åˆã¯p_runtskを使う.p_runtskを書き換え
    433  *  るのは,ディスパッチャ(と初期化処理)のみである.
     260 *  実行状態のタスク
     261 *
     262 *  実行状態のタスク(=プロセッサがコンテキストを持っているタスク)の
     263 *  TCBを指すポインタ.実行状態のタスクがない場合はNULLにする.
     264 *
     265 *  サービスコールの処理中で,自タスク(サービスコールを呼び出したタス
     266 *  ク)に関する情報を参照する場合はp_runtskを使う.p_runtskを書き換え
     267 *  るのは,ディスパッチャ(と初期化処理)のみである.
    434268 */
    435269extern TCB      *p_runtsk;
    436270
    437271/*
    438  *  最高優å
    439 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯
    440  *
    441  *  実行できるタスクの中で最高優å
    442 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ã®TCBを指すポインタ.実
    443  *  行できるタスクがない場合はNULLにする.
    444  *
    445  *  ディスパッチ禁止状æ
    446 ‹ãªã©ï¼Œãƒ‡ã‚£ã‚¹ãƒ‘ッチが保留されている間はp_runtsk
    447  *  と一致しているとは限らない.
     272 *  最高優先順位のタスク
     273 *
     274 *  実行できるタスクの中で最高優先順位のタスクのTCBを指すポインタ.実
     275 *  行できるタスクがない場合はNULLにする.
     276 *
     277 *  ディスパッチ禁止状態など,ディスパッチが保留されている間はp_runtsk
     278 *  と一致しているとは限らない.
    448279 */
    449280extern TCB      *p_schedtsk;
    450281
    451282/*
    452  *  ディスパッチ/タスク例外処理ルーチン起動要求フラグ
    453  *
    454  *  割込みハンドラ/CPU例外ハンドラの出口処理に,ディスパッチまたは
    455  *  タスク例外処理ルーチンの起動を要求することを示すフラグ.
     283 *  ディスパッチ/タスク例外処理ルーチン起動要求フラグ
     284 *
     285 *  割込みハンドラ/CPU例外ハンドラの出口処理に,ディスパッチまたは
     286 *  タスク例外処理ルーチンの起動を要求することを示すフラグ.
    456287 */
    457288extern bool_t   reqflg;
    458289
    459290/*
    460  *  割込み優å
    461 ˆåº¦ãƒžã‚¹ã‚¯å
    462 ¨è§£é™¤çŠ¶æ
    463 ‹
    464  *
    465  *  割込み優å
    466 ˆåº¦ãƒžã‚¹ã‚¯å
    467 ¨è§£é™¤çŠ¶æ
    468 ‹ã§ã‚ることを示すフラグ.
     291 *  割込み優先度マスク全解除状態
     292 *
     293 *  割込み優先度マスク全解除状態であることを示すフラグ.
    469294 */
    470295extern bool_t   ipmflg;
    471296
    472297/*
    473  *  ディスパッチ禁止状æ
    474 ‹
    475  *
    476  *  ディスパッチ禁止状æ
    477 ‹ã§ã‚ることを示すフラグ.
     298 *  ディスパッチ禁止状態
     299 *
     300 *  ディスパッチ禁止状態であることを示すフラグ.
    478301 */
    479302extern bool_t   disdsp;
    480303
    481304/*
    482  *  タスクディスパッチ可能状æ
    483 ‹
    484  *
    485  *  割込み優å
    486 ˆåº¦ãƒžã‚¹ã‚¯å
    487 ¨è§£é™¤çŠ¶æ
    488 ‹ã§ã‚り,ディスパッチ許可状æ
    489 ‹ã§ã‚る(ディ
    490  *  スパッチ禁止状æ
    491 ‹ã§ãªã„)ことを示すフラグ.
     305 *  タスクディスパッチ可能状態
     306 *
     307 *  割込み優先度マスク全解除状態であり,ディスパッチ許可状態である(ディ
     308 *  スパッチ禁止状態でない)ことを示すフラグ.
    492309 */
    493310extern bool_t   dspflg;
    494311
    495312/*
    496  *  レディキュー
    497  *
    498  *  レディキューは,実行できる状æ
    499 ‹ã®ã‚¿ã‚¹ã‚¯ã‚’管理するためのキューである.
    500  *  実行状æ
    501 ‹ã®ã‚¿ã‚¹ã‚¯ã‚‚管理しているため,レディ(実行可能)キューという
    502  *  名称は正確ではないが,レディキューという名称が定着しているため,こ
    503  *  の名称で呼ぶことにする.
    504  *
    505  *  レディキューは,優å
    506 ˆåº¦ã”とのタスクキューで構成されている.タスクの
    507  *  TCBは,該当する優å
    508 ˆåº¦ã®ã‚­ãƒ¥ãƒ¼ã«ç™»éŒ²ã•ã‚Œã‚‹ï¼Ž
     313 *  レディキュー
     314 *
     315 *  レディキューは,実行できる状態のタスクを管理するためのキューである.
     316 *  実行状態のタスクも管理しているため,レディ(実行可能)キューという
     317 *  名称は正確ではないが,レディキューという名称が定着しているため,こ
     318 *  の名称で呼ぶことにする.
     319 *
     320 *  レディキューは,優先度ごとのタスクキューで構成されている.タスクの
     321 *  TCBは,該当する優先度のキューに登録される.
    509322 */
    510323extern QUEUE    ready_queue[TNUM_TPRI];
    511324
    512325/*
    513  *  レディキューサーチのためのビットマップ
    514  *
    515  *  レディキューのサーチを効率よく行うために,優å
    516 ˆåº¦ã”とのタスクキュー
    517  *  にタスクがå
    518 ¥ã£ã¦ã„るかどうかを示すビットマップを用意している.ビッ
    519  *  トマップを使うことで,メモリアクセスの回数を減らすことができるが,
    520  *  ビット操作命令がå
    521 
    522 å®Ÿã—ていないプロセッサで,優å
    523 ˆåº¦ã®æ®µéšŽæ•°ãŒå°‘ない
    524  *  場合には,ビットマップ操作のオーバーヘッドのために,逆に効率が落ち
    525  *  る可能性もある.
    526  *
    527  *  優å
    528 ˆåº¦ãŒ16段階であることを仮定しているため,uint16_t型としている.
     326 *  レディキューサーチのためのビットマップ
     327 *
     328 *  レディキューのサーチを効率よく行うために,優先度ごとのタスクキュー
     329 *  にタスクが入っているかどうかを示すビットマップを用意している.ビッ
     330 *  トマップを使うことで,メモリアクセスの回数を減らすことができるが,
     331 *  ビット操作命令が充実していないプロセッサで,優先度の段階数が少ない
     332 *  場合には,ビットマップ操作のオーバーヘッドのために,逆に効率が落ち
     333 *  る可能性もある.
     334 *
     335 *  優先度が16段階であることを仮定しているため,uint16_t型としている.
    529336 */
    530337extern uint16_t ready_primap;
    531338
    532339/*
    533  *  使用していないTCBのリスト
     340 *  使用していないTCBのリスト
    534341 */
    535342extern QUEUE    free_tcb;
    536343
    537344/*
    538  *  タスクIDの最大値(kernel_cfg.c)
     345 *  タスクIDの最大値(kernel_cfg.c)
    539346 */
    540347extern const ID tmax_tskid;
     
    542349
    543350/*
    544  *  タスク初期化ブロックのエリア(kernel_cfg.c)
     351 *  タスク初期化ブロックのエリア(kernel_cfg.c)
    545352 */
    546353extern const TINIB      tinib_table[];
     
    548355
    549356/*
    550  *  タスク生成順序テーブル(kernel_cfg.c)
     357 *  タスク生成順序テーブル(kernel_cfg.c)
    551358 */
    552359extern const ID torder_table[];
    553360
    554361/*
    555  *  TCBのエリア(kernel_cfg.c)
     362 *  TCBのエリア(kernel_cfg.c)
    556363 */
    557364extern TCB      tcb_table[];
    558365
    559366/*
    560  *  タスクの数
     367 *  タスクの数
    561368 */
    562369#define tnum_tsk        ((uint_t)(tmax_tskid - TMIN_TSKID + 1))
     
    564371
    565372/*
    566  *  タスクIDからTCBを取り出すためのマクロ
     373 *  タスクIDからTCBを取り出すためのマクロ
    567374 */
    568375#define INDEX_TSK(tskid)        ((uint_t)((tskid) - TMIN_TSKID))
     
    571378
    572379/*
    573  *  TCBからタスクIDを取り出すためのマクロ
     380 *  TCBからタスクIDを取り出すためのマクロ
    574381 */
    575382#define TSKID(p_tcb)    ((ID)(((p_tcb) - tcb_table) + TMIN_TSKID))
    576383
    577384/*
    578  *  タスク管理モジュールの初期化
     385 *  タスク管理モジュールの初期化
    579386 */
    580387extern void     initialize_task(void);
    581388
    582389/*
    583  *  最高優å
    584 ˆé †ä½ã‚¿ã‚¹ã‚¯ã®ã‚µãƒ¼ãƒ
    585  *
    586  *  レディキュー中の最高優å
    587 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ã‚’サーチし,そのTCBへのポインタ
    588  *  を返す.レディキューが空の場合には,この関数を呼び出してはならない.
     390 *  最高優先順位タスクのサーチ
     391 *
     392 *  レディキュー中の最高優先順位のタスクをサーチし,そのTCBへのポインタ
     393 *  を返す.レディキューが空の場合には,この関数を呼び出してはならない.
    589394 */
    590395extern TCB      *search_schedtsk(void);
    591396
    592397/*
    593  *  実行できる状æ
    594 ‹ã¸ã®é·ç§»
    595  *
    596  *  p_tcbで指定されるタスクをレディキューに挿å
    597 ¥ã™ã‚‹ï¼Žãƒ¬ãƒ‡ã‚£ã‚­ãƒ¥ãƒ¼ã«æŒ¿å
    598 ¥
    599  *  したタスクの優å
    600 ˆåº¦ãŒï¼Œæœ€é«˜å„ªå
    601 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ã®å„ªå
    602 ˆåº¦ã‚ˆã‚Šã‚‚高い場合は,
    603  *  最高優å
    604 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ã‚’更新し,ディスパッチ許可状æ
    605 ‹ã§ã‚ればtrueを返
    606  *  す.そうでない場合はfalseを返す.
     398 *  実行できる状態への遷移
     399 *
     400 *  p_tcbで指定されるタスクをレディキューに挿入する.レディキューに挿入
     401 *  したタスクの優先度が,最高優先順位のタスクの優先度よりも高い場合は,
     402 *  最高優先順位のタスクを更新し,ディスパッチ許可状態であればtrueを返
     403 *  す.そうでない場合はfalseを返す.
    607404 */
    608405extern bool_t   make_runnable(TCB *p_tcb);
    609406
    610407/*
    611  *  実行できる状æ
    612 ‹ã‹ã‚‰ä»–の状æ
    613 ‹ã¸ã®é·ç§»
    614  *
    615  *  p_tcbで指定されるタスクをレディキューから削除する.p_tcbで指定した
    616  *  タスクが最高優å
    617 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ã§ã‚った場合には,最高優å
    618 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯
    619  *  を設定しなおし,ディスパッチ許可状æ
    620 ‹ã§ã‚ればtrueを返す.そうでない
    621  *  場合はfalseを返す.タスクの状æ
    622 ‹ã¯æ›´æ–°ã—ない.
     408 *  実行できる状態から他の状態への遷移
     409 *
     410 *  p_tcbで指定されるタスクをレディキューから削除する.p_tcbで指定した
     411 *  タスクが最高優先順位のタスクであった場合には,最高優先順位のタスク
     412 *  を設定しなおし,ディスパッチ許可状態であればtrueを返す.そうでない
     413 *  場合はfalseを返す.タスクの状態は更新しない.
    623414 */
    624415extern bool_t   make_non_runnable(TCB *p_tcb);
    625416
    626417/*
    627  *  休止状æ
    628 ‹ã¸ã®é·ç§»
    629  *
    630  *  p_tcbで指定されるタスクの状æ
    631 ‹ã‚’休止状æ
    632 ‹ã¨ã™ã‚‹ï¼Žã¾ãŸï¼Œã‚¿ã‚¹ã‚¯ã®èµ·å‹•
    633  *  時に初期化すべき変数の初期化と,タスク起動のためのコンテキストを設
    634  *  定する.
     418 *  休止状態への遷移
     419 *
     420 *  p_tcbで指定されるタスクの状態を休止状態とする.また,タスクの起動
     421 *  時に初期化すべき変数の初期化と,タスク起動のためのコンテキストを設
     422 *  定する.
    635423 */
    636424extern void     make_dormant(TCB *p_tcb);
    637425
    638426/*
    639  *  休止状æ
    640 ‹ã‹ã‚‰å®Ÿè¡Œã§ãã‚‹çŠ¶æ
    641 ‹ã¸ã®é·ç§»
    642  *
    643  *  p_tcbで指定されるタスクの状æ
    644 ‹ã‚’休止状æ
    645 ‹ã‹ã‚‰å®Ÿè¡Œã§ãã‚‹çŠ¶æ
    646 ‹ã¨ã™ã‚‹ï¼Ž
    647  *  実行できる状æ
    648 ‹ã«é·ç§»ã—たタスクへのディスパッチがå¿
    649 è¦ãªå ´åˆã¯true,
    650  *  そうでない場合はfalseを返す.
     427 *  休止状態から実行できる状態への遷移
     428 *
     429 *  p_tcbで指定されるタスクの状態を休止状態から実行できる状態とする.
     430 *  実行できる状態に遷移したタスクへのディスパッチが必要な場合はtrue,
     431 *  そうでない場合はfalseを返す.
    651432 */
    652433extern bool_t   make_active(TCB *p_tcb);
    653434
    654435/*
    655  *  タスクの優å
    656 ˆåº¦ã®å¤‰æ›´
    657  *
    658  *  p_tcbで指定されるタスクの優å
    659 ˆåº¦ã‚’newpri(å†
    660 éƒ¨è¡¨ç¾ï¼‰ã«å¤‰æ›´ã™ã‚‹ï¼Žã¾ãŸï¼Œ
    661  *  å¿
    662 è¦ãªå ´åˆã«ã¯æœ€é«˜å„ªå
    663 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ã‚’更新し,ディスパッチ許可状æ
    664 ‹ã§
    665  *  あればtrueを返す.そうでない場合はfalseを返す.
     436 *  タスクの優先度の変更
     437 *
     438 *  p_tcbで指定されるタスクの優先度をnewpri(内部表現)に変更する.また,
     439 *  必要な場合には最高優先順位のタスクを更新し,ディスパッチ許可状態で
     440 *  あればtrueを返す.そうでない場合はfalseを返す.
    666441 */
    667442extern bool_t   change_priority(TCB *p_tcb, uint_t newpri);
    668443
    669444/*
    670  *  レディキューの回転
    671  *
    672  *  レディキュー中の,priで指定される優å
    673 ˆåº¦ã®ã‚¿ã‚¹ã‚¯ã‚­ãƒ¥ãƒ¼ã‚’回転させる.
    674  *  また,å¿
    675 è¦ãªå ´åˆã«ã¯æœ€é«˜å„ªå
    676 ˆé †ä½ã®ã‚¿ã‚¹ã‚¯ã‚’変更し,ディスパッチが保
    677  *  留されていなければtrueを返す.そうでない場合はfalseを返す.
     445 *  レディキューの回転
     446 *
     447 *  レディキュー中の,priで指定される優先度のタスクキューを回転させる.
     448 *  また,必要な場合には最高優先順位のタスクを変更し,ディスパッチが保
     449 *  留されていなければtrueを返す.そうでない場合はfalseを返す.
    678450 */
    679451extern bool_t   rotate_ready_queue(uint_t pri);
    680452
    681453/*
    682  *  タスク例外処理ルーチンの呼出し
    683  *
    684  *  タスク例外処理ルーチンを呼び出す.呼び出す前に,実行状æ
    685 ‹ã®ã‚¿ã‚¹ã‚¯ã®
    686  *  保留例外要因をクリアし,タスク例外処理禁止状æ
    687 ‹ã«ã—,CPUロックを解
    688  *  除する.
    689  *
    690  *  タスク例外処理ルーチンから戻ると,まずCPUロック状æ
    691 ‹ã«æˆ»ã—,その間
    692  *  に保留例外要因が0でなくなっていれば,再びタスク例外処理ルーチンを
    693  *  呼び出す.保留例外要因が0の場合には,例外処理許可状æ
    694 ‹ã«ã—て関数か
    695  *  らリターンする.
    696  *
    697  *  この関数は,実行状æ
    698 ‹ã®ã‚¿ã‚¹ã‚¯ãŒï¼Œã‚¿ã‚¹ã‚¯ä¾‹å¤–処理許可状æ
    699 ‹ï¼ˆenatexが
    700  *  true)で,保留例外要因が0でない(texptnが0でない)場合に呼び出すこ
    701  *  とを想定している.この関数は,CPUロック状æ
    702 ‹ã§å‘¼ã³å‡ºã•ãªã‘ればなら
    703  *  ない.
     454 *  タスク例外処理ルーチンの呼出し
     455 *
     456 *  タスク例外処理ルーチンを呼び出す.呼び出す前に,実行状態のタスクの
     457 *  保留例外要因をクリアし,タスク例外処理禁止状態にし,CPUロックを解
     458 *  除する.
     459 *
     460 *  タスク例外処理ルーチンから戻ると,まずCPUロック状態に戻し,その間
     461 *  に保留例外要因が0でなくなっていれば,再びタスク例外処理ルーチンを
     462 *  呼び出す.保留例外要因が0の場合には,例外処理許可状態にして関数か
     463 *  らリターンする.
     464 *
     465 *  この関数は,実行状態のタスクが,タスク例外処理許可状態(enatexが
     466 *  true)で,保留例外要因が0でない(texptnが0でない)場合に呼び出すこ
     467 *  とを想定している.この関数は,CPUロック状態で呼び出さなければなら
     468 *  ない.
    704469 */
    705470extern void     call_texrtn(void);
    706471
    707472/*
    708  *  タスク例外処理ルーチンの起動
    709  *
    710  *  実行状æ
    711 ‹ã®ã‚¿ã‚¹ã‚¯ãŒã‚¿ã‚¹ã‚¯ä¾‹å¤–処理ルーチンの起動条件を満たしていれば,
    712  *  タスク例外処理ルーチンを呼び出す.CPU例外処理ルーチンを呼び出す時
    713  *  は,一時的にCPUロックを解除する.
    714  *
    715  *  この関数は,ディスパッチャや割込みハンドラ/CPU例外ハンドラの出口
    716  *  処理から呼び出されることを想定している.この関数は,CPUロック状æ
    717 ‹
    718  *  で呼び出さなければならない.
    719  *
    720  *  実行効率を上げるために,この関数をターゲット依存部で記述してもよい.
    721  *  その場合には,OMIT_CALLTEXをマクロ定義する.
     473 *  タスク例外処理ルーチンの起動
     474 *
     475 *  実行状態のタスクがタスク例外処理ルーチンの起動条件を満たしていれば,
     476 *  タスク例外処理ルーチンを呼び出す.CPU例外処理ルーチンを呼び出す時
     477 *  は,一時的にCPUロックを解除する.
     478 *
     479 *  この関数は,ディスパッチャや割込みハンドラ/CPU例外ハンドラの出口
     480 *  処理から呼び出されることを想定している.この関数は,CPUロック状態
     481 *  で呼び出さなければならない.
     482 *
     483 *  実行効率を上げるために,この関数をターゲット依存部で記述してもよい.
     484 *  その場合には,OMIT_CALLTEXをマクロ定義する.
    722485 */
    723486extern void     calltex(void);
  • rubycfg_asp/trunk/asp_dcre/kernel/task.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby; charset=UTF-8
    r313 r315  
    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: task.trb 668 2016-03-03 13:57:53Z ertl-hiro $
     
    5742
    5843#
    59 #               ã‚¿ã‚¹ã‚¯ç®¡ç†ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ç”Ÿæˆã‚¹ã‚¯ãƒªãƒ—ト
     44#               タスク管理モジュールの生成スクリプト
    6045#
    6146
     
    6651
    6752  def prepare(key, params)
    68     # パラメータが省略された時のデフォルト値の設定
     53    # パラメータが省略された時のデフォルト値の設定
    6954    params[:stk] ||= "NULL"
    7055
    71     # tskatrが無効の場合(E_RSATR)[NGKI1028ï¼½
    72     #(TA_ACT,TARGET_TSKATR以外のビットがセットされている場合)
     56    # tskatrが無効の場合(E_RSATR)[NGKI1028]
     57    #(TA_ACT,TARGET_TSKATR以外のビットがセットされている場合)
    7358    if (params[:tskatr] & ~($TA_ACT|$TARGET_TSKATR)) != 0
    7459      error_illegal_id("E_RSATR", params, :tskatr, :tskid)
    7560    end
    7661
    77     # (TMIN_TPRI <= itskpri && itskpri <= TMAX_TPRI)でない場合[NGKI1034ï¼½
     62    # (TMIN_TPRI <= itskpri && itskpri <= TMAX_TPRI)でない場合[NGKI1034]
    7863    if !($TMIN_TPRI <= params[:itskpri] && params[:itskpri] <= $TMAX_TPRI)
    7964      error_illegal_id("E_PAR", params, :itskpri, :tskid)
    8065    end
    8166
    82     # stkszがターゲット定義の最小値(TARGET_MIN_STKSZ,未定義の場合は1)
    83     # よりも小さい場合[NGKI1042ï¼½
     67    # stkszがターゲット定義の最小値(TARGET_MIN_STKSZ,未定義の場合は1)
     68    # よりも小さい場合[NGKI1042]
    8469    if params[:stksz] < $TARGET_MIN_STKSZ
    8570      error_wrong_id("E_PAR", params, :stksz, :tskid, "too small")
    8671    end
    8772
    88     # スタック領域の設定[NGKI1041ï¼½
     73    # スタック領域の設定[NGKI1041]
    8974    if params[:stk] == "NULL"
    90       # スタック領域の生成[NGKI1049ï¼½
     75      # スタック領域の生成[NGKI1049]
    9176      stkName = "_kernel_stack_#{params[:tskid]}"
    9277      params[:tinib_stksz] = AllocStack(stkName, params[:stksz])
    9378      params[:tinib_stk] = stkName
    9479    else
    95       # stkszがスタック領域のサイズとして正しくない場合[NGKI1056ï¼½
     80      # stkszがスタック領域のサイズとして正しくない場合[NGKI1056]
    9681      if (params[:stksz] & ($CHECK_STKSZ_ALIGN - 1)) != 0
    9782        error_wrong_id("E_PAR", params, :stksz, :tskid, "not aligned")
     
    10287    end
    10388
    104     # タスク例外の値を設定
     89    # タスク例外の値を設定
    10590    if $cfgData[:DEF_TEX].has_key?(key)
    10691      params[:texatr] ||= $cfgData[:DEF_TEX][key][:texatr]
     
    124109
    125110#
    126 #  タスク管理に関するæƒ
    127 å ±ã®ç”Ÿæˆ
     111#  タスク管理に関する情報の生成
    128112#
    129113$kernelCfgC.comment_header("Task Management Functions")
     
    133117TaskObject.new.generate()
    134118
    135 # タスク生成順序テーブルの生成
     119# タスク生成順序テーブルの生成
    136120$kernelCfgC.add("const ID _kernel_torder_table[TNUM_STSKID] = { ")
    137121$kernelCfgC.append("\t")
  • rubycfg_asp/trunk/asp_dcre/kernel/task_except.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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_DEF_TEX_ENTER
     
    124109
    125110/*
    126  *  タスク例外処理ルーチンの定義
     111 *  タスク例外処理ルーチンの定義
    127112 */
    128113#ifdef TOPPERS_def_tex
     
    186171
    187172/*
    188  *  タスク例外処理の要求
     173 *  タスク例外処理の要求
    189174 */
    190175#ifdef TOPPERS_ras_tex
     
    226211
    227212/*
    228  *  タスク例外処理の要求(非タスクコンテキスト用)
     213 *  タスク例外処理の要求(非タスクコンテキスト用)
    229214 */
    230215#ifdef TOPPERS_iras_tex
     
    266251
    267252/*
    268  *  タスク例外処理の禁止
     253 *  タスク例外処理の禁止
    269254 */
    270255#ifdef TOPPERS_dis_tex
     
    296281
    297282/*
    298  *  タスク例外処理の許可
     283 *  タスク例外処理の許可
    299284 */
    300285#ifdef TOPPERS_ena_tex
     
    329314
    330315/*
    331  *  タスク例外処理禁止状æ
    332 ‹ã®å‚ç
    333 §
     316 *  タスク例外処理禁止状態の参照
    334317 */
    335318#ifdef TOPPERS_sns_tex
     
    349332
    350333/*
    351  *  タスク例外処理の状æ
    352 ‹å‚ç
    353 §
     334 *  タスク例外処理の状態参照
    354335 */
    355336#ifdef TOPPERS_ref_tex
  • rubycfg_asp/trunk/asp_dcre/kernel/task_manage.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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_ACRE_TSK_ENTER
     
    149134
    150135/*
    151  *  タスクの生成
     136 *  タスクの生成
    152137 */
    153138#ifdef TOPPERS_acre_tsk
    154139
    155140#ifndef TARGET_MIN_STKSZ
    156 #define TARGET_MIN_STKSZ        1U              /* 未定義の場合は0でないことをチェック */
     141#define TARGET_MIN_STKSZ        1U              /* 未定義の場合は0でないことをチェック */
    157142#endif /* TARGET_MIN_STKSZ */
    158143
     
    231216
    232217/*
    233  *  タスクの削除
     218 *  タスクの削除
    234219 */
    235220#ifdef TOPPERS_del_tsk
     
    277262
    278263/*
    279  *  タスクの起動
     264 *  タスクの起動
    280265 */
    281266#ifdef TOPPERS_act_tsk
     
    319304
    320305/*
    321  *  タスクの起動(非タスクコンテキスト用)
     306 *  タスクの起動(非タスクコンテキスト用)
    322307 */
    323308#ifdef TOPPERS_iact_tsk
     
    361346
    362347/*
    363  *  タスク起動要求のキャンセル
     348 *  タスク起動要求のキャンセル
    364349 */
    365350#ifdef TOPPERS_can_act
     
    394379
    395380/*
    396  *  自タスクの終了
     381 *  自タスクの終了
    397382 */
    398383#ifdef TOPPERS_ext_tsk
     
    408393        if (t_sense_lock()) {
    409394                /*
    410                  *  CPUロック状æ
    411 ‹ã§ext_tskが呼ばれた場合は,CPUロックを解除し
    412                  *  てからタスクを終了する.実è£
    413 ä¸Šã¯ï¼Œã‚µãƒ¼ãƒ“スコールå†
    414 ã§ã®CPU
    415                  *  ロックを省略すればよいだけ.
     395                 *  CPUロック状態でext_tskが呼ばれた場合は,CPUロックを解除し
     396                 *  てからタスクを終了する.実装上は,サービスコール内でのCPU
     397                 *  ロックを省略すればよいだけ.
    416398                 */
    417399        }
     
    421403        if (disdsp) {
    422404                /*
    423                  *  ディスパッチ禁止状æ
    424 ‹ã§ext_tskが呼ばれた場合は,ディスパッ
    425                  *  チ許可状æ
    426 ‹ã«ã—てからタスクを終了する.
     405                 *  ディスパッチ禁止状態でext_tskが呼ばれた場合は,ディスパッ
     406                 *  チ許可状態にしてからタスクを終了する.
    427407                 */
    428408                disdsp = false;
     
    430410        if (!ipmflg) {
    431411                /*
    432                  *  割込み優å
    433 ˆåº¦ãƒžã‚¹ã‚¯ï¼ˆIPM)がTIPM_ENAALL以外の状æ
    434 ‹ã§ext_tsk
    435                  *  が呼ばれた場合は,IPMをTIPM_ENAALLにしてからタスクを終了す
    436                  *  る.
     412                 *  割込み優先度マスク(IPM)がTIPM_ENAALL以外の状態でext_tsk
     413                 *  が呼ばれた場合は,IPMをTIPM_ENAALLにしてからタスクを終了す
     414                 *  る.
    437415                 */
    438416                t_set_ipm(TIPM_ENAALL);
     
    458436
    459437/*
    460  *  タスクの強制終了
     438 *  タスクの強制終了
    461439 */
    462440#ifdef TOPPERS_ter_tsk
     
    484462                if (TSTAT_RUNNABLE(p_tcb->tstat)) {
    485463                        /*
    486                          *  p_tcbは自タスクでないため,(シングルプロセッサでは)実
    487                          *  行状æ
    488 ‹ã§ãªãï¼Œmake_non_runnable(p_tcb)でタスクディスパッ
    489                          *  チがå¿
    490 è¦ã«ãªã‚‹ã“とはない.
     464                         *  p_tcbは自タスクでないため,(シングルプロセッサでは)実
     465                         *  行状態でなく,make_non_runnable(p_tcb)でタスクディスパッ
     466                         *  チが必要になることはない.
    491467                         */
    492468                        (void) make_non_runnable(p_tcb);
     
    515491
    516492/*
    517  *  タスクのベース優å
    518 ˆåº¦ã®å¤‰æ›´
     493 *  タスクのベース優先度の変更
    519494 */
    520495#ifdef TOPPERS_chg_pri
     
    558533
    559534/*
    560  *  タスク優å
    561 ˆåº¦ã®å‚ç
    562 §
     535 *  タスク優先度の参照
    563536 */
    564537#ifdef TOPPERS_get_pri
     
    596569
    597570/*
    598  *  自タスクの拡張æƒ
    599 å ±ã®å‚ç
    600 §
     571 *  自タスクの拡張情報の参照
    601572 */
    602573#ifdef TOPPERS_get_inf
  • rubycfg_asp/trunk/asp_dcre/kernel/task_refer.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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  *              タスクの状æ
    58 ‹å‚ç
    59 §æ©Ÿèƒ½
     42 *              タスクの状態参照機能
    6043 */
    6144
     
    7356
    7457/*
    75  *  トレースログマクロのデフォルト定義
     58 *  トレースログマクロのデフォルト定義
    7659 */
    7760#ifndef LOG_REF_TSK_ENTER
     
    8467
    8568/*
    86  *  タスクの状æ
    87 ‹å‚ç
    88 §
     69 *  タスクの状態参照
    8970 */
    9071#ifdef TOPPERS_ref_tsk
     
    11091                if (TSTAT_DORMANT(tstat)) {
    11192                        /*
    112                          *  対象タスクが休止状æ
    113 ‹ã®å ´åˆ
     93                         *  対象タスクが休止状態の場合
    11494                         */
    11595                        pk_rtsk->tskstat = TTS_DMT;
     
    11797                else {
    11898                        /*
    119                          *  タスク状æ
    120 ‹ã®å–出し
     99                         *  タスク状態の取出し
    121100                         */
    122101                        if (TSTAT_SUSPENDED(tstat)) {
     
    139118
    140119                        /*
    141                          *  現在優å
    142 ˆåº¦ã¨ãƒ™ãƒ¼ã‚¹å„ªå
    143 ˆåº¦ã®å–出し
     120                         *  現在優先度とベース優先度の取出し
    144121                         */
    145122                        pk_rtsk->tskpri = EXT_TSKPRI(p_tcb->priority);
     
    148125                        if (TSTAT_WAITING(tstat)) {
    149126                                /*
    150                                  *  å¾
    151 ã¡è¦å› ã¨å¾
    152 ã¡å¯¾è±¡ã®ã‚ªãƒ–ジェクトのIDの取出し
     127                                 *  待ち要因と待ち対象のオブジェクトのIDの取出し
    153128                                 */
    154129                                switch (tstat & TS_WAIT_MASK) {
     
    202177
    203178                                /*
    204                                  *  タイムアウトするまでの時間の取出し
     179                                 *  タイムアウトするまでの時間の取出し
    205180                                 */
    206181                                if (p_tcb->p_winfo->p_tmevtb != NULL) {
     
    214189
    215190                        /*
    216                          *  起床要求キューイング数の取出し
     191                         *  起床要求キューイング数の取出し
    217192                         */
    218193                        pk_rtsk->wupcnt = p_tcb->wupque ? 1U : 0U;
     
    220195
    221196                /*
    222                  *  起動要求キューイング数の取出し
     197                 *  起動要求キューイング数の取出し
    223198                 */
    224199                pk_rtsk->actcnt = p_tcb->actque ? 1U : 0U;
  • rubycfg_asp/trunk/asp_dcre/kernel/task_sync.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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_SLP_TSK_ENTER
     
    149134
    150135/*
    151  *  起床å¾
    152 ã¡
     136 *  起床待ち
    153137 */
    154138#ifdef TOPPERS_slp_tsk
     
    185169
    186170/*
    187  *  起床å¾
    188 ã¡ï¼ˆã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã‚り)
     171 *  起床待ち(タイムアウトあり)
    189172 */
    190173#ifdef TOPPERS_tslp_tsk
     
    226209
    227210/*
    228  *  タスクの起床
     211 *  タスクの起床
    229212 */
    230213#ifdef TOPPERS_wup_tsk
     
    271254
    272255/*
    273  *  タスクの起床(非タスクコンテキスト用)
     256 *  タスクの起床(非タスクコンテキスト用)
    274257 */
    275258#ifdef TOPPERS_iwup_tsk
     
    316299
    317300/*
    318  *  タスク起床要求のキャンセル
     301 *  タスク起床要求のキャンセル
    319302 */
    320303#ifdef TOPPERS_can_wup
     
    352335
    353336/*
    354  *  å¾
    355 ã¡çŠ¶æ
    356 ‹ã®å¼·åˆ¶è§£é™¤
     337 *  待ち状態の強制解除
    357338 */
    358339#ifdef TOPPERS_rel_wai
     
    392373
    393374/*
    394  *  å¾
    395 ã¡çŠ¶æ
    396 ‹ã®å¼·åˆ¶è§£é™¤ï¼ˆéžã‚¿ã‚¹ã‚¯ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆç”¨ï¼‰
     375 *  待ち状態の強制解除(非タスクコンテキスト用)
    397376 */
    398377#ifdef TOPPERS_irel_wai
     
    432411
    433412/*
    434  *  強制å¾
    435 ã¡çŠ¶æ
    436 ‹ã¸ã®ç§»è¡Œ
     413 *  強制待ち状態への移行
    437414 */
    438415#ifdef TOPPERS_sus_tsk
     
    461438        else if (TSTAT_RUNNABLE(p_tcb->tstat)) {
    462439                /*
    463                  *  実行できる状æ
    464 ‹ã‹ã‚‰å¼·åˆ¶å¾
    465 ã¡çŠ¶æ
    466 ‹ã¸ã®é·ç§»
     440                 *  実行できる状態から強制待ち状態への遷移
    467441                 */
    468442                p_tcb->tstat = TS_SUSPENDED;
     
    478452        else {
    479453                /*
    480                  *  å¾
    481 ã¡çŠ¶æ
    482 ‹ã‹ã‚‰äºŒé‡å¾
    483 ã¡çŠ¶æ
    484 ‹ã¸ã®é·ç§»
     454                 *  待ち状態から二重待ち状態への遷移
    485455                 */
    486456                p_tcb->tstat |= TS_SUSPENDED;
     
    498468
    499469/*
    500  *  強制å¾
    501 ã¡çŠ¶æ
    502 ‹ã‹ã‚‰ã®å†é–‹
     470 *  強制待ち状態からの再開
    503471 */
    504472#ifdef TOPPERS_rsm_tsk
     
    524492        else if (!TSTAT_WAITING(p_tcb->tstat)) {
    525493                /*
    526                  *  強制å¾
    527 ã¡çŠ¶æ
    528 ‹ã‹ã‚‰å®Ÿè¡Œã§ãã‚‹çŠ¶æ
    529 ‹ã¸ã®é·ç§»
     494                 *  強制待ち状態から実行できる状態への遷移
    530495                 */
    531496                p_tcb->tstat = TS_RUNNABLE;
     
    538503        else {
    539504                /*
    540                  *  二重å¾
    541 ã¡çŠ¶æ
    542 ‹ã‹ã‚‰å¾
    543 ã¡çŠ¶æ
    544 ‹ã¸ã®é·ç§»
     505                 *  二重待ち状態から待ち状態への遷移
    545506                 */
    546507                p_tcb->tstat &= ~TS_SUSPENDED;
     
    558519
    559520/*
    560  *  自タスクのé
    561ʌȦ
     521 *  自タスクの遅延
    562522 */
    563523#ifdef TOPPERS_dly_tsk
  • rubycfg_asp/trunk/asp_dcre/kernel/time_event.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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
     
    6449
    6550/*
    66  *  タイムイベントヒープ操作マクロ
    67  */
    68 #define PARENT(index)           ((index) >> 1)          /* 親ノードを求める */
    69 #define LCHILD(index)           ((index) << 1)          /* 左の子ノードを求める */
     51 *  タイムイベントヒープ操作マクロ
     52 */
     53#define PARENT(index)           ((index) >> 1)          /* 親ノードを求める */
     54#define LCHILD(index)           ((index) << 1)          /* 左の子ノードを求める */
    7055#define TMEVT_NODE(index)       (tmevt_heap[(index) - 1])
    7156
    7257/*
    73  *  イベント発生時刻比較マクロ
    74  *
    75  *  イベント発生時刻は,min_timeからの相対値で比較する.すなわち,
    76  *  min_timeを最小値(最も近い時刻),mit_time-1が最大値(最も遠い時刻)
    77  *  とみなして比較する.
     58 *  イベント発生時刻比較マクロ
     59 *
     60 *  イベント発生時刻は,min_timeからの相対値で比較する.すなわち,
     61 *  min_timeを最小値(最も近い時刻),mit_time-1が最大値(最も遠い時刻)
     62 *  とみなして比較する.
    7863 */
    7964#define EVTTIM_LT(t1, t2) (((t1) - min_time) < ((t2) - min_time))
     
    8368
    8469/*
    85  *  現在のシステム時刻(単位: 1ミリ秒)
    86  *
    87  *  厳密には,前のタイムティックのシステム時刻.
     70 *  現在のシステム時刻(単位: 1ミリ秒)
     71 *
     72 *  厳密には,前のタイムティックのシステム時刻.
    8873 */
    8974EVTTIM  current_time;
    9075
    9176/*
    92  *  タイムイベントヒープ中で有効な最小のシステム時刻(単位: 1ミリ秒)
     77 *  タイムイベントヒープ中で有効な最小のシステム時刻(単位: 1ミリ秒)
    9378 */
    9479EVTTIM  min_time;
    9580
    9681/*
    97  *  次のタイムティックのシステム時刻(単位: 1ミリ秒)
     82 *  次のタイムティックのシステム時刻(単位: 1ミリ秒)
    9883 */
    9984EVTTIM  next_time;
    10085
    10186/*
    102  *  システム時刻積算用変数(単位: 1/TIC_DENOミリ秒)
     87 *  システム時刻積算用変数(単位: 1/TIC_DENOミリ秒)
    10388 */
    10489#if TIC_DENO != 1U
     
    10792
    10893/*
    109  *  タイムイベントヒープの最後の使用領域のインデックス
     94 *  タイムイベントヒープの最後の使用領域のインデックス
    11095 */
    11196uint_t  last_index;
    11297
    11398/*
    114  *  タイマモジュールの初期化
     99 *  タイマモジュールの初期化
    115100 */
    116101void
     
    129114
    130115/*
    131  *  タイムイベントの挿å
    132 ¥ä½ç½®ã‚’上向きに探索
    133  *
    134  *  時刻timeに発生するタイムイベントを挿å
    135 ¥ã™ã‚‹ãƒŽãƒ¼ãƒ‰ã‚’空けるために,
    136  *  ヒープの上に向かって空ノードを移動させる.移動前の空ノードの位置を
    137  *  indexに渡すと,移動後の空ノードの位置(すなわち挿å
    138 ¥ä½ç½®ï¼‰ã‚’返す.
     116 *  タイムイベントの挿入位置を上向きに探索
     117 *
     118 *  時刻timeに発生するタイムイベントを挿入するノードを空けるために,
     119 *  ヒープの上に向かって空ノードを移動させる.移動前の空ノードの位置を
     120 *  indexに渡すと,移動後の空ノードの位置(すなわち挿入位置)を返す.
    139121 */
    140122#ifdef TOPPERS_tmeup
     
    147129        while (index > 1) {
    148130                /*
    149                  *  親ノードのイベント発生時刻の方が早い(または同じ)ならば,
    150                  *  indexが挿å
    151 ¥ä½ç½®ãªã®ã§ãƒ«ãƒ¼ãƒ—を抜ける.
     131                 *  親ノードのイベント発生時刻の方が早い(または同じ)ならば,
     132                 *  indexが挿入位置なのでループを抜ける.
    152133                 */
    153134                parent = PARENT(index);
     
    157138
    158139                /*
    159                  *  親ノードをindexの位置に移動させる.
     140                 *  親ノードをindexの位置に移動させる.
    160141                 */
    161142                TMEVT_NODE(index) = TMEVT_NODE(parent);
     
    163144
    164145                /*
    165                  *  indexを親ノードの位置に更新.
     146                 *  indexを親ノードの位置に更新.
    166147                 */
    167148                index = parent;
     
    173154
    174155/*
    175  *  タイムイベントの挿å
    176 ¥ä½ç½®ã‚’下向きに探索
    177  *
    178  *  時刻timeに発生するタイムイベントを挿å
    179 ¥ã™ã‚‹ãƒŽãƒ¼ãƒ‰ã‚’空けるために,
    180  *  ヒープの下に向かって空ノードを移動させる.移動前の空ノードの位置を
    181  *  indexに渡すと,移動後の空ノードの位置(すなわち挿å
    182 ¥ä½ç½®ï¼‰ã‚’返す.
     156 *  タイムイベントの挿入位置を下向きに探索
     157 *
     158 *  時刻timeに発生するタイムイベントを挿入するノードを空けるために,
     159 *  ヒープの下に向かって空ノードを移動させる.移動前の空ノードの位置を
     160 *  indexに渡すと,移動後の空ノードの位置(すなわち挿入位置)を返す.
    183161 */
    184162#ifdef TOPPERS_tmedown
     
    191169        while ((child = LCHILD(index)) <= last_index) {
    192170                /*
    193                  *  左右の子ノードのイベント発生時刻を比較し,早い方の子ノード
    194                  *  の位置をchildに設定する.以下の子ノードは,ここで選ばれた方
    195                  *  の子ノードのこと.
     171                 *  左右の子ノードのイベント発生時刻を比較し,早い方の子ノード
     172                 *  の位置をchildに設定する.以下の子ノードは,ここで選ばれた方
     173                 *  の子ノードのこと.
    196174                 */
    197175                if (child + 1 <= last_index
     
    202180
    203181                /*
    204                  *  子ノードのイベント発生時刻の方がé
    205 ã„(または同じ)ならば,
    206                  *  indexが挿å
    207 ¥ä½ç½®ãªã®ã§ãƒ«ãƒ¼ãƒ—を抜ける.
     182                 *  子ノードのイベント発生時刻の方が遅い(または同じ)ならば,
     183                 *  indexが挿入位置なのでループを抜ける.
    208184                 */
    209185                if (EVTTIM_LE(time, TMEVT_NODE(child).time)) {
     
    212188
    213189                /*
    214                  *  子ノードをindexの位置に移動させる.
     190                 *  子ノードをindexの位置に移動させる.
    215191                 */
    216192                TMEVT_NODE(index) = TMEVT_NODE(child);
     
    218194
    219195                /*
    220                  *  indexを子ノードの位置に更新.
     196                 *  indexを子ノードの位置に更新.
    221197                 */
    222198                index = child;
     
    228204
    229205/*
    230  *  タイムイベントヒープへの登録
    231  *
    232  *  p_tmevtbで指定したタイムイベントブロックを,timeで指定した時間が経
    233  *  過後にイベントが発生するように,タイムイベントヒープに登録する.
     206 *  タイムイベントヒープへの登録
     207 *
     208 *  p_tmevtbで指定したタイムイベントブロックを,timeで指定した時間が経
     209 *  過後にイベントが発生するように,タイムイベントヒープに登録する.
    234210 */
    235211#ifdef TOPPERS_tmeins
     
    241217
    242218        /*
    243          *  last_indexをインクリメントし,そこから上に挿å
    244 ¥ä½ç½®ã‚’探す.
     219         *  last_indexをインクリメントし,そこから上に挿入位置を探す.
    245220         */
    246221        index = tmevt_up(++last_index, time);
    247222
    248223        /*
    249          *  タイムイベントをindexの位置に挿å
    250 ¥ã™ã‚‹ï¼Ž
     224         *  タイムイベントをindexの位置に挿入する.
    251225         */
    252226        TMEVT_NODE(index).time = time;
     
    258232
    259233/*
    260  *  タイムイベントヒープからの削除
     234 *  タイムイベントヒープからの削除
    261235 */
    262236#ifdef TOPPERS_tmedel
     
    270244
    271245        /*
    272          *  削除によりタイムイベントヒープが空になる場合は何もしない.
     246         *  削除によりタイムイベントヒープが空になる場合は何もしない.
    273247         */
    274248        if (--last_index == 0) {
     
    277251
    278252        /*
    279          *  削除したノードの位置に最後のノード(last_index+1の位置のノード)
    280          *  を挿å
    281 ¥ã—,それを適切な位置へ移動させる.実際には,最後のノード
    282          *  を実際に挿å
    283 ¥ã™ã‚‹ã®ã§ã¯ãªãï¼Œå‰Šé™¤ã—たノードの位置が空ノードにな
    284          *  るので,最後のノードを挿å
    285 ¥ã™ã¹ãä½ç½®ã¸å‘けて空ノードを移動させ
    286          *  る.
    287          *  最後のノードのイベント発生時刻が,削除したノードの親ノードのイ
    288          *  ベント発生時刻より前の場合には,上に向かって挿å
    289 ¥ä½ç½®ã‚’探す.そ
    290          *  うでない場合には,下に向かって探す.
     253         *  削除したノードの位置に最後のノード(last_index+1の位置のノード)
     254         *  を挿入し,それを適切な位置へ移動させる.実際には,最後のノード
     255         *  を実際に挿入するのではなく,削除したノードの位置が空ノードにな
     256         *  るので,最後のノードを挿入すべき位置へ向けて空ノードを移動させ
     257         *  る.
     258         *  最後のノードのイベント発生時刻が,削除したノードの親ノードのイ
     259         *  ベント発生時刻より前の場合には,上に向かって挿入位置を探す.そ
     260         *  うでない場合には,下に向かって探す.
    291261         */
    292262        if (index > 1 && EVTTIM_LT(event_time,
    293263                                                                TMEVT_NODE(parent = PARENT(index)).time)) {
    294264                /*
    295                  *  親ノードをindexの位置に移動させる.
     265                 *  親ノードをindexの位置に移動させる.
    296266                 */
    297267                TMEVT_NODE(index) = TMEVT_NODE(parent);
     
    299269
    300270                /*
    301                  *  削除したノードの親ノードから上に向かって挿å
    302 ¥ä½ç½®ã‚’探す.
     271                 *  削除したノードの親ノードから上に向かって挿入位置を探す.
    303272                 */
    304273                index = tmevt_up(parent, event_time);
     
    306275        else {
    307276                /*
    308                  *  削除したノードから下に向かって挿å
    309 ¥ä½ç½®ã‚’探す.
     277                 *  削除したノードから下に向かって挿入位置を探す.
    310278                 */
    311279                index = tmevt_down(index, event_time);
     
    313281
    314282        /*
    315          *  最後のノードをindexの位置に挿å
    316 ¥ã™ã‚‹ï¼Ž
     283         *  最後のノードをindexの位置に挿入する.
    317284         */
    318285        TMEVT_NODE(index) = TMEVT_NODE(last_index + 1);
     
    323290
    324291/*
    325  *  タイムイベントヒープのå
    326 ˆé ­ã®ãƒŽãƒ¼ãƒ‰ã®å‰Šé™¤
     292 *  タイムイベントヒープの先頭のノードの削除
    327293 */
    328294Inline void
     
    333299
    334300        /*
    335          *  削除によりタイムイベントヒープが空になる場合は何もしない.
     301         *  削除によりタイムイベントヒープが空になる場合は何もしない.
    336302         */
    337303        if (--last_index == 0) {
     
    340306
    341307        /*
    342          *  ルートノードに最後のノード(last_index + 1 の位置のノード)を
    343          *  挿å
    344 ¥ã—,それを適切な位置へ移動させる.実際には,最後のノードを
    345          *  実際に挿å
    346 ¥ã™ã‚‹ã®ã§ã¯ãªãï¼Œãƒ«ãƒ¼ãƒˆãƒŽãƒ¼ãƒ‰ãŒç©ºãƒŽãƒ¼ãƒ‰ã«ãªã‚‹ã®ã§ï¼Œæœ€
    347          *  後のノードを挿å
    348 ¥ã™ã¹ãä½ç½®ã¸å‘けて空ノードを移動させる.
     308         *  ルートノードに最後のノード(last_index + 1 の位置のノード)を
     309         *  挿入し,それを適切な位置へ移動させる.実際には,最後のノードを
     310         *  実際に挿入するのではなく,ルートノードが空ノードになるので,最
     311         *  後のノードを挿入すべき位置へ向けて空ノードを移動させる.
    349312         */
    350313        index = tmevt_down(1, event_time);
    351314
    352315        /*
    353          *  最後のノードをindexの位置に挿å
    354 ¥ã™ã‚‹ï¼Ž
     316         *  最後のノードをindexの位置に挿入する.
    355317         */
    356318        TMEVT_NODE(index) = TMEVT_NODE(last_index + 1);
     
    359321
    360322/*
    361  *  タイムイベントまでの残り時間の計算
     323 *  タイムイベントまでの残り時間の計算
    362324 */
    363325#ifdef TOPPERS_tmeltim
     
    371333        if (EVTTIM_LE(time, next_time)) {
    372334                /*
    373                  *  次のタイムティックで処理される場合には0を返す.
     335                 *  次のタイムティックで処理される場合には0を返す.
    374336                 */
    375337                return(0U);
     
    383345
    384346/*
    385  *  タイムティックの供給
     347 *  タイムティックの供給
    386348 */
    387349#ifdef TOPPERS_sigtim
     
    398360
    399361        /*
    400          *  current_timeを更新する.
     362         *  current_timeを更新する.
    401363         */
    402364        current_time = next_time;
    403365
    404366        /*
    405          *  next_time,next_subtimeを更新する.
     367         *  next_time,next_subtimeを更新する.
    406368         */
    407369#if TIC_DENO == 1U
     
    417379
    418380        /*
    419          *  current_timeよりイベント発生時刻の早い(または同じ)タイムイベ
    420          *  ントを,タイムイベントヒープから削除し,コールバック関数を呼び
    421          *  出す.
     381         *  current_timeよりイベント発生時刻の早い(または同じ)タイムイベ
     382         *  ントを,タイムイベントヒープから削除し,コールバック関数を呼び
     383         *  出す.
    422384         */
    423385        while (last_index > 0 && EVTTIM_LE(TMEVT_NODE(1).time, current_time)) {
     
    428390
    429391        /*
    430          *  min_timeを更新する.
     392         *  min_timeを更新する.
    431393         */
    432394        min_time = current_time;
  • rubycfg_asp/trunk/asp_dcre/kernel/time_event.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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
     
    6449
    6550/*
    66  *  イベント発生時刻のデータ型の定義
    67  *
    68  *  EVTTIMは,RELTIMとして指定できる範囲よりも広い範囲を表現できるå¿
    69 è¦
    70  *  がある.μITRON4.0仕様のスタンダードプロファイルでは,RELTIMが16ビッ
    71  *  ト以上でなければならないため,EVTTIMは17ビット以上であることがå¿
    72 è¦
    73  *  である.そのため,16ビットになる場合があるuint_tではなく,ulong_tに
    74  *  定義している.
     51 *  イベント発生時刻のデータ型の定義
     52 *
     53 *  EVTTIMは,RELTIMとして指定できる範囲よりも広い範囲を表現できる必要
     54 *  がある.μITRON4.0仕様のスタンダードプロファイルでは,RELTIMが16ビッ
     55 *  ト以上でなければならないため,EVTTIMは17ビット以上であることが必要
     56 *  である.そのため,16ビットになる場合があるuint_tではなく,ulong_tに
     57 *  定義している.
    7558 */
    7659typedef ulong_t EVTTIM;
    7760
    7861/*
    79  *  タイムイベントブロックのデータ型の定義
    80  */
    81 typedef void    (*CBACK)(void *);       /* コールバック関数の型 */
     62 *  タイムイベントブロックのデータ型の定義
     63 */
     64typedef void    (*CBACK)(void *);       /* コールバック関数の型 */
    8265
    8366typedef struct time_event_block {
    84         uint_t  index;                  /* タイムイベントヒープ中での位置 */
    85         CBACK   callback;               /* コールバック関数 */
    86         void    *arg;                   /* コールバック関数へ渡す引数 */
     67        uint_t  index;                  /* タイムイベントヒープ中での位置 */
     68        CBACK   callback;               /* コールバック関数 */
     69        void    *arg;                   /* コールバック関数へ渡す引数 */
    8770} TMEVTB;
    8871
    8972/*
    90  *  タイムイベントヒープ中のノードのデータ型の定義
     73 *  タイムイベントヒープ中のノードのデータ型の定義
    9174 */
    9275typedef struct time_event_node {
    93         EVTTIM  time;                   /* イベント発生時刻 */
    94         TMEVTB  *p_tmevtb;              /* 対応するタイムイベントブロック */
     76        EVTTIM  time;                   /* イベント発生時刻 */
     77        TMEVTB  *p_tmevtb;              /* 対応するタイムイベントブロック */
    9578} TMEVTN;
    9679
    9780/*
    98  *  タイムイベントヒープ(kernel_cfg.c)
     81 *  タイムイベントヒープ(kernel_cfg.c)
    9982 */
    10083extern TMEVTN   tmevt_heap[];
    10184
    10285/*
    103  *  現在のシステム時刻(単位: 1ミリ秒)
    104  *
    105  *  システム起動時に0に初期化され,以降,タイムティックが供給される度に
    106  *  単調に増加する.
     86 *  現在のシステム時刻(単位: 1ミリ秒)
     87 *
     88 *  システム起動時に0に初期化され,以降,タイムティックが供給される度に
     89 *  単調に増加する.
    10790 */
    10891extern EVTTIM   current_time;
    10992
    11093/*
    111  *  タイムイベントヒープ中で有効な最小のシステム時刻(単位: 1ミリ秒)
     94 *  タイムイベントヒープ中で有効な最小のシステム時刻(単位: 1ミリ秒)
    11295 */
    11396extern EVTTIM   min_time;
    11497
    11598/*
    116  *  次のタイムティックのシステム時刻(単位: 1ミリ秒)
     99 *  次のタイムティックのシステム時刻(単位: 1ミリ秒)
    117100 */
    118101extern EVTTIM   next_time;
    119102
    120103/*
    121  *  システム時刻積算用変数(単位: 1/TIC_DENOミリ秒)
    122  *
    123  *  次のタイムティックのシステム時刻の下位桁を示す(上位桁はnext_time).
    124  *  TIC_DENOが1の時は,下位桁は常に0であるため,この変数はå¿
    125 è¦ãªã„.
     104 *  システム時刻積算用変数(単位: 1/TIC_DENOミリ秒)
     105 *
     106 *  次のタイムティックのシステム時刻の下位桁を示す(上位桁はnext_time).
     107 *  TIC_DENOが1の時は,下位桁は常に0であるため,この変数は必要ない.
    126108 */
    127109#if TIC_DENO != 1U
     
    130112
    131113/*
    132  *  相対時間の基準時刻(単位: 1ミリ秒)
    133  *
    134  *  次のタイムティックのシステム時刻を切り上げた時刻.TIC_DENOが1の時
    135  *  は,next_timeに一致する.
     114 *  相対時間の基準時刻(単位: 1ミリ秒)
     115 *
     116 *  次のタイムティックのシステム時刻を切り上げた時刻.TIC_DENOが1の時
     117 *  は,next_timeに一致する.
    136118 */
    137119#if TIC_DENO == 1U
     
    142124
    143125/*
    144  *  タイムイベントヒープの最後の使用領域のインデックス
    145  *
    146  *  タイムイベントヒープに登録されているタイムイベントの数に一致する.
     126 *  タイムイベントヒープの最後の使用領域のインデックス
     127 *
     128 *  タイムイベントヒープに登録されているタイムイベントの数に一致する.
    147129 */
    148130extern uint_t   last_index;
    149131
    150132/*
    151  *  タイムイベント管理モジュールの初期化
     133 *  タイムイベント管理モジュールの初期化
    152134 */
    153135extern void     initialize_tmevt(void);
    154136
    155137/*
    156  *  タイムイベントの挿å
    157 ¥ä½ç½®ã®æŽ¢ç´¢
     138 *  タイムイベントの挿入位置の探索
    158139 */
    159140extern uint_t   tmevt_up(uint_t index, EVTTIM time);
     
    161142
    162143/*
    163  *  タイムイベントヒープへの登録と削除
     144 *  タイムイベントヒープへの登録と削除
    164145 */
    165146extern void     tmevtb_insert(TMEVTB *p_tmevtb, EVTTIM time);
     
    167148
    168149/*
    169  *  タイムイベントブロックの登録(相対時間指定)
    170  *
    171  *  timeで指定した相対時間が経過した後に,argを引数としてcallbackが呼
    172  *  び出されるように,p_tmevtbで指定したタイムイベントブロックを登録す
    173  *  る.
     150 *  タイムイベントブロックの登録(相対時間指定)
     151 *
     152 *  timeで指定した相対時間が経過した後に,argを引数としてcallbackが呼
     153 *  び出されるように,p_tmevtbで指定したタイムイベントブロックを登録す
     154 *  る.
    174155 * 
    175156 */
     
    185166
    186167/*
    187  *  タイムイベントブロックの登録(イベント発生時刻指定)
    188  *
    189  *  timeで指定したイベント発生時刻に,argを引数としてcallbackが呼び出
    190  *  されるように,p_tmevtbで指定したタイムイベントブロックを登録する.
     168 *  タイムイベントブロックの登録(イベント発生時刻指定)
     169 *
     170 *  timeで指定したイベント発生時刻に,argを引数としてcallbackが呼び出
     171 *  されるように,p_tmevtbで指定したタイムイベントブロックを登録する.
    191172 */
    192173Inline void
     
    199180
    200181/*
    201  *  タイムイベントブロックの登録解除
     182 *  タイムイベントブロックの登録解除
    202183 */
    203184Inline void
     
    208189
    209190/*
    210  *  タイムイベントまでの残り時間の計算
     191 *  タイムイベントまでの残り時間の計算
    211192 */
    212193extern RELTIM   tmevt_lefttim(TMEVTB *p_tmevtb);
    213194
    214195/*
    215  *  タイムティックの供給
     196 *  タイムティックの供給
    216197 */
    217198extern void     signal_time(void);
  • rubycfg_asp/trunk/asp_dcre/kernel/time_manage.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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_GET_TIM_ENTER
     
    8469
    8570/*
    86  *  システム時刻の参ç
    87 §
     71 *  システム時刻の参照
    8872 */
    8973#ifdef TOPPERS_get_tim
     
    11094
    11195/*
    112  *  性能評価用システム時刻の参ç
    113 §
     96 *  性能評価用システム時刻の参照
    11497 */
    11598#ifdef TOPPERS_get_utm
  • rubycfg_asp/trunk/asp_dcre/kernel/wait.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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  *              å¾
    60 ã¡çŠ¶æ
    61 ‹ç®¡ç†ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«
     44 *              待ち状態管理モジュール
    6245 */
    6346
     
    6649
    6750/*
    68  *  å¾
    69 ã¡çŠ¶æ
    70 ‹ã¸ã®é·ç§»ï¼ˆã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆæŒ‡å®šï¼‰
     51 *  待ち状態への遷移(タイムアウト指定)
    7152 */
    7253#ifdef TOPPERS_waimake
     
    9172
    9273/*
    93  *  å¾
    94 ã¡è§£é™¤
     74 *  待ち解除
    9575 */
    9676#ifdef TOPPERS_waicmp
     
    10787
    10888/*
    109  *  タイムアウトに伴うå¾
    110 ã¡è§£é™¤
     89 *  タイムアウトに伴う待ち解除
    11190 */
    11291#ifdef TOPPERS_waitmo
     
    122101
    123102        /*
    124          *  ここで優å
    125 ˆåº¦ã®é«˜ã„割込みを受け付ける.
     103         *  ここで優先度の高い割込みを受け付ける.
    126104         */
    127105        i_unlock_cpu();
     
    141119
    142120        /*
    143          *  ここで優å
    144 ˆåº¦ã®é«˜ã„割込みを受け付ける.
     121         *  ここで優先度の高い割込みを受け付ける.
    145122         */
    146123        i_unlock_cpu();
     
    151128
    152129/*
    153  *  å¾
    154 ã¡çŠ¶æ
    155 ‹ã®å¼·åˆ¶è§£é™¤
     130 *  待ち状態の強制解除
    156131 */
    157132#ifdef TOPPERS_wairel
     
    169144
    170145/*
    171  *  実行中のタスクの同期・通信オブジェクトのå¾
    172 ã¡ã‚­ãƒ¥ãƒ¼ã¸ã®æŒ¿å
    173 ¥
     146 *  実行中のタスクの同期・通信オブジェクトの待ちキューへの挿入
    174147 *
    175  *  実行中のタスクを,同期・通信オブジェクトのå¾
    176 ã¡ã‚­ãƒ¥ãƒ¼ã¸æŒ¿å
    177 ¥ã™ã‚‹ï¼Žã‚ª
    178  *  ブジェクトの属性に応じて,FIFO順またはタスク優å
    179 ˆåº¦é †ã§æŒ¿å
    180 ¥ã™ã‚‹ï¼Ž
     148 *  実行中のタスクを,同期・通信オブジェクトの待ちキューへ挿入する.オ
     149 *  ブジェクトの属性に応じて,FIFO順またはタスク優先度順で挿入する.
    181150 */
    182151Inline void
     
    192161
    193162/*
    194  *  同期・通信オブジェクトに対するå¾
    195 ã¡çŠ¶æ
    196 ‹ã¸ã®é·ç§»
     163 *  同期・通信オブジェクトに対する待ち状態への遷移
    197164 */
    198165#ifdef TOPPERS_wobjwai
     
    223190
    224191/*
    225  *  å¾
    226 ã¡ã‚­ãƒ¥ãƒ¼ã®åˆæœŸåŒ–
     192 *  待ちキューの初期化
    227193 */
    228194#ifdef TOPPERS_iniwque
  • rubycfg_asp/trunk/asp_dcre/kernel/wait.h

    • Property svn:mime-type changed from text/x-chdr to text/x-chdr; charset=UTF-8
    r313 r315  
    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  *              å¾
    60 ã¡çŠ¶æ
    61 ‹ç®¡ç†ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«
     44 *              待ち状態管理モジュール
    6245 */
    6346
     
    6952
    7053/*
    71  *  タスクの優å
    72 ˆåº¦é †ã®å¾
    73 ã¡ã‚­ãƒ¥ãƒ¼ã¸ã®æŒ¿å
    74 ¥
    75  *
    76  *  p_tcbで指定されるタスクを,タスク優å
    77 ˆåº¦é †ã®ã‚­ãƒ¥ãƒ¼p_queueに挿å
    78 ¥ã™ã‚‹ï¼Ž
    79  *  キューの中に同じ優å
    80 ˆåº¦ã®ã‚¿ã‚¹ã‚¯ãŒã‚る場合には,その最後に挿å
    81 ¥ã™ã‚‹ï¼Ž
     54 *  タスクの優先度順の待ちキューへの挿入
     55 *
     56 *  p_tcbで指定されるタスクを,タスク優先度順のキューp_queueに挿入する.
     57 *  キューの中に同じ優先度のタスクがある場合には,その最後に挿入する.
    8258 */
    8359Inline void
     
    9773
    9874/*
    99  *  å¾
    100 ã¡çŠ¶æ
    101 ‹ã¸ã®é·ç§»
    102  *
    103  *  実行中のタスクをå¾
    104 ã¡çŠ¶æ
    105 ‹ã«é·ç§»ã•ã›ã‚‹ï¼Žå
    106 ·ä½“的には,実行中のタスクを
    107  *  レディキューから削除し,TCBのp_winfoフィールド,WINFOのp_tmevtbフィー
    108  *  ルドを設定する.
     75 *  待ち状態への遷移
     76 *
     77 *  実行中のタスクを待ち状態に遷移させる.具体的には,実行中のタスクを
     78 *  レディキューから削除し,TCBのp_winfoフィールド,WINFOのp_tmevtbフィー
     79 *  ルドを設定する.
    10980 */
    11081Inline void
     
    11788
    11889/*
    119  *  å¾
    120 ã¡çŠ¶æ
    121 ‹ã¸ã®é·ç§»ï¼ˆã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆæŒ‡å®šï¼‰
    122  *
    123  *  実行中のタスクを,タイムアウト指定付きでå¾
    124 ã¡çŠ¶æ
    125 ‹ã«é·ç§»ã•ã›ã‚‹ï¼Žå
    126 ·ä½“
    127  *  的には,実行中のタスクをレディキューから削除し,TCBのp_winfoフィー
    128  *  ルド,WINFOのp_tmevtbフィールドを設定する.また,タイムイベントブ
    129  *  ロックを登録する.
     90 *  待ち状態への遷移(タイムアウト指定)
     91 *
     92 *  実行中のタスクを,タイムアウト指定付きで待ち状態に遷移させる.具体
     93 *  的には,実行中のタスクをレディキューから削除し,TCBのp_winfoフィー
     94 *  ルド,WINFOのp_tmevtbフィールドを設定する.また,タイムイベントブ
     95 *  ロックを登録する.
    13096 */
    13197extern void     make_wait_tmout(WINFO *p_winfo, TMEVTB *p_tmevtb, TMO tmout);
    13298
    13399/*
    134  *  å¾
    135 ã¡è§£é™¤ã®ãŸã‚ã®ã‚¿ã‚¹ã‚¯çŠ¶æ
    136 ‹ã®æ›´æ–°
    137  *
    138  *  p_tcbで指定されるタスクを,å¾
    139 ã¡è§£é™¤ã™ã‚‹ã‚ˆã†ã‚¿ã‚¹ã‚¯çŠ¶æ
    140 ‹ã‚’更新する.
    141  *  å¾
    142 ã¡è§£é™¤ã™ã‚‹ã‚¿ã‚¹ã‚¯ãŒå®Ÿè¡Œã§ãã‚‹çŠ¶æ
    143 ‹ã«ãªã‚‹å ´åˆã¯ï¼Œãƒ¬ãƒ‡ã‚£ã‚­ãƒ¥ãƒ¼ã«ã¤ãª
    144  *  ぐ.また,ディスパッチがå¿
    145 è¦ãªå ´åˆã«ã¯trueを返す.
     100 *  待ち解除のためのタスク状態の更新
     101 *
     102 *  p_tcbで指定されるタスクを,待ち解除するようタスク状態を更新する.
     103 *  待ち解除するタスクが実行できる状態になる場合は,レディキューにつな
     104 *  ぐ.また,ディスパッチが必要な場合にはtrueを返す.
    146105 */
    147106Inline bool_t
     
    152111        if (!TSTAT_SUSPENDED(p_tcb->tstat)) {
    153112                /*
    154                  *  å¾
    155 ã¡çŠ¶æ
    156 ‹ã‹ã‚‰å®Ÿè¡Œã§ãã‚‹çŠ¶æ
    157 ‹ã¸ã®é·ç§»
     113                 *  待ち状態から実行できる状態への遷移
    158114                 */
    159115                p_tcb->tstat = TS_RUNNABLE;
     
    163119        else {
    164120                /*
    165                  *  二重å¾
    166 ã¡çŠ¶æ
    167 ‹ã‹ã‚‰å¼·åˆ¶å¾
    168 ã¡çŠ¶æ
    169 ‹ã¸ã®é·ç§»
     121                 *  二重待ち状態から強制待ち状態への遷移
    170122                 */
    171123                p_tcb->tstat = TS_SUSPENDED;
     
    176128
    177129/*
    178  *  オブジェクトå¾
    179 ã¡ã‚­ãƒ¥ãƒ¼ã‹ã‚‰ã®å‰Šé™¤
    180  *
    181  *  p_tcbで指定されるタスクが,同期・通信オブジェクトのå¾
    182 ã¡ã‚­ãƒ¥ãƒ¼ã«ã¤
    183  *  ながれていれば,å¾
    184 ã¡ã‚­ãƒ¥ãƒ¼ã‹ã‚‰å‰Šé™¤ã™ã‚‹ï¼Ž
     130 *  オブジェクト待ちキューからの削除
     131 *
     132 *  p_tcbで指定されるタスクが,同期・通信オブジェクトの待ちキューにつ
     133 *  ながれていれば,待ちキューから削除する.
    185134 */
    186135Inline void
     
    193142
    194143/*
    195  *  時間å¾
    196 ã¡ã®ãŸã‚ã®ã‚¿ã‚¤ãƒ ã‚¤ãƒ™ãƒ³ãƒˆãƒ–ロックの登録解除
    197  *
    198  *  p_tcbで指定されるタスクに対して,時間å¾
    199 ã¡ã®ãŸã‚ã®ã‚¿ã‚¤ãƒ ã‚¤ãƒ™ãƒ³ãƒˆãƒ–
    200  *  ロックが登録されていれば,それを登録解除する.
     144 *  時間待ちのためのタイムイベントブロックの登録解除
     145 *
     146 *  p_tcbで指定されるタスクに対して,時間待ちのためのタイムイベントブ
     147 *  ロックが登録されていれば,それを登録解除する.
    201148 */
    202149Inline void
     
    209156
    210157/*
    211  *  å¾
    212 ã¡è§£é™¤
    213  *
    214  *  p_tcbで指定されるタスクのå¾
    215 ã¡çŠ¶æ
    216 ‹ã‚’解除する.å
    217 ·ä½“的には,タイムイ
    218  *  ベントブロックが登録されていれば,それを登録解除する.また,タスク
    219  *  状æ
    220 ‹ã‚’更新し,å¾
    221 ã¡è§£é™¤ã—たタスクからの返値をE_OKとする.å¾
    222 ã¡ã‚­ãƒ¥ãƒ¼
    223  *  からの削除は行わない.å¾
    224 ã¡è§£é™¤ã—たタスクへのディスパッチがå¿
    225 è¦ãªå ´
    226  *  合にはtrueを返す.
     158 *  待ち解除
     159 *
     160 *  p_tcbで指定されるタスクの待ち状態を解除する.具体的には,タイムイ
     161 *  ベントブロックが登録されていれば,それを登録解除する.また,タスク
     162 *  状態を更新し,待ち解除したタスクからの返値をE_OKとする.待ちキュー
     163 *  からの削除は行わない.待ち解除したタスクへのディスパッチが必要な場
     164 *  合にはtrueを返す.
    227165 */
    228166extern bool_t   wait_complete(TCB *p_tcb);
    229167
    230168/*
    231  *  タイムアウトに伴うå¾
    232 ã¡è§£é™¤
    233  *
    234  *  p_tcbで指定されるタスクが,å¾
    235 ã¡ã‚­ãƒ¥ãƒ¼ã«ã¤ãªãŒã‚Œã¦ã„ればå¾
    236 ã¡ã‚­ãƒ¥ãƒ¼
    237  *  から削除し,タスク状æ
    238 ‹ã‚’更新する.また,å¾
    239 ã¡è§£é™¤ã—たタスクからの返
    240  *  値を,wait_tmoutではE_TMOUT,wait_tmout_okではE_OKとする.å¾
    241 ã¡è§£é™¤
    242  *  したタスクへのディスパッチがå¿
    243 è¦ãªæ™‚は,reqflgをtrueにする.
    244  *
    245  *  wait_tmout_okは,dly_tskで使うためのもので,å¾
    246 ã¡ã‚­ãƒ¥ãƒ¼ã‹ã‚‰å‰Šé™¤ã™ã‚‹
    247  *  処理を行わない.
    248  *
    249  *  いずれの関数も,タイムイベントのコールバック関数として用いるための
    250  *  もので,割込みハンドラから呼び出されることを想定している.
     169 *  タイムアウトに伴う待ち解除
     170 *
     171 *  p_tcbで指定されるタスクが,待ちキューにつながれていれば待ちキュー
     172 *  から削除し,タスク状態を更新する.また,待ち解除したタスクからの返
     173 *  値を,wait_tmoutではE_TMOUT,wait_tmout_okではE_OKとする.待ち解除
     174 *  したタスクへのディスパッチが必要な時は,reqflgをtrueにする.
     175 *
     176 *  wait_tmout_okは,dly_tskで使うためのもので,待ちキューから削除する
     177 *  処理を行わない.
     178 *
     179 *  いずれの関数も,タイムイベントのコールバック関数として用いるための
     180 *  もので,割込みハンドラから呼び出されることを想定している.
    251181 */
    252182extern void     wait_tmout(TCB *p_tcb);
     
    254184
    255185/*
    256  *  å¾
    257 ã¡çŠ¶æ
    258 ‹ã®å¼·åˆ¶è§£é™¤
    259  *
    260  *  p_tcbで指定されるタスクのå¾
    261 ã¡çŠ¶æ
    262 ‹ã‚’強制的に解除する.å
    263 ·ä½“的には,
    264  *  タスクがå¾
    265 ã¡ã‚­ãƒ¥ãƒ¼ã«ã¤ãªãŒã‚Œã¦ã„ればå¾
    266 ã¡ã‚­ãƒ¥ãƒ¼ã‹ã‚‰å‰Šé™¤ã—,タイムイ
    267  *  ベントブロックが登録されていればそれを登録解除する.また,タスクの
    268  *  状æ
    269 ‹ã‚’更新し,å¾
    270 ã¡è§£é™¤ã—たタスクからの返値をE_RLWAIとする.また,
    271  *  å¾
    272 ã¡è§£é™¤ã—たタスクへのディスパッチがå¿
    273 è¦ãªå ´åˆã«ã¯trueを返す.
     186 *  待ち状態の強制解除
     187 *
     188 *  p_tcbで指定されるタスクの待ち状態を強制的に解除する.具体的には,
     189 *  タスクが待ちキューにつながれていれば待ちキューから削除し,タイムイ
     190 *  ベントブロックが登録されていればそれを登録解除する.また,タスクの
     191 *  状態を更新し,待ち解除したタスクからの返値をE_RLWAIとする.また,
     192 *  待ち解除したタスクへのディスパッチが必要な場合にはtrueを返す.
    274193 */
    275194extern bool_t   wait_release(TCB *p_tcb);
    276195
    277196/*
    278  *  å¾
    279 ã¡ã‚­ãƒ¥ãƒ¼ã®å
    280 ˆé ­ã®ã‚¿ã‚¹ã‚¯ID
    281  *
    282  *  p_wait_queueで指定したå¾
    283 ã¡ã‚­ãƒ¥ãƒ¼ã®å
    284 ˆé ­ã®ã‚¿ã‚¹ã‚¯IDを返す.å¾
    285 ã¡ã‚­ãƒ¥ãƒ¼
    286  *  が空の場合には,TSK_NONEを返す.
     197 *  待ちキューの先頭のタスクID
     198 *
     199 *  p_wait_queueで指定した待ちキューの先頭のタスクIDを返す.待ちキュー
     200 *  が空の場合には,TSK_NONEを返す.
    287201 */
    288202Inline ID
     
    298212
    299213/*
    300  *  同期・通信オブジェクトの管理ブロックのå
    301 ±é€šéƒ¨åˆ†æ“ä½œãƒ«ãƒ¼ãƒãƒ³
    302  *
    303  *  同期・通信オブジェクトの初期化ブロックと管理ブロックのå
    304 ˆé ­éƒ¨åˆ†ã¯å
    305 ±
    306  *  通になっている.以下は,そのå
    307 ±é€šéƒ¨åˆ†ã‚’扱うための型およびルーチン群
    308  *  である.
    309  *
    310  *  複数のå¾
    311 ã¡ã‚­ãƒ¥ãƒ¼ã‚’持つ同期・通信オブジェクトの場合,å
    312 ˆé ­ä»¥å¤–のå¾
    313 ã¡
    314  *  キューを操作する場合には,これらのルーチンは使えない.また,オブジェ
    315  *  クト属性のTA_TPRIビットを参ç
    316 §ã™ã‚‹ã®ã§ï¼Œã“のビットを他の目的に使って
    317  *  いる場合も,これらのルーチンは使えない.
    318  */
    319 
    320 /*
    321  *  同期・通信オブジェクトの初期化ブロックのå
    322 ±é€šéƒ¨åˆ†
     214 *  同期・通信オブジェクトの管理ブロックの共通部分操作ルーチン
     215 *
     216 *  同期・通信オブジェクトの初期化ブロックと管理ブロックの先頭部分は共
     217 *  通になっている.以下は,その共通部分を扱うための型およびルーチン群
     218 *  である.
     219 *
     220 *  複数の待ちキューを持つ同期・通信オブジェクトの場合,先頭以外の待ち
     221 *  キューを操作する場合には,これらのルーチンは使えない.また,オブジェ
     222 *  クト属性のTA_TPRIビットを参照するので,このビットを他の目的に使って
     223 *  いる場合も,これらのルーチンは使えない.
     224 */
     225
     226/*
     227 *  同期・通信オブジェクトの初期化ブロックの共通部分
    323228 */
    324229typedef struct wait_object_initialization_block {
    325         ATR                     wobjatr;                /* オブジェクト属性 */
     230        ATR                     wobjatr;                /* オブジェクト属性 */
    326231} WOBJINIB;
    327232
    328233/*
    329  *  同期・通信オブジェクトの管理ブロックのå
    330 ±é€šéƒ¨åˆ†
     234 *  同期・通信オブジェクトの管理ブロックの共通部分
    331235 */
    332236typedef struct wait_object_control_block {
    333         QUEUE           wait_queue;             /* å¾
    334 ã¡ã‚­ãƒ¥ãƒ¼ */
    335         const WOBJINIB *p_wobjinib;     /* 初期化ブロックへのポインタ */
     237        QUEUE           wait_queue;             /* 待ちキュー */
     238        const WOBJINIB *p_wobjinib;     /* 初期化ブロックへのポインタ */
    336239} WOBJCB;
    337240
    338241/*
    339  *  同期・通信オブジェクトのå¾
    340 ã¡æƒ
    341 å ±ãƒ–ロックのå
    342 ±é€šéƒ¨åˆ†
    343  *
    344  *  この構造体は,å¾
    345 ã¡æƒ
    346 å ±ãƒ–ロック(WINFO)を拡張(オブジェクト指向言
    347  *  語の継承に相当)したものであるが,WINFOがå
    348 ±ç”¨ä½“で定義されているた
    349  *  めに,1つのフィールドとして含めている.
     242 *  同期・通信オブジェクトの待ち情報ブロックの共通部分
     243 *
     244 *  この構造体は,待ち情報ブロック(WINFO)を拡張(オブジェクト指向言
     245 *  語の継承に相当)したものであるが,WINFOが共用体で定義されているた
     246 *  めに,1つのフィールドとして含めている.
    350247 */
    351248typedef struct wait_object_waiting_information {
    352         WINFO   winfo;                  /* 標準のå¾
    353 ã¡æƒ
    354 å ±ãƒ–ロック */
    355         WOBJCB  *p_wobjcb;              /* å¾
    356 ã¡ã‚ªãƒ–ジェクトの管理ブロック */
     249        WINFO   winfo;                  /* 標準の待ち情報ブロック */
     250        WOBJCB  *p_wobjcb;              /* 待ちオブジェクトの管理ブロック */
    357251} WINFO_WOBJ;
    358252
    359253/*
    360  *  同期・通信オブジェクトに対するå¾
    361 ã¡çŠ¶æ
    362 ‹ã¸ã®é·ç§»
     254 *  同期・通信オブジェクトに対する待ち状態への遷移
    363255 * 
    364  *  実行中のタスクをå¾
    365 ã¡çŠ¶æ
    366 ‹ã«é·ç§»ã•ã›ï¼ŒåŒæœŸãƒ»é€šä¿¡ã‚ªãƒ–ジェクトのå¾
    367 ã¡ã‚­ãƒ¥ãƒ¼
    368  *  につなぐ.また,å¾
    369 ã¡æƒ
    370 å ±ãƒ–ロック(WINFO)のp_wobjcbを設定する.
    371  *  wobj_make_wait_tmoutは,タイムイベントブロックの登録も行う.
     256 *  実行中のタスクを待ち状態に遷移させ,同期・通信オブジェクトの待ちキュー
     257 *  につなぐ.また,待ち情報ブロック(WINFO)のp_wobjcbを設定する.
     258 *  wobj_make_wait_tmoutは,タイムイベントブロックの登録も行う.
    372259 */
    373260extern void     wobj_make_wait(WOBJCB *p_wobjcb, WINFO_WOBJ *p_winfo);
     
    376263
    377264/*
    378  *  タスク優å
    379 ˆåº¦å¤‰æ›´æ™‚の処理
    380  *
    381  *  同期・通信オブジェクトに対するå¾
    382 ã¡çŠ¶æ
    383 ‹ã«ã‚るタスクの優å
    384 ˆåº¦ãŒå¤‰æ›´ã•
    385  *  れた場合に,å¾
    386 ã¡ã‚­ãƒ¥ãƒ¼ã®ä¸­ã§ã®ã‚¿ã‚¹ã‚¯ã®ä½ç½®ã‚’修正する.
     265 *  タスク優先度変更時の処理
     266 *
     267 *  同期・通信オブジェクトに対する待ち状態にあるタスクの優先度が変更さ
     268 *  れた場合に,待ちキューの中でのタスクの位置を修正する.
    387269 */
    388270Inline void
     
    396278
    397279/*
    398  *  å¾
    399 ã¡ã‚­ãƒ¥ãƒ¼ã®åˆæœŸåŒ–
    400  *
    401  *  å¾
    402 ã¡ã‚­ãƒ¥ãƒ¼ã«ã¤ãªãŒã‚Œã¦ã„るタスクをすべてå¾
    403 ã¡è§£é™¤ã™ã‚‹ï¼Žå¾
    404 ã¡è§£é™¤ã—た
    405  *  タスクからの返値は,E_DLTとする.å¾
    406 ã¡è§£é™¤ã—たタスクへのディスパッチ
    407  *  がå¿
    408 è¦ãªå ´åˆã¯true,そうでない場合はfalseを返す.
     280 *  待ちキューの初期化
     281 *
     282 *  待ちキューにつながれているタスクをすべて待ち解除する.待ち解除した
     283 *  タスクからの返値は,E_DLTとする.待ち解除したタスクへのディスパッチ
     284 *  が必要な場合はtrue,そうでない場合はfalseを返す.
    409285 */
    410286extern bool_t   init_wait_queue(QUEUE *p_wait_queue);
Note: See TracChangeset for help on using the changeset viewer.