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/tinet/netinet/tcp_subr.c

    • Property svn:mime-type changed from text/x-csrc to text/x-csrc; charset=UTF-8
    r313 r315  
    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$
     
    130118
    131119/*
    132  *  å
    133 ¨åŸŸå¤‰æ•°
    134  */
    135 
    136 /*
    137  *  TCP の SEQ の初期値、プログラムが起動して、最初に TCP セグメントを
    138  *  送受信するときに、get_tim() により初期化する。
     120 *  全域変数
     121 */
     122
     123/*
     124 *  TCP の SEQ の初期値、プログラムが起動して、最初に TCP セグメントを
     125 *  送受信するときに、get_tim() により初期化する。
    139126 */
    140127T_TCP_SEQ tcp_iss = 0;
     
    143130
    144131/*
    145  *  SNMP の 管理æƒ
    146 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     132 *  SNMP の 管理情報ベース (MIB)
    147133 */
    148134
     
    152138
    153139/*
    154  *  局所変数
    155  */
    156 
    157 static uint16_t tcp_port_auto = TCP_PORT_FIRST_AUTO;    /* 自動割り当て番号     */
     140 *  局所変数
     141 */
     142
     143static uint16_t tcp_port_auto = TCP_PORT_FIRST_AUTO;    /* 自動割り当て番号     */
    158144
    159145#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
    160146
    161147/*
    162  *  タスクからの Time Wait 状æ
    163 ‹ CEP 分離機能
    164  */
    165 
    166 /*
    167  *  変数
     148 *  タスクからの Time Wait 状態 CEP 分離機能
     149 */
     150
     151/*
     152 *  変数
    168153 */
    169154
     
    171156
    172157/*
    173  *  tcp_move_twcep -- å¿
    174 è¦ãªæƒ
    175 å ±ã‚’ Time Wait 用 TCP 通信端点に移して、
    176  *                    標準の TCP 通信端点を開放する。
     158 *  tcp_move_twcep -- 必要な情報を Time Wait 用 TCP 通信端点に移して、
     159 *                    標準の TCP 通信端点を開放する。
    177160 */
    178161
     
    182165        T_TCP_TWCEP*    twcep;
    183166
    184         /* 空きの Time Wait 用 TCP 通信端点を探索する。*/
     167        /* 空きの Time Wait 用 TCP 通信端点を探索する。*/
    185168        for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; ) {
    186169                if (twcep->fsm_state != TCP_FSM_TIME_WAIT) {
    187170
    188171                        /*
    189                          *  通信端点をロックし、
    190                          *  å¿
    191 è¦ãªæƒ
    192 å ±ã‚’ Time Wait 用 TCP 通信端点に移す。
     172                         *  通信端点をロックし、
     173                         *  必要な情報を Time Wait 用 TCP 通信端点に移す。
    193174                         */
    194175                        syscall(wai_sem(cep->semid_lock));
     
    203184                        twcep->timer_2msl       = cep->timer[TCP_TIM_2MSL];
    204185
    205                         /* 通信端点をロックを解除する。*/
     186                        /* 通信端点をロックを解除する。*/
    206187                        syscall(sig_sem(cep->semid_lock));
    207188
    208                         /* 標準 TCP 通信端点を開放する。*/
     189                        /* 標準 TCP 通信端点を開放する。*/
    209190                        tcp_close(cep);
    210191
     
    215196
    216197/*
    217  *  tcp_find_twcep -- ポート番号から Time Wait 用 TCP 通信端点を得る。
     198 *  tcp_find_twcep -- ポート番号から Time Wait 用 TCP 通信端点を得る。
    218199 */
    219200
     
    227208       
    228209        /*
    229          *  状æ
    230 ‹ãŒ TIME WAIT で、
    231          *  IP アドレスとポート番号が一致する通信端点を探索する。
     210         *  状態が TIME WAIT で、
     211         *  IP アドレスとポート番号が一致する通信端点を探索する。
    232212         */
    233213        for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; ) {
     
    246226
    247227/*
    248  *  tcp_find_cep -- ポート番号から TCP 通信端点を得る。
     228 *  tcp_find_cep -- ポート番号から TCP 通信端点を得る。
    249229 */
    250230
     
    258238       
    259239        /*
    260          *  状æ
    261 ‹ãŒ SYN 送信済み以後は、
    262          *  IP アドレスとポート番号が一致する TCP 通信端点を探索する。
     240         *  状態が SYN 送信済み以後は、
     241         *  IP アドレスとポート番号が一致する TCP 通信端点を探索する。
    263242         */
    264243        for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) {
     
    271250                }
    272251
    273         /* IPv4 で受動オープン中の TCP 通信端点をå
    274 ˆã«æŽ¢ç´¢ã™ã‚‹ã€‚*/   
     252        /* IPv4 で受動オープン中の TCP 通信端点を先に探索する。*/   
    275253        for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) {
    276254                if ((cep->flags & TCP_CEP_FLG_IPV4)                   &&
     
    282260                }
    283261
    284         /* 受動オープン中の TCP 通信端点を探索する。*/       
     262        /* 受動オープン中の TCP 通信端点を探索する。*/   
    285263        for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) {
    286264
     
    328306
    329307/*
    330  *  tcp_is_addr_accept -- 受信可能な IP アドレスとポート番号であることを確認する。
     308 *  tcp_is_addr_accept -- 受信可能な IP アドレスとポート番号であることを確認する。
    331309 */
    332310
     
    341319
    342320        /*
    343          *  次のときは破棄する。
    344          *    ・ポート番号が同一で、送受信 IP アドレス が同一。
    345          *      ただし、送信å
    346 ƒ IP アドレスがローカルループバックなら良い。
    347          *    ・マルチキャストアドレス
     321         *  次のときは破棄する。
     322         *    ・ポート番号が同一で、送受信 IP アドレス が同一。
     323         *      ただし、送信元 IP アドレスがローカルループバックなら良い。
     324         *    ・マルチキャストアドレス
    348325         */
    349326
     
    355332
    356333        /*
    357          *  次のときは、受信可能ではない。
    358          *    ・ポート番号が同一で、送受信 IP アドレス が同一。
    359          *    ・マルチキャストアドレス
     334         *  次のときは、受信可能ではない。
     335         *    ・ポート番号が同一で、送受信 IP アドレス が同一。
     336         *    ・マルチキャストアドレス
    360337         */
    361338        if (tcph->dport == tcph->sport && IN_ARE_HDR_ADDR_EQUAL(input))
     
    371348
    372349/*
    373  *  tcp_free_reassq -- 受信再構成キューのネットワークバッファを解放する。
     350 *  tcp_free_reassq -- 受信再構成キューのネットワークバッファを解放する。
    374351 *
    375  *    注意:
    376  *      å¿
    377 è¦ã§ã‚れば、この関数を呼び出す前に、通信端点をロックし、
    378  *      戻った後、解除するå¿
    379 è¦ãŒã‚る。
     352 *    注意:
     353 *      必要であれば、この関数を呼び出す前に、通信端点をロックし、
     354 *      戻った後、解除する必要がある。
    380355 */
    381356
     
    394369
    395370/*
    396  *  tcp_alloc_auto_port -- 自動割り当てポート番号を設定する。
     371 *  tcp_alloc_auto_port -- 自動割り当てポート番号を設定する。
    397372 */
    398373
     
    481456
    482457/*
    483  *  tcp_alloc_port -- 指定されたポート番号を設定する。
     458 *  tcp_alloc_port -- 指定されたポート番号を設定する。
    484459 */
    485460
     
    501476
    502477/*
    503  *  tcp_init -- TCP モジュールの初期化
     478 *  tcp_init -- TCP モジュールの初期化
    504479 */
    505480
     
    517492
    518493/*
    519  * tcp_init_iss シーケンス番号を初期化する。
     494 * tcp_init_iss シーケンス番号を初期化する。
    520495 */
    521496
     
    531506
    532507/*
    533  *  tcp_close -- コネクションを開放する。
     508 *  tcp_close -- コネクションを開放する。
    534509 */
    535510
     
    537512tcp_close (T_TCP_CEP *cep)
    538513{
    539         /* タイマーを停止する。*/
     514        /* タイマーを停止する。*/
    540515        tcp_cancel_timers(cep);
    541516
    542517        /*
    543          *  通信端点をロックし、
    544          *  受信再構成キューのネットワークバッファを解放する。
     518         *  通信端点をロックし、
     519         *  受信再構成キューのネットワークバッファを解放する。
    545520         */
    546521        syscall(wai_sem(cep->semid_lock));
     
    548523        syscall(sig_sem(cep->semid_lock));
    549524
    550         /* 状æ
    551 ‹ã‚’未使用にする。*/
     525        /* 状態を未使用にする。*/
    552526        cep->fsm_state = TCP_FSM_CLOSED;
    553527
    554528        /*
    555          * 以下に関係しないフラグをクリアーする。
    556          * ・送受信ウィンドバッファの省コピー機能
    557          * ・動的な通信端点の生成・削除機能
    558          * ・通信端点のネットワーク層プロトコル
     529         * 以下に関係しないフラグをクリアーする。
     530         * ・送受信ウィンドバッファの省コピー機能
     531         * ・動的な通信端点の生成・削除機能
     532         * ・通信端点のネットワーク層プロトコル
    559533         */
    560534        cep->flags &= TCP_CEP_FLG_NOT_CLEAR;
     
    563537
    564538        if (cep->snd_nblk_tfn != TFN_TCP_UNDEF || cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {
    565                 /* ノンブロッキングコール */
     539                /* ノンブロッキングコール */
    566540
    567541#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
     
    576550
    577551                                case TFN_TCP_ACP_CEP:
    578                                         /* TCP 通信端点からTCP 受付口を解放する。*/
     552                                        /* TCP 通信端点からTCP 受付口を解放する。*/
    579553                                        cep->rep = NULL;
    580554
     
    588562                                case TFN_TCP_RCV_BUF:
    589563
    590                                         /* 受信ウィンドバッファの空アドレスを獲得する。*/
     564                                        /* 受信ウィンドバッファの空アドレスを獲得する。*/
    591565                                        len = TCP_GET_RWBUF_ADDR(cep, cep->rcv_p_buf);
    592566
    593                                         /* 異常切断等のエラーを設定する。*/
     567                                        /* 異常切断等のエラーを設定する。*/
    594568                                        if (cep->error == E_TMOUT)
    595569                                                len = E_CLS;
     
    602576                                case TFN_TCP_RCV_DAT:
    603577
    604                                         /* 受信ウィンドバッファからデータを取り出す。*/
     578                                        /* 受信ウィンドバッファからデータを取り出す。*/
    605579                                        len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len);
    606580
    607                                         /* 異常切断等のエラーを設定する。*/
     581                                        /* 異常切断等のエラーを設定する。*/
    608582                                        if (cep->error == E_TMOUT)
    609583                                                len = E_CLS;
     
    627601                                        }
    628602
    629                                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     603                                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    630604                                cep->rcv_tskid = TA_NULL;
    631605                                cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
     
    637611
    638612                                case TFN_TCP_CON_CEP:
    639                                         /* TCP 通信端点から TCP 受付口を解放する。*/
     613                                        /* TCP 通信端点から TCP 受付口を解放する。*/
    640614                                        cep->rep = NULL;
    641615
     
    660634                                        }
    661635
    662                                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     636                                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    663637                                cep->snd_tskid = TA_NULL;
    664638                                cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
     
    679653                                case TFN_TCP_ACP_CEP:
    680654
    681                                         /* TCP 通信端点からTCP 受付口を解放する。*/
     655                                        /* TCP 通信端点からTCP 受付口を解放する。*/
    682656                                        cep->rep = NULL;
    683657
     
    686660#endif
    687661
    688                                         /* 接続エラーを設定する。*/
     662                                        /* 接続エラーを設定する。*/
    689663                                        len      = E_CLS;
    690664                                        (*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&len);
     
    693667                                case TFN_TCP_RCV_BUF:
    694668
    695                                         /* 受信ウィンドバッファの空アドレスを獲得する。*/
     669                                        /* 受信ウィンドバッファの空アドレスを獲得する。*/
    696670                                        len = TCP_GET_RWBUF_ADDR(cep, cep->rcv_p_buf);
    697671
    698                                         /* 異常切断等のエラーを設定する。*/
     672                                        /* 異常切断等のエラーを設定する。*/
    699673                                        if (cep->error == E_TMOUT)
    700674                                                len = E_CLS;
     
    707681                                case TFN_TCP_RCV_DAT:
    708682
    709                                         /* 受信ウィンドバッファからデータを取り出す。*/
     683                                        /* 受信ウィンドバッファからデータを取り出す。*/
    710684                                        len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len);
    711685
    712                                         /* 異常切断等のエラーを設定する。*/
     686                                        /* 異常切断等のエラーを設定する。*/
    713687                                        if (cep->error == E_TMOUT)
    714688                                                len = E_CLS;
     
    732706                                        }
    733707
    734                                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     708                                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    735709                                cep->rcv_tskid = TA_NULL;
    736710                                cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
     
    744718                                case TFN_TCP_CON_CEP:
    745719
    746                                         /* TCP 通信端点からTCP 受付口を解放する。*/
     720                                        /* TCP 通信端点からTCP 受付口を解放する。*/
    747721                                        cep->rep = NULL;
    748722
     
    751725#endif
    752726
    753                                         /* 接続エラーを設定する。*/
     727                                        /* 接続エラーを設定する。*/
    754728                                        len      = E_CLS;
    755729                                        (*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&len);
     
    770744                                        }
    771745
    772                                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     746                                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    773747                                cep->snd_tskid = TA_NULL;
    774748                                cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
     
    780754
    781755                /*
    782                  *  通信端点をロックし、
    783                  *  送受信ウィンドバッファキューのネットワークバッファを解放する。
     756                 *  通信端点をロックし、
     757                 *  送受信ウィンドバッファキューのネットワークバッファを解放する。
    784758                 */
    785759                syscall(wai_sem(cep->semid_lock));
     
    788762                syscall(sig_sem(cep->semid_lock));
    789763
    790                 /* 未使用になったことを知らせる。*/
     764                /* 未使用になったことを知らせる。*/
    791765                syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
    792766                }
    793         else {  /* 非ノンブロッキングコール */
     767        else {  /* 非ノンブロッキングコール */
    794768
    795769#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    796770
    797                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     771                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    798772                cep->snd_tskid = cep->rcv_tskid = TA_NULL;
    799773                cep->snd_tfn   = cep->rcv_tfn   = TFN_TCP_UNDEF;
    800774
    801775                /*
    802                  *  通信端点をロックし、
    803                  *  送受信ウィンドバッファキューのネットワークバッファを解放する。
     776                 *  通信端点をロックし、
     777                 *  送受信ウィンドバッファキューのネットワークバッファを解放する。
    804778                 */
    805779                syscall(wai_sem(cep->semid_lock));
     
    808782                syscall(sig_sem(cep->semid_lock));
    809783
    810                 /* 未使用になったことを知らせる。*/
     784                /* 未使用になったことを知らせる。*/
    811785                syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
    812786
    813787                /*
    814                  * å
    815 ¥å‡ºåŠ›ã‚¿ã‚¹ã‚¯ã‚’起床して、
    816                  * 送受信不可になったことを知らせる。
     788                 * 入出力タスクを起床して、
     789                 * 送受信不可になったことを知らせる。
    817790                 */
    818791                syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
     
    829802
    830803/*
    831  *  tcp_drop -- TCP 接続を破棄する。
     804 *  tcp_drop -- TCP 接続を破棄する。
    832805 */
    833806
     
    847820                cep->fsm_state = TCP_FSM_CLOSED;
    848821
    849                 /* 送信と、送信後コネクションの切断を指示する。*/
     822                /* 送信と、送信後コネクションの切断を指示する。*/
    850823                cep->flags |=  TCP_CEP_FLG_POST_OUTPUT | TCP_CEP_FLG_CLOSE_AFTER_OUTPUT;
    851824                sig_sem(SEM_TCP_POST_OUTPUT);
     
    858831
    859832/*
    860  *  tcp_respond -- TCP の単一メッセージを送信する。
     833 *  tcp_respond -- TCP の単一メッセージを送信する。
    861834 */
    862835
     
    873846
    874847        /*
    875          *  output が NULL でなければ、これはå
    876 ¥åŠ›ã—たセグメントの
    877          *  net_buf で、そのまま再利用する。
     848         *  output が NULL でなければ、これは入力したセグメントの
     849         *  net_buf で、そのまま再利用する。
    878850         */
    879851        if (output != NULL) {
     
    881853
    882854                /*
    883                  * IPv4 では、IP ヘッダのオプションを削除する。
    884                  * IPv6 では、拡張ヘッダを削除する。
     855                 * IPv4 では、IP ヘッダのオプションを削除する。
     856                 * IPv6 では、拡張ヘッダを削除する。
    885857                 */
    886858                if (IP_REMOVE_OPTIONS(output) != E_OK) {
     
    893865#if defined(_IP6_CFG)
    894866
    895                 /* トラヒッククラスとフローラベルをクリアする。*/
     867                /* トラヒッククラスとフローラベルをクリアする。*/
    896868                SET_IP_CF(output, 0);
    897869
    898870#endif  /* of #if defined(_IP6_CFG) */
    899871
    900                 /* TCP SDU 長を 0 にする。*/
     872                /* TCP SDU 長を 0 にする。*/
    901873                SET_IP_SDU_SIZE(output, TCP_HDR_SIZE);
    902874
    903875                tcph = GET_TCP_HDR(output, IF_IP_TCP_HDR_OFFSET(output));
    904876
    905                 /* ポート番号を交換する。*/
     877                /* ポート番号を交換する。*/
    906878                portno = tcph->sport;
    907879                tcph->sport = tcph->dport;
    908880                tcph->dport = portno;
    909881
    910                 /* TCP ヘッダにæƒ
    911 å ±ã‚’設定する。*/
     882                /* TCP ヘッダに情報を設定する。*/
    912883                tcph->doff = TCP_MAKE_DATA_OFF(TCP_HDR_SIZE);
    913884                }
    914885       
    915         /* cep が NULL であれば、何もしないで終了する。*/
     886        /* cep が NULL であれば、何もしないで終了する。*/
    916887        else if (cep == NULL)
    917888                return;
     
    932903
    933904        /*
    934          *  チェックサムを設定する。
     905         *  チェックサムを設定する。
    935906         */
    936907        hdr_offset = IF_IP_TCP_HDR_OFFSET(output);
     
    938909                             (uint_t)GET_TCP_HDR_SIZE(output, hdr_offset));
    939910
    940         /* ネットワークバッファ長を調整する。*/
     911        /* ネットワークバッファ長を調整する。*/
    941912        output->len = (uint16_t)GET_IF_IP_TCP_HDR_SIZE(output, hdr_offset);
    942913
     
    947918#endif  /* of #ifdef TCP_CFG_TRACE */
    948919
    949         /* ネットワーク層 (IP) の出力関数を呼び出す。*/
     920        /* ネットワーク層 (IP) の出力関数を呼び出す。*/
    950921        IP_OUTPUT(output, TMO_TCP_OUTPUT);
    951922        }
    952923#if 0
    953924/*
    954  *  tcp_get_segment -- TCP セグメントを獲得し、ヘッダを設定する。
     925 *  tcp_get_segment -- TCP セグメントを獲得し、ヘッダを設定する。
    955926 *
    956  *    戻り値 エラーコード
    957  *    optlen    オプションサイズ、4 オクテット単位
    958  *    maxlen    最大セグメントサイズ(IF/IP/TCP ヘッダサイズを含まない)
    959  *    len       TCP SDU サイズ
     927 *    戻り値       エラーコード
     928 *    optlen    オプションサイズ、4 オクテット単位
     929 *    maxlen    最大セグメントサイズ(IF/IP/TCP ヘッダサイズを含まない)
     930 *    len       TCP SDU サイズ
    960931 */
    961932
     
    967938        ER              error;
    968939
    969         /* IP データグラムを獲得する。*/
     940        /* IP データグラムを獲得する。*/
    970941        if ((error = IN_GET_DATAGRAM(nbuf,
    971942                                     (uint_t)(TCP_HDR_SIZE + optlen + len),
     
    979950                }
    980951
    981         /* TCP ヘッダにæƒ
    982 å ±ã‚’設定する。*/
    983 
    984         /* TCP ヘッダにæƒ
    985 å ±ã‚’設定する。*/
     952        /* TCP ヘッダに情報を設定する。*/
     953
     954        /* TCP ヘッダに情報を設定する。*/
    986955        tcph = GET_TCP_HDR(*nbuf, IF_IP_TCP_HDR_OFFSET(*nbuf));
    987956        tcph->sport     = htons(cep->myaddr.portno);
     
    994963#endif
    995964/*
    996  *  tcpn_get_segment -- TCP セグメントを獲得し、ヘッダを設定する。
     965 *  tcpn_get_segment -- TCP セグメントを獲得し、ヘッダを設定する。
    997966 *
    998  *    戻り値 エラーコード
    999  *    optlen    オプションサイズ、4 オクテット単位
    1000  *    maxlen    最大セグメントサイズ(IF/IP/TCP ヘッダサイズを含む)
    1001  *    len       TCP SDU サイズ
     967 *    戻り値       エラーコード
     968 *    optlen    オプションサイズ、4 オクテット単位
     969 *    maxlen    最大セグメントサイズ(IF/IP/TCP ヘッダサイズを含む)
     970 *    len       TCP SDU サイズ
    1002971 */
    1003972
     
    1009978        ER              error;
    1010979
    1011         /* IP データグラムを獲得する。*/
     980        /* IP データグラムを獲得する。*/
    1012981        if ((error = IN_GET_DATAGRAM(nbuf,
    1013982                                     (uint_t)(TCP_HDR_SIZE + optlen + len),
     
    1021990                }
    1022991
    1023         /* TCP ヘッダにæƒ
    1024 å ±ã‚’設定する。*/
    1025 
    1026         /* TCP ヘッダにæƒ
    1027 å ±ã‚’設定する。*/
     992        /* TCP ヘッダに情報を設定する。*/
     993
     994        /* TCP ヘッダに情報を設定する。*/
    1028995        tcph = GET_TCP_HDR(*nbuf, IF_IP_TCP_HDR_OFFSET(*nbuf));
    1029996        tcph->sport     = htons(cep->myaddr.portno);
     
    10361003
    10371004/*
    1038  *  tcp_can_send_more -- 送信できるか、通信端点の状æ
    1039 ‹ã‚’見る。
     1005 *  tcp_can_send_more -- 送信できるか、通信端点の状態を見る。
    10401006 */
    10411007
     
    10451011        ER      error;
    10461012
    1047         /* 送信できるか、CEP の FSM 状æ
    1048 ‹ã‚’見る。*/
     1013        /* 送信できるか、CEP の FSM 状態を見る。*/
    10491014        if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) {
    10501015                if ((error = cep->error) == E_OK)
     
    10531018#ifdef TCP_CFG_NON_BLOCKING
    10541019
    1055                 /* タイムアウトをチェックする。*/
    1056                 if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
     1020                /* タイムアウトをチェックする。*/
     1021                if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
    10571022
    10581023                        if (!IS_PTR_DEFINED(cep->callback))
    10591024                                error = E_OBJ;
    10601025                        else {
    1061                                 /* コールバック関数を呼び出す。*/
     1026                                /* コールバック関数を呼び出す。*/
    10621027#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    10631028                                (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error);
     
    10841049#ifdef TCP_CFG_NON_BLOCKING
    10851050
    1086                         /* タイムアウトをチェックする。*/
    1087                         if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
     1051                        /* タイムアウトをチェックする。*/
     1052                        if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
    10881053                                if (!IS_PTR_DEFINED(cep->callback))
    10891054                                        error = E_OBJ;
     
    10911056                                        error = E_OBJ;
    10921057
    1093                                         /* コールバック関数を呼び出す。*/
     1058                                        /* コールバック関数を呼び出す。*/
    10941059#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    10951060                                        (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error);
     
    11171082
    11181083/*
    1119  *  tcp_can_recv_more -- 受信できるか、通信端点の状æ
    1120 ‹ã‚’見る。
     1084 *  tcp_can_recv_more -- 受信できるか、通信端点の状態を見る。
    11211085 *
    1122  *  注意: 戻り値
     1086 *  注意: 戻り値
    11231087 *
    1124  *      E_OK    受信可能
    1125  *      E_OBJ   ç›¸æ‰‹ã‹ã‚‰åˆ‡æ–­ã•ã‚ŒãŸã‹ã€ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—た。
     1088 *      E_OK    受信可能
     1089 *      E_OBJ   相手から切断されたか、エラーが発生した。
    11261090 */
    11271091
     
    11301094{
    11311095        /*
    1132          *  受信できるか、fsm_state を見る。受信できない場合は
    1133          *  長さ 0、またはエラーを返す。
     1096         *  受信できるか、fsm_state を見る。受信できない場合は
     1097         *  長さ 0、またはエラーを返す。
    11341098         */
    11351099        if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state) &&
     
    11391103#ifdef TCP_CFG_NON_BLOCKING
    11401104
    1141                 /* タイムアウトをチェックする。*/
    1142                 if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
     1105                /* タイムアウトをチェックする。*/
     1106                if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
    11431107
    11441108                        if (!IS_PTR_DEFINED(cep->callback))
    11451109                                *error = E_OBJ;
    11461110                        else {
    1147                                 /* コールバック関数を呼び出す。*/
     1111                                /* コールバック関数を呼び出す。*/
    11481112#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    11491113                                (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)*error);
     
    11581122
    11591123                /*
    1160                  *  通信端点をロックして、
    1161                  *  受信ウィンドバッファキューのネットワークバッファを解放する。
     1124                 *  通信端点をロックして、
     1125                 *  受信ウィンドバッファキューのネットワークバッファを解放する。
    11621126                 */
    11631127                syscall(wai_sem(cep->semid_lock));
     
    11751139#ifdef TCP_CFG_NON_BLOCKING
    11761140
    1177                         /* タイムアウトをチェックする。*/
    1178                         if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
     1141                        /* タイムアウトをチェックする。*/
     1142                        if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
    11791143                                if (!IS_PTR_DEFINED(cep->callback))
    11801144                                        *error = E_OBJ;
     
    11821146                                        *error = E_OBJ;
    11831147
    1184                                         /* コールバック関数を呼び出す。*/
     1148                                        /* コールバック関数を呼び出す。*/
    11851149#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    11861150                                        (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)*error);
     
    12071171
    12081172/*
    1209  *  tcp_wait_rwbuf -- 受信ウィンドバッファにデータがå
    1210 ¥ã‚‹ã®ã‚’å¾
    1211 ã¤ã€‚
     1173 *  tcp_wait_rwbuf -- 受信ウィンドバッファにデータが入るのを待つ。
    12121174 */
    12131175
     
    12191181
    12201182        if (cep->rwbuf_count == 0) {
    1221                 /* 受信ウィンドバッファにデータがなければ、å
    1222 ¥åŠ›ãŒã‚るまでå¾
    1223 ã¤ã€‚*/
     1183                /* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/
    12241184                while (cep->rwbuf_count == 0) {
    12251185                        if ((error = twai_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY, TWF_ORW, &flag, tmout)) != E_OK) {
     
    12291189
    12301190                        /*
    1231                          *  受信できるか、fsm_state を見る。受信できない状æ
    1232 ‹ã§ã€
    1233                          *  受信ウィンドバッファに文字がない場合は終了する。
     1191                         *  受信できるか、fsm_state を見る。受信できない状態で、
     1192                         *  受信ウィンドバッファに文字がない場合は終了する。
    12341193                         */
    12351194                        if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state) &&
     
    12371196
    12381197                                /*
    1239                                  *  通信端点をロックして、
    1240                                  *  受信ウィンドバッファキューのネットワークバッファを解放する。
     1198                                 *  通信端点をロックして、
     1199                                 *  受信ウィンドバッファキューのネットワークバッファを解放する。
    12411200                                 */
    12421201                                syscall(wai_sem(cep->semid_lock));
     
    12561215
    12571216/*
    1258  *  tcp_move_ra2rw -- 受信再構成キューで再構成したセグメントを受信ウィンドバッファに書き込む。
     1217 *  tcp_move_ra2rw -- 受信再構成キューで再構成したセグメントを受信ウィンドバッファに書き込む。
    12591218 */
    12601219
     
    12661225
    12671226        /*
    1268          *  受信データを受信ウィンドバッファに書き込み、
    1269          *  rcv_nxt を完了した SEQ だけ進める。
     1227         *  受信データを受信ウィンドバッファに書き込み、
     1228         *  rcv_nxt を完了した SEQ だけ進める。
    12701229         */
    12711230        if (TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) {
     
    12761235                                break;
    12771236
    1278                         /* 次のセグメントに進む。*/
     1237                        /* 次のセグメントに進む。*/
    12791238                        cep->reassq = qhdr->next;
    12801239
    1281                         /* FIN フラグのみ残す。*/
     1240                        /* FIN フラグのみ残す。*/
    12821241                        flags &= TCP_FLG_FIN;
    12831242
    1284                         /* データを受信ウィンドバッファに書き込む。*/
     1243                        /* データを受信ウィンドバッファに書き込む。*/
    12851244                        TCP_WRITE_RWBUF(cep, q, (uint_t)(GET_IP_TCP_Q_HDR_OFFSET(q)));
    12861245                        }
     
    12941253
    12951254/*
    1296  *  tcp_write_raque -- 受信セグメントを再構成して、受信再構成キューに繋ぐ。
     1255 *  tcp_write_raque -- 受信セグメントを再構成して、受信再構成キューに繋ぐ。
    12971256 */
    12981257
     
    13051264        int32_t         len;
    13061265
    1307         /*  TCP ヘッダの位置を保存する。*/
     1266        /*  TCP ヘッダの位置を保存する。*/
    13081267        SET_IP_TCP_Q_HDR_OFFSET(input, thoff);
    13091268
    13101269        /*
    1311          *  MAX_TCP_REALLOC_SIZE 以下の場合は、新たにネットワークバッファを
    1312          *  割当てて、データをコピーする。
    1313          *  このとき、IP のオプション(拡張ヘッダ)と TCP のオプションは削除する。
     1270         *  MAX_TCP_REALLOC_SIZE 以下の場合は、新たにネットワークバッファを
     1271         *  割当てて、データをコピーする。
     1272         *  このとき、IP のオプション(拡張ヘッダ)と TCP のオプションは削除する。
    13141273         */
    13151274        len  = IF_IP_TCP_HDR_SIZE(input) + inqhdr->slen;
     
    13181277
    13191278                /*
    1320                  *  ネットワークバッファが確保できないときは割当てない。
     1279                 *  ネットワークバッファが確保できないときは割当てない。
    13211280                 */
    13221281                if (tget_net_buf(&new, (uint_t)len, TMO_TCP_GET_NET_BUF) != E_OK)
     
    13431302
    13441303        /*
    1345          *  今回追加するセグメントより前(p)と後(q)のセグメントを探す。
     1304         *  今回追加するセグメントより前(p)と後(q)のセグメントを探す。
    13461305         *
    13471306         *    +-------------------------+
     
    13661325
    13671326        /*
    1368          *  前(p)のセグメントがあれば、既に、今回と同じセグメントが
    1369          *  あることもある。その場合は、その部分またはå
    1370 ¨ã¦ã‚’破棄する。
     1327         *  前(p)のセグメントがあれば、既に、今回と同じセグメントが
     1328         *  あることもある。その場合は、その部分または全てを破棄する。
    13711329         *
    13721330         *    qhdr->seq
     
    13901348
    13911349                        /*
    1392                          *  len が正であれば、前(p) のセグメントと今回の
    1393                          *  セグメントが重なっている。
     1350                         *  len が正であれば、前(p) のセグメントと今回の
     1351                         *  セグメントが重なっている。
    13941352                         */
    13951353                        if (len >= inqhdr->slen) {
    13961354
    13971355                                /*
    1398                                  *  len が今回のセグメントと同じなら
    1399                                  *  まったく同じセグメントなので何もしない。
     1356                                 *  len が今回のセグメントと同じなら
     1357                                 *  まったく同じセグメントなので何もしない。
    14001358                                 */
    14011359                                if (new != NULL) {
     
    14081366
    14091367                        /*
    1410                          *  追加するセグメントの SDU を len 分前に詰める。
     1368                         *  追加するセグメントの SDU を len 分前に詰める。
    14111369                         */
    14121370                        inqhdr->seq  += len;
     
    14171375
    14181376        /*
    1419          *  キューにつなぐ前に、新しいネットワークバッファにデータを移す。
    1420          *  TCP のオプションは削除する。
     1377         *  キューにつなぐ前に、新しいネットワークバッファにデータを移す。
     1378         *  TCP のオプションは削除する。
    14211379         */
    14221380        if (new != NULL) {
     
    14311389
    14321390        /*
    1433          *  重なる後(q)のセグメントを調整する。
     1391         *  重なる後(q)のセグメントを調整する。
    14341392         *
    14351393         *    inqhdr->seq
     
    14511409                len = inqhdr->seq + inqhdr->slen - qhdr->seq;
    14521410                if (len <= 0)
    1453                         /* len が負なら重なっていない。*/
     1411                        /* len が負なら重なっていない。*/
    14541412                        break;
    14551413                else if (len < qhdr->slen) {
    14561414
    14571415                        /*
    1458                          *  後ろで重なっているセグメントの SDU を len 分前に詰める。
     1416                         *  後ろで重なっているセグメントの SDU を len 分前に詰める。
    14591417                         *
    14601418                         *    inqhdr->seq
     
    15001458
    15011459/*
    1502  *  tcp_rexmt_val -- 再送タイムアウト値を返す。
     1460 *  tcp_rexmt_val -- 再送タイムアウト値を返す。
    15031461 */
    15041462
     
    15161474
    15171475/*
    1518  *  tcp_init_cep -- 通信端点を初期化する。
     1476 *  tcp_init_cep -- 通信端点を初期化する。
    15191477 */
    15201478
     
    15251483#ifdef TCP_CFG_RWBUF_CSAVE
    15261484        /*
    1527          * 受信ウィンドバッファの省コピー機能を有効にした場合、
    1528          * 受信ウィンドバッファがå
    1529 ¨ã¦è§£æ”¾ã•ã‚Œãªã„ことがあるので、
    1530          * ここで解放する。
     1485         * 受信ウィンドバッファの省コピー機能を有効にした場合、
     1486         * 受信ウィンドバッファが全て解放されないことがあるので、
     1487         * ここで解放する。
    15311488         */
    15321489        if (cep->rwbufq != NULL) {
     
    15431500        cep->rbuf_rptr  = cep->rbuf_wptr = cep->rbuf;
    15441501
    1545         cep->maxseg     = DEF_TCP_SND_SEG;              /* 送信最大セグメントサイズ         */
    1546         cep->srtt       = TCP_TVAL_SRTT_BASE;           /* 滑らかな移動平均                     */
     1502        cep->maxseg     = DEF_TCP_SND_SEG;              /* 送信最大セグメントサイズ         */
     1503        cep->srtt       = TCP_TVAL_SRTT_BASE;           /* 滑らかな移動平均                     */
    15471504        cep->rttvar     = ((TCP_TVAL_RTO_BASE - TCP_TVAL_SRTT_BASE) << TCP_RTTVAR_SHIFT) / 4;
    1548                                                         /* 滑らかな分散                           */
    1549         cep->rxtcur     = TCP_TVAL_RTO_BASE;            /* 現在の再送値                           */
    1550         cep->snd_cwnd   =  MAX_TCP_WIN_SIZE;            /* 輻輳ウィンドサイズ                  */
    1551         cep->snd_ssthresh= MAX_TCP_WIN_SIZE;            /* 輻輳ウィンドサイズ(snd_cwnd)の     åˆ¶é™å€¤       */
     1505                                                        /* 滑らかな分散                               */
     1506        cep->rxtcur     = TCP_TVAL_RTO_BASE;            /* 現在の再送値                               */
     1507        cep->snd_cwnd   =  MAX_TCP_WIN_SIZE;            /* 輻輳ウィンドサイズ                    */
     1508        cep->snd_ssthresh= MAX_TCP_WIN_SIZE;            /* 輻輳ウィンドサイズ(snd_cwnd)の 制限値     */
    15521509
    15531510        /*
    1554          * 以下に関係しないフラグをクリアーする。
    1555          * ・送受信ウィンドバッファの省コピー機能
    1556          * ・動的な通信端点の生成・削除機能
    1557          * ・通信端点のネットワーク層プロトコル
     1511         * 以下に関係しないフラグをクリアーする。
     1512         * ・送受信ウィンドバッファの省コピー機能
     1513         * ・動的な通信端点の生成・削除機能
     1514         * ・通信端点のネットワーク層プロトコル
    15581515         */
    15591516        cep->flags &= TCP_CEP_FLG_NOT_CLEAR;
    15601517
    1561         /* セマフォを初期化する。*/
     1518        /* セマフォを初期化する。*/
    15621519        sig_sem(cep->semid_lock);
    15631520
    1564         /* フラグを初期化する。*/
     1521        /* フラグを初期化する。*/
    15651522        syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
    15661523        syscall(clr_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY));
     
    15681525
    15691526/*
    1570  *  tcp_notify -- ICMP エラーの処理
     1527 *  tcp_notify -- ICMP エラーの処理
    15711528 */
    15721529
     
    15791536
    15801537                /*
    1581                  *  コネクション開設済で、ホスト到達不能エラーの場合は、
    1582                  *  再送により処理する。
     1538                 *  コネクション開設済で、ホスト到達不能エラーの場合は、
     1539                 *  再送により処理する。
    15831540                 */
    15841541                if (cep->fsm_state == TCP_FSM_ESTABLISHED &&
     
    15871544
    15881545                /*
    1589                  *  コネクション開設中、同じエラーを何度か受信した場合は、
    1590                  *  å¾
    1591 ã¡çŠ¶æ
    1592 ‹ã‚’解除し、対応する関数にエラーを返させる。
     1546                 *  コネクション開設中、同じエラーを何度か受信した場合は、
     1547                 *  待ち状態を解除し、対応する関数にエラーを返させる。
    15931548                 */
    15941549                if (cep->fsm_state < TCP_FSM_ESTABLISHED && cep->rxtshift > 3 && cep->net_error != E_OK) {
     
    15991554                        cep->net_error = error;
    16001555
    1601                         /* 送信を指示する。*/
     1556                        /* 送信を指示する。*/
    16021557                        cep->flags |=  TCP_CEP_FLG_POST_OUTPUT;
    16031558                        sig_sem(SEM_TCP_POST_OUTPUT);
     
    16071562
    16081563/*
    1609  *  tcp_lock_cep -- TCP 通信端点をロックする。
     1564 *  tcp_lock_cep -- TCP 通信端点をロックする。
    16101565 */
    16111566
     
    16181573        *p_cep = NULL;
    16191574
    1620         /* TCP 通信端点 ID をチェックする。*/
     1575        /* TCP 通信端点 ID をチェックする。*/
    16211576        if (!VALID_TCP_CEPID(cepid))
    16221577                return E_ID;
    16231578
    1624         /* TCP 通信端点を得る。*/
     1579        /* TCP 通信端点を得る。*/
    16251580        cep = GET_TCP_CEP(cepid);
    16261581
    1627         /* TCP 通信端点をロックする。*/
     1582        /* TCP 通信端点をロックする。*/
    16281583        syscall(wai_sem(cep->semid_lock));
    16291584
    1630         /* TCP 通信端点をチェックする。*/
     1585        /* TCP 通信端点をチェックする。*/
    16311586        if (!VALID_TCP_CEP(cep)) {
    16321587                syscall(sig_sem(cep->semid_lock));
     
    16351590
    16361591        /*
    1637          *  API 機能コードとタスク識別子を記録する。
    1638          *  すでに記録されていれば、ペンディング中なのでエラー
     1592         *  API 機能コードとタスク識別子を記録する。
     1593         *  すでに記録されていれば、ペンディング中なのでエラー
    16391594         */
    16401595        if (IS_TFN_TCP_RCV(tfn)) {
     
    16581613                }
    16591614
    1660         /* 通信端点のロックを解除する。*/
     1615        /* 通信端点のロックを解除する。*/
    16611616        syscall(sig_sem(cep->semid_lock));
    16621617
     
    16681623
    16691624/*
    1670  *  トレース出力に用いるシリアルポート番号
     1625 *  トレース出力に用いるシリアルポート番号
    16711626 */
    16721627
     
    16761631
    16771632/*
    1678  *  コネクションの状æ
    1679 ‹
     1633 *  コネクションの状態
    16801634 */
    16811635
     
    16951649
    16961650/*
    1697  *  trace_putchar -- シリアルポートへの文字出力
     1651 *  trace_putchar -- シリアルポートへの文字出力
    16981652 */
    16991653
     
    17061660
    17071661/*
    1708  *  シリアルポートへの書式付文字列出力ライブラリ
    1709  */
    1710 
    1711 /*
    1712  *  数値変換のための変換表
     1662 *  シリアルポートへの書式付文字列出力ライブラリ
     1663 */
     1664
     1665/*
     1666 *  数値変換のための変換表
    17131667 */
    17141668
     
    17171671
    17181672/*
    1719  *  convert -- trace_printf の数値変換
     1673 *  convert -- trace_printf の数値変換
    17201674 */
    17211675
     
    17541708
    17551709/*
    1756  *  trace_printf -- シリアルポートへの書式付文字列出力
     1710 *  trace_printf -- シリアルポートへの書式付文字列出力
    17571711 */
    17581712
     
    17671721        va_start(ap, fmt);
    17681722        while ((ch = *fmt ++) != '\0') {
    1769                 if (ch != '%') {                /* 書式指定以外 */
     1723                if (ch != '%') {                /* 書式指定以外 */
    17701724                        trace_putchar(portid, (char)ch);
    17711725                        continue;
     
    17741728                width = longflag = 0;
    17751729                padchar = ' ';
    1776                 if ((ch = *fmt ++) == '0') {    /* 上位桁の 0 */
     1730                if ((ch = *fmt ++) == '0') {    /* 上位桁の 0 */
    17771731                        padchar = '0';
    17781732                        ch = *fmt ++;
    17791733                        }
    17801734
    1781                 while ('0' <= ch && ch <= '9') {        /* 出力å¹
    1782  */
     1735                while ('0' <= ch && ch <= '9') {        /* 出力幅 */
    17831736                        width = width * 10 + ch - '0';
    17841737                        ch = *fmt ++;
    17851738                        }
    17861739
    1787                 while (ch == 'l') {             /* long (long) の指定 */
     1740                while (ch == 'l') {             /* long (long) の指定 */
    17881741                        longflag ++;
    17891742                        ch = *fmt ++;
     
    18461799
    18471800/*
    1848  *  TCP フラグ文字列
     1801 *  TCP フラグ文字列
    18491802 */
    18501803
     
    18651818
    18661819/*
    1867  *  送信 TCP ヘッダのトレース出力
     1820 *  送信 TCP ヘッダのトレース出力
    18681821 */
    18691822
     
    19261879
    19271880/*
    1928  *  受信 TCP ヘッダのトレース出力
     1881 *  受信 TCP ヘッダのトレース出力
    19291882 *
    1930  *    注意: TCP ヘッダå†
    1931 ã¯ã€ã™ã§ã«ãƒ›ã‚¹ãƒˆãƒã‚¤ãƒˆã‚ªãƒ¼ãƒ€
     1883 *    注意: TCP ヘッダ内は、すでにホストバイトオーダ
    19321884 */
    19331885
Note: See TracChangeset for help on using the changeset viewer.