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/ntshell/echonet/echonet_fbs.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r388 r389  
    44 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    55 *
    6  *  上記著作権è€
    7 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    8  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    9  *  変・再é
    10 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    11  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    12  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    13  *      スコード中に含まれていること.
    14  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    15  *      用できる形で再é
    16 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    17 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    18  *      è€
    19 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    20  *      の無保証規定を掲載すること.
    21  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    22  *      用できない形で再é
    23 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    24  *      と.
    25  *    (a) 再é
    26 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    27 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    28  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    29  *    (b) 再é
    30 å¸ƒã®å½¢æ
    31 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    32  *        報告すること.
    33  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    34  *      害からも,上記著作権è€
    35 ãŠã‚ˆã³TOPPERSプロジェクトをå
    36 è²¬ã™ã‚‹ã“と.
    37  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    38  *      由に基づく請求からも,上記著作権è€
    39 ãŠã‚ˆã³TOPPERSプロジェクトを
    40  *      å
    41 è²¬ã™ã‚‹ã“と.
    42  *
    43  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    44 ãŠ
    45  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    46  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    47  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    48  *  の責任を負わない.
     6 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     7 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     8 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     9 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     10 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     11 *      スコード中に含まれていること.
     12 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     13 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     14 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     15 *      の無保証規定を掲載すること.
     16 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     17 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     18 *      と.
     19 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     20 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     21 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     22 *        報告すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27 *      免責すること.
     28 *
     29 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33 *  の責任を負わない.
    4934 *
    5035 *  @(#) $Id$
     
    5237
    5338/*
    54  * 固定長バッファ可変長ストリーム
     39 * 固定長バッファ可変長ストリーム
    5540 */
    5641
     
    6651
    6752#ifndef ECHONET_MEMPOOL_GET_TMO
    68 #define ECHONET_MEMPOOL_GET_TMO (0)                     /* メモリプール取得時のタイムアウト指定 */
     53#define ECHONET_MEMPOOL_GET_TMO (0)                     /* メモリプール取得時のタイムアウト指定 */
    6954#endif /* ECHONET_MEMPOOL_GET_TMO */
    7055
    7156#ifndef NUM_ECHONET_MEMPOOL_BLOCK
    72 #define NUM_ECHONET_MEMPOOL_BLOCK (60)          /* 電文用メモリブロックの数 */
     57#define NUM_ECHONET_MEMPOOL_BLOCK (60)          /* 電文用メモリブロックの数 */
    7358#endif /* NUM_ECHONET_MEMPOOL_BLOCK */
    7459
    7560#ifndef ECHONET_MEMPOOL_BLOCK_SIZE
    76 #define ECHONET_MEMPOOL_BLOCK_SIZE (256)        /* 電文用メモリブロックのサイズ */
     61#define ECHONET_MEMPOOL_BLOCK_SIZE (256)        /* 電文用メモリブロックのサイズ */
    7762#endif /* ECHONET_MEMPOOL_BLOCK_SIZE */
    7863
    79 typedef unsigned int ECN_FBS_SIZE_T;    /* size_t相当  */
    80 typedef int ECN_FBS_SSIZE_T;                    /* ssize_t相当 */
    81 
    82 /* T_EDATA管理領域サイズ */
     64typedef unsigned int ECN_FBS_SIZE_T;    /* size_t相当  */
     65typedef int ECN_FBS_SSIZE_T;                    /* ssize_t相当 */
     66
     67/* T_EDATA管理領域サイズ */
    8368#ifndef T_MSG
    8469typedef intptr_t T_MSG;
     
    8671#define DEF_ECN_EDT_HDR_LEN (sizeof(T_MSG))
    8772
    88 /* 管理領域サイズ(64byte - sizeof(T_MSG)) */
     73/* 管理領域サイズ(64byte - sizeof(T_MSG)) */
    8974/* #define DEF_ECN_FBS_LIB_HDR_LEN ((ECHONET_MEMPOOL_BLOCK_SIZE + sizeof(int) - 1)>> 2) // */
    9075#define DEF_ECN_FBS_LIB_HDR_LEN (64 - DEF_ECN_EDT_HDR_LEN)
    9176
    92 /* 管理領域を含むブロックに保持するデータサイズ */
     77/* 管理領域を含むブロックに保持するデータサイズ */
    9378#define DEF_ECN_FBS_FST_DAT_LEN (64)
    9479
    95 /* リンクポインタé
    96 åˆ—のサイズ(byte) */
     80/* リンクポインタ配列のサイズ(byte) */
    9781#define DEF_ECN_FBS_LNK_LEN (ECHONET_MEMPOOL_BLOCK_SIZE - DEF_ECN_EDT_HDR_LEN - DEF_ECN_FBS_LIB_HDR_LEN - DEF_ECN_FBS_FST_DAT_LEN)
    9882
    99 /* 固定長バッファ最大サイズ */
     83/* 固定長バッファ最大サイズ */
    10084#define DEF_ECN_FBS_BUF_MAXLEN ((DEF_ECN_FBS_LNK_LEN / sizeof(void *)) * ECHONET_MEMPOOL_BLOCK_SIZE + DEF_ECN_FBS_FST_DAT_LEN)
    10185
    102 /* 子要素バッファのサイズ */
     86/* 子要素バッファのサイズ */
    10387#define DEF_ECN_FBS_SUB_BUF_LEN ECHONET_MEMPOOL_BLOCK_SIZE
    10488
    105 /* 電文の種別(å†
    106 å®¹ã¯ä»®) */
     89/* 電文の種別(内容は仮) */
    10790typedef enum
    10891{
    109         ECN_FBS_TYPE_BLANK              =       0,              /* 未使用ストリーム */
    110         ECN_FBS_TYPE_INTERNAL   =       1,              /* å†
    111 éƒ¨ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ */
    112         ECN_FBS_TYPE_ECHONET    =       2               /* ECHONET電文 */
     92        ECN_FBS_TYPE_BLANK              =       0,              /* 未使用ストリーム */
     93        ECN_FBS_TYPE_INTERNAL   =       1,              /* 内部メッセージ */
     94        ECN_FBS_TYPE_ECHONET    =       2               /* ECHONET電文 */
    11395} TA_ECN_MSG_TYPE;
    11496
    115 /* リンクポインタé
    116 åˆ—に列挙される、子要素バッファ */
     97/* リンクポインタ配列に列挙される、子要素バッファ */
    11798typedef struct
    11899{
     
    120101} T_ECN_SUB_BLK;
    121102
    122 /* リンクポインタé
    123 åˆ— */
     103/* リンクポインタ配列 */
    124104typedef union
    125105{
     
    128108} T_ECN_FBS_LNK;
    129109
    130 /* 管理領域(64byte - sizeof(T_MSG)) */
     110/* 管理領域(64byte - sizeof(T_MSG)) */
    131111typedef struct
    132112{
    133         uint16_t        length;                 /* メッセージ長 */
    134         uint16_t        type;                   /* メッセージタイプ */
     113        uint16_t        length;                 /* メッセージ長 */
     114        uint16_t        type;                   /* メッセージタイプ */
    135115        union{
    136                 ECN_ENOD_ID id;                 /* 送信å
    137 ƒãƒŽãƒ¼ãƒ‰ID(ECHONET電文) */
    138                 ID dtqid;                               /* 送信å
    139 ƒãƒ¡ãƒ¼ãƒ«ãƒœãƒƒã‚¯ã‚¹ID(å†
    140 éƒ¨ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ï¼‰ */
     116                ECN_ENOD_ID id;                 /* 送信元ノードID(ECHONET電文) */
     117                ID dtqid;                               /* 送信元メールボックスID(内部メッセージ) */
    141118        }sender;
    142119        union{
    143                 ECN_ENOD_ID id;                 /* 送信å
    144 ˆãƒŽãƒ¼ãƒ‰ID(ECHONET電文) */
    145                 ID dtqid;                               /* 送信å
    146 ˆãƒ¡ãƒ¼ãƒ«ãƒœãƒƒã‚¯ã‚¹ID(å†
    147 éƒ¨ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ï¼‰ */
     120                ECN_ENOD_ID id;                 /* 送信先ノードID(ECHONET電文) */
     121                ID dtqid;                               /* 送信先メールボックスID(内部メッセージ) */
    148122        }target;
    149123        union{
    150                 ECN_ENOD_ID id;                 /* 返信å
    151 ˆãƒŽãƒ¼ãƒ‰ID(ECHONET電文) */
    152                 ID dtqid;                               /* 返信å
    153 ˆãƒ¡ãƒ¼ãƒ«ãƒœãƒƒã‚¯ã‚¹ID(å†
    154 éƒ¨ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ï¼‰ */
     124                ECN_ENOD_ID id;                 /* 返信先ノードID(ECHONET電文) */
     125                ID dtqid;                               /* 返信先メールボックスID(内部メッセージ) */
    155126        }reply;
    156127
    157         int                     rd;                             /*      読み取りヘッドæƒ
    158 å ±     */
    159         int                     wr;                             /*      書き込みヘッドæƒ
    160 å ±     */
     128        int                     rd;                             /*      読み取りヘッド情報       */
     129        int                     wr;                             /*      書き込みヘッド情報       */
    161130} T_ECN_FBS_HDR;
    162131
    163 /* 管理領域を含むブロックの構造 */
     132/* 管理領域を含むブロックの構造 */
    164133typedef struct
    165134{
    166135        uint8_t _msg[DEF_ECN_EDT_HDR_LEN];      /* T_MSG */
    167         T_ECN_FBS_HDR   hdr;    /*      管理領域  64byte  - sizeof(T_MSG)   */
     136        T_ECN_FBS_HDR   hdr;    /*      管理領域  64byte  - sizeof(T_MSG)   */
    168137        uint8_t                 _gap[DEF_ECN_FBS_LIB_HDR_LEN - sizeof(T_ECN_FBS_HDR)];
    169         T_ECN_FBS_LNK   lnk;    /*      リンクポインタé
    170 åˆ—    128byte                 */
     138        T_ECN_FBS_LNK   lnk;    /*      リンクポインタ配列       128byte                 */
    171139        uint8_t                 payload[DEF_ECN_FBS_FST_DAT_LEN];
    172140} T_ECN_FST_BLK;
     
    178146} ECN_FBS_ID;
    179147
    180 /* メッセージキュー */
     148/* メッセージキュー */
    181149typedef struct ecn_fbs_queue
    182150{
    183         T_ECN_FST_BLK   *pk_head;               /* å
    184 ˆé ­ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ */
    185         T_ECN_FST_BLK   *pk_last;               /* 末尾のメッセージ */
     151        T_ECN_FST_BLK   *pk_head;               /* 先頭のメッセージ */
     152        T_ECN_FST_BLK   *pk_last;               /* 末尾のメッセージ */
    186153} T_ECN_FBS_QUEUE;
    187154
    188 /* メモリブロック取得 ok:ポインタ NG:NULL */
     155/* メモリブロック取得 ok:ポインタ NG:NULL */
    189156void *_ecn_fbs_dtq_get(ECN_FBS_SIZE_T fa_req_size);
    190157
    191 /* メモリブロック解放 ok:0 NG:非0 */
     158/* メモリブロック解放 ok:0 NG:非0 */
    192159ER _ecn_fbs_dtq_rel(void *p);
    193160
    194161/*
    195  * 領域確保
    196  *      引数
    197  *              ECN_FBS_SIZE_T  fa_req_size             è¦æ±‚バッファサイズ(byte)
     162 * 領域確保
     163 *      引数
     164 *              ECN_FBS_SIZE_T  fa_req_size             要求バッファサイズ(byte)
    198165 *                                                                              max: DEF_ECN_FBS_BUF_MAXLEN
    199  *              ECN_FBS_ID              *fp_id                  確保したFBS-IDの格納å
    200 ˆ
    201  *      戻り値
    202  *              ER                              0:ok 非0:NG
     166 *              ECN_FBS_ID              *fp_id                  確保したFBS-IDの格納先
     167 *      戻り値
     168 *              ER                              0:ok 非0:NG
    203169 */
    204170ER _ecn_fbs_cre(ECN_FBS_SIZE_T fa_req_size, ECN_FBS_ID *fp_id);
    205171
    206172/*
    207  * 領域解放
    208  *      引数
    209  *              ecn_fbs_id型   ç¢ºä¿ã—たFBS-ID
    210  *      戻り値
    211  *              ER                              0:ok, 非0:NG
     173 * 領域解放
     174 *      引数
     175 *              ecn_fbs_id型     確保したFBS-ID
     176 *      戻り値
     177 *              ER                              0:ok, 0:NG
    212178 */
    213179ER _ecn_fbs_del(ECN_FBS_ID fa_id);
    214180
    215181/*
    216  * 保持データの有無
    217  *      引数
    218  *              ecn_fbs_id型   ç¢ºä¿ã—たFBS-ID
    219  *      戻り値
    220  *              bool_t                  0:無し, 1:あり
     182 * 保持データの有無
     183 *      引数
     184 *              ecn_fbs_id型     確保したFBS-ID
     185 *      戻り値
     186 *              bool_t                  0:無し, 1:あり
    221187 */
    222188bool_t _ecn_fbs_exist_data(ECN_FBS_ID fa_id);
    223189
    224190/*
    225  * 保持データ長の取得
    226  *      引数
    227  *              ecn_fbs_id型   ç¢ºä¿ã—たFBS-ID
    228  *      戻り値
    229  *              ECN_FBS_SSIZE_T 保持しているデータの長さ(byte) -1:NG
     191 * 保持データ長の取得
     192 *      引数
     193 *              ecn_fbs_id型     確保したFBS-ID
     194 *      戻り値
     195 *              ECN_FBS_SSIZE_T 保持しているデータの長さ(byte) -1:NG
    230196 */
    231197ECN_FBS_SSIZE_T _ecn_fbs_get_datalen(ECN_FBS_ID fa_id);
    232198
    233199/*
    234  * 読み取りカーソルの位置取得
    235  *      引数
    236  *              ecn_fbs_id型   ç¢ºä¿ã—たFBS-ID
    237  *      戻り値
    238  *              ECN_FBS_SIZE_T  å
    239 ˆé ­ã‹ã‚‰ã®çµ¶å¯¾ä½ç½® -1:NG
     200 * 読み取りカーソルの位置取得
     201 *      引数
     202 *              ecn_fbs_id型     確保したFBS-ID
     203 *      戻り値
     204 *              ECN_FBS_SIZE_T  先頭からの絶対位置 -1:NG
    240205 */
    241206ECN_FBS_SSIZE_T _ecn_fbs_get_rpos(ECN_FBS_ID fa_id);
    242207
    243208/*
    244  * 読み取りカーソルの位置設定
    245  *      引数
    246  *              ecn_fbs_id型   ç¢ºä¿ã—たFBS-ID
    247  *              ECN_FBS_SIZE_T  fa_pos  設定する位置(å
    248 ˆé ­ã‹ã‚‰ã®çµ¶å¯¾ä½ç½®)
    249  *      戻り値
    250  *              ER                              0:ok, 非0:NG
     209 * 読み取りカーソルの位置設定
     210 *      引数
     211 *              ecn_fbs_id型     確保したFBS-ID
     212 *              ECN_FBS_SIZE_T  fa_pos  設定する位置(先頭からの絶対位置)
     213 *      戻り値
     214 *              ER                              0:ok, 非0:NG
    251215 */
    252216ER _ecn_fbs_set_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_pos);
    253217
    254218/*
    255  * 読み取りカーソルの位置移動
    256  *      引数
    257  *              ecn_fbs_id型   ç¢ºä¿ã—たFBS-ID
    258  *              ECN_FBS_SIZE_T  fa_seek 移動量(現状、前進のみ)
    259  *      戻り値
    260  *              ER                              0:ok, 非0:NG
     219 * 読み取りカーソルの位置移動
     220 *      引数
     221 *              ecn_fbs_id型     確保したFBS-ID
     222 *              ECN_FBS_SIZE_T  fa_seek 移動量(現状、前進のみ)
     223 *      戻り値
     224 *              ER                              0:ok, 0:NG
    261225 */
    262226ER _ecn_fbs_seek_rpos(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek);
    263227
    264228/*
    265  * 任意指定位置の1byte読み取り
     229 * 任意指定位置の1byte読み取り
    266230 */
    267231int _ecn_fbs_peek(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek);
    268232
    269233/*
    270  * 任意指定位置の1byte書き込み
     234 * 任意指定位置の1byte書き込み
    271235 */
    272236ER _ecn_fbs_poke(ECN_FBS_ID fa_id, ECN_FBS_SSIZE_T fa_seek, int fa_val);
    273237
    274238/*
    275  * データ追加
    276  *      引数
    277  *              ecn_fbs_id型   ç¢ºä¿ã—たFBS-ID
    278  *              const void *    fa_dat  追加するデータ
    279  *              ECN_FBS_SSIZE_T fa_len  追加する長さ(byte)
    280  *      戻り値
    281  *              ER                              0:ok, 非0:NG
     239 * データ追加
     240 *      引数
     241 *              ecn_fbs_id型     確保したFBS-ID
     242 *              const void *    fa_dat  追加するデータ
     243 *              ECN_FBS_SSIZE_T fa_len  追加する長さ(byte)
     244 *      戻り値
     245 *              ER                              0:ok, 0:NG
    282246 */
    283247ER _ecn_fbs_add_data(ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len);
    284248
    285249/*
    286  * データ追加(領域を自動的に拡張する)
    287  *      引数
    288  *              ecn_fbs_id型   ç¢ºä¿ã—たFBS-ID
    289  *              const void *    fa_dat  追加するデータ
    290  *              ECN_FBS_SSIZE_T fa_len  追加する長さ(byte)
    291  *      戻り値
    292  *              ER                              0:ok, 非0:NG
     250 * データ追加(領域を自動的に拡張する)
     251 *      引数
     252 *              ecn_fbs_id型     確保したFBS-ID
     253 *              const void *    fa_dat  追加するデータ
     254 *              ECN_FBS_SSIZE_T fa_len  追加する長さ(byte)
     255 *      戻り値
     256 *              ER                              0:ok, 0:NG
    293257 */
    294258ER _ecn_fbs_add_data_ex(ECN_FBS_ID fa_id, const void *fa_dat, ECN_FBS_SSIZE_T fa_len);
    295259
    296260/*
    297  * データ取得
    298  *      引数
    299  *              ecn_fbs_id型   ç¢ºä¿ã—たFBS-ID
    300  *              void *                  fa_buf          取得するバッファ
    301  *              ECN_FBS_SSIZE_T fa_maxlen       å–得する長さ(byte)
    302  *              ECN_FBS_SSIZE_T *p_len          取得した長さ(byte)
    303  *      戻り値
    304  *              ER                              0:ok, 非0:NG
     261 * データ取得
     262 *      引数
     263 *              ecn_fbs_id型     確保したFBS-ID
     264 *              void *                  fa_buf          取得するバッファ
     265 *              ECN_FBS_SSIZE_T fa_maxlen       取得する長さ(byte)
     266 *              ECN_FBS_SSIZE_T *p_len          取得した長さ(byte)
     267 *      戻り値
     268 *              ER                              0:ok, 0:NG
    305269 */
    306270ER _ecn_fbs_get_data(ECN_FBS_ID fa_id, void *fa_buf, ECN_FBS_SSIZE_T fa_maxlen,
Note: See TracChangeset for help on using the changeset viewer.