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

SVNプロパティを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • rubycfg_asp/trunk/asp_dcre/include/kernel.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  *              TOPPERS/ASPカーネル 標準ヘッダファイル
     44 *              TOPPERS/ASPカーネル 標準ヘッダファイル
    6045 *
    61  *  TOPPERS/ASPカーネルがサポートするサービスコールの宣言と,å¿
    62 è¦ãªãƒ‡ãƒ¼
    63  *  タ型,定数,マクロの定義を含むヘッダファイル.
     46 *  TOPPERS/ASPカーネルがサポートするサービスコールの宣言と,必要なデー
     47 *  タ型,定数,マクロの定義を含むヘッダファイル.
    6448 *
    65  *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
    66  *  は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を
    67  *  除くようになっている.
     49 *  アセンブリ言語のソースファイルからこのファイルをインクルードする時
     50 *  は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を
     51 *  除くようになっている.
    6852 *
    69  *  このファイルをインクルードする前にインクルードしておくべきファイル
    70  *  はない.
     53 *  このファイルをインクルードする前にインクルードしておくべきファイル
     54 *  はない.
    7155 */
    7256
     
    7963
    8064/*
    81  *      TOPPERSå
    82 ±é€šã®ãƒ‡ãƒ¼ã‚¿åž‹ãƒ»å®šæ•°ãƒ»ãƒžã‚¯ãƒ­
     65 *      TOPPERS共通のデータ型・定数・マクロ
    8366 */
    8467#include <t_stddef.h>
    8568
    8669/*
    87  *  ターゲット依存部
     70 *  ターゲット依存部
    8871 */
    8972#include "target_kernel.h"
     
    9275
    9376/*
    94  *  データ型の定義
    95  */
    96 
    97 /*
    98  *  ビットパターンやオブジェクト番号の型定義
    99  */
    100 typedef uint_t          TEXPTN;         /* タスク例外要因のビットパターン */
    101 typedef uint_t          FLGPTN;         /* イベントフラグのビットパターン */
    102 typedef uint_t          INTNO;          /* 割込み番号 */
    103 typedef uint_t          INHNO;          /* 割込みハンドラ番号 */
    104 typedef uint_t          EXCNO;          /* CPU例外ハンドラ番号 */
    105 
    106 /*
    107  *  処理単位の型定義
     77 *  データ型の定義
     78 */
     79
     80/*
     81 *  ビットパターンやオブジェクト番号の型定義
     82 */
     83typedef uint_t          TEXPTN;         /* タスク例外要因のビットパターン */
     84typedef uint_t          FLGPTN;         /* イベントフラグのビットパターン */
     85typedef uint_t          INTNO;          /* 割込み番号 */
     86typedef uint_t          INHNO;          /* 割込みハンドラ番号 */
     87typedef uint_t          EXCNO;          /* CPU例外ハンドラ番号 */
     88
     89/*
     90 *  処理単位の型定義
    10891 */
    10992typedef void    (*TASK)(intptr_t exinf);
     
    118101
    119102/*
    120  *  メモリ領域確保のための型定義
     103 *  メモリ領域確保のための型定義
    121104 */
    122105#ifndef TOPPERS_STK_T
    123106#define TOPPERS_STK_T   intptr_t
    124107#endif /* TOPPERS_STK_T */
    125 typedef TOPPERS_STK_T   STK_T;  /* スタック領域を確保するための型 */
     108typedef TOPPERS_STK_T   STK_T;  /* スタック領域を確保するための型 */
    126109
    127110#ifndef TOPPERS_MPF_T
    128111#define TOPPERS_MPF_T   intptr_t
    129112#endif /* TOPPERS_MPF_T */
    130 typedef TOPPERS_MPF_T   MPF_T;  /* 固定長メモリプール領域を確保するための型 */
    131 
    132 /*
    133  *  メッセージヘッダの型定義
    134  */
    135 typedef struct t_msg {                  /* メールボックスのメッセージヘッダ */
     113typedef TOPPERS_MPF_T   MPF_T;  /* 固定長メモリプール領域を確保するための型 */
     114
     115/*
     116 *  メッセージヘッダの型定義
     117 */
     118typedef struct t_msg {                  /* メールボックスのメッセージヘッダ */
    136119        struct t_msg    *pk_next;
    137120} T_MSG;
    138121
    139 typedef struct t_msg_pri {              /* 優å
    140 ˆåº¦ä»˜ããƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãƒ˜ãƒƒãƒ€ */
    141         T_MSG   msgque;                         /* メッセージヘッダ */
    142         PRI             msgpri;                         /* メッセージ優å
    143 ˆåº¦ */
     122typedef struct t_msg_pri {              /* 優先度付きメッセージヘッダ */
     123        T_MSG   msgque;                         /* メッセージヘッダ */
     124        PRI             msgpri;                         /* メッセージ優先度 */
    144125} T_MSG_PRI;
    145126
    146127/*
    147  *  パケット形式の定義
     128 *  パケット形式の定義
    148129 */
    149130typedef struct t_ctsk {
    150         ATR                     tskatr;         /* タスク属性 */
    151         intptr_t        exinf;          /* タスクの拡張æƒ
    152 å ± */
    153         TASK            task;           /* タスクのメインルーチンのå
    154 ˆé ­ç•ªåœ° */
    155         PRI                     itskpri;        /* タスクの起動時優å
    156 ˆåº¦ */
    157         SIZE            stksz;          /* タスクのスタック領域のサイズ */
    158         STK_T           *stk;           /* タスクのスタック領域のå
    159 ˆé ­ç•ªåœ° */
     131        ATR                     tskatr;         /* タスク属性 */
     132        intptr_t        exinf;          /* タスクの拡張情報 */
     133        TASK            task;           /* タスクのメインルーチンの先頭番地 */
     134        PRI                     itskpri;        /* タスクの起動時優先度 */
     135        SIZE            stksz;          /* タスクのスタック領域のサイズ */
     136        STK_T           *stk;           /* タスクのスタック領域の先頭番地 */
    160137} T_CTSK;
    161138
    162139typedef struct t_rtsk {
    163         STAT    tskstat;        /* タスク状æ
    164 ‹ */
    165         PRI             tskpri;         /* タスクの現在優å
    166 ˆåº¦ */
    167         PRI             tskbpri;        /* タスクのベース優å
    168 ˆåº¦ */
    169         STAT    tskwait;        /* å¾
    170 ã¡è¦å›  */
    171         ID              wobjid;         /* å¾
    172 ã¡å¯¾è±¡ã®ã‚ªãƒ–ジェクトのID */
    173         TMO             lefttmo;        /* タイムアウトするまでの時間 */
    174         uint_t  actcnt;         /* 起動要求キューイング数 */
    175         uint_t  wupcnt;         /* 起床要求キューイング数 */
     140        STAT    tskstat;        /* タスク状態 */
     141        PRI             tskpri;         /* タスクの現在優先度 */
     142        PRI             tskbpri;        /* タスクのベース優先度 */
     143        STAT    tskwait;        /* 待ち要因 */
     144        ID              wobjid;         /* 待ち対象のオブジェクトのID */
     145        TMO             lefttmo;        /* タイムアウトするまでの時間 */
     146        uint_t  actcnt;         /* 起動要求キューイング数 */
     147        uint_t  wupcnt;         /* 起床要求キューイング数 */
    176148} T_RTSK;
    177149
    178150typedef struct t_dtex {
    179         ATR             texatr;         /* タスク例外処理ルーチン属性 */
    180         TEXRTN  texrtn;         /* タスク例外処理ルーチンのå
    181 ˆé ­ç•ªåœ° */
     151        ATR             texatr;         /* タスク例外処理ルーチン属性 */
     152        TEXRTN  texrtn;         /* タスク例外処理ルーチンの先頭番地 */
    182153} T_DTEX;
    183154
    184155typedef struct t_rtex {
    185         STAT    texstat;        /* タスク例外処理の状æ
    186 ‹ */
    187         TEXPTN  pndptn;         /* 保留例外要因 */
     156        STAT    texstat;        /* タスク例外処理の状態 */
     157        TEXPTN  pndptn;         /* 保留例外要因 */
    188158} T_RTEX;
    189159
    190160typedef struct t_csem {
    191         ATR             sematr;         /* セマフォ属性 */
    192         uint_t  isemcnt;        /* セマフォの初期資源数 */
    193         uint_t  maxsem;         /* セマフォの最大資源数 */
     161        ATR             sematr;         /* セマフォ属性 */
     162        uint_t  isemcnt;        /* セマフォの初期資源数 */
     163        uint_t  maxsem;         /* セマフォの最大資源数 */
    194164} T_CSEM;
    195165
    196166typedef struct t_rsem {
    197         ID              wtskid;         /* セマフォのå¾
    198 ã¡è¡Œåˆ—のå
    199 ˆé ­ã®ã‚¿ã‚¹ã‚¯ã®ID番号 */
    200         uint_t  semcnt;         /* セマフォの現在の資源数 */
     167        ID              wtskid;         /* セマフォの待ち行列の先頭のタスクのID番号 */
     168        uint_t  semcnt;         /* セマフォの現在の資源数 */
    201169} T_RSEM;
    202170
    203171typedef struct t_cflg {
    204         ATR             flgatr;         /* イベントフラグ属性 */
    205         FLGPTN  iflgptn;        /* イベントフラグの初期ビットパターン */
     172        ATR             flgatr;         /* イベントフラグ属性 */
     173        FLGPTN  iflgptn;        /* イベントフラグの初期ビットパターン */
    206174} T_CFLG;
    207175
    208176typedef struct t_rflg {
    209         ID              wtskid;         /* イベントフラグのå¾
    210 ã¡è¡Œåˆ—のå
    211 ˆé ­ã®ã‚¿ã‚¹ã‚¯ã®ID番号 */
    212         FLGPTN  flgptn;         /* イベントフラグの現在のビットパターン */
     177        ID              wtskid;         /* イベントフラグの待ち行列の先頭のタスクのID番号 */
     178        FLGPTN  flgptn;         /* イベントフラグの現在のビットパターン */
    213179} T_RFLG;
    214180
    215181typedef struct t_cdtq {
    216         ATR             dtqatr;         /* データキュー属性 */
    217         uint_t  dtqcnt;         /* データキュー管理領域に格納できるデータ数 */
    218         void    *dtqmb;         /* データキュー管理領域のå
    219 ˆé ­ç•ªåœ° */
     182        ATR             dtqatr;         /* データキュー属性 */
     183        uint_t  dtqcnt;         /* データキュー管理領域に格納できるデータ数 */
     184        void    *dtqmb;         /* データキュー管理領域の先頭番地 */
    220185} T_CDTQ;
    221186
    222187typedef struct t_rdtq {
    223         ID              stskid;         /* データキューの送信å¾
    224 ã¡è¡Œåˆ—のå
    225 ˆé ­ã®ã‚¿ã‚¹ã‚¯ã®ID番号 */
    226         ID              rtskid;         /* データキューの受信å¾
    227 ã¡è¡Œåˆ—のå
    228 ˆé ­ã®ã‚¿ã‚¹ã‚¯ã®ID番号 */
    229         uint_t  sdtqcnt;        /* データキュー管理領域に格納されているデータの数 */
     188        ID              stskid;         /* データキューの送信待ち行列の先頭のタスクのID番号 */
     189        ID              rtskid;         /* データキューの受信待ち行列の先頭のタスクのID番号 */
     190        uint_t  sdtqcnt;        /* データキュー管理領域に格納されているデータの数 */
    230191} T_RDTQ;
    231192
    232193typedef struct t_cpdq {
    233         ATR             pdqatr;         /* 優å
    234 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼å±žæ€§ */
    235         uint_t  pdqcnt;         /* 優å
    236 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†é ˜åŸŸã«æ ¼ç´ã§ãã‚‹ãƒ‡ãƒ¼ã‚¿æ•° */
    237         PRI             maxdpri;        /* 優å
    238 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã«é€ä¿¡ã§ãã‚‹ãƒ‡ãƒ¼ã‚¿å„ªå
    239 ˆåº¦ã®æœ€
    240                                                    å¤§å€¤ */
    241         void    *pdqmb;         /* 優å
    242 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†é ˜åŸŸã®å
    243 ˆé ­ç•ªåœ° */
     194        ATR             pdqatr;         /* 優先度データキュー属性 */
     195        uint_t  pdqcnt;         /* 優先度データキュー管理領域に格納できるデータ数 */
     196        PRI             maxdpri;        /* 優先度データキューに送信できるデータ優先度の最
     197                                                   大値 */
     198        void    *pdqmb;         /* 優先度データキュー管理領域の先頭番地 */
    244199} T_CPDQ;
    245200
    246201typedef struct t_rpdq {
    247         ID              stskid;         /* 優å
    248 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®é€ä¿¡å¾
    249 ã¡è¡Œåˆ—のå
    250 ˆé ­ã®ã‚¿ã‚¹ã‚¯
    251                                                    ã®ID番号 */
    252         ID              rtskid;         /* 優å
    253 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®å—ä¿¡å¾
    254 ã¡è¡Œåˆ—のå
    255 ˆé ­ã®ã‚¿ã‚¹ã‚¯
    256                                                    ã®ID番号 */
    257         uint_t  spdqcnt;        /* 優å
    258 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†é ˜åŸŸã«æ ¼ç´ã•ã‚Œã¦ã„るデー
    259                                                    ã‚¿ã®æ•° */
     202        ID              stskid;         /* 優先度データキューの送信待ち行列の先頭のタスク
     203                                                   のID番号 */
     204        ID              rtskid;         /* 優先度データキューの受信待ち行列の先頭のタスク
     205                                                   のID番号 */
     206        uint_t  spdqcnt;        /* 優先度データキュー管理領域に格納されているデー
     207                                                   タの数 */
    260208} T_RPDQ;
    261209
    262210typedef struct t_cmbx {
    263         ATR             mbxatr;         /* メールボックス属性 */
    264         PRI             maxmpri;        /* 優å
    265 ˆåº¦ãƒ¡ãƒ¼ãƒ«ãƒœãƒƒã‚¯ã‚¹ã«é€ä¿¡ã§ãã‚‹ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸å„ªå
    266 ˆ
    267                                                    åº¦ã®æœ€å¤§å€¤ */
    268         void    *mprihd;        /* 優å
    269 ˆåº¦åˆ¥ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚­ãƒ¥ãƒ¼ãƒ˜ãƒƒãƒ€é ˜åŸŸã®å
    270 ˆé ­ç•ªåœ° */
     211        ATR             mbxatr;         /* メールボックス属性 */
     212        PRI             maxmpri;        /* 優先度メールボックスに送信できるメッセージ優先
     213                                                   度の最大値 */
     214        void    *mprihd;        /* 優先度別のメッセージキューヘッダ領域の先頭番地 */
    271215} T_CMBX;
    272216
    273217typedef struct t_rmbx {
    274         ID              wtskid;         /* メールボックスのå¾
    275 ã¡è¡Œåˆ—のå
    276 ˆé ­ã®ã‚¿ã‚¹ã‚¯ã®ID番号 */
    277         T_MSG   *pk_msg;        /* メッセージキューのå
    278 ˆé ­ã«ã¤ãªãŒã‚ŒãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸
    279                                                    ã®å
    280 ˆé ­ç•ªåœ° */
     218        ID              wtskid;         /* メールボックスの待ち行列の先頭のタスクのID番号 */
     219        T_MSG   *pk_msg;        /* メッセージキューの先頭につながれたメッセージ
     220                                                   の先頭番地 */
    281221} T_RMBX;
    282222
    283223typedef struct t_cmpf {
    284         ATR             mpfatr;         /* 固定長メモリプール属性 */
    285         uint_t  blkcnt;         /* 獲得できる固定長メモリブロックの数 */
    286         uint_t  blksz;          /* 固定長メモリブロックのサイズ */
    287         MPF_T   *mpf;           /* 固定長メモリプール領域のå
    288 ˆé ­ç•ªåœ° */
    289         void    *mpfmb;         /* 固定長メモリプール管理領域のå
    290 ˆé ­ç•ªåœ° */
     224        ATR             mpfatr;         /* 固定長メモリプール属性 */
     225        uint_t  blkcnt;         /* 獲得できる固定長メモリブロックの数 */
     226        uint_t  blksz;          /* 固定長メモリブロックのサイズ */
     227        MPF_T   *mpf;           /* 固定長メモリプール領域の先頭番地 */
     228        void    *mpfmb;         /* 固定長メモリプール管理領域の先頭番地 */
    291229} T_CMPF;
    292230
    293231typedef struct t_rmpf {
    294         ID              wtskid;         /* 固定長メモリプールのå¾
    295 ã¡è¡Œåˆ—のå
    296 ˆé ­ã®ã‚¿ã‚¹ã‚¯ã®
    297                                                    ID番号 */
    298         uint_t  fblkcnt;        /* 固定長メモリプール領域の空きメモリ領域に割り
    299                                                    ä»˜ã‘ることができる固定長メモリブロックの数 */
     232        ID              wtskid;         /* 固定長メモリプールの待ち行列の先頭のタスクの
     233                                                   ID番号 */
     234        uint_t  fblkcnt;        /* 固定長メモリプール領域の空きメモリ領域に割り
     235                                                   付けることができる固定長メモリブロックの数 */
    300236} T_RMPF;
    301237
    302238typedef struct t_ccyc {
    303         ATR                     cycatr;         /* 周期ハンドラ属性 */
    304         intptr_t        exinf;          /* 周期ハンドラの拡張æƒ
    305 å ± */
    306         CYCHDR          cychdr;         /* 周期ハンドラのå
    307 ˆé ­ç•ªåœ° */
    308         RELTIM          cyctim;         /* 周期ハンドラの起動周期 */
    309         RELTIM          cycphs;         /* 周期ハンドラの起動位相 */
     239        ATR                     cycatr;         /* 周期ハンドラ属性 */
     240        intptr_t        exinf;          /* 周期ハンドラの拡張情報 */
     241        CYCHDR          cychdr;         /* 周期ハンドラの先頭番地 */
     242        RELTIM          cyctim;         /* 周期ハンドラの起動周期 */
     243        RELTIM          cycphs;         /* 周期ハンドラの起動位相 */
    310244} T_CCYC;
    311245
    312246typedef struct t_rcyc {
    313         STAT    cycstat;        /* 周期ハンドラの動作状æ
    314 ‹ */
    315         RELTIM  lefttim;        /* 次に周期ハンドラを起動する時刻までの相対時間 */
     247        STAT    cycstat;        /* 周期ハンドラの動作状態 */
     248        RELTIM  lefttim;        /* 次に周期ハンドラを起動する時刻までの相対時間 */
    316249} T_RCYC;
    317250
    318251typedef struct t_calm {
    319         ATR                     almatr;         /* アラームハンドラ属性 */
    320         intptr_t        exinf;          /* アラームハンドラの拡張æƒ
    321 å ± */
    322         ALMHDR          almhdr;         /* アラームハンドラのå
    323 ˆé ­ç•ªåœ° */
     252        ATR                     almatr;         /* アラームハンドラ属性 */
     253        intptr_t        exinf;          /* アラームハンドラの拡張情報 */
     254        ALMHDR          almhdr;         /* アラームハンドラの先頭番地 */
    324255} T_CALM;
    325256
    326257typedef struct t_ralm {
    327         STAT    almstat;        /* アラームハンドラの動作状æ
    328 ‹ */
    329         RELTIM  lefttim;        /* アラームハンドラを起動する時刻までの相対時間 */
     258        STAT    almstat;        /* アラームハンドラの動作状態 */
     259        RELTIM  lefttim;        /* アラームハンドラを起動する時刻までの相対時間 */
    330260} T_RALM;
    331261
    332262typedef struct t_cisr {
    333         ATR                     isratr;         /* 割込みサービスルーチン属性 */
    334         intptr_t        exinf;          /* 割込みサービスルーチンの拡張æƒ
    335 å ± */
    336         INTNO           intno;          /* 割込みサービスルーチンを登録する割込み番号 */
    337         ISR                     isr;            /* 割込みサービスルーチンのå
    338 ˆé ­ç•ªåœ° */
    339         PRI                     isrpri;         /* 割込みサービスルーチン優å
    340 ˆåº¦ */
     263        ATR                     isratr;         /* 割込みサービスルーチン属性 */
     264        intptr_t        exinf;          /* 割込みサービスルーチンの拡張情報 */
     265        INTNO           intno;          /* 割込みサービスルーチンを登録する割込み番号 */
     266        ISR                     isr;            /* 割込みサービスルーチンの先頭番地 */
     267        PRI                     isrpri;         /* 割込みサービスルーチン優先度 */
    341268} T_CISR;
    342269
    343270/*
    344  *  サービスコールの宣言
    345  */
    346 
    347 /*
    348  *  タスク管理機能
     271 *  サービスコールの宣言
     272 */
     273
     274/*
     275 *  タスク管理機能
    349276 */
    350277extern ER_UINT  acre_tsk(const T_CTSK *pk_ctsk) throw();
     
    361288
    362289/*
    363  *  タスク付属同期機能
     290 *  タスク付属同期機能
    364291 */
    365292extern ER               slp_tsk(void) throw();
     
    375302
    376303/*
    377  *  タスク例外処理機能
     304 *  タスク例外処理機能
    378305 */
    379306extern ER               def_tex(ID tskid, const T_DTEX *pk_dtex) throw();
     
    386313
    387314/*
    388  *  同期・通信機能
     315 *  同期・通信機能
    389316 */
    390317extern ER_ID    acre_sem(const T_CSEM *pk_csem) throw();
     
    450377
    451378/*
    452  *  メモリプール管理機能
     379 *  メモリプール管理機能
    453380 */
    454381extern ER_ID    acre_mpf(const T_CMPF *pk_cmpf) throw();
     
    462389
    463390/*
    464  *  時間管理機能
     391 *  時間管理機能
    465392 */
    466393extern ER               get_tim(SYSTIM *p_systim) throw();
     
    482409
    483410/*
    484  *  システム状æ
    485 ‹ç®¡ç†æ©Ÿèƒ½
     411 *  システム状態管理機能
    486412 */
    487413extern ER               rot_rdq(PRI tskpri) throw();
     
    503429
    504430/*
    505  *  割込み管理機能
     431 *  割込み管理機能
    506432 */
    507433extern ER_ID    acre_isr(const T_CISR *pk_cisr) throw();
     
    513439
    514440/*
    515  *  CPU例外管理機能
     441 *  CPU例外管理機能
    516442 */
    517443extern bool_t   xsns_dpn(void *p_excinf) throw();
     
    521447
    522448/*
    523  *  オブジェクト属性の定義
    524  */
    525 #define TA_ACT                  UINT_C(0x02)    /* タスクを起動された状æ
    526 ‹ã§ç”Ÿæˆ */
    527 
    528 #define TA_TPRI                 UINT_C(0x01)    /* タスクのå¾
    529 ã¡è¡Œåˆ—を優å
    530 ˆåº¦é †ã« */
    531 #define TA_MPRI                 UINT_C(0x02)    /* メッセージキューを優å
    532 ˆåº¦é †ã« */
    533 
    534 #define TA_WMUL                 UINT_C(0x02)    /* 複数のå¾
    535 ã¡ã‚¿ã‚¹ã‚¯ */
    536 #define TA_CLR                  UINT_C(0x04)    /* イベントフラグのクリア指定 */
    537 
    538 #define TA_STA                  UINT_C(0x02)    /* 周期ハンドラを動作状æ
    539 ‹ã§ç”Ÿæˆ */
    540 
    541 #define TA_NONKERNEL    UINT_C(0x02)    /* カーネル管理外の割込み */
    542 
    543 #define TA_ENAINT               UINT_C(0x01)    /* 割込み要求禁止フラグをクリア */
    544 #define TA_EDGE                 UINT_C(0x02)    /* エッジトリガ */
    545 
    546 /*
    547  *  サービスコールの動作モードの定義
    548  */
    549 #define TWF_ORW                 UINT_C(0x01)    /* イベントフラグのORå¾
    550 ã¡ */
    551 #define TWF_ANDW                UINT_C(0x02)    /* イベントフラグのANDå¾
    552 ã¡ */
    553 
    554 /*
    555  *  オブジェクトの状æ
    556 ‹ã®å®šç¾©
    557  */
    558 #define TTS_RUN                 UINT_C(0x01)    /* 実行状æ
    559 ‹ */
    560 #define TTS_RDY                 UINT_C(0x02)    /* 実行可能状æ
    561 ‹ */
    562 #define TTS_WAI                 UINT_C(0x04)    /* å¾
    563 ã¡çŠ¶æ
    564 ‹ */
    565 #define TTS_SUS                 UINT_C(0x08)    /* 強制å¾
    566 ã¡çŠ¶æ
    567 ‹ */
    568 #define TTS_WAS                 UINT_C(0x0c)    /* 二重å¾
    569 ã¡çŠ¶æ
    570 ‹ */
    571 #define TTS_DMT                 UINT_C(0x10)    /* 休止状æ
    572 ‹ */
    573 
    574 #define TTW_SLP                 UINT_C(0x0001)  /* 起床å¾
    575 ã¡ */
    576 #define TTW_DLY                 UINT_C(0x0002)  /* 時間経過å¾
    577 ã¡ */
    578 #define TTW_SEM                 UINT_C(0x0004)  /* セマフォの資源獲得å¾
    579 ã¡ */
    580 #define TTW_FLG                 UINT_C(0x0008)  /* イベントフラグå¾
    581 ã¡ */
    582 #define TTW_SDTQ                UINT_C(0x0010)  /* データキューへの送信å¾
    583 ã¡ */
    584 #define TTW_RDTQ                UINT_C(0x0020)  /* データキューからの受信å¾
    585 ã¡ */
    586 #define TTW_SPDQ                UINT_C(0x0100)  /* 優å
    587 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã¸ã®é€ä¿¡å¾
    588 ã¡ */
    589 #define TTW_RPDQ                UINT_C(0x0200)  /* 優å
    590 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‹ã‚‰ã®å—ä¿¡å¾
    591 ã¡ */
    592 #define TTW_MBX                 UINT_C(0x0040)  /* メールボックスからの受信å¾
    593 ã¡ */
    594 #define TTW_MPF                 UINT_C(0x2000)  /* 固定長メモリブロックの獲得å¾
    595 ã¡ */
    596 
    597 #define TTEX_ENA                UINT_C(0x01)    /* タスク例外処理許可状æ
    598 ‹ */
    599 #define TTEX_DIS                UINT_C(0x02)    /* タスク例外処理禁止状æ
    600 ‹ */
    601 
    602 #define TCYC_STP                UINT_C(0x01)    /* 周期ハンドラが動作していない */
    603 #define TCYC_STA                UINT_C(0x02)    /* 周期ハンドラが動作している */
    604 
    605 #define TALM_STP                UINT_C(0x01)    /* アラームハンドラが動作していない */
    606 #define TALM_STA                UINT_C(0x02)    /* アラームハンドラが動作している */
    607 
    608 /*
    609  *  その他の定数の定義
    610  */
    611 #define TSK_SELF                0                       /* 自タスク指定 */
    612 #define TSK_NONE                0                       /* 該当するタスクがない */
    613 
    614 #define TPRI_SELF               0                       /* 自タスクのベース優å
    615 ˆåº¦ */
    616 #define TPRI_INI                0                       /* タスクの起動時優å
    617 ˆåº¦ */
    618 
    619 #define TIPM_ENAALL             0                       /* 割込み優å
    620 ˆåº¦ãƒžã‚¹ã‚¯å
    621 ¨è§£é™¤ */
    622 
    623 /*
    624  *  構成定数とマクロ
    625  */
    626 
    627 /*
    628  *  サポートする機能
     449 *  オブジェクト属性の定義
     450 */
     451#define TA_ACT                  UINT_C(0x02)    /* タスクを起動された状態で生成 */
     452
     453#define TA_TPRI                 UINT_C(0x01)    /* タスクの待ち行列を優先度順に */
     454#define TA_MPRI                 UINT_C(0x02)    /* メッセージキューを優先度順に */
     455
     456#define TA_WMUL                 UINT_C(0x02)    /* 複数の待ちタスク */
     457#define TA_CLR                  UINT_C(0x04)    /* イベントフラグのクリア指定 */
     458
     459#define TA_STA                  UINT_C(0x02)    /* 周期ハンドラを動作状態で生成 */
     460
     461#define TA_NONKERNEL    UINT_C(0x02)    /* カーネル管理外の割込み */
     462
     463#define TA_ENAINT               UINT_C(0x01)    /* 割込み要求禁止フラグをクリア */
     464#define TA_EDGE                 UINT_C(0x02)    /* エッジトリガ */
     465
     466/*
     467 *  サービスコールの動作モードの定義
     468 */
     469#define TWF_ORW                 UINT_C(0x01)    /* イベントフラグのOR待ち */
     470#define TWF_ANDW                UINT_C(0x02)    /* イベントフラグのAND待ち */
     471
     472/*
     473 *  オブジェクトの状態の定義
     474 */
     475#define TTS_RUN                 UINT_C(0x01)    /* 実行状態 */
     476#define TTS_RDY                 UINT_C(0x02)    /* 実行可能状態 */
     477#define TTS_WAI                 UINT_C(0x04)    /* 待ち状態 */
     478#define TTS_SUS                 UINT_C(0x08)    /* 強制待ち状態 */
     479#define TTS_WAS                 UINT_C(0x0c)    /* 二重待ち状態 */
     480#define TTS_DMT                 UINT_C(0x10)    /* 休止状態 */
     481
     482#define TTW_SLP                 UINT_C(0x0001)  /* 起床待ち */
     483#define TTW_DLY                 UINT_C(0x0002)  /* 時間経過待ち */
     484#define TTW_SEM                 UINT_C(0x0004)  /* セマフォの資源獲得待ち */
     485#define TTW_FLG                 UINT_C(0x0008)  /* イベントフラグ待ち */
     486#define TTW_SDTQ                UINT_C(0x0010)  /* データキューへの送信待ち */
     487#define TTW_RDTQ                UINT_C(0x0020)  /* データキューからの受信待ち */
     488#define TTW_SPDQ                UINT_C(0x0100)  /* 優先度データキューへの送信待ち */
     489#define TTW_RPDQ                UINT_C(0x0200)  /* 優先度データキューからの受信待ち */
     490#define TTW_MBX                 UINT_C(0x0040)  /* メールボックスからの受信待ち */
     491#define TTW_MPF                 UINT_C(0x2000)  /* 固定長メモリブロックの獲得待ち */
     492
     493#define TTEX_ENA                UINT_C(0x01)    /* タスク例外処理許可状態 */
     494#define TTEX_DIS                UINT_C(0x02)    /* タスク例外処理禁止状態 */
     495
     496#define TCYC_STP                UINT_C(0x01)    /* 周期ハンドラが動作していない */
     497#define TCYC_STA                UINT_C(0x02)    /* 周期ハンドラが動作している */
     498
     499#define TALM_STP                UINT_C(0x01)    /* アラームハンドラが動作していない */
     500#define TALM_STA                UINT_C(0x02)    /* アラームハンドラが動作している */
     501
     502/*
     503 *  その他の定数の定義
     504 */
     505#define TSK_SELF                0                       /* 自タスク指定 */
     506#define TSK_NONE                0                       /* 該当するタスクがない */
     507
     508#define TPRI_SELF               0                       /* 自タスクのベース優先度 */
     509#define TPRI_INI                0                       /* タスクの起動時優先度 */
     510
     511#define TIPM_ENAALL             0                       /* 割込み優先度マスク全解除 */
     512
     513/*
     514 *  構成定数とマクロ
     515 */
     516
     517/*
     518 *  サポートする機能
    629519 */
    630520#ifdef TOPPERS_TARGET_SUPPORT_DIS_INT
    631 #define TOPPERS_SUPPORT_DIS_INT                 /* dis_intがサポートされている */
     521#define TOPPERS_SUPPORT_DIS_INT                 /* dis_intがサポートされている */
    632522#endif /* TOPPERS_TARGET_SUPPORT_DIS_INT */
    633523
    634524#ifdef TOPPERS_TARGET_SUPPORT_ENA_INT
    635 #define TOPPERS_SUPPORT_ENA_INT                 /* ena_intがサポートされている */
     525#define TOPPERS_SUPPORT_ENA_INT                 /* ena_intがサポートされている */
    636526#endif /* TOPPERS_TARGET_SUPPORT_ENA_INT */
    637527
    638528#ifdef TOPPERS_TARGET_SUPPORT_GET_UTM
    639 #define TOPPERS_SUPPORT_GET_UTM                 /* get_utmがサポートされている */
     529#define TOPPERS_SUPPORT_GET_UTM                 /* get_utmがサポートされている */
    640530#endif /* TOPPERS_TARGET_SUPPORT_GET_UTM */
    641531
    642 #define TOPPERS_SUPPORT_DYNAMIC_CRE             /* 動的生成機能拡張 */
    643 
    644 /*
    645  *  優å
    646 ˆåº¦ã®ç¯„囲
    647  */
    648 #define TMIN_TPRI               1                       /* タスク優å
    649 ˆåº¦ã®æœ€å°å€¤ï¼ˆæœ€é«˜å€¤ï¼‰*/
    650 #define TMAX_TPRI               16                      /* タスク優å
    651 ˆåº¦ã®æœ€å¤§å€¤ï¼ˆæœ€ä½Žå€¤ï¼‰*/
    652 #define TMIN_DPRI               1                       /* データ優å
    653 ˆåº¦ã®æœ€å°å€¤ï¼ˆæœ€é«˜å€¤ï¼‰*/
    654 #define TMAX_DPRI               16                      /* データ優å
    655 ˆåº¦ã®æœ€å¤§å€¤ï¼ˆæœ€ä½Žå€¤ï¼‰*/
    656 #define TMIN_MPRI               1                       /* メッセージ優å
    657 ˆåº¦ã®æœ€å°å€¤ï¼ˆæœ€é«˜å€¤ï¼‰*/
    658 #define TMAX_MPRI               16                      /* メッセージ優å
    659 ˆåº¦ã®æœ€å¤§å€¤ï¼ˆæœ€ä½Žå€¤ï¼‰*/
    660 #define TMIN_ISRPRI             1                       /* 割込みサービスルーチン優å
    661 ˆåº¦ã®æœ€å°å€¤ */
    662 #define TMAX_ISRPRI             16                      /* 割込みサービスルーチン優å
    663 ˆåº¦ã®æœ€å¤§å€¤ */
    664 
    665 /*
    666  *  バージョンæƒ
    667 å ±
    668  */
    669 #define TKERNEL_MAKER   UINT_C(0x0118)  /* カーネルのメーカーコード */
    670 #define TKERNEL_PRID    UINT_C(0x0007)  /* カーネルの識別番号 */
    671 #define TKERNEL_SPVER   UINT_C(0xf517)  /* カーネル仕様のバージョン番号 */
    672 #define TKERNEL_PRVER   UINT_C(0x1093)  /* カーネルのバージョン番号 */
    673 
    674 /*
    675  *  キューイング回数の最大値
    676  */
    677 #define TMAX_ACTCNT             UINT_C(1)               /* 起動要求キューイング数の最大値 */
    678 #define TMAX_WUPCNT             UINT_C(1)               /* 起床要求キューイング数の最大値 */
    679 
    680 /*
    681  *  ビットパターンのビット数
    682  */
    683 #ifndef TBIT_TEXPTN                                     /* タスク例外要因のビット数 */
     532#define TOPPERS_SUPPORT_DYNAMIC_CRE             /* 動的生成機能拡張 */
     533
     534/*
     535 *  優先度の範囲
     536 */
     537#define TMIN_TPRI               1                       /* タスク優先度の最小値(最高値)*/
     538#define TMAX_TPRI               16                      /* タスク優先度の最大値(最低値)*/
     539#define TMIN_DPRI               1                       /* データ優先度の最小値(最高値)*/
     540#define TMAX_DPRI               16                      /* データ優先度の最大値(最低値)*/
     541#define TMIN_MPRI               1                       /* メッセージ優先度の最小値(最高値)*/
     542#define TMAX_MPRI               16                      /* メッセージ優先度の最大値(最低値)*/
     543#define TMIN_ISRPRI             1                       /* 割込みサービスルーチン優先度の最小値 */
     544#define TMAX_ISRPRI             16                      /* 割込みサービスルーチン優先度の最大値 */
     545
     546/*
     547 *  バージョン情報
     548 */
     549#define TKERNEL_MAKER   UINT_C(0x0118)  /* カーネルのメーカーコード */
     550#define TKERNEL_PRID    UINT_C(0x0007)  /* カーネルの識別番号 */
     551#define TKERNEL_SPVER   UINT_C(0xf517)  /* カーネル仕様のバージョン番号 */
     552#define TKERNEL_PRVER   UINT_C(0x1093)  /* カーネルのバージョン番号 */
     553
     554/*
     555 *  キューイング回数の最大値
     556 */
     557#define TMAX_ACTCNT             UINT_C(1)               /* 起動要求キューイング数の最大値 */
     558#define TMAX_WUPCNT             UINT_C(1)               /* 起床要求キューイング数の最大値 */
     559
     560/*
     561 *  ビットパターンのビット数
     562 */
     563#ifndef TBIT_TEXPTN                                     /* タスク例外要因のビット数 */
    684564#define TBIT_TEXPTN             (sizeof(TEXPTN) * CHAR_BIT)
    685565#endif /* TBIT_TEXPTN */
    686566
    687 #ifndef TBIT_FLGPTN                                     /* イベントフラグのビット数 */
     567#ifndef TBIT_FLGPTN                                     /* イベントフラグのビット数 */
    688568#define TBIT_FLGPTN             (sizeof(FLGPTN) * CHAR_BIT)
    689569#endif /* TBIT_FLGPTN */
    690570
    691571/*
    692  *  メモリ領域確保のためのマクロ
     572 *  メモリ領域確保のためのマクロ
    693573 *
    694  *  以下のTOPPERS_COUNT_SZとTOPPERS_ROUND_SZの定義は,unitが2の巾乗であ
    695  *  ることを仮定している.
     574 *  以下のTOPPERS_COUNT_SZとTOPPERS_ROUND_SZの定義は,unitが2の巾乗であ
     575 *  ることを仮定している.
    696576 */
    697577#ifndef TOPPERS_COUNT_SZ
     
    720600
    721601/*
    722  *  その他の構成定数
    723  */
    724 #define TMAX_MAXSEM             UINT_MAX        /* セマフォの最大資源数の最大値 */
     602 *  その他の構成定数
     603 */
     604#define TMAX_MAXSEM             UINT_MAX        /* セマフォの最大資源数の最大値 */
    725605
    726606#ifdef __cplusplus
Note: See TracChangeset for help on using the changeset viewer.