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/dataqueue.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  *              データキュー機能
     44 *              データキュー機能
    6045 */
    6146
     
    6853
    6954/*
    70  *  データ管理ブロック
     55 *  データ管理ブロック
    7156 */
    7257typedef struct data_management_block {
    73         intptr_t        data;                   /* データ本体 */
     58        intptr_t        data;                   /* データ本体 */
    7459} DTQMB;
    7560
    7661/*
    77  *  データキュー初期化ブロック
     62 *  データキュー初期化ブロック
    7863 *
    79  *  この構造体は,同期・通信オブジェクトの初期化ブロックのå
    80 ±é€šéƒ¨åˆ†
    81  *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
    82  *  最初のフィールドがå
    83 ±é€šã«ãªã£ã¦ã„る.
     64 *  この構造体は,同期・通信オブジェクトの初期化ブロックの共通部分
     65 *  (WOBJINIB)を拡張(オブジェクト指向言語の継承に相当)したもので,
     66 *  最初のフィールドが共通になっている.
    8467 */
    8568typedef struct dataqueue_initialization_block {
    86         ATR                     dtqatr;                 /* データキュー属性 */
    87         uint_t          dtqcnt;                 /* データキューの容量 */
    88         DTQMB           *p_dtqmb;               /* データキュー管理領域のå
    89 ˆé ­ç•ªåœ° */
     69        ATR                     dtqatr;                 /* データキュー属性 */
     70        uint_t          dtqcnt;                 /* データキューの容量 */
     71        DTQMB           *p_dtqmb;               /* データキュー管理領域の先頭番地 */
    9072} DTQINIB;
    9173
    9274/*
    93  *  データキュー管理ブロック
     75 *  データキュー管理ブロック
    9476 *
    95  *  この構造体は,同期・通信オブジェクトの管理ブロックのå
    96 ±é€šéƒ¨åˆ†ï¼ˆWOBJCB)
    97  *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
    98  *  フィールドがå
    99 ±é€šã«ãªã£ã¦ã„る.
     77 *  この構造体は,同期・通信オブジェクトの管理ブロックの共通部分(WOBJCB)
     78 *  を拡張(オブジェクト指向言語の継承に相当)したもので,最初の2つの
     79 *  フィールドが共通になっている.
    10080 */
    10181typedef struct dataqueue_control_block {
    102         QUEUE           swait_queue;    /* データキュー送信å¾
    103 ã¡ã‚­ãƒ¥ãƒ¼ */
    104         const DTQINIB *p_dtqinib;       /* 初期化ブロックへのポインタ */
    105         QUEUE           rwait_queue;    /* データキュー受信å¾
    106 ã¡ã‚­ãƒ¥ãƒ¼ */
    107         uint_t          count;                  /* データキュー中のデータの数 */
    108         uint_t          head;                   /* 最初のデータの格納場所 */
    109         uint_t          tail;                   /* 最後のデータの格納場所の次 */
     82        QUEUE           swait_queue;    /* データキュー送信待ちキュー */
     83        const DTQINIB *p_dtqinib;       /* 初期化ブロックへのポインタ */
     84        QUEUE           rwait_queue;    /* データキュー受信待ちキュー */
     85        uint_t          count;                  /* データキュー中のデータの数 */
     86        uint_t          head;                   /* 最初のデータの格納場所 */
     87        uint_t          tail;                   /* 最後のデータの格納場所の次 */
    11088} DTQCB;
    11189
    11290/*
    113  *  データキューå¾
    114 ã¡æƒ
    115 å ±ãƒ–ロックの定義
     91 *  データキュー待ち情報ブロックの定義
    11692 *
    117  *  この構造体は,同期・通信オブジェクトのå¾
    118 ã¡æƒ
    119 å ±ãƒ–ロックのå
    120 ±é€šéƒ¨åˆ†
    121  *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
    122  *  最初の2つのフィールドがå
    123 ±é€šã«ãªã£ã¦ã„る.
     93 *  この構造体は,同期・通信オブジェクトの待ち情報ブロックの共通部分
     94 *  (WINFO_WOBJ)を拡張(オブジェクト指向言語の継承に相当)したもので,
     95 *  最初の2つのフィールドが共通になっている.
    12496 */
    12597typedef struct dataqueue_send_waiting_information {
    126         WINFO           winfo;                  /* 標準のå¾
    127 ã¡æƒ
    128 å ±ãƒ–ロック */
    129         DTQCB           *p_dtqcb;               /* å¾
    130 ã£ã¦ã„るデータキューの管理ブロック */
    131         intptr_t        data;                   /* 送信データ */
     98        WINFO           winfo;                  /* 標準の待ち情報ブロック */
     99        DTQCB           *p_dtqcb;               /* 待っているデータキューの管理ブロック */
     100        intptr_t        data;                   /* 送信データ */
    132101} WINFO_SDTQ;
    133102
    134103typedef struct dataqueue_receive_waiting_information {
    135         WINFO           winfo;                  /* 標準のå¾
    136 ã¡æƒ
    137 å ±ãƒ–ロック */
    138         DTQCB           *p_dtqcb;               /* å¾
    139 ã£ã¦ã„るデータキューの管理ブロック */
    140         intptr_t        data;                   /* 受信データ */
     104        WINFO           winfo;                  /* 標準の待ち情報ブロック */
     105        DTQCB           *p_dtqcb;               /* 待っているデータキューの管理ブロック */
     106        intptr_t        data;                   /* 受信データ */
    141107} WINFO_RDTQ;
    142108
    143109/*
    144  *  使用していないデータキュー管理ブロックのリスト
     110 *  使用していないデータキュー管理ブロックのリスト
    145111 */
    146112extern QUEUE    free_dtqcb;
    147113
    148114/*
    149  *  データキューIDの最大値(kernel_cfg.c)
     115 *  データキューIDの最大値(kernel_cfg.c)
    150116 */
    151117extern const ID tmax_dtqid;
     
    153119
    154120/*
    155  *  データキュー初期化ブロックのエリア(kernel_cfg.c)
     121 *  データキュー初期化ブロックのエリア(kernel_cfg.c)
    156122 */
    157123extern const DTQINIB    dtqinib_table[];
     
    159125
    160126/*
    161  *  データキュー管理ブロックのエリア(kernel_cfg.c)
     127 *  データキュー管理ブロックのエリア(kernel_cfg.c)
    162128 */
    163129extern DTQCB    dtqcb_table[];
    164130
    165131/*
    166  *  データキュー管理ブロックからデータキューIDを取り出すためのマクロ
     132 *  データキュー管理ブロックからデータキューIDを取り出すためのマクロ
    167133 */
    168134#define DTQID(p_dtqcb)  ((ID)(((p_dtqcb) - dtqcb_table) + TMIN_DTQID))
    169135
    170136/*
    171  *  データキュー機能の初期化
     137 *  データキュー機能の初期化
    172138 */
    173139extern void     initialize_dataqueue(void);
    174140
    175141/*
    176  *  データキュー管理領域へのデータの格納
     142 *  データキュー管理領域へのデータの格納
    177143 */
    178144extern void     enqueue_data(DTQCB *p_dtqcb, intptr_t data);
    179145
    180146/*
    181  *  データキュー管理領域へのデータの強制格納
     147 *  データキュー管理領域へのデータの強制格納
    182148 */
    183149extern void     force_enqueue_data(DTQCB *p_dtqcb, intptr_t data);
    184150
    185151/*
    186  *  データキュー管理領域からのデータの取出し
     152 *  データキュー管理領域からのデータの取出し
    187153 */
    188154extern void     dequeue_data(DTQCB *p_dtqcb, intptr_t *p_data);
    189155
    190156/*
    191  *  データキューへのデータ送信
     157 *  データキューへのデータ送信
    192158 */
    193159extern bool_t   send_data(DTQCB *p_dtqcb, intptr_t data);
    194160
    195161/*
    196  *  データキューへのデータ強制送信
     162 *  データキューへのデータ強制送信
    197163 */
    198164extern void     force_send_data(DTQCB *p_dtqcb, intptr_t data);
    199165
    200166/*
    201  *  データキューからのデータ受信
     167 *  データキューからのデータ受信
    202168 */
    203169extern bool_t   receive_data(DTQCB *p_dtqcb, intptr_t *p_data);
Note: See TracChangeset for help on using the changeset viewer.