Ignore:
Timestamp:
May 22, 2019, 10:03:37 PM (5 years ago)
Author:
coas-nagasima
Message:

ビルドが通るよう更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • azure_iot_hub/trunk/asp3_dcre/kernel/pridataq.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r388 r389  
    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
     
    6953
    7054/*
    71  *  優å
    72 ˆåº¦ãƒ‡ãƒ¼ã‚¿ç®¡ç†ãƒ–ロック
     55 *  優先度データ管理ブロック
    7356 */
    7457typedef struct pridata_management_block PDQMB;
    7558
    7659struct pridata_management_block {
    77         PDQMB           *p_next;                /* 次のデータ */
    78         intptr_t        data;                   /* データ本体 */
    79         PRI                     datapri;                /* データ優å
    80 ˆåº¦ */
     60        PDQMB           *p_next;                /* 次のデータ */
     61        intptr_t        data;                   /* データ本体 */
     62        PRI                     datapri;                /* データ優先度 */
    8163};
    8264
    8365/*
    84  *  優å
    85 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼åˆæœŸåŒ–ブロック
     66 *  優先度データキュー初期化ブロック
    8667 *
    87  *  この構造体は,同期・通信オブジェクトの初期化ブロックのå
    88 ±é€šéƒ¨åˆ†
    89  *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
    90  *  最初のフィールドがå
    91 ±é€šã«ãªã£ã¦ã„る.
     68 *  この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分
     69 *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
     70 *  最初のフィールドが共通になっている.
    9271 */
    9372typedef struct pridataq_initialization_block {
    94         ATR                     pdqatr;                 /* 優å
    95 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼å±žæ€§ */
    96         uint_t          pdqcnt;                 /* 優å
    97 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®å®¹é‡ */
    98         PRI                     maxdpri;                /* データ優å
    99 ˆåº¦ã®æœ€å¤§å€¤ */
    100         PDQMB           *p_pdqmb;               /* 優å
    101 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†é ˜åŸŸã®å
    102 ˆé ­ç•ªåœ° */
     73        ATR                     pdqatr;                 /* 優先度データキュー属性 */
     74        uint_t          pdqcnt;                 /* 優先度データキューの容量 */
     75        PRI                     maxdpri;                /* データ優先度の最大値 */
     76        PDQMB           *p_pdqmb;               /* 優先度データキュー管理領域の先頭番地 */
    10377} PDQINIB;
    10478
    10579/*
    106  *  優å
    107 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†ãƒ–ロック
     80 *  優先度データキュー管理ブロック
    10881 *
    109  *  この構造体は,同期・通信オブジェクトの管理ブロックのå
    110 ±é€šéƒ¨åˆ†ï¼ˆWOBJCB)
    111  *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
    112  *  フィールドがå
    113 ±é€šã«ãªã£ã¦ã„る.
     82 *  この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB)
     83 *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
     84 *  フィールドが共通になっている.
    11485 */
    11586typedef struct pridataq_control_block {
    116         QUEUE           swait_queue;    /* 優å
    117 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼é€ä¿¡å¾
    118 ã¡ã‚­ãƒ¥ãƒ¼ */
    119         const PDQINIB *p_pdqinib;       /* 初期化ブロックへのポインタ */
    120         QUEUE           rwait_queue;    /* 優å
    121 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼å—ä¿¡å¾
    122 ã¡ã‚­ãƒ¥ãƒ¼ */
    123         uint_t          count;                  /* 優å
    124 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ä¸­ã®ãƒ‡ãƒ¼ã‚¿ã®æ•° */
    125         PDQMB           *p_head;                /* 最初のデータ */
    126         uint_t          unused;                 /* 未使用データ管理ブロックのå
    127 ˆé ­ */
    128         PDQMB           *p_freelist;    /* 未割当てデータ管理ブロックのリスト */
     87        QUEUE           swait_queue;    /* 優先度データキュー送信待ちキュー */
     88        const PDQINIB *p_pdqinib;       /* 初期化ブロックへのポインタ */
     89        QUEUE           rwait_queue;    /* 優先度データキュー受信待ちキュー */
     90        uint_t          count;                  /* 優先度データキュー中のデータの数 */
     91        PDQMB           *p_head;                /* 最初のデータ */
     92        uint_t          unused;                 /* 未使用データ管理ブロックの先頭 */
     93        PDQMB           *p_freelist;    /* 未割当てデータ管理ブロックのリスト */
    12994} PDQCB;
    13095
    13196/*
    132  *  優å
    133 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼å¾
    134 ã¡æƒ
    135 å ±ãƒ–ロックの定義
     97 *  優先度データキュー待ち情報ブロックの定義
    13698 *
    137  *  この構造体は,同期・通信オブジェクトのå¾
    138 ã¡æƒ
    139 å ±ãƒ–ロックのå
    140 ±é€šéƒ¨åˆ†
    141  *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
    142  *  最初の2つのフィールドがå
    143 ±é€šã«ãªã£ã¦ã„る.
     99 *  この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分
     100 *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
     101 *  最初の2つのフィールドが共通になっている.
    144102 */
    145103typedef struct pridataq_send_waiting_information {
    146         WINFO           winfo;                  /* 標準のå¾
    147 ã¡æƒ
    148 å ±ãƒ–ロック */
    149         PDQCB           *p_pdqcb;               /* å¾
    150 ã£ã¦ã„る優å
    151 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®ç®¡ç†ãƒ–ロック*/
    152         intptr_t        data;                   /* 送信データ */
    153         PRI                     datapri;                /* データ優å
    154 ˆåº¦ */
     104        WINFO           winfo;                  /* 標準の待ち情報ブロック */
     105        PDQCB           *p_pdqcb;               /* 待っている優先度データキューの管理ブロック*/
     106        intptr_t        data;                   /* 送信データ */
     107        PRI                     datapri;                /* データ優先度 */
    155108} WINFO_SPDQ;
    156109
    157110typedef struct pridataq_receive_waiting_information {
    158         WINFO           winfo;                  /* 標準のå¾
    159 ã¡æƒ
    160 å ±ãƒ–ロック */
    161         PDQCB           *p_pdqcb;               /* å¾
    162 ã£ã¦ã„る優å
    163 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®ç®¡ç†ãƒ–ロック*/
    164         intptr_t        data;                   /* 受信データ */
    165         PRI                     datapri;                /* データ優å
    166 ˆåº¦ */
     111        WINFO           winfo;                  /* 標準の待ち情報ブロック */
     112        PDQCB           *p_pdqcb;               /* 待っている優先度データキューの管理ブロック*/
     113        intptr_t        data;                   /* 受信データ */
     114        PRI                     datapri;                /* データ優先度 */
    167115} WINFO_RPDQ;
    168116
    169117/*
    170  *  使用していない優å
    171 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†ãƒ–ロックのリスト
     118 *  使用していない優先度データキュー管理ブロックのリスト
    172119 */
    173120extern QUEUE    free_pdqcb;
    174121
    175122/*
    176  *  優å
    177 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼IDの最大値(kernel_cfg.c)
     123 *  優先度データキューIDの最大値(kernel_cfg.c)
    178124 */
    179125extern const ID tmax_pdqid;
     
    181127
    182128/*
    183  *  優å
    184 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼åˆæœŸåŒ–ブロックのエリア(kernel_cfg.c)
     129 *  優先度データキュー初期化ブロックのエリア(kernel_cfg.c)
    185130 */
    186131extern const PDQINIB    pdqinib_table[];
     
    188133
    189134/*
    190  *  優å
    191 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†ãƒ–ロックのエリア(kernel_cfg.c)
     135 *  優先度データキュー管理ブロックのエリア(kernel_cfg.c)
    192136 */
    193137extern PDQCB    pdqcb_table[];
    194138
    195139/*
    196  *  優å
    197 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†ãƒ–ロックから優å
    198 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼IDを取り出すた
    199  *  めのマクロ
     140 *  優先度データキュー管理ブロックから優先度データキューIDを取り出すた
     141 *  めのマクロ
    200142 */
    201143#define PDQID(p_pdqcb)  ((ID)(((p_pdqcb) - pdqcb_table) + TMIN_PDQID))
    202144
    203145/*
    204  *  優å
    205 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼æ©Ÿèƒ½ã®åˆæœŸåŒ–
     146 *  優先度データキュー機能の初期化
    206147 */
    207148extern void     initialize_pridataq(void);
    208149
    209150/*
    210  *  優å
    211 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†é ˜åŸŸã¸ã®ãƒ‡ãƒ¼ã‚¿ã®æ ¼ç´
     151 *  優先度データキュー管理領域へのデータの格納
    212152 */
    213153extern void     enqueue_pridata(PDQCB *p_pdqcb, intptr_t data, PRI datapri);
    214154
    215155/*
    216  *  優å
    217 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ç®¡ç†é ˜åŸŸã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿ã®å–出し
     156 *  優先度データキュー管理領域からのデータの取出し
    218157 */
    219158extern void     dequeue_pridata(PDQCB *p_pdqcb, intptr_t *p_data, PRI *p_datapri);
    220159
    221160/*
    222  *  優å
    223 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã¸ã®ãƒ‡ãƒ¼ã‚¿é€ä¿¡
     161 *  優先度データキューへのデータ送信
    224162 */
    225163extern bool_t   send_pridata(PDQCB *p_pdqcb, intptr_t data, PRI datapri);
    226164
    227165/*
    228  *  優å
    229 ˆåº¦ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‹ã‚‰ã®ãƒ‡ãƒ¼ã‚¿å—ä¿¡
     166 *  優先度データキューからのデータ受信
    230167 */
    231168extern bool_t   receive_pridata(PDQCB *p_pdqcb, intptr_t *p_data,
Note: See TracChangeset for help on using the changeset viewer.