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/tinet/netinet/tcp_var.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r388 r389  
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
    7  *  上記著作権è€
    8 ã¯ï¼Œä»¥ä¸‹ã® (1)~(4) の条件か,Free Software Foundation
    9  *  によってå
    10 ¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
    11  *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
    12  *  を改変したものを含む.以下同じ)を使用・複製・改変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
    14  *  利用と呼ぶ)することを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®æ¡ä»¶ã‚’満たすこと.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    33  *      害からも,上記著作権è€
    34 ãŠã‚ˆã³TOPPERSプロジェクトをå
    35 è²¬ã™ã‚‹ã“と.
     7 *  上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
     8 *  によって公表されている GNU General Public License の Version 2 に記
     9 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     10 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     11 *  利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次の条件を満たすこと.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3625 *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    8472
    8573/*
    86  *  TCP ヘッダ・ペイロードアクセスマクロ
     74 *  TCP ヘッダ・ペイロードアクセスマクロ
    8775 */
    8876
     
    10492
    10593/*
    106  *  TINET 1.1 との互換性のための定義
     94 *  TINET 1.1 との互換性のための定義
    10795 */
    10896
     
    117105
    118106/*
    119  *  TINET 1.3 との互換性のための定義
     107 *  TINET 1.3 との互換性のための定義
    120108 */
    121109
     
    127115
    128116/*
    129  *  コールバック関数の定義
     117 *  コールバック関数の定義
    130118 */
    131119
     
    133121
    134122/*
    135  * TCP で使用する変数の型の定義
     123 * TCP で使用する変数の型の定義
    136124 */
    137125
     
    142130
    143131/*
    144  *  TCP タイマ変数
    145  */
    146 
    147 #define NUM_TCP_TIMERS          4       /* TCP のタイマ数  */
    148 
    149 /*
    150  *  TCP 受付口
    151  */
    152 
    153 /* IPv6 用 TCP 受付口 */
     132 *  TCP タイマ変数
     133 */
     134
     135#define NUM_TCP_TIMERS          4       /* TCP のタイマ数    */
     136
     137/*
     138 *  TCP 受付口
     139 */
     140
     141/* IPv6 用 TCP 受付口 */
    154142
    155143typedef struct t_tcp6_rep {
    156144
    157145        /*
    158          * ITRON TCP/IP API、TCP 受付口と同じメンバ
     146         * ITRON TCP/IP API、TCP 受付口と同じメンバ
    159147         */
    160         ATR             repatr;         /* 受付口属性              */
    161         T_IPV6EP        myaddr;         /* 自分のアドレス        */
     148        ATR             repatr;         /* 受付口属性                */
     149        T_IPV6EP        myaddr;         /* 自分のアドレス      */
    162150
    163151#ifdef TCP_CFG_EXTENTIONS
    164         uint16_t        flags;          /* 受付口フラグ           */
    165         ID              semid_lock;     /* 受付口ロック           */
     152        uint16_t        flags;          /* 受付口フラグ               */
     153        ID              semid_lock;     /* 受付口ロック               */
    166154#endif  /* of #ifdef TCP_CFG_EXTENTIONS */
    167155
    168156        } T_TCP6_REP;
    169157
    170 /* IPv4 用 TCP 受付口 */
     158/* IPv4 用 TCP 受付口 */
    171159
    172160typedef struct t_tcp4_rep {
    173161
    174162        /*
    175          * ITRON TCP/IP API、TCP 受付口と同じメンバ
     163         * ITRON TCP/IP API、TCP 受付口と同じメンバ
    176164         */
    177         ATR             repatr;         /* 受付口属性              */
    178         T_IPV4EP        myaddr;         /* 自分のアドレス        */
     165        ATR             repatr;         /* 受付口属性                */
     166        T_IPV4EP        myaddr;         /* 自分のアドレス      */
    179167
    180168#ifdef TCP_CFG_EXTENTIONS
    181         uint16_t        flags;          /* 受付口フラグ           */
    182         ID              semid_lock;     /* 受付口ロック           */
     169        uint16_t        flags;          /* 受付口フラグ               */
     170        ID              semid_lock;     /* 受付口ロック               */
    183171#endif  /* of #ifdef TCP_CFG_EXTENTIONS */
    184172
     
    202190
    203191/*
    204  *  受付口フラグ
    205  */
    206 
    207 #define TCP_REP_FLG_DYNAMIC     UINT_C(0x0400)  /* 動的生成・削除可能受付口。      */
    208 #define TCP_REP_FLG_VALID       UINT_C(0x0800)  /* 生成済みで有効な受付口。 */
    209 
    210 /*
    211  *  TCP 通信端点
     192 *  受付口フラグ
     193 */
     194
     195#define TCP_REP_FLG_DYNAMIC     UINT_C(0x0400)  /* 動的生成・削除可能受付口。        */
     196#define TCP_REP_FLG_VALID       UINT_C(0x0800)  /* 生成済みで有効な受付口。 */
     197
     198/*
     199 *  TCP 通信端点
    212200 */
    213201
     
    223211
    224212        /*
    225          * ITRON TCP/IP API、TCP 通信端点と同じメンバ
     213         * ITRON TCP/IP API、TCP 通信端点と同じメンバ
    226214         */
    227         ATR             cepatr;         /* 通信端点属性                   */
    228         void            *sbuf;          /* 送信用ウィンドバッファ    */
    229         int_t           sbufsz;         /* 送信用ウィンドバッファサイズ   */
    230         void            *rbuf;          /* 受信用ウィンドバッファ    */
    231         int_t           rbufsz;         /* 受信用ウィンドバッファサイズ   */
    232         t_tcp_callback  callback;       /* コールバック関数             */
     215        ATR             cepatr;         /* 通信端点属性                       */
     216        void            *sbuf;          /* 送信用ウィンドバッファ  */
     217        int_t           sbufsz;         /* 送信用ウィンドバッファサイズ       */
     218        void            *rbuf;          /* 受信用ウィンドバッファ  */
     219        int_t           rbufsz;         /* 受信用ウィンドバッファサイズ       */
     220        t_tcp_callback  callback;       /* コールバック関数             */
    233221
    234222        /*
    235          * TINET 独自のメンバ
     223         * TINET 独自のメンバ
    236224         */
    237         uint32_t        flags;          /* 通信端点フラグ                */
    238         ID              semid_lock;     /* 通信端点ロック                */
    239         ID              est_flgid;      /* コネクション状æ
    240 ‹ã‚¤ãƒ™ãƒ³ãƒˆãƒ•ãƒ©ã‚°  */
    241         ID              snd_flgid;      /* 送信イベントフラグ          */
    242         ID              rcv_flgid;      /* 受信イベントフラグ          */
    243         ID              snd_tskid;      /* 送信タスク識別子             */
    244         ID              rcv_tskid;      /* 受信タスク識別子             */
    245         uint8_t         *sbuf_rptr;     /* 送信用読み出しポインタ    */
    246         uint8_t         *sbuf_wptr;     /* 送信用書き込みポインタ    */
    247         uint8_t         *rbuf_rptr;     /* 受信用読み出しポインタ    */
    248         uint8_t         *rbuf_wptr;     /* 受信用書き込みポインタ    */
    249         T_TCP_SEQ       snd_ssthresh;   /* 輻輳ウィンドサイズ(snd_cwnd)        */
    250                                         /* のしきい値                      */
    251         T_TCP_TIME      rxtcur;         /* 現在の再送タイムアウト    */
    252         T_TCP_TIME      srtt;           /* 平滑化された RTT               */
    253         T_TCP_TIME      rttvar;         /* 平滑化された分散             */
    254         T_TCP_WND       snd_cwnd;       /* 輻輳ウィンドサイズ          */
     225        uint32_t        flags;          /* 通信端点フラグ              */
     226        ID              semid_lock;     /* 通信端点ロック              */
     227        ID              est_flgid;      /* コネクション状態イベントフラグ      */
     228        ID              snd_flgid;      /* 送信イベントフラグ            */
     229        ID              rcv_flgid;      /* 受信イベントフラグ            */
     230        ID              snd_tskid;      /* 送信タスク識別子             */
     231        ID              rcv_tskid;      /* 受信タスク識別子             */
     232        uint8_t         *sbuf_rptr;     /* 送信用読み出しポインタ  */
     233        uint8_t         *sbuf_wptr;     /* 送信用書き込みポインタ  */
     234        uint8_t         *rbuf_rptr;     /* 受信用読み出しポインタ  */
     235        uint8_t         *rbuf_wptr;     /* 受信用書き込みポインタ  */
     236        T_TCP_SEQ       snd_ssthresh;   /* 輻輳ウィンドサイズ(snd_cwnd)  */
     237                                        /* のしきい値                        */
     238        T_TCP_TIME      rxtcur;         /* 現在の再送タイムアウト  */
     239        T_TCP_TIME      srtt;           /* 平滑化された RTT           */
     240        T_TCP_TIME      rttvar;         /* 平滑化された分散             */
     241        T_TCP_WND       snd_cwnd;       /* 輻輳ウィンドサイズ            */
    255242
    256243        /*
    257          *  相手の最大受信セグメントサイズ       
     244         *  相手の最大受信セグメントサイズ     
    258245         *
    259          *    オリジナルでは、一般のセグメントの最大サイズ (t_maxseg) と、
    260          *    オプション付きのセグメントの最大サイズ (t_maxopd) が別に
    261          *    なっている。これは、現在のインターネットでは、オプション付きの
    262          *    セグメントのほうが多いからと説明されているためである。
    263          *    本実è£
    264 ã§ã¯ã€æœ€å¤§ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚µã‚¤ã‚ºã‚ªãƒ—ション以外のオプションは
    265          *    実è£
    266 ã—ないので、t_maxseg の使用する。
     246         *    オリジナルでは、一般のセグメントの最大サイズ (t_maxseg) と、
     247         *    オプション付きのセグメントの最大サイズ (t_maxopd) が別に
     248         *    なっている。これは、現在のインターネットでは、オプション付きの
     249         *    セグメントのほうが多いからと説明されているためである。
     250         *    本実装では、最大セグメントサイズオプション以外のオプションは
     251         *    実装しないので、t_maxseg の使用する。
    267252         */
    268253        T_TCP_SEG       maxseg;
    269254
    270         int16_t         snd_tfn;        /* 送信動作中の API 機能コード       */
    271         int16_t         rcv_tfn;        /* 受信動作中の API 機能コード       */
     255        int16_t         snd_tfn;        /* 送信動作中の API 機能コード     */
     256        int16_t         rcv_tfn;        /* 受信動作中の API 機能コード     */
    272257
    273258#ifdef TCP_CFG_NON_BLOCKING
    274259
    275         T_IPEP          *p_dstaddr;     /* 相手のアドレスへのポインタ      */
    276         T_IPEP          *p_myaddr;      /* 自分のアドレスへのポインタ      */
     260        T_IPEP          *p_dstaddr;     /* 相手のアドレスへのポインタ        */
     261        T_IPEP          *p_myaddr;      /* 自分のアドレスへのポインタ        */
    277262
    278263#if defined(_IP6_CFG) && defined(_IP4_CFG)
    279         T_IPV4EP        *p_dstaddr4;    /* 相手のアドレスへのポインタ      */
    280         T_IPV4EP        *p_myaddr4;     /* 自分のアドレスへのポインタ      */
     264        T_IPV4EP        *p_dstaddr4;    /* 相手のアドレスへのポインタ        */
     265        T_IPV4EP        *p_myaddr4;     /* 自分のアドレスへのポインタ        */
    281266#endif
    282267       
    283         int16_t         snd_nblk_tfn;   /* 送信動作中の API 機能コード       */
    284         int16_t         rcv_nblk_tfn;   /* 受信動作中の API 機能コード       */
    285         void            *snd_data;      /* 送信データ領域のå
    286 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹        */
    287         int_t           snd_len;        /* 送信データ領域の長さ               */
    288         void            *rcv_data;      /* 受信データ領域のå
    289 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹        */
    290         int_t           rcv_len;        /* 受信データ領域の長さ               */
    291         void            **snd_p_buf;    /* 送信バッファへのポインタ */
    292         void            **rcv_p_buf;    /* 受信バッファへのポインタ */
     268        int16_t         snd_nblk_tfn;   /* 送信動作中の API 機能コード     */
     269        int16_t         rcv_nblk_tfn;   /* 受信動作中の API 機能コード     */
     270        void            *snd_data;      /* 送信データ領域の先頭アドレス       */
     271        int_t           snd_len;        /* 送信データ領域の長さ           */
     272        void            *rcv_data;      /* 受信データ領域の先頭アドレス       */
     273        int_t           rcv_len;        /* 受信データ領域の長さ           */
     274        void            **snd_p_buf;    /* 送信バッファへのポインタ */
     275        void            **rcv_p_buf;    /* 受信バッファへのポインタ */
    293276
    294277#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    295278
    296279#ifdef TCP_CFG_SWBUF_CSAVE
    297         T_NET_BUF       *swbufq;        /* 送信ウィンドバッファキュー      */
     280        T_NET_BUF       *swbufq;        /* 送信ウィンドバッファキュー        */
    298281#endif
    299282
    300283        /*
    301          *  これ以降のメンバーは tcp_init_cep() 関数でゼロクリアーされる。
     284         *  これ以降のメンバーは tcp_init_cep() 関数でゼロクリアーされる。
    302285         */
    303286
    304         T_TCP_TIME      timer[NUM_TCP_TIMERS];  /* TCP のタイマ             */
    305         T_IPEP          dstaddr;        /* 相手のアドレス                */
    306         T_IPEP          myaddr;         /* 自分のアドレス                */
    307         T_NET_BUF       *reassq;        /* 受信再構成キュー             */
     287        T_TCP_TIME      timer[NUM_TCP_TIMERS];  /* TCP のタイマ             */
     288        T_IPEP          dstaddr;        /* 相手のアドレス              */
     289        T_IPEP          myaddr;         /* 自分のアドレス              */
     290        T_NET_BUF       *reassq;        /* 受信再構成キュー             */
    308291
    309292#if defined(_IP6_CFG)
     
    311294#if defined(_IP4_CFG)
    312295
    313         T_TCP4_REP      *rep4;          /* IPv4 用受付口            */
     296        T_TCP4_REP      *rep4;          /* IPv4 用受付口            */
    314297
    315298#endif  /* of #if defined(_IP4_CFG) */
    316299
    317         T_TCP6_REP      *rep;           /* IPv6 用受付口            */
     300        T_TCP6_REP      *rep;           /* IPv6 用受付口            */
    318301
    319302#else   /* of #if defined(_IP6_CFG) */
     
    321304#if defined(_IP4_CFG)
    322305
    323         T_TCP4_REP      *rep;           /* IPv4 用受付口            */
     306        T_TCP4_REP      *rep;           /* IPv4 用受付口            */
    324307
    325308#endif  /* of #if defined(_IP4_CFG) */
     
    329312
    330313#ifdef TCP_CFG_RWBUF_CSAVE
    331         T_NET_BUF       *rwbufq;        /* 受信ウィンドバッファキュー      */
     314        T_NET_BUF       *rwbufq;        /* 受信ウィンドバッファキュー        */
    332315#endif
    333316
    334317#ifdef TCP_CFG_EXTENTIONS
    335         T_TCP_HDR       *urg_tcph;      /* 緊急データå
    336 ¥ã‚Šã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã® TCP ヘッダ */
    337         T_TCP_SEQ       snd_up;         /* 送信した緊急ポインタ               */
    338         T_TCP_SEQ       rcv_up;         /* 受信した緊急ポインタ               */
     318        T_TCP_HDR       *urg_tcph;      /* 緊急データ入りのセグメントの TCP ヘッダ       */
     319        T_TCP_SEQ       snd_up;         /* 送信した緊急ポインタ           */
     320        T_TCP_SEQ       rcv_up;         /* 受信した緊急ポインタ           */
    339321#endif  /* of #ifdef TCP_CFG_EXTENTIONS */
    340322
    341         T_TCP_SEQ       snd_una;        /* 未確認の最小送信 SEQ つまり       */
    342                                         /* 確認された最大送信 SEQ      */
    343         T_TCP_SEQ       snd_max;        /* 送信した最大 SEQ               */
    344         T_TCP_SEQ       snd_nxt;        /* 次に送信する SEQ               */
    345         T_TCP_SEQ       snd_old_nxt;    /* å
    346 ƒã® snd_nxt                    */
    347         T_TCP_SEQ       snd_wl1;        /* 前回ウィンドを更新した SEQ        */
    348         T_TCP_SEQ       snd_wl2;        /* 前回ウィンドを更新した ACK        */
    349         T_TCP_SEQ       iss;            /* 自分の SEQ の初期値           */
    350         T_TCP_SEQ       irs;            /* 相手の SEQ の初期値           */
    351         T_TCP_SEQ       rcv_nxt;        /* 受信を期å¾
    352 ã—ている最小の SEQ       */
    353         T_TCP_SEQ       rcv_adv;        /* 受信を期å¾
    354 ã—ている最大の SEQ       */
    355         T_TCP_SEQ       rcv_wnd;        /* 受信可能なウィンドサイズ */
    356         T_TCP_SEQ       rtseq;          /* 時間計測を始めた SEQ         */
    357         T_TCP_SEQ       last_ack_sent;  /* 最後に送信した ACK            */
    358         T_TCP_TIME      idle;           /* アイドル時間                   */
    359         ER              error;          /* 非同期に発生したエラー    */
    360         ER              net_error;      /* ネットワークのエラー状æ
    361 ‹       */
    362         T_TCP_WND       snd_wnd;        /* 相手の受信可能ウィンドサイズ   */
    363         T_TCP_WND       max_sndwnd;     /* 今までの最大送信ウィンドサイズ        */
    364         T_TCP_TIME      rtt;            /* 往復時間                         */
    365         uint16_t        swbuf_count;    /* 送信ウィンドバッファの使用中サイズ  */
    366         uint16_t        rwbuf_count;    /* 受信ウィンドバッファの使用中サイズ  */
    367         uint16_t        rcv_buf_len;    /* tcp_rcv_buf の割当て長  */
    368         uint16_t        get_buf_len;    /* tcp_rcv_buf の割当て長  */
    369         uint8_t         rxtshift;       /* 再送信回数の log(2)            */
    370         uint8_t         fsm_state;      /* FSM 状æ
    371 ‹                       */
    372         uint8_t         dupacks;        /* 再送 ACK 数                       */
     323        T_TCP_SEQ       snd_una;        /* 未確認の最小送信 SEQ つまり     */
     324                                        /* 確認された最大送信 SEQ        */
     325        T_TCP_SEQ       snd_max;        /* 送信した最大 SEQ           */
     326        T_TCP_SEQ       snd_nxt;        /* 次に送信する SEQ           */
     327        T_TCP_SEQ       snd_old_nxt;    /* 元の snd_nxt                   */
     328        T_TCP_SEQ       snd_wl1;        /* 前回ウィンドを更新した SEQ      */
     329        T_TCP_SEQ       snd_wl2;        /* 前回ウィンドを更新した ACK      */
     330        T_TCP_SEQ       iss;            /* 自分の SEQ の初期値         */
     331        T_TCP_SEQ       irs;            /* 相手の SEQ の初期値         */
     332        T_TCP_SEQ       rcv_nxt;        /* 受信を期待している最小の SEQ     */
     333        T_TCP_SEQ       rcv_adv;        /* 受信を期待している最大の SEQ     */
     334        T_TCP_SEQ       rcv_wnd;        /* 受信可能なウィンドサイズ */
     335        T_TCP_SEQ       rtseq;          /* 時間計測を始めた SEQ         */
     336        T_TCP_SEQ       last_ack_sent;  /* 最後に送信した ACK          */
     337        T_TCP_TIME      idle;           /* アイドル時間                       */
     338        ER              error;          /* 非同期に発生したエラー  */
     339        ER              net_error;      /* ネットワークのエラー状態 */
     340        T_TCP_WND       snd_wnd;        /* 相手の受信可能ウィンドサイズ       */
     341        T_TCP_WND       max_sndwnd;     /* 今までの最大送信ウィンドサイズ      */
     342        T_TCP_TIME      rtt;            /* 往復時間                         */
     343        uint16_t        swbuf_count;    /* 送信ウィンドバッファの使用中サイズ    */
     344        uint16_t        rwbuf_count;    /* 受信ウィンドバッファの使用中サイズ    */
     345        uint16_t        rcv_buf_len;    /* tcp_rcv_buf の割当て長    */
     346        uint16_t        get_buf_len;    /* tcp_rcv_buf の割当て長    */
     347        uint8_t         rxtshift;       /* 再送信回数の log(2)                */
     348        uint8_t         fsm_state;      /* FSM 状態                       */
     349        uint8_t         dupacks;        /* 再送 ACK 数                     */
    373350
    374351#if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES)
    375         uint16_t        rwbufq_entries; /* 受信ウィンドバッファキューのエントリ数    */
     352        uint16_t        rwbufq_entries; /* 受信ウィンドバッファキューのエントリ数  */
    376353#endif
    377354
     
    382359
    383360/*
    384  * Time Wait 用 TCP 通信端点
     361 * Time Wait 用 TCP 通信端点
    385362 */
    386363
    387364typedef struct t_tcp_twcep {
    388         int_t           rbufsz;         /* 受信用ウィンドバッファサイズ   */
    389         T_TCP_TIME      timer_2msl;     /* 2MSL タイマ                       */
    390         T_IPEP          dstaddr;        /* 相手のアドレス                */
    391         T_IPEP          myaddr;         /* 自分のアドレス                */
    392         T_TCP_SEQ       snd_una;        /* 未確認の最小送信 SEQ つまり       */
    393                                         /* 確認された最大送信 SEQ      */
    394         T_TCP_SEQ       rcv_nxt;        /* 受信を期å¾
    395 ã—ている最小の SEQ       */
    396         uint16_t        rwbuf_count;    /* 受信ウィンドバッファの使用中サイズ  */
    397         uint8_t         fsm_state;      /* FSM 状æ
    398 ‹                       */
    399         uint8_t flags;                  /* 通信端点フラグ                */
     365        int_t           rbufsz;         /* 受信用ウィンドバッファサイズ       */
     366        T_TCP_TIME      timer_2msl;     /* 2MSL タイマ                     */
     367        T_IPEP          dstaddr;        /* 相手のアドレス              */
     368        T_IPEP          myaddr;         /* 自分のアドレス              */
     369        T_TCP_SEQ       snd_una;        /* 未確認の最小送信 SEQ つまり     */
     370                                        /* 確認された最大送信 SEQ        */
     371        T_TCP_SEQ       rcv_nxt;        /* 受信を期待している最小の SEQ     */
     372        uint16_t        rwbuf_count;    /* 受信ウィンドバッファの使用中サイズ    */
     373        uint8_t         fsm_state;      /* FSM 状態                       */
     374        uint8_t flags;                  /* 通信端点フラグ              */
    400375
    401376        } T_TCP_TWCEP;
     
    404379
    405380/*
    406  *  TCP 通信端点の状æ
    407 ‹ãƒ•ãƒ©ã‚°
    408  */
    409 
    410 #define TCP_CEP_FLG_IPV4                ULONG_C(0x00000001)     /* IPv4 用。                  */
    411 #define TCP_CEP_FLG_ACK_NOW             ULONG_C(0x00000100)     /* 直ちに相手に ACK を送る。  */
    412 #define TCP_CEP_FLG_DEL_ACK             ULONG_C(0x00000200)     /* ACK をé
    413 å»¶ã™ã‚‹ã€‚            */
    414 #define TCP_CEP_FLG_SENT_FIN            ULONG_C(0x00000400)     /* FIN を送ってある。            */
    415 #define TCP_CEP_FLG_NEED_SYN            ULONG_C(0x00000800)     /* SYN を送信する。               */
    416 #define TCP_CEP_FLG_NEED_FIN            ULONG_C(0x00001000)     /* FIN を送信する。               */
    417 #define TCP_CEP_FLG_FORCE               ULONG_C(0x00002000)     /* 強制送信。                      */
    418 #define TCP_CEP_FLG_NO_PUSH             ULONG_C(0x00004000)     /* push しない。            */
    419 #define TCP_CEP_FLG_NO_DELAY            ULONG_C(0x00008000)     /* é
    420 å»¶ã—ない。                 */
    421 #define TCP_CEP_FLG_FORCE_CLEAR         ULONG_C(0x00010000)     /* 強制送信した後フラグをクリアーする。*/
    422 #define TCP_CEP_FLG_POST_OUTPUT         ULONG_C(0x00020000)     /* 送信を開始する。             */
    423 #define TCP_CEP_FLG_RESERVE_OUTPUT      ULONG_C(0x00040000)     /* 送信を予約する。             */
    424 #define TCP_CEP_FLG_DYNAMIC             ULONG_C(0x00100000)     /* 動的生成・削除可能通信端点。   */
    425 #define TCP_CEP_FLG_VALID               ULONG_C(0x00200000)     /* 生成済みで有効な通信端点。      */
    426 #define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT  ULONG_C(0x00400000)     /* 送信した後コネクションを閉じる。*/
    427 #define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT ULONG_C(0x00800000)     /* 送信した後、snd_nxt をå
    428 ƒã«æˆ»ã™ã€‚*/
    429 
    430 /* 送受信ウィンドバッファの省コピー機能 */
    431 #define TCP_CEP_FLG_WBCS_NBUF_REQ       ULONG_C(0x80000000)     /* ネットワークバッファ割当て要求*/
    432 #define TCP_CEP_FLG_WBCS_MASK           ULONG_C(0x70000000)     /* マスク                    */
    433 #define TCP_CEP_FLG_WBCS_FREE           ULONG_C(0x00000000)     /* 送信ウィンドバッファ未使用      */
    434 #define TCP_CEP_FLG_WBCS_WOPEN_PEND     ULONG_C(0x10000000)     /* 相手の受信ウィンドの開きå¾
    435 ã¡     */
    436 #define TCP_CEP_FLG_WBCS_NBUF_PEND      ULONG_C(0x20000000)     /* ネットワークバッファ予約å¾
    437 ã¡     */
    438 #define TCP_CEP_FLG_WBCS_NBUF_RSVD      ULONG_C(0x30000000)     /* ネットワークバッファ予約済み   */
    439 #define TCP_CEP_FLG_WBCS_NBUF_READY     ULONG_C(0x40000000)     /* ネットワークバッファ割当て済み*/
    440 #define TCP_CEP_FLG_WBCS_SEND_READY     ULONG_C(0x50000000)     /* 送信可能                 */
    441 #define TCP_CEP_FLG_WBCS_SENT           ULONG_C(0x60000000)     /* 送信済みで、ACKå¾
    442 ã¡             */
    443 #define TCP_CEP_FLG_WBCS_ACKED          ULONG_C(0x70000000)     /* 送信済みで、ACK完了          */
    444 
    445 /* 初期化から除外するフラグの定義 */
     381 *  TCP 通信端点の状態フラグ
     382 */
     383
     384#define TCP_CEP_FLG_IPV4                ULONG_C(0x00000001)     /* IPv4 用。                      */
     385#define TCP_CEP_FLG_ACK_NOW             ULONG_C(0x00000100)     /* 直ちに相手に ACK を送る。      */
     386#define TCP_CEP_FLG_DEL_ACK             ULONG_C(0x00000200)     /* ACK を遅延する。           */
     387#define TCP_CEP_FLG_SENT_FIN            ULONG_C(0x00000400)     /* FIN を送ってある。          */
     388#define TCP_CEP_FLG_NEED_SYN            ULONG_C(0x00000800)     /* SYN を送信する。           */
     389#define TCP_CEP_FLG_NEED_FIN            ULONG_C(0x00001000)     /* FIN を送信する。           */
     390#define TCP_CEP_FLG_FORCE               ULONG_C(0x00002000)     /* 強制送信。                        */
     391#define TCP_CEP_FLG_NO_PUSH             ULONG_C(0x00004000)     /* push しない。            */
     392#define TCP_CEP_FLG_NO_DELAY            ULONG_C(0x00008000)     /* 遅延しない。                       */
     393#define TCP_CEP_FLG_FORCE_CLEAR         ULONG_C(0x00010000)     /* 強制送信した後フラグをクリアーする。*/
     394#define TCP_CEP_FLG_POST_OUTPUT         ULONG_C(0x00020000)     /* 送信を開始する。             */
     395#define TCP_CEP_FLG_RESERVE_OUTPUT      ULONG_C(0x00040000)     /* 送信を予約する。             */
     396#define TCP_CEP_FLG_DYNAMIC             ULONG_C(0x00100000)     /* 動的生成・削除可能通信端点。       */
     397#define TCP_CEP_FLG_VALID               ULONG_C(0x00200000)     /* 生成済みで有効な通信端点。        */
     398#define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT  ULONG_C(0x00400000)     /* 送信した後コネクションを閉じる。*/
     399#define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT ULONG_C(0x00800000)     /* 送信した後、snd_nxt を元に戻す。*/
     400
     401/* 送受信ウィンドバッファの省コピー機能 */
     402#define TCP_CEP_FLG_WBCS_NBUF_REQ       ULONG_C(0x80000000)     /* ネットワークバッファ割当て要求*/
     403#define TCP_CEP_FLG_WBCS_MASK           ULONG_C(0x70000000)     /* マスク                  */
     404#define TCP_CEP_FLG_WBCS_FREE           ULONG_C(0x00000000)     /* 送信ウィンドバッファ未使用        */
     405#define TCP_CEP_FLG_WBCS_WOPEN_PEND     ULONG_C(0x10000000)     /* 相手の受信ウィンドの開き待ち       */
     406#define TCP_CEP_FLG_WBCS_NBUF_PEND      ULONG_C(0x20000000)     /* ネットワークバッファ予約待ち       */
     407#define TCP_CEP_FLG_WBCS_NBUF_RSVD      ULONG_C(0x30000000)     /* ネットワークバッファ予約済み       */
     408#define TCP_CEP_FLG_WBCS_NBUF_READY     ULONG_C(0x40000000)     /* ネットワークバッファ割当て済み*/
     409#define TCP_CEP_FLG_WBCS_SEND_READY     ULONG_C(0x50000000)     /* 送信可能                 */
     410#define TCP_CEP_FLG_WBCS_SENT           ULONG_C(0x60000000)     /* 送信済みで、ACK待ち          */
     411#define TCP_CEP_FLG_WBCS_ACKED          ULONG_C(0x70000000)     /* 送信済みで、ACK完了          */
     412
     413/* 初期化から除外するフラグの定義 */
    446414#define TCP_CEP_FLG_NOT_CLEAR           (TCP_CEP_FLG_WBCS_NBUF_REQ|TCP_CEP_FLG_WBCS_MASK|\
    447415                                         TCP_CEP_FLG_DYNAMIC|TCP_CEP_FLG_VALID|TCP_CEP_FLG_IPV4)
    448416
    449417/*
    450  *  通信端点イベントフラグ
    451  */
    452 
    453 #define TCP_CEP_EVT_ESTABLISHED         ULONG_C(0x00000001)     /* コネクション確立             */
    454 #define TCP_CEP_EVT_CLOSED              ULONG_C(0x00000002)     /* 未使用状æ
    455 ‹                       */
    456 #define TCP_CEP_EVT_SWBUF_READY         ULONG_C(0x00000004)     /* 送信ウィンドバッファ空き */
    457 #define TCP_CEP_EVT_RWBUF_READY         ULONG_C(0x00000008)     /* 送信ウィンドバッファデータあり*/
    458 #define TCP_CEP_EVT_ALL                 ULONG_C(0xffffffff)     /* å
    459 ¨ã‚¤ãƒ™ãƒ³ãƒˆ                   */
    460 
    461 /*
    462  *  追加 API 機能・事象コード
    463  */
    464 
    465 /* TCP 関係 */
     418 *  通信端点イベントフラグ
     419 */
     420
     421#define TCP_CEP_EVT_ESTABLISHED         ULONG_C(0x00000001)     /* コネクション確立             */
     422#define TCP_CEP_EVT_CLOSED              ULONG_C(0x00000002)     /* 未使用状態                        */
     423#define TCP_CEP_EVT_SWBUF_READY         ULONG_C(0x00000004)     /* 送信ウィンドバッファ空き */
     424#define TCP_CEP_EVT_RWBUF_READY         ULONG_C(0x00000008)     /* 送信ウィンドバッファデータあり*/
     425#define TCP_CEP_EVT_ALL                 ULONG_C(0xffffffff)     /* 全イベント                        */
     426
     427/*
     428 *  追加 API 機能・事象コード
     429 */
     430
     431/* TCP 関係 */
    466432
    467433#define TFN_TCP_UNDEF           (0)
    468434
    469435/*
    470  *  srtt:   å¹³æ»‘化された RTT
    471  *  rttvar: 平滑化された分散
    472  *  rtt:    測定された往復時間
     436 *  srtt:   平滑化された RTT
     437 *  rttvar: 平滑化された分散
     438 *  rtt:    測定された往復時間
    473439 *
    474  *  平滑化された RTT (srtt) と平滑化された分散 (rttvar) を
    475  *  整数型で計算するために、左シフトしてスケールする。
    476  *  srtt は 2 進小数点以下 3 ビット、
    477  *  rttvar は 2 進小数点以下 2 ビットを保持する。
     440 *  平滑化された RTT (srtt) と平滑化された分散 (rttvar) を
     441 *  整数型で計算するために、左シフトしてスケールする。
     442 *  srtt は 2 進小数点以下 3 ビット、
     443 *  rttvar は 2 進小数点以下 2 ビットを保持する。
    478444 */
    479445
    480446#define TCP_DELTA_SHIFT         2
    481                         /* 差分 = rtt/8 + srtt*7/8 の計算のためのシフト値  */
     447                        /* 差分 = rtt/8 + srtt*7/8 の計算のためのシフト値    */
    482448#define TCP_SRTT_SHIFT          (TCP_DELTA_SHIFT + 3)
    483                                         /* srtt のシフト値、3(+2)ビット        */
     449                                        /* srtt のシフト値、3(+2)ビット  */
    484450#define TCP_RTTVAR_SHIFT        (TCP_DELTA_SHIFT + 2)
    485                                         /* rttvar のシフト値、2(+2)ビット      */
     451                                        /* rttvar のシフト値、2(+2)ビット        */
    486452#define TCP_SRTT_SCALE          (1<<TCP_SRTT_SHIFT)
    487453#define TCP_RTTVAR_SCALE        (1<<TCP_RTTVAR_SHIFT)
    488454
    489455/*
    490  *  高速再転送を開始する再送 ACK 数のしきい値
     456 *  高速再転送を開始する再送 ACK 数のしきい値
    491457 */
    492458
     
    494460
    495461/*
    496  *  受信再構成キューでの TCP ヘッダ
     462 *  受信再構成キューでの TCP ヘッダ
    497463 */
    498464
    499465typedef struct t_tcp_q_hdr {
    500         uint16_t        sport;          /* 送信å
    501 ƒãƒãƒ¼ãƒˆç•ªå·                        */
    502         uint16_t        dport;          /* 宛å
    503 ˆãƒãƒ¼ãƒˆç•ªå·                        */
    504 
    505         uint32_t        seq;            /* SEQ 番号                           */
    506 
    507         T_NET_BUF       *next;          /* 次のセグメント、å
    508 ƒã¯ ACK 番号(ack)    */
    509 
    510         uint8_t         doff;           /* データオフセット(上位4ビット)   */
    511         uint8_t         flags;          /* フラグ(下位6ビット)                  */
    512         uint16_t        soff;           /* SDU オフセット、å
    513 ƒã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚µã‚¤ã‚º(win)  */
    514 
    515         uint16_t        slen;           /* SDU 長、å
    516 ƒã¯ãƒã‚§ãƒƒã‚¯ã‚µãƒ (sum)     */
    517         uint16_t        urp;            /* 緊急ポインタ(SDU 長補正)                */
     466        uint16_t        sport;          /* 送信元ポート番号                     */
     467        uint16_t        dport;          /* 宛先ポート番号                      */
     468
     469        uint32_t        seq;            /* SEQ 番号                               */
     470
     471        T_NET_BUF       *next;          /* 次のセグメント、元は ACK 番号(ack)       */
     472
     473        uint8_t         doff;           /* データオフセット(上位4ビット)     */
     474        uint8_t         flags;          /* フラグ(下位6ビット)                  */
     475        uint16_t        soff;           /* SDU オフセット、元はウィンドサイズ(win)     */
     476
     477        uint16_t        slen;           /* SDU 長、元はチェックサム(sum)  */
     478        uint16_t        urp;            /* 緊急ポインタ(SDU 長補正)              */
    518479        } __attribute__((packed, aligned(2)))T_TCP_Q_HDR;
    519480
     
    521482
    522483/*
    523  *  オブジェクト ID の最小値の定義
    524  */
    525 
    526 #define TMIN_TCP_REPID          1                       /* TCP      受付口 ID の最小値                   */
    527 #define TMIN_TCP6_REPID         1                       /* TCP/IPv6 受付口 ID の最小値                   */
    528 #define TMIN_TCP4_REPID         (TNUM_TCP6_REPID+1)     /* TCP/IPv4 受付口 ID の最小値                   */
    529 
    530 #define TMIN_TCP_CEPID          1                       /* TCP      通信端点 ID の最小値                        */
    531 #define TMIN_TCP6_CEPID         1                       /* TCP/IPv6 通信端点 ID の最小値                        */
    532 #define TMIN_TCP4_CEPID         (TNUM_TCP6_CEPID+1)     /* TCP/IPv4 通信端点 ID の最小値                        */
    533 
    534 #define TMIN_TCP_TWCEPID        1                       /* Time Wait 用 TCP 通信端点 ID の最小値       */
    535 
    536 /*
    537  *  制御セグメント(データなし)サイズのネットワークバッファ
     484 *  オブジェクト ID の最小値の定義
     485 */
     486
     487#define TMIN_TCP_REPID          1                       /* TCP      受付口 ID の最小値                 */
     488#define TMIN_TCP6_REPID         1                       /* TCP/IPv6 受付口 ID の最小値                 */
     489#define TMIN_TCP4_REPID         (TNUM_TCP6_REPID+1)     /* TCP/IPv4 受付口 ID の最小値                 */
     490
     491#define TMIN_TCP_CEPID          1                       /* TCP      通信端点 ID の最小値                        */
     492#define TMIN_TCP6_CEPID         1                       /* TCP/IPv6 通信端点 ID の最小値                        */
     493#define TMIN_TCP4_CEPID         (TNUM_TCP6_CEPID+1)     /* TCP/IPv4 通信端点 ID の最小値                        */
     494
     495#define TMIN_TCP_TWCEPID        1                       /* Time Wait 用 TCP 通信端点 ID の最小値 */
     496
     497/*
     498 *  制御セグメント(データなし)サイズのネットワークバッファ
    538499 */
    539500
     
    541502
    542503typedef struct t_net_buf_cseg {
    543         uint16_t        len;    /* データの長さ           */
    544         uint8_t         idix;   /* mpfid のインデックス  */
    545         uint8_t         flags;  /* フラグ            */
     504        uint16_t        len;    /* データの長さ               */
     505        uint8_t         idix;   /* mpfid のインデックス        */
     506        uint8_t         flags;  /* フラグ          */
    546507#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    547508        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     
    551512#endif
    552513        uint8_t         buf[IF_HDR_SIZE + IP_HDR_SIZE + TCP_HDR_SIZE];
    553                                 /* バッファ本体           */
     514                                /* バッファ本体               */
    554515        } T_NET_BUF_CSEG;
    555516
     
    557518
    558519/*
    559  *  SNMP の 管理æƒ
    560 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     520 *  SNMP の 管理情報ベース (MIB)
    561521 */
    562522
     
    575535
    576536/*
    577  *  関数シミュレーションマクロ
    578  */
    579 
    580 /* TCP 受付口 */
     537 *  関数シミュレーションマクロ
     538 */
     539
     540/* TCP 受付口 */
    581541
    582542#define VALID_TCP6_REPID(id)    (TMIN_TCP6_REPID<=(id)&&(id)<=tmax_tcp6_repid)
     
    604564#endif  /* of #ifdef TCP_CFG_EXTENTIONS */
    605565
    606 /* TCP 通信端点 */
     566/* TCP 通信端点 */
    607567
    608568#define VALID_TCP_CEPID(id)     (TMIN_TCP_CEPID<=(id)&&(id)<=tmax_tcp_cepid)
     
    634594
    635595/*
    636  *  å
    637 ¨åŸŸå¤‰æ•°
     596 *  全域変数
    638597 */
    639598
     
    642601extern T_TCP_STATS tcp_stats;
    643602
    644 /* TCP 受付口 */
     603/* TCP 受付口 */
    645604
    646605extern T_TCP6_REP tcp6_rep[];
     
    663622#endif
    664623
    665 /* TCP 通信端点 */
     624/* TCP 通信端点 */
    666625
    667626extern T_TCP_CEP tcp_cep[];
     
    679638
    680639/*
    681  *  Inline 関数
     640 *  Inline 関数
    682641 */
    683642
     
    685644
    686645/*
    687  *  TCP 通信端点の受信ウィンドバッファの省コピー機能が
    688  *  無効の場合は何もしないためのダミーの関数
    689  */
    690 
    691 /*
    692  *  tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。
     646 *  TCP 通信端点の受信ウィンドバッファの省コピー機能が
     647 *  無効の場合は何もしないためのダミーの関数
     648 */
     649
     650/*
     651 *  tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。
    693652 */
    694653
     
    703662
    704663/*
    705  *  TCP 通信端点の送信ウィンドバッファの省コピー機能のみが
    706  *  有効の場合は何もしないためのダミーの関数
    707  */
    708 
    709 /*
    710  *  tcp_read_swbuf_cs -- 送信ウィンドバッファからデータを読み出す。
     664 *  TCP 通信端点の送信ウィンドバッファの省コピー機能のみが
     665 *  有効の場合は何もしないためのダミーの関数
     666 */
     667
     668/*
     669 *  tcp_read_swbuf_cs -- 送信ウィンドバッファからデータを読み出す。
    711670 */
    712671
     
    721680
    722681/*
    723  *  TCP 通信端点の送信ウィンドバッファの省コピー機能が
    724  *  無効の場合は何もしないためのダミーの関数
    725  */
    726 
    727 /*
    728  *  tcp_free_swbufq -- 送信ウィンドバッファキューを解放する。
     682 *  TCP 通信端点の送信ウィンドバッファの省コピー機能が
     683 *  無効の場合は何もしないためのダミーの関数
     684 */
     685
     686/*
     687 *  tcp_free_swbufq -- 送信ウィンドバッファキューを解放する。
    729688 */
    730689
     
    735694
    736695/*
    737  *  tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。
     696 *  tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。
    738697 */
    739698
     
    744703
    745704/*
    746  *  tcp_push_res_nbuf -- ネットワークバッファを予約する。
     705 *  tcp_push_res_nbuf -- ネットワークバッファを予約する。
    747706 */
    748707
     
    754713
    755714/*
    756  *  tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す。
     715 *  tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す。
    757716 */
    758717
     
    766725
    767726/*
    768  *  TCP 通信端点の受信ウィンドバッファの省コピー機能の切り替えマクロ
     727 *  TCP 通信端点の受信ウィンドバッファの省コピー機能の切り替えマクロ
    769728 */
    770729
     
    800759
    801760/*
    802  *  TCP 通信端点の送信ウィンドバッファの省コピー機能の切り替えマクロ
     761 *  TCP 通信端点の送信ウィンドバッファの省コピー機能の切り替えマクロ
    803762 */
    804763
     
    851810
    852811/*
    853  *  関数
     812 *  関数
    854813 */
    855814
     
    886845
    887846/*
    888  *  TCP 通信端点の受信ウィンドバッファ用関数
    889  */
    890 
    891 /*
    892  *  TCP 通信端点の受信ウィンドバッファの省コピー機能が有効の場合、
    893  *  関数の選択に使用する。
     847 *  TCP 通信端点の受信ウィンドバッファ用関数
     848 */
     849
     850/*
     851 *  TCP 通信端点の受信ウィンドバッファの省コピー機能が有効の場合、
     852 *  関数の選択に使用する。
    894853 */
    895854
     
    901860
    902861/*
    903  *  TCP 通信端点の受信ウィンドバッファの省コピー機能用関数
     862 *  TCP 通信端点の受信ウィンドバッファの省コピー機能用関数
    904863 */
    905864
     
    911870
    912871/*
    913  *  TCP 通信端点の受信ウィンドバッファの【非】省コピー機能用関数
     872 *  TCP 通信端点の受信ウィンドバッファの【非】省コピー機能用関数
    914873 */
    915874
     
    921880
    922881/*
    923  *  TCP 通信端点の送信ウィンドバッファ用関数
    924  */
    925 
    926 /*
    927  *  TCP 通信端点の送信ウィンドバッファの省コピー機能が有効の場合、
    928  *  関数の選択に使用する。
     882 *  TCP 通信端点の送信ウィンドバッファ用関数
     883 */
     884
     885/*
     886 *  TCP 通信端点の送信ウィンドバッファの省コピー機能が有効の場合、
     887 *  関数の選択に使用する。
    929888 */
    930889
     
    943902
    944903/*
    945  *  TCP 通信端点の送信ウィンドバッファの省コピー機能用関数
     904 *  TCP 通信端点の送信ウィンドバッファの省コピー機能用関数
    946905 */
    947906
     
    957916
    958917/*
    959  *  TCP 通信端点の送信ウィンドバッファの【非】省コピー機能用関数
     918 *  TCP 通信端点の送信ウィンドバッファの【非】省コピー機能用関数
    960919 */
    961920
     
    973932
    974933/*
    975  *  TCP ヘッダのトレース出力機能用関数
     934 *  TCP ヘッダのトレース出力機能用関数
    976935 */
    977936extern void tcp_output_trace (T_NET_BUF *output, T_TCP_CEP *cep);
    978937extern void tcp_input_trace  (T_NET_BUF *input,  T_TCP_CEP *cep);
    979938
    980 /* TCP 出力タスク */
     939/* TCP 出力タスク */
    981940
    982941extern void     tcp_output_task(intptr_t exinf);
Note: See TracChangeset for help on using the changeset viewer.