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_usrreq.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;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$
     
    130118
    131119/*
    132  *  TINET をライブラリ化しない場合は、å
    133 ¨ã¦ã®æ©Ÿèƒ½ã‚’
    134  *  オブジェクトファイルに出力するため、マクロを有効にする。
     120 *  TINET をライブラリ化しない場合は、全ての機能を
     121 *  オブジェクトファイルに出力するため、マクロを有効にする。
    135122 */
    136123
     
    160147
    161148/*
    162  *  IPv6 と IPv4 で引数が異なる関数のコンパイル
     149 *  IPv6 と IPv4 で引数が異なる関数のコンパイル
    163150 */
    164151
     
    228215
    229216/*
    230  *  tcp_user_closed -- ユーザからのコネクションの開放
     217 *  tcp_user_closed -- ユーザからのコネクションの開放
    231218 */
    232219
     
    236223        switch (cep->fsm_state) {
    237224
    238         case TCP_FSM_CLOSED:            /* クローズ */
    239         case TCP_FSM_LISTEN:            /* 受動オープン   */
     225        case TCP_FSM_CLOSED:            /* クローズ */
     226        case TCP_FSM_LISTEN:            /* 受動オープン       */
    240227                cep->fsm_state = TCP_FSM_CLOSED;
    241228                cep = tcp_close(cep);
    242229                break;
    243230
    244         case TCP_FSM_SYN_SENT:          /* 能動オープン、SYN 送信済み        */
    245         case TCP_FSM_SYN_RECVD:         /* SYN を受信し、SYN 送信済み  */
     231        case TCP_FSM_SYN_SENT:          /* 能動オープン、SYN 送信済み      */
     232        case TCP_FSM_SYN_RECVD:         /* SYN を受信し、SYN 送信済み    */
    246233                cep->flags |= TCP_CEP_FLG_NEED_FIN;
    247234                break;
    248235
    249         case TCP_FSM_ESTABLISHED:       /* コネクション開設完了       */
     236        case TCP_FSM_ESTABLISHED:       /* コネクション開設完了   */
    250237                cep->fsm_state = TCP_FSM_FIN_WAIT_1;
    251238                break;
    252239
    253         case TCP_FSM_CLOSE_WAIT:        /* 相手から FIN 受信、APP の終了å¾
    254 ã¡ */
     240        case TCP_FSM_CLOSE_WAIT:        /* 相手から FIN 受信、APP の終了待ち */
    255241                cep->fsm_state = TCP_FSM_LAST_ACK;
    256242                break;
     
    263249
    264250/*
    265  *  tcp_cls_cep -- 通信端点のクローズ【標準機能】
     251 *  tcp_cls_cep -- 通信端点のクローズ【標準機能】
    266252 */
    267253
     
    275261#ifndef TCP_CFG_NON_BLOCKING
    276262
    277         /* tmout が TMO_NBLK ならエラー */
     263        /* tmout が TMO_NBLK ならエラー */
    278264        if (tmout == TMO_NBLK)
    279265                return E_PAR;
     
    282268
    283269        /*
    284          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    285          *  すでに記録されていれば、ペンディング中なのでエラー
     270         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     271         *  すでに記録されていれば、ペンディング中なのでエラー
    286272         */
    287273        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_CLS_CEP)) != E_OK)
     
    290276#ifdef TCP_CFG_NON_BLOCKING
    291277
    292         /* タイムアウトをチェックする。*/
    293         if (tmout == TMO_NBLK) {                                /* ノンブロッキングコール */
     278        /* タイムアウトをチェックする。*/
     279        if (tmout == TMO_NBLK) {                                /* ノンブロッキングコール */
    294280
    295281                if (!IS_PTR_DEFINED(cep->callback))
    296282                        error = E_OBJ;
    297                 else if (cep->fsm_state == TCP_FSM_CLOSED) {    /* すでにクローズされているとき */
     283                else if (cep->fsm_state == TCP_FSM_CLOSED) {    /* すでにクローズされているとき */
    298284
    299285#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
     
    313299                        }
    314300                else {
    315                         /* NBLK のAPI 機能コードを設定する。*/
     301                        /* NBLK のAPI 機能コードを設定する。*/
    316302                        cep->rcv_nblk_tfn = TFN_TCP_CLS_CEP;
    317303
    318                         if ((cep = tcp_user_closed(cep)) != NULL) {     /* コネクションを切断する。*/
    319                                 /* 切断セグメント出力をポストする。*/
     304                        if ((cep = tcp_user_closed(cep)) != NULL) {     /* コネクションを切断する。*/
     305                                /* 切断セグメント出力をポストする。*/
    320306                                cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    321307                                sig_sem(SEM_TCP_POST_OUTPUT);
    322308                                }
    323309
    324                         /*  cep が NULL で戻ってきた場合は、
    325                          *  既にコネクションが切断されていることを意味している。
    326                          *  また、この場合コールバック関数が呼び出されている。
     310                        /*  cep が NULL で戻ってきた場合は、
     311                         *  既にコネクションが切断されていることを意味している。
     312                         *  また、この場合コールバック関数が呼び出されている。
    327313                         */
    328314                        return E_WBLK;
    329315                        }
    330316                }
    331         else {                                                  /* 非ノンブロッキングコール */
    332 
    333 #endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    334 
    335                 if ((cep = tcp_user_closed(cep)) == NULL) {     /* コネクションを切断する。*/
    336 
    337                         /*  cep が NULL で戻ってきた場合は、
    338                          *  既にコネクションが切断されていることを意味している。
     317        else {                                                  /* 非ノンブロッキングコール */
     318
     319#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
     320
     321                if ((cep = tcp_user_closed(cep)) == NULL) {     /* コネクションを切断する。*/
     322
     323                        /*  cep が NULL で戻ってきた場合は、
     324                         *  既にコネクションが切断されていることを意味している。
    339325                         */
    340326                        return error;
    341327                        }
    342328                else {
    343                         /* 切断セグメント出力をポストする。*/
     329                        /* 切断セグメント出力をポストする。*/
    344330                        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    345331                        sig_sem(SEM_TCP_POST_OUTPUT);
    346332
    347                         /* イベントフラグが CLOSED になるまでå¾
    348 ã¤ã€‚*/
     333                        /* イベントフラグが CLOSED になるまで待つ。*/
    349334                        error = twai_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED, TWF_ORW, &flag, tmout);
    350335                        if (error == E_OK && cep->error != E_OK)
     
    353338                        if (error != E_OK) {
    354339                                if (error == E_RLWAI) {
    355                                         /* tcp_cls_cep がキャンセルされたときは、RST を送信する。*/
     340                                        /* tcp_cls_cep がキャンセルされたときは、RST を送信する。*/
    356341                                        tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una - 1,
    357342                                                    cep->rbufsz - cep->rwbuf_count, TCP_FLG_RST);
    358343                                        }
    359344
    360                                 /* タイマーを停止する。*/
     345                                /* タイマーを停止する。*/
    361346                                tcp_cancel_timers(cep);
    362347
    363348                                /*
    364                                  *  通信端点をロックし、
    365                                  *  受信再構成キューのネットワークバッファを解放する。
     349                                 *  通信端点をロックし、
     350                                 *  受信再構成キューのネットワークバッファを解放する。
    366351                                 */
    367352                                syscall(wai_sem(cep->semid_lock));
     
    369354                                syscall(sig_sem(cep->semid_lock));
    370355
    371                                 /* 状æ
    372 ‹ã‚’未使用にする。*/
     356                                /* 状態を未使用にする。*/
    373357                                cep->fsm_state = TCP_FSM_CLOSED;
    374358
    375359                                /*
    376                                  * 以下に関係しないフラグをクリアーする。
    377                                  * ・送受信ウィンドバッファの省コピー機能
    378                                  * ・動的な通信端点の生成・削除機能
     360                                 * 以下に関係しないフラグをクリアーする。
     361                                 * ・送受信ウィンドバッファの省コピー機能
     362                                 * ・動的な通信端点の生成・削除機能
    379363                                 */
    380364                                cep->flags &= TCP_CEP_FLG_NOT_CLEAR;
    381365
    382366                                /*
    383                                  *  通信端点をロックし、
    384                                  *  送受信ウィンドバッファキューのネットワークバッファを解放する。
     367                                 *  通信端点をロックし、
     368                                 *  送受信ウィンドバッファキューのネットワークバッファを解放する。
    385369                                 */
    386370                                cep->rwbuf_count = 0;
     
    410394
    411395/*
    412  *  tcp_sht_cep  -- データ送信の終了【標準機能】
     396 *  tcp_sht_cep  -- データ送信の終了【標準機能】
    413397 */
    414398
     
    420404
    421405        /*
    422          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    423          *  すでに記録されていれば、ペンディング中なのでエラー
     406         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     407         *  すでに記録されていれば、ペンディング中なのでエラー
    424408         */
    425409        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SHT_CEP)) != E_OK)
    426410                return error;
    427411
    428         /* TCP 通信端点のコネクションが確立状æ
    429 ‹ã§ãªã‘ればエラー */
     412        /* TCP 通信端点のコネクションが確立状態でなければエラー */
    430413        if (!TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) {
    431414                if ((error = cep->error) == E_OK)
     
    433416                }
    434417
    435         else if ((cep = tcp_user_closed(cep)) != NULL) {                /* コネクションを切断する。*/
    436 
    437                 /* 切断セグメント出力をポストする。*/
     418        else if ((cep = tcp_user_closed(cep)) != NULL) {                /* コネクションを切断する。*/
     419
     420                /* 切断セグメント出力をポストする。*/
    438421                cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    439422                sig_sem(SEM_TCP_POST_OUTPUT);
     
    450433
    451434/*
    452  *  tcp_snd_dat -- パケットの送信【標準機能】
     435 *  tcp_snd_dat -- パケットの送信【標準機能】
    453436 */
    454437
     
    461444#ifdef TCP_CFG_NON_BLOCKING
    462445
    463         /* data が NULL か、len < 0 ならエラー */
     446        /* data が NULL か、len < 0 ならエラー */
    464447        if (data == NULL || len < 0)
    465448                return E_PAR;
     
    467450#else   /* of #ifdef TCP_CFG_NON_BLOCKING */
    468451
    469         /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
     452        /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
    470453        if (data == NULL || len < 0 || tmout == TMO_NBLK)
    471454                return E_PAR;
     
    474457
    475458        /*
    476          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    477          *  すでに記録されていれば、ペンディング中なのでエラー
     459         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     460         *  すでに記録されていれば、ペンディング中なのでエラー
    478461         */
    479462        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_DAT)) != E_OK)
    480463                return error;
    481464
    482         /* 送信できるか、通信端点の状æ
    483 ‹ã‚’見る。*/
     465        /* 送信できるか、通信端点の状態を見る。*/
    484466        if ((error = tcp_can_send_more(cep, TFN_TCP_SND_DAT, tmout)) != E_OK)
    485467                goto err_ret;
     
    487469#ifdef TCP_CFG_NON_BLOCKING
    488470
    489         /* タイムアウトをチェックする。*/
    490         if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
    491 
    492                 /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
     471        /* タイムアウトをチェックする。*/
     472        if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
     473
     474                /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
    493475                if (!TCP_IS_SWBUF_FULL(cep)) {
    494476
    495                         /* 送信ウィンドバッファにデータを書き込む。*/
     477                        /* 送信ウィンドバッファにデータを書き込む。*/
    496478                        error = TCP_WRITE_SWBUF(cep, data, (uint_t)len);
    497479
    498                         /* 出力をポストする。*/
     480                        /* 出力をポストする。*/
    499481                        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    500482                        sig_sem(SEM_TCP_POST_OUTPUT);
    501483
    502                         /* コールバック関数を呼び出す。*/
     484                        /* コールバック関数を呼び出す。*/
    503485#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    504486                        (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_DAT, (void*)error);
     
    518500                        }
    519501                }
    520         else {          /* 非ノンブロッキングコール */
    521 
    522 #endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    523 
    524                 /* 送信ウィンドバッファが空くのをå¾
    525 ã¤ã€‚*/
     502        else {          /* 非ノンブロッキングコール */
     503
     504#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
     505
     506                /* 送信ウィンドバッファが空くのを待つ。*/
    526507                if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
    527508                        goto err_ret;
    528509
    529                 /* 送信ウィンドバッファにデータを書き込む。*/
     510                /* 送信ウィンドバッファにデータを書き込む。*/
    530511                if ((error = TCP_WRITE_SWBUF(cep, data, (uint_t)len)) > 0) {
    531512
    532                         /* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/
     513                        /* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/
    533514                        if (TCP_IS_SWBUF_FULL(cep))
    534515                                cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR;
    535516
    536                         /* 出力をポストする。*/
     517                        /* 出力をポストする。*/
    537518                        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    538519                        sig_sem(SEM_TCP_POST_OUTPUT);
     
    556537
    557538/*
    558  *  tcp_get_buf -- 送信用バッファの獲得【標準機能】
     539 *  tcp_get_buf -- 送信用バッファの獲得【標準機能】
    559540 */
    560541
     
    567548#ifdef TCP_CFG_NON_BLOCKING
    568549
    569         /* p_buf が NULL ならエラー */
     550        /* p_buf が NULL ならエラー */
    570551        if (p_buf == NULL)
    571552                return E_PAR;
     
    573554#else   /* of #ifdef TCP_CFG_NON_BLOCKING */
    574555
    575         /* p_buf が NULL か、tmout が TMO_NBLK ならエラー */
     556        /* p_buf が NULL か、tmout が TMO_NBLK ならエラー */
    576557        if (p_buf == NULL || tmout == TMO_NBLK)
    577558                return E_PAR;
     
    580561
    581562        /*
    582          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    583          *  すでに記録されていれば、ペンディング中なのでエラー
     563         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     564         *  すでに記録されていれば、ペンディング中なのでエラー
    584565         */
    585566        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_GET_BUF)) != E_OK)
    586567                return error;
    587568
    588         /* 送信できるか、通信端点の状æ
    589 ‹ã‚’見る。*/
     569        /* 送信できるか、通信端点の状態を見る。*/
    590570        if ((error = tcp_can_send_more(cep, TFN_TCP_GET_BUF, tmout)) != E_OK)
    591571                goto err_ret;
     
    593573#ifdef TCP_CFG_NON_BLOCKING
    594574
    595         /* タイムアウトをチェックする。*/
    596         if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
     575        /* タイムアウトをチェックする。*/
     576        if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
    597577
    598578                if (!TCP_IS_SWBUF_FULL(cep)) {
    599579
    600                         /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
     580                        /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
    601581                        error = TCP_GET_SWBUF_ADDR(cep, p_buf);
    602582
    603                         /* コールバック関数を呼び出す。*/
     583                        /* コールバック関数を呼び出す。*/
    604584#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    605585                        (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_GET_BUF, (void*)error);
     
    618598                }
    619599
    620         else {          /* 非ノンブロッキングコール */
    621 
    622 #endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    623 
    624                 /* 送信ウィンドバッファが空くのをå¾
    625 ã¤ã€‚*/
     600        else {          /* 非ノンブロッキングコール */
     601
     602#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
     603
     604                /* 送信ウィンドバッファが空くのを待つ。*/
    626605                if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
    627606                        goto err_ret;
    628607
    629                 /* 送信ウィンドバッファの空アドレスを獲得する。*/
     608                /* 送信ウィンドバッファの空アドレスを獲得する。*/
    630609                error = TCP_GET_SWBUF_ADDR(cep, p_buf);
    631610
     
    647626
    648627/*
    649  *  tcp_snd_buf -- バッファå†
    650 ã®ãƒ‡ãƒ¼ã‚¿ã®é€ä¿¡ã€æ¨™æº–機能】
     628 *  tcp_snd_buf -- バッファ内のデータの送信【標準機能】
    651629 */
    652630
     
    657635        ER              error;
    658636
    659         /* 送信する長さ len をチェックする。*/
     637        /* 送信する長さ len をチェックする。*/
    660638        if (len < 0)
    661639                return E_PAR;
    662640
    663         /* 送信する長さlen が 0 であれば、何もしないで戻る。*/
     641        /* 送信する長さlen が 0 であれば、何もしないで戻る。*/
    664642        if (len == 0)
    665643                return E_OK;
    666644
    667645        /*
    668          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    669          *  すでに記録されていれば、ペンディング中なのでエラー
     646         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     647         *  すでに記録されていれば、ペンディング中なのでエラー
    670648         */
    671649        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_BUF)) != E_OK)
    672650                return error;
    673651
    674         /* 送信する長さ len をチェックする。*/
     652        /* 送信する長さ len をチェックする。*/
    675653        if (len > cep->get_buf_len) {
    676654                error = E_OBJ;
     
    678656                }
    679657
    680         /* 送信できるか、CEP の FSM 状æ
    681 ‹ã‚’見る。*/
     658        /* 送信できるか、CEP の FSM 状態を見る。*/
    682659        if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) {
    683660                if ((error = cep->error) == E_OK)
     
    686663                }
    687664
    688         /* 送信ウィンドバッファのデータを送信可能にする。*/
     665        /* 送信ウィンドバッファのデータを送信可能にする。*/
    689666        TCP_SEND_SWBUF(cep, (uint_t)len);
    690667
    691         /* 出力をポストする。*/
     668        /* 出力をポストする。*/
    692669        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    693670        sig_sem(SEM_TCP_POST_OUTPUT);
     
    704681
    705682/*
    706  *  tcp_rcv_dat -- パケットの受信【標準機能】
     683 *  tcp_rcv_dat -- パケットの受信【標準機能】
    707684 */
    708685
     
    715692#ifdef TCP_CFG_NON_BLOCKING
    716693
    717         /* data が NULL か、len < 0 ならエラー */
     694        /* data が NULL か、len < 0 ならエラー */
    718695        if (data == NULL || len < 0)
    719696                return E_PAR;
     
    721698#else   /* of #ifdef TCP_CFG_NON_BLOCKING */
    722699
    723         /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
     700        /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
    724701        if (data == NULL || len < 0 || tmout == TMO_NBLK)
    725702                return E_PAR;
     
    728705
    729706        /*
    730          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    731          *  すでに記録されていれば、ペンディング中なのでエラー
     707         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     708         *  すでに記録されていれば、ペンディング中なのでエラー
    732709         */
    733710        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_RCV_DAT)) != E_OK)
    734711                return error;
    735712
    736         /* 受信できるか、通信端点の状æ
    737 ‹ã‚’見る。*/
     713        /* 受信できるか、通信端点の状態を見る。*/
    738714        if (tcp_can_recv_more(&error, cep, TFN_TCP_RCV_DAT, tmout) != E_OK)
    739715                goto err_ret;
     
    741717#ifdef TCP_CFG_NON_BLOCKING
    742718
    743         /* タイムアウトをチェックする。*/
    744         if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
    745 
    746                 /* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/
     719        /* タイムアウトをチェックする。*/
     720        if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
     721
     722                /* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/
    747723                if (cep->rwbuf_count > 0) {
    748724
    749                         /* 受信ウィンドバッファからデータを取り出す。*/
     725                        /* 受信ウィンドバッファからデータを取り出す。*/
    750726                        len = TCP_READ_RWBUF(cep, data, (uint_t)len);
    751727
    752                         /* コールバック関数を呼び出す。*/
     728                        /* コールバック関数を呼び出す。*/
    753729#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    754730                        (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_DAT, (void*)(uint32_t)len);
     
    766742                        }
    767743                }
    768         else {          /* 非ノンブロッキングコール */
    769 
    770 #endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    771 
    772                 /* 受信ウィンドバッファにデータがなければ、å
    773 ¥åŠ›ãŒã‚るまでå¾
    774 ã¤ã€‚*/
     744        else {          /* 非ノンブロッキングコール */
     745
     746#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
     747
     748                /* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/
    775749                if ((error = tcp_wait_rwbuf(cep, tmout)) != E_OK)
    776750                        goto err_ret;
    777751
    778                 /* 受信ウィンドバッファからデータを取り出す。*/
     752                /* 受信ウィンドバッファからデータを取り出す。*/
    779753                error = TCP_READ_RWBUF(cep, data, (uint_t)len);
    780754
    781                 /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
     755                /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
    782756                cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    783757                sig_sem(SEM_TCP_POST_OUTPUT);
     
    800774
    801775/*
    802  *  tcp_rcv_buf -- 受信したデータのå
    803 ¥ã£ãŸãƒãƒƒãƒ•ã‚¡ã®ç²å¾—【標準機能】
     776 *  tcp_rcv_buf -- 受信したデータの入ったバッファの獲得【標準機能】
    804777 */
    805778
     
    812785#ifdef TCP_CFG_NON_BLOCKING
    813786
    814         /* p_buf が NULL ならエラー */
     787        /* p_buf が NULL ならエラー */
    815788        if (p_buf == NULL)
    816789                return E_PAR;
     
    818791#else   /* of #ifdef TCP_CFG_NON_BLOCKING */
    819792
    820         /* p_buf が NULL か、tmout が TMO_NBLK ならエラー */
     793        /* p_buf が NULL か、tmout が TMO_NBLK ならエラー */
    821794        if (p_buf == NULL || tmout == TMO_NBLK)
    822795                return E_PAR;
     
    825798
    826799        /*
    827          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    828          *  すでに記録されていれば、ペンディング中なのでエラー
     800         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     801         *  すでに記録されていれば、ペンディング中なのでエラー
    829802         */
    830803        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_RCV_BUF)) != E_OK)
    831804                return error;
    832805
    833         /* 受信できるか、通信端点の状æ
    834 ‹ã‚’見る。*/
     806        /* 受信できるか、通信端点の状態を見る。*/
    835807        if (tcp_can_recv_more(&error, cep, TFN_TCP_RCV_DAT, tmout) != E_OK)
    836808                goto err_ret;
     
    838810#ifdef TCP_CFG_NON_BLOCKING
    839811
    840         /* タイムアウトをチェックする。*/
    841         if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
    842 
    843                 /* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/
     812        /* タイムアウトをチェックする。*/
     813        if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
     814
     815                /* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/
    844816                if (cep->rwbuf_count > 0) {
    845817
    846                         /* 受信ウィンドバッファの空アドレスを獲得する。*/
     818                        /* 受信ウィンドバッファの空アドレスを獲得する。*/
    847819                        error = TCP_GET_RWBUF_ADDR(cep, p_buf);
    848820
    849                         /* コールバック関数を呼び出す。*/
     821                        /* コールバック関数を呼び出す。*/
    850822#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    851823                        (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_BUF, (void*)error);
     
    862834                        }
    863835                }
    864         else {          /* 非ノンブロッキングコール */
    865 
    866 #endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    867 
    868                 /* 受信ウィンドバッファにデータがなければ、å
    869 ¥åŠ›ãŒã‚るまでå¾
    870 ã¤ã€‚*/
     836        else {          /* 非ノンブロッキングコール */
     837
     838#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
     839
     840                /* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/
    871841                if ((error = tcp_wait_rwbuf(cep, tmout)) != E_OK) {
    872842                        cep->rwbuf_count = 0;
     
    874844                        }
    875845
    876                 /* 受信ウィンドバッファのアドレスを獲得する。*/
     846                /* 受信ウィンドバッファのアドレスを獲得する。*/
    877847                error = TCP_GET_RWBUF_ADDR(cep, p_buf);
    878848
     
    894864
    895865/*
    896  *  tcp_rel_buf -- 受信用バッファの解放【標準機能】
     866 *  tcp_rel_buf -- 受信用バッファの解放【標準機能】
    897867 */
    898868
     
    903873        ER              error;
    904874
    905         /* 解放する長さ len をチェックする。*/
     875        /* 解放する長さ len をチェックする。*/
    906876        if (len < 0)
    907877                return E_PAR;
    908878
    909879        /*
    910          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    911          *  すでに記録されていれば、ペンディング中なのでエラー
     880         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     881         *  すでに記録されていれば、ペンディング中なのでエラー
    912882         */
    913883        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_REL_BUF)) != E_OK)
    914884                return error;
    915885
    916         /* 解放する長さ len をチェックする。*/
     886        /* 解放する長さ len をチェックする。*/
    917887        if (len > cep->rcv_buf_len) {
    918888                error = E_OBJ;
     
    920890                }
    921891
    922         /* 通信端点をロックする。*/
     892        /* 通信端点をロックする。*/
    923893        syscall(wai_sem(cep->semid_lock));
    924894
    925         /* 受信ウィンドバッファから受信したオクテットを削除する。*/
     895        /* 受信ウィンドバッファから受信したオクテットを削除する。*/
    926896        TCP_DROP_RWBUF(cep, (uint_t)len);
    927897
    928         /* tcp_rcv_buf の割当て長をリセットする。*/
     898        /* tcp_rcv_buf の割当て長をリセットする。*/
    929899        cep->rcv_buf_len -= len;
    930900
    931         /* 通信端点のロックを解除する。*/
     901        /* 通信端点のロックを解除する。*/
    932902        syscall(sig_sem(cep->semid_lock));
    933903
    934         /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
     904        /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
    935905        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    936906        sig_sem(SEM_TCP_POST_OUTPUT);
     
    947917
    948918/*
    949  *  tcp_can_snd -- ペンディングしている送信のキャンセル
     919 *  tcp_can_snd -- ペンディングしている送信のキャンセル
    950920 */
    951921
     
    955925        ER      error = E_OK;
    956926
    957         /* 通信端点をロックする。*/
     927        /* 通信端点をロックする。*/
    958928        syscall(wai_sem(cep->semid_lock));
    959929
    960930        /*
    961          *  snd_tskid が TA_NULL なら、
    962          *  ペンディングしていないのでエラー
     931         *  snd_tskid が TA_NULL なら、
     932         *  ペンディングしていないのでエラー
    963933         */
    964934        if (cep->snd_tskid == TA_NULL)
    965935                error = EV_NOPND;
    966936
    967         /* ペンディング中の API 機能コードと一致しなければエラー */
     937        /* ペンディング中の API 機能コードと一致しなければエラー */
    968938        else if (fncd != TFN_TCP_ALL && fncd != cep->snd_tfn)
    969939                error = E_OBJ;
    970940
    971         /* 処理をキャンセルする。*/
     941        /* 処理をキャンセルする。*/
    972942        else {
    973943
    974                 /* 受信再構成キューのネットワークバッファを解放する。*/
     944                /* 受信再構成キューのネットワークバッファを解放する。*/
    975945                tcp_free_reassq(cep);
    976946
    977                 /* 受信ウィンドバッファキューのネットワークバッファを解放する。*/
     947                /* 受信ウィンドバッファキューのネットワークバッファを解放する。*/
    978948                cep->rwbuf_count = 0;
    979949                TCP_FREE_RWBUFQ(cep);
    980950
    981                 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
     951                /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
    982952                TCP_FREE_SWBUFQ(cep);
    983953
    984954#ifdef TCP_CFG_NON_BLOCKING
    985955
    986                 if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) {       /* ノンブロッキングコール */
     956                if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) {       /* ノンブロッキングコール */
    987957
    988958                        switch (cep->snd_nblk_tfn) {
     
    990960                        case TFN_TCP_CON_CEP:
    991961                                /*
    992                                  *  通信端点から受付口を解放し、
    993                                  *  イベントフラグをクローズに設定する。
     962                                 *  通信端点から受付口を解放し、
     963                                 *  イベントフラグをクローズに設定する。
    994964                                 */
    995965                                cep->rep = NULL;
     
    10381008                }
    10391009
    1040         /* 通信端点のロックを解除する。*/
     1010        /* 通信端点のロックを解除する。*/
    10411011        syscall(sig_sem(cep->semid_lock));
    10421012
     
    10451015
    10461016/*
    1047  *  tcp_can_rcv -- ペンディングしている受信のキャンセル
     1017 *  tcp_can_rcv -- ペンディングしている受信のキャンセル
    10481018 */
    10491019
     
    10531023        ER      error = E_OK;
    10541024
    1055         /* 通信端点をロックする。*/
     1025        /* 通信端点をロックする。*/
    10561026        syscall(wai_sem(cep->semid_lock));
    10571027
    10581028        /*
    1059          *  rcv_tskid が TA_NULL なら、
    1060          *  ペンディングしていないのでエラー
     1029         *  rcv_tskid が TA_NULL なら、
     1030         *  ペンディングしていないのでエラー
    10611031         */
    10621032        if (cep->rcv_tskid == TA_NULL)
    10631033                error = EV_NOPND;
    10641034
    1065         /* ペンディング中の API 機能コードと一致しなければエラー */
     1035        /* ペンディング中の API 機能コードと一致しなければエラー */
    10661036        else if (fncd != TFN_TCP_ALL && fncd != cep->rcv_tfn)
    10671037                error = E_OBJ;
    10681038
    1069         /* 処理をキャンセルする。*/
     1039        /* 処理をキャンセルする。*/
    10701040        else {
    10711041
    1072                 /* 受信再構成キューのネットワークバッファを解放する。*/
     1042                /* 受信再構成キューのネットワークバッファを解放する。*/
    10731043                tcp_free_reassq(cep);
    10741044
    1075                 /* 受信ウィンドバッファキューのネットワークバッファを解放する。*/
     1045                /* 受信ウィンドバッファキューのネットワークバッファを解放する。*/
    10761046                cep->rwbuf_count = 0;
    10771047                TCP_FREE_RWBUFQ(cep);
    10781048
    1079                 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
     1049                /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
    10801050                TCP_FREE_SWBUFQ(cep);
    10811051
    10821052#ifdef TCP_CFG_NON_BLOCKING
    10831053
    1084                 if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {       /* ノンブロッキングコール */
     1054                if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {       /* ノンブロッキングコール */
    10851055
    10861056                        switch (cep->rcv_nblk_tfn) {
     
    10881058                        case TFN_TCP_ACP_CEP:
    10891059                                /*
    1090                                  *  通信端点から受付口を解放し、
    1091                                  *  イベントフラグをクローズに設定する。
     1060                                 *  通信端点から受付口を解放し、
     1061                                 *  イベントフラグをクローズに設定する。
    10921062                                 */
    10931063                                cep->rep = NULL;
     
    11421112                }
    11431113
    1144         /* 通信端点のロックを解除する。*/
     1114        /* 通信端点のロックを解除する。*/
    11451115        syscall(sig_sem(cep->semid_lock));
    11461116
     
    11491119
    11501120/*
    1151  *  tcp_can_cep -- ペンディングしている処理のキャンセル【標準機能】
     1121 *  tcp_can_cep -- ペンディングしている処理のキャンセル【標準機能】
    11521122 */
    11531123
     
    11581128        ER              error = E_OK, snd_err, rcv_err;
    11591129
    1160         /* API 機能コードをチェックする。*/
     1130        /* API 機能コードをチェックする。*/
    11611131        if (!VALID_TFN_TCP_CAN(fncd))
    11621132                return E_PAR;
    11631133
    1164         /* TCP 通信端点 ID をチェックする。*/
     1134        /* TCP 通信端点 ID をチェックする。*/
    11651135        if (!VALID_TCP_CEPID(cepid))
    11661136                return E_ID;
    11671137
    1168         /* TCP 通信端点を得る。*/
     1138        /* TCP 通信端点を得る。*/
    11691139        cep = GET_TCP_CEP(cepid);
    11701140
    1171         /* TCP 通信端点をチェックする。*/
     1141        /* TCP 通信端点をチェックする。*/
    11721142        if (!VALID_TCP_CEP(cep))
    11731143                return E_NOEXS;
    11741144
    1175         if (fncd == TFN_TCP_ALL) {              /* TFN_TCP_ALL の処理 */
     1145        if (fncd == TFN_TCP_ALL) {              /* TFN_TCP_ALL の処理 */
    11761146                snd_err = tcp_can_snd(cep, fncd);
    11771147                rcv_err = tcp_can_rcv(cep, fncd);
    11781148
    11791149                /*
    1180                  *  snd_err と rcv_err のどちらも EV_NOPND
    1181                  *  なら、ペンディングしていないのでエラー
     1150                 *  snd_err と rcv_err のどちらも EV_NOPND
     1151                 *  なら、ペンディングしていないのでエラー
    11821152                 */
    11831153                if (snd_err == EV_NOPND && rcv_err == EV_NOPND)
     
    11961166                }
    11971167
    1198         else if (IS_TFN_TCP_RCV(fncd)) {        /* 受信処理のキャンセル */
     1168        else if (IS_TFN_TCP_RCV(fncd)) {        /* 受信処理のキャンセル */
    11991169                if ((error = tcp_can_rcv(cep, fncd)) == EV_NOPND)
    12001170                        error = E_OBJ;
    12011171                }
    12021172
    1203         else {                                  /* 送信処理のキャンセル */
     1173        else {                                  /* 送信処理のキャンセル */
    12041174                if ((error = tcp_can_snd(cep, fncd)) == EV_NOPND)
    12051175                        error = E_OBJ;
     
    12161186
    12171187/*
    1218  *  tcp_cre_cep -- TCP 通信端点の生成【拡張機能】
     1188 *  tcp_cre_cep -- TCP 通信端点の生成【拡張機能】
    12191189 */
    12201190
     
    12251195        ER              error;
    12261196
    1227         /* TCP 通信端点 ID をチェックする。*/
     1197        /* TCP 通信端点 ID をチェックする。*/
    12281198        if (!VALID_TCP_CEPID(cepid))
    12291199                return E_ID;
    12301200
    1231         /* pk_ccep が NULL ならエラー */
     1201        /* pk_ccep が NULL ならエラー */
    12321202        if (pk_ccep == NULL)
    12331203                return E_PAR;
    12341204
    1235         /* TCP 通信端点を得る。*/
     1205        /* TCP 通信端点を得る。*/
    12361206        cep = GET_TCP_CEP(cepid);
    12371207
    1238         /* TCP 通信端点が、動的生成用でなければエラー */
     1208        /* TCP 通信端点が、動的生成用でなければエラー */
    12391209        if (!DYNAMIC_TCP_CEP(cep))
    12401210                return E_ID;
    12411211
    1242         /* 通信端点をロックする。*/
     1212        /* 通信端点をロックする。*/
    12431213        syscall(wai_sem(cep->semid_lock));
    12441214
    12451215        /*
    1246          * TCP 通信端点をチェックする。生成済みであればエラー
     1216         * TCP 通信端点をチェックする。生成済みであればエラー
    12471217         */
    12481218        if (VALID_TCP_CEP(cep))
     
    12501220        else {
    12511221
    1252                 /* TCP 通信端点生成æƒ
    1253 å ±ã‚’コピーする。*/
    1254                 cep->cepatr   = pk_ccep->cepatr;                /* 通信端点属性                   */
    1255                 cep->sbuf     = pk_ccep->sbuf;                  /* 送信用ウィンドバッファ    */
    1256                 cep->sbufsz   = pk_ccep->sbufsz;                /* 送信用ウィンドバッファサイズ   */
    1257                 cep->rbuf     = pk_ccep->rbuf;                  /* 受信用ウィンドバッファ    */
    1258                 cep->rbufsz   = pk_ccep->rbufsz;                /* 受信用ウィンドバッファサイズ   */
    1259                 cep->callback = (void*)pk_ccep->callback;       /* コールバック                   */
    1260 
    1261                 /* TCP 通信端点を生成済みにする。*/
     1222                /* TCP 通信端点生成情報をコピーする。*/
     1223                cep->cepatr   = pk_ccep->cepatr;                /* 通信端点属性                       */
     1224                cep->sbuf     = pk_ccep->sbuf;                  /* 送信用ウィンドバッファ  */
     1225                cep->sbufsz   = pk_ccep->sbufsz;                /* 送信用ウィンドバッファサイズ       */
     1226                cep->rbuf     = pk_ccep->rbuf;                  /* 受信用ウィンドバッファ  */
     1227                cep->rbufsz   = pk_ccep->rbufsz;                /* 受信用ウィンドバッファサイズ       */
     1228                cep->callback = (void*)pk_ccep->callback;       /* コールバック                       */
     1229
     1230                /* TCP 通信端点を生成済みにする。*/
    12621231                cep->flags |= TCP_CEP_FLG_VALID;
    12631232                error = E_OK;
    12641233                }
    12651234
    1266         /* 通信端点のロックを解除する。*/
     1235        /* 通信端点のロックを解除する。*/
    12671236        syscall(sig_sem(cep->semid_lock));
    12681237
     
    12731242
    12741243/*
    1275  *  tcp_del_cep -- TCP 通信端点の削除【拡張機能】
     1244 *  tcp_del_cep -- TCP 通信端点の削除【拡張機能】
    12761245 */
    12771246
     
    12841253        ER              error;
    12851254
    1286         /* TCP 通信端点 ID をチェックする。*/
     1255        /* TCP 通信端点 ID をチェックする。*/
    12871256        if (!VALID_TCP_CEPID(cepid))
    12881257                return E_ID;
    12891258
    1290         /* TCP 通信端点を得る。*/
     1259        /* TCP 通信端点を得る。*/
    12911260        cep = GET_TCP_CEP(cepid);
    12921261
    1293         /* TCP 通信端点が、動的生成用でなければエラー */
     1262        /* TCP 通信端点が、動的生成用でなければエラー */
    12941263        if (!DYNAMIC_TCP_CEP(cep))
    12951264                return E_ID;
    12961265
    1297         /* 通信端点をロックする。*/
     1266        /* 通信端点をロックする。*/
    12981267        syscall(wai_sem(cep->semid_lock));
    12991268
    13001269        /*
    1301          * TCP 通信端点をチェックする。以下の場合はエラー
    1302          * ・未生成。
    1303          * ・使用中。
     1270         * TCP 通信端点をチェックする。以下の場合はエラー
     1271         * ・未生成。
     1272         * ・使用中。
    13041273         */
    13051274        if (!VALID_TCP_CEP(cep))
     
    13091278        else {
    13101279
    1311                 /* TCP 通信端点を未生成にする。*/
     1280                /* TCP 通信端点を未生成にする。*/
    13121281                cep->flags &= ~TCP_CEP_FLG_VALID;
    13131282                error = E_OK;
    13141283                }
    13151284
    1316         /* 通信端点のロックを解除する。*/
     1285        /* 通信端点のロックを解除する。*/
    13171286        syscall(sig_sem(cep->semid_lock));
    13181287
     
    13251294
    13261295/*
    1327  *  tcp_snd_oob -- 緊急データの送信【拡張機能】
     1296 *  tcp_snd_oob -- 緊急データの送信【拡張機能】
    13281297 */
    13291298
     
    13361305#ifdef TCP_CFG_NON_BLOCKING
    13371306
    1338         /* data が NULL か、len < 0 ならエラー */
     1307        /* data が NULL か、len < 0 ならエラー */
    13391308        if (data == NULL || len < 0)
    13401309                return E_PAR;
     
    13421311#else   /* of #ifdef TCP_CFG_NON_BLOCKING */
    13431312
    1344         /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
     1313        /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
    13451314        if (data == NULL || len < 0 || tmout == TMO_NBLK)
    13461315                return E_PAR;
     
    13491318
    13501319        /*
    1351          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    1352          *  すでに記録されていれば、ペンディング中なのでエラー
     1320         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     1321         *  すでに記録されていれば、ペンディング中なのでエラー
    13531322         */
    13541323        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_OOB)) != E_OK)
    13551324                return error;
    13561325
    1357         /* 送信できるか、通信端点の状æ
    1358 ‹ã‚’見る。*/
     1326        /* 送信できるか、通信端点の状態を見る。*/
    13591327        if ((error = tcp_can_send_more(cep, TFN_TCP_SND_OOB, tmout)) != E_OK)
    13601328                goto err_ret;
     
    13621330#ifdef TCP_CFG_NON_BLOCKING
    13631331
    1364         /* タイムアウトをチェックする。*/
    1365         if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
    1366 
    1367                 /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
     1332        /* タイムアウトをチェックする。*/
     1333        if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
     1334
     1335                /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
    13681336                if (!TCP_IS_SWBUF_FULL(cep)) {
    13691337
    1370                         /* 送信ウィンドバッファにデータを書き込む。*/
     1338                        /* 送信ウィンドバッファにデータを書き込む。*/
    13711339                        error = TCP_WRITE_SWBUF(cep, data, (uint_t)len);
    13721340
    1373                         /* 送信緊急ポインタを設定する。*/
     1341                        /* 送信緊急ポインタを設定する。*/
    13741342                        cep->snd_up = cep->snd_una + cep->swbuf_count;
    13751343
    1376                         /* 出力をポストする。*/
     1344                        /* 出力をポストする。*/
    13771345                        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    13781346                        sig_sem(SEM_TCP_POST_OUTPUT);
    13791347
    1380                         /* コールバック関数を呼び出す。*/
     1348                        /* コールバック関数を呼び出す。*/
    13811349#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    13821350                        (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_OOB, (void*)error);
     
    13961364                        }
    13971365                }
    1398         else {          /* 非ノンブロッキングコール */
    1399 
    1400 #endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    1401 
    1402                 /* 送信ウィンドバッファが空くのをå¾
    1403 ã¤ã€‚*/
     1366        else {          /* 非ノンブロッキングコール */
     1367
     1368#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
     1369
     1370                /* 送信ウィンドバッファが空くのを待つ。*/
    14041371                if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
    14051372                        goto err_ret;
    14061373
    1407                 /* 送信ウィンドバッファにデータを書き込む。*/
     1374                /* 送信ウィンドバッファにデータを書き込む。*/
    14081375                if ((error = TCP_WRITE_SWBUF(cep, data, (uint_t)len)) > 0) {
    14091376
    1410                         /* 送信緊急ポインタを設定する。*/
     1377                        /* 送信緊急ポインタを設定する。*/
    14111378                        cep->snd_up = cep->snd_una + cep->swbuf_count;
    14121379
    1413                         /* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/
     1380                        /* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/
    14141381                        if (TCP_IS_SWBUF_FULL(cep))
    14151382                                cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR;
    14161383
    1417                         /* 出力をポストする。*/
     1384                        /* 出力をポストする。*/
    14181385                        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    14191386                        sig_sem(SEM_TCP_POST_OUTPUT);
     
    14371404
    14381405/*
    1439  *  tcp_rcv_oob -- 緊急データの受信【拡張機能】
     1406 *  tcp_rcv_oob -- 緊急データの受信【拡張機能】
    14401407 *
    1441  *    注意: 送信側が複数オクテットのデータを送信しても、
    1442  *          緊急ポインタが指す 1 オクテットのデータのみ受信する。
     1408 *    注意: 送信側が複数オクテットのデータを送信しても、
     1409 *          緊急ポインタが指す 1 オクテットのデータのみ受信する。
    14431410 */
    14441411
     
    14491416        uint8_t         *urg;
    14501417
    1451         /* TCP 通信端点 ID をチェックする。*/
     1418        /* TCP 通信端点 ID をチェックする。*/
    14521419        if (!VALID_TCP_CEPID(cepid))
    14531420                return E_ID;
    14541421
    1455         /* data が NULL か、len < 0 ならエラー */
     1422        /* data が NULL か、len < 0 ならエラー */
    14561423        if (data == NULL || len < 0)
    14571424                return E_PAR;
    14581425
    1459         /* TCP 通信端点を得る。*/
     1426        /* TCP 通信端点を得る。*/
    14601427        cep = GET_TCP_CEP(cepid);
    14611428
    1462         /* 受信できるか、通信端点の状æ
    1463 ‹ã‚’見る。*/
    1464         /* 受信できるか、fsm_state を見る。*/
     1429        /* 受信できるか、通信端点の状態を見る。*/
     1430        /* 受信できるか、fsm_state を見る。*/
    14651431        if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state))
    14661432                return E_OBJ;
    14671433
    14681434        /*
    1469          *  緊急データå
    1470 ¥ã‚Šã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã® TCP ヘッダが
    1471          *  設定されていなければ、緊急データを受信していない。
     1435         *  緊急データ入りのセグメントの TCP ヘッダが
     1436         *  設定されていなければ、緊急データを受信していない。
    14721437         */
    14731438        if (cep->urg_tcph == NULL)
    14741439                return E_OBJ;
    14751440
    1476         /* len == 0 ならバッファオーバーフロー */
     1441        /* len == 0 ならバッファオーバーフロー */
    14771442        if (len == 0)
    14781443                return E_BOVR;
    14791444
    1480         /* 緊急ポインタが指す 1 オクテットのデータを読み取る。*/
     1445        /* 緊急ポインタが指す 1 オクテットのデータを読み取る。*/
    14811446        urg = (uint8_t*)cep->urg_tcph + TCP_DATA_OFF(cep->urg_tcph->doff) + cep->urg_tcph->urp + TCP_CFG_URG_OFFSET;
    14821447        *(uint8_t*)data = *urg;
    14831448
    1484         /* 読み取ったデータから後ろの SDU を前に詰める。*/
     1449        /* 読み取ったデータから後ろの SDU を前に詰める。*/
    14851450        memcpy(urg, urg + 1, cep->urg_tcph->sum - (cep->urg_tcph->urp + TCP_CFG_URG_OFFSET) - 1);
    14861451
    1487         /* tcp_rcv_oob() が呼出されたこと知らせるために、NULL を設定する。*/
     1452        /* tcp_rcv_oob() が呼出されたこと知らせるために、NULL を設定する。*/
    14881453        cep->urg_tcph = NULL;
    14891454
     
    15001465
    15011466/*
    1502  *  tcp_del_rep -- TCP 受付口の削除【拡張機能】
     1467 *  tcp_del_rep -- TCP 受付口の削除【拡張機能】
    15031468 */
    15041469
     
    15121477
    15131478        /*
    1514          *  TCP 受付口 ID をチェックする。
    1515          *  IPv6 用 TCP 受付口であれば、
    1516          *  IPv6 用の「TCP 受付口の削除関数(本体)」を呼出す。
     1479         *  TCP 受付口 ID をチェックする。
     1480         *  IPv6 用 TCP 受付口であれば、
     1481         *  IPv6 用の「TCP 受付口の削除関数(本体)」を呼出す。
    15171482         */
    15181483        //NET_DEBUG_TCP3("tcp_del_rep1[r=%d,n=%d,x=%d]\n",
     
    15241489
    15251490        /*
    1526          *  TCP 受付口 ID をチェックする。
    1527          *  IPv4 用 TCP 受付口であれば、
    1528          *  IPv4 用の「TCP 受付口の削除関数(本体)」を呼出す。
     1491         *  TCP 受付口 ID をチェックする。
     1492         *  IPv4 用 TCP 受付口であれば、
     1493         *  IPv4 用の「TCP 受付口の削除関数(本体)」を呼出す。
    15291494         */
    15301495        else if (VALID_TCP4_REPID(repid))
     
    15411506{
    15421507
    1543         /* TCP 受付口 ID をチェックする。*/
     1508        /* TCP 受付口 ID をチェックする。*/
    15441509        if (VALID_TCP6_REPID(repid))
    15451510                return tcp6_del_rep_body(repid);
     
    15571522{
    15581523
    1559         /* TCP 受付口 ID をチェックする。*/
     1524        /* TCP 受付口 ID をチェックする。*/
    15601525        if (VALID_TCP4_REPID(repid))
    15611526                return tcp4_del_rep_body(repid);
     
    15701535
    15711536/*
    1572  *  tcp_set_opt -- TCP 通信端点オプションの設定【拡張機能】
     1537 *  tcp_set_opt -- TCP 通信端点オプションの設定【拡張機能】
    15731538 *
    1574  *  注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。
     1539 *  注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。
    15751540 */
    15761541
     
    15821547        T_TCP_CEP       *cep;
    15831548
    1584         /* TCP 通信端点 ID をチェックする。*/
     1549        /* TCP 通信端点 ID をチェックする。*/
    15851550        if (!VALID_TCP_CEPID(cepid))
    15861551                return E_ID;
    15871552
    1588         /* TCP 通信端点を得る。*/
     1553        /* TCP 通信端点を得る。*/
    15891554        cep = GET_TCP_CEP(cepid);
    15901555
    1591         /* TCP 通信端点をチェックする。*/
     1556        /* TCP 通信端点をチェックする。*/
    15921557        if (!VALID_TCP_CEP(cep))
    15931558                return E_NOEXS;
     
    15991564
    16001565/*
    1601  *  tcp_get_opt -- TCP 通信端点オプションの設定【拡張機能】
     1566 *  tcp_get_opt -- TCP 通信端点オプションの設定【拡張機能】
    16021567 *
    1603  *  注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。
     1568 *  注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。
    16041569 */
    16051570
     
    16111576        T_TCP_CEP       *cep;
    16121577
    1613         /* TCP 通信端点 ID をチェックする。*/
     1578        /* TCP 通信端点 ID をチェックする。*/
    16141579        if (!VALID_TCP_CEPID(cepid))
    16151580                return E_ID;
    16161581
    1617         /* TCP 通信端点を得る。*/
     1582        /* TCP 通信端点を得る。*/
    16181583        cep = GET_TCP_CEP(cepid);
    16191584
    1620         /* TCP 通信端点をチェックする。*/
     1585        /* TCP 通信端点をチェックする。*/
    16211586        if (!VALID_TCP_CEP(cep))
    16221587                return E_NOEXS;
Note: See TracChangeset for help on using the changeset viewer.