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/udpn_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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    8371
    8472/*
    85  *  udp_send_data -- パケット送信の主要部
     73 *  udp_send_data -- パケット送信の主要部
    8674 */
    8775
     
    10189        NET_COUNT_UDP(net_count_udp.out_packets, 1);
    10290
    103         /* IP データグラム割り当ての時間を tmout から減ずる。*/
     91        /* IP データグラム割り当ての時間を tmout から減ずる。*/
    10492        if (!(tmout == TMO_POL || tmout == TMO_FEVR))
    10593                syscall(get_tim(&before));
    10694
    107         /* IP データグラムを割り当てる。*/
     95        /* IP データグラムを割り当てる。*/
    10896        if ((error = IN_GET_DATAGRAM(&output, (uint_t)(UDP_HDR_SIZE + len), 0,
    10997                                     &p_dstaddr->ipaddr,
     
    113101                goto err_ret;
    114102
    115         /* IP データグラム割り当ての時間を tmout から減ずる。*/
     103        /* IP データグラム割り当ての時間を tmout から減ずる。*/
    116104        if (!(tmout == TMO_POL || tmout == TMO_FEVR)) {
    117105                syscall(get_tim(&after));
     
    124112                }
    125113
    126         /* UDP ヘッダにæƒ
    127 å ±ã‚’設定する。*/
     114        /* UDP ヘッダに情報を設定する。*/
    128115        udph            = GET_UDP_HDR(output, IF_IP_UDP_HDR_OFFSET(output));
    129116        udph->sport     = htons(cep->myaddr.portno);
     
    132119        udph->sum       = 0;
    133120
    134         /* データをコピーする。*/
     121        /* データをコピーする。*/
    135122        memcpy((void*)GET_UDP_SDU(output, IF_IP_UDP_HDR_OFFSET(output)), data, (size_t)len);
    136123
     
    139126        sum = IN_CKSUM(output, IPPROTO_UDP, IF_IP_UDP_HDR_OFFSET(output), (uint_t)(UDP_HDR_SIZE + len));
    140127
    141         /* 計算したチェックサムの値が 0 なら 0xffff をå
    142 ¥ã‚Œã‚‹ã€‚*/
     128        /* 計算したチェックサムの値が 0 なら 0xffff を入れる。*/
    143129        if (sum == 0)
    144130                sum = 0xffff;
     
    147133#endif  /* of #ifdef UDP_CFG_OUT_CHECKSUM */
    148134
    149         /* ネットワークバッファ長を調整する。*/
     135        /* ネットワークバッファ長を調整する。*/
    150136        output->len = (uint16_t)(IF_IP_UDP_HDR_SIZE(output) + len);
    151137
    152         /* ネットワーク層 (IP) の出力関数を呼び出す。*/
     138        /* ネットワーク層 (IP) の出力関数を呼び出す。*/
    153139        if ((error = IP_OUTPUT(output, tmout)) == E_OK) {
    154140                NET_COUNT_MIB(udp_stats.udpOutDatagrams, 1);
     
    166152
    167153/*
    168  *  udp_cancel_cep -- ペンディングしている処理をキャンセルする。
    169  *
    170  *    udp_can_cep から呼出されるメイン関数
     154 *  udp_cancel_cep -- ペンディングしている処理をキャンセルする。
     155 *
     156 *    udp_can_cep から呼出されるメイン関数
    171157 */
    172158
     
    178164        ER      error = E_OK, snd_err, rcv_err;
    179165
    180         /* UDP 通信端点をチェックする。*/
     166        /* UDP 通信端点をチェックする。*/
    181167        if (!VALID_UDP_CEP(cep))
    182168                return E_NOEXS;
    183169
    184         /* API 機能コードをチェックする。*/
     170        /* API 機能コードをチェックする。*/
    185171        if (!VALID_TFN_UDP_CAN(fncd))
    186172                return E_PAR;
    187173
    188         /* 通信端点をロックする。*/
     174        /* 通信端点をロックする。*/
    189175        syscall(wai_sem(cep->semid_lock));
    190176
    191         if (fncd == TFN_UDP_ALL) {      /* TFN_UDP_ALL の処理 */
     177        if (fncd == TFN_UDP_ALL) {      /* TFN_UDP_ALL の処理 */
    192178
    193179                snd_err = UDP_CAN_SND(cep, E_RLWAI);
     
    195181
    196182                /*
    197                  *  snd_err と rcv_err のどちらも EV_NOPND
    198                  *  なら、ペンディングしていないのでエラー
     183                 *  snd_err と rcv_err のどちらも EV_NOPND
     184                 *  なら、ペンディングしていないのでエラー
    199185                 */
    200186                if (snd_err == EV_NOPND && rcv_err == EV_NOPND)
     
    212198                        }
    213199                }
    214         else if (fncd == TFN_UDP_SND_DAT) {     /* 送信処理のキャンセル */
     200        else if (fncd == TFN_UDP_SND_DAT) {     /* 送信処理のキャンセル */
    215201                if ((error = UDP_CAN_SND(cep, E_RLWAI)) == EV_NOPND)
    216202                        error = E_OBJ;
    217203                }
    218         else if (fncd == TFN_UDP_RCV_DAT) {     /* 受信処理のキャンセル */
     204        else if (fncd == TFN_UDP_RCV_DAT) {     /* 受信処理のキャンセル */
    219205                if ((error = UDP_CAN_RCV(cep, E_RLWAI)) == EV_NOPND)
    220206                        error = E_OBJ;
     
    223209                error = E_PAR;
    224210
    225         /* 通信端点をロックを解除する。*/
     211        /* 通信端点をロックを解除する。*/
    226212        syscall(sig_sem(cep->semid_lock));
    227213
     
    236222
    237223/*
    238  *  udp_can_cep -- ペンディングしている処理のキャンセル【標準機能】
     224 *  udp_can_cep -- ペンディングしている処理のキャンセル【標準機能】
    239225 */
    240226
     
    246232        T_UDP_CEP       *cep;
    247233
    248         /* UDP 通信端点 ID をチェックする。*/
     234        /* UDP 通信端点 ID をチェックする。*/
    249235        if (!VALID_UDP_CEPID(cepid))
    250236                return E_ID;
    251237
    252         /* UDP 通信端点を得る。*/
     238        /* UDP 通信端点を得る。*/
    253239        cep = GET_UDP_CEP(cepid);
    254240
    255         /* メイン関数を呼び出す。*/
     241        /* メイン関数を呼び出す。*/
    256242        return UDP_CANCEL_CEP(cep, fncd);
    257243        }
     
    264250
    265251/*
    266  *  udp_cre_cep -- UDP 通信端点の生成【拡張機能】
     252 *  udp_cre_cep -- UDP 通信端点の生成【拡張機能】
    267253 */
    268254
     
    275261        ER              error;
    276262
    277         /* UDP 通信端点 ID をチェックする。*/
     263        /* UDP 通信端点 ID をチェックする。*/
    278264        if (!VALID_UDP_CEPID(cepid))
    279265                return E_ID;
    280266
    281         /* pk_ccep が NULL ならエラー */
     267        /* pk_ccep が NULL ならエラー */
    282268        if (pk_ccep == NULL)
    283269                return E_PAR;
     
    286272
    287273        /*
    288          * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、
    289          * IPv4 射影アドレスが指定されたらエラー
     274         * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、
     275         * IPv4 射影アドレスが指定されたらエラー
    290276         */
    291277        if (in6_is_addr_ipv4mapped(&pk_ccep->myaddr.ipaddr))
     
    294280#endif  /* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */
    295281
    296         /* UDP 通信端点を得る。*/
     282        /* UDP 通信端点を得る。*/
    297283        cep = GET_UDP_CEP(cepid);
    298284
    299         /* UDP 通信端点をチェックする。*/
     285        /* UDP 通信端点をチェックする。*/
    300286        if (VALID_UDP_CEP(cep))
    301287                return E_OBJ;
    302288
    303         /* UDP 通信端点が、動的生成用でなければエラー */
     289        /* UDP 通信端点が、動的生成用でなければエラー */
    304290        if (!DYNAMIC_UDP_CEP(cep))
    305291                return E_ID;
    306292
    307         /* 通信端点をロックする。*/
     293        /* 通信端点をロックする。*/
    308294        syscall(wai_sem(cep->semid_lock));
    309295
    310296        /*
    311          * UDP 通信端点をチェックする。生成済みであればエラー
     297         * UDP 通信端点をチェックする。生成済みであればエラー
    312298         */
    313299        if (VALID_UDP_CEP(cep))
     
    316302
    317303                /*
    318                  *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
     304                 *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
    319305                 */
    320306                if (pk_ccep->myaddr.portno == UDP_PORTANY)
     
    324310
    325311                        if (error == E_OK) {
    326                                 /* UDP 通信端点生成æƒ
    327 å ±ã‚’コピーする。*/
    328                                 cep->cepatr        = pk_ccep->cepatr;                   /* 通信端点属性           */
    329                                 cep->myaddr.ipaddr = pk_ccep->myaddr.ipaddr;            /* 自分のアドレス        */
    330                                 cep->callback      = (void*)pk_ccep->callback;          /* コールバック           */
    331 
    332                                 /* UDP 通信端点を生成済みにする。*/
     312                                /* UDP 通信端点生成情報をコピーする。*/
     313                                cep->cepatr        = pk_ccep->cepatr;                   /* 通信端点属性               */
     314                                cep->myaddr.ipaddr = pk_ccep->myaddr.ipaddr;            /* 自分のアドレス      */
     315                                cep->callback      = (void*)pk_ccep->callback;          /* コールバック               */
     316
     317                                /* UDP 通信端点を生成済みにする。*/
    333318                                cep->flags |= UDP_CEP_FLG_VALID;
    334319                                }
    335320                        }
    336321
    337         /* 通信端点のロックを解除する。*/
     322        /* 通信端点のロックを解除する。*/
    338323        syscall(sig_sem(cep->semid_lock));
    339324
     
    346331
    347332/*
    348  *  udp_delete_cep -- UDP 通信端点を削除する。
    349  *
    350  *    udp_del_cep から呼出されるメイン関数
     333 *  udp_delete_cep -- UDP 通信端点を削除する。
     334 *
     335 *    udp_del_cep から呼出されるメイン関数
    351336 */
    352337
     
    356341        ER      error;
    357342
    358         /* UDP 通信端点をチェックする。*/
     343        /* UDP 通信端点をチェックする。*/
    359344        if (!VALID_UDP_CEP(cep))
    360345                return E_NOEXS;
    361346
    362         /* UDP 通信端点が、動的生成用でなければエラー */
     347        /* UDP 通信端点が、動的生成用でなければエラー */
    363348        if (!DYNAMIC_UDP_CEP(cep))
    364349                return E_ID;
    365350
    366         /* 通信端点をロックする。*/
     351        /* 通信端点をロックする。*/
    367352        syscall(wai_sem(cep->semid_lock));
    368353
    369354        /*
    370          * UDP 通信端点をチェックする。未生成の場合はエラー
    371          * ・未生成。
     355         * UDP 通信端点をチェックする。未生成の場合はエラー
     356         * ・未生成。
    372357         */
    373358        if (!VALID_UDP_CEP(cep))
     
    377362                UDP_CAN_RCV(cep, E_DLT);
    378363
    379                 /* UDP 通信端点を未生成にする。*/
     364                /* UDP 通信端点を未生成にする。*/
    380365                cep->flags &= ~UDP_CEP_FLG_VALID;
    381366                error = E_OK;
    382367                }
    383368
    384         /* 通信端点のロックを解除する。*/
     369        /* 通信端点のロックを解除する。*/
    385370        syscall(sig_sem(cep->semid_lock));
    386371
     
    389374
    390375/*
    391  *  udp_del_cep -- UDP 通信端点の削除【拡張機能】
     376 *  udp_del_cep -- UDP 通信端点の削除【拡張機能】
    392377 */
    393378
     
    397382        T_UDP_CEP       *cep;
    398383
    399         /* UDP 通信端点 ID をチェックする。*/
     384        /* UDP 通信端点 ID をチェックする。*/
    400385        if (!VALID_UDP_CEPID(cepid))
    401386                return E_ID;
    402387
    403         /* UDP 通信端点を得る。*/
     388        /* UDP 通信端点を得る。*/
    404389        cep = GET_UDP_CEP(cepid);
    405390
    406         /* メイン関数を呼び出す。*/
     391        /* メイン関数を呼び出す。*/
    407392        return UDP_DELETE_CEP(cep);
    408393        }
     
    413398
    414399/*
    415  *  udp_set_option -- UDP 通信端点オプションを設定する。
    416  *
    417  *    udp_set_opt から呼出されるメイン関数
     400 *  udp_set_option -- UDP 通信端点オプションを設定する。
     401 *
     402 *    udp_set_opt から呼出されるメイン関数
    418403 */
    419404
     
    421406UDP_SET_OPTION (T_UDP_CEP *cep, int_t optname, void *optval, int_t optlen)
    422407{
    423         /* UDP 通信端点をチェックする。*/
     408        /* UDP 通信端点をチェックする。*/
    424409        if (!VALID_UDP_CEP(cep))
    425410                return E_NOEXS;
     
    463448
    464449/*
    465  *  udp_set_opt -- UDP 通信端点オプションの設定【拡張機能】
    466  *
    467  *  注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。
     450 *  udp_set_opt -- UDP 通信端点オプションの設定【拡張機能】
     451 *
     452 *  注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。
    468453 */
    469454
     
    473458        T_UDP_CEP       *cep;
    474459
    475         /* UDP 通信端点 ID をチェックする。*/
     460        /* UDP 通信端点 ID をチェックする。*/
    476461        if (!VALID_UDP_CEPID(cepid))
    477462                return E_ID;
    478463
    479         /* UDP 通信端点を得る。*/
     464        /* UDP 通信端点を得る。*/
    480465        cep = GET_UDP_CEP(cepid);
    481466
    482         /* メイン関数を呼び出す。*/
     467        /* メイン関数を呼び出す。*/
    483468        return UDP_SET_OPTION(cep, optname, optval, optlen);
    484469        }
     
    489474
    490475/*
    491  *  udp_get_option -- UDP 通信端点オプションを獲得する。
    492  *
    493  *    udp_get_opt から呼出されるメイン関数
     476 *  udp_get_option -- UDP 通信端点オプションを獲得する。
     477 *
     478 *    udp_get_opt から呼出されるメイン関数
    494479 */
    495480
     
    497482UDP_GET_OPTION (T_UDP_CEP *cep, int_t optname, void *optval, int_t optlen)
    498483{
    499         /* UDP 通信端点をチェックする。*/
     484        /* UDP 通信端点をチェックする。*/
    500485        if (!VALID_UDP_CEP(cep))
    501486                return E_NOEXS;
     
    529514
    530515/*
    531  *  udp_get_opt -- UDP 通信端点オプションの獲得【拡張機能】
    532  *
    533  *  注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。
     516 *  udp_get_opt -- UDP 通信端点オプションの獲得【拡張機能】
     517 *
     518 *  注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。
    534519 */
    535520
     
    539524        T_UDP_CEP       *cep;
    540525
    541         /* UDP 通信端点 ID をチェックする。*/
     526        /* UDP 通信端点 ID をチェックする。*/
    542527        if (!VALID_UDP_CEPID(cepid))
    543528                return E_ID;
    544529
    545         /* UDP 通信端点を得る。*/
     530        /* UDP 通信端点を得る。*/
    546531        cep = GET_UDP_CEP(cepid);
    547532
    548         /* メイン関数を呼び出す。*/
     533        /* メイン関数を呼び出す。*/
    549534        return UDP_GET_OPTION(cep, optname, optval, optlen);
    550535        }
     
    561546
    562547/*
    563  *  udp_can_snd -- ペンディングしている送信のキャンセル
     548 *  udp_can_snd -- ペンディングしている送信のキャンセル
    564549 */
    565550
     
    567552UDP_CAN_SND (T_UDP_CEP *cep, ER error)
    568553{
    569         if (cep->snd_tskid != TA_NULL) {        /* 非ノンブロッキングコールでペンディング中 */
     554        if (cep->snd_tskid != TA_NULL) {        /* 非ノンブロッキングコールでペンディング中 */
    570555
    571556#ifdef UDP_CFG_EXTENTIONS
    572557
    573                 /* å¾
    574 ã¡ä¸­ã«ç™ºç”Ÿã—たエラーæƒ
    575 å ±ã‚’設定する。*/
     558                /* 待ち中に発生したエラー情報を設定する。*/
    576559                cep->error = error;
    577560
     
    581564                cep->snd_tskid = TA_NULL;
    582565                }
    583         else                                    /* どちらでもないならペンディングしていない */
     566        else                                    /* どちらでもないならペンディングしていない */
    584567                error = EV_NOPND;
    585568
     
    592575
    593576/*
    594  *  udp_can_rcv -- ペンディングしている受信のキャンセル
     577 *  udp_can_rcv -- ペンディングしている受信のキャンセル
    595578 */
    596579
     
    598581UDP_CAN_RCV (T_UDP_CEP *cep, ER error)
    599582{
    600         if (cep->rcv_tskid != TA_NULL) {        /* 非ノンブロッキングコールでペンディング中 */
     583        if (cep->rcv_tskid != TA_NULL) {        /* 非ノンブロッキングコールでペンディング中 */
    601584
    602585#ifdef UDP_CFG_EXTENTIONS
    603586
    604                 /* å¾
    605 ã¡ä¸­ã«ç™ºç”Ÿã—たエラーæƒ
    606 å ±ã‚’設定する。*/
     587                /* 待ち中に発生したエラー情報を設定する。*/
    607588                cep->error = error;
    608589
     
    612593                cep->rcv_tskid = TA_NULL;
    613594                }
    614         else                                    /* どちらでもないならペンディングしていない */
     595        else                                    /* どちらでもないならペンディングしていない */
    615596                error = EV_NOPND;
    616597
     
    623604
    624605/*
    625  *  udp_snd_dat -- パケットの送信【標準機能】
     606 *  udp_snd_dat -- パケットの送信【標準機能】
    626607 */
    627608
     
    632613        ER              error;
    633614
    634         /* p_dstaddr または data が NULL か、tmout が TMO_NBLK ならエラー */
     615        /* p_dstaddr または data が NULL か、tmout が TMO_NBLK ならエラー */
    635616        if (p_dstaddr == NULL || data == NULL || tmout == TMO_NBLK)
    636617                return E_PAR;
    637618
    638         /* データ長をチェックする。*/
     619        /* データ長をチェックする。*/
    639620        if (len < 0 || len + IP_HDR_SIZE + UDP_HDR_SIZE > IF_MTU)
    640621                return E_PAR;
     
    643624
    644625        /*
    645          * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、
    646          * IPv4 射影アドレスが指定されたらエラー
     626         * API が IPv6 で IPv4 射影アドレスが認められていないのにもかかわらず、
     627         * IPv4 射影アドレスが指定されたらエラー
    647628         */
    648629        if (in6_is_addr_ipv4mapped(&p_dstaddr->ipaddr))
     
    651632#endif  /* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */
    652633
    653         /* UDP 通信端点 ID をチェックする。*/
     634        /* UDP 通信端点 ID をチェックする。*/
    654635        if (!VALID_UDP_CEPID(cepid))
    655636                return E_ID;
    656637
    657         /* UDP 通信端点を得る。*/
     638        /* UDP 通信端点を得る。*/
    658639        cep = GET_UDP_CEP(cepid);
    659640
    660         /* UDP 通信端点をチェックする。*/
     641        /* UDP 通信端点をチェックする。*/
    661642        if (!VALID_UDP_CEP(cep))
    662643                return E_NOEXS;
    663644
    664645        /*
    665          *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
     646         *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
    666647         */
    667648        if (cep->myaddr.portno == UDP_PORTANY) {
     
    670651                }
    671652       
    672         /* 通信端点をロックする。*/
     653        /* 通信端点をロックする。*/
    673654        syscall(wai_sem(cep->semid_lock));
    674655
    675656        if (cep->snd_tskid != TA_NULL) {
    676657
    677                 /* 非ノンブロッキングコールでペンディング中 */
     658                /* 非ノンブロッキングコールでペンディング中 */
    678659                error = E_QOVR;
    679660
    680                 /* 通信端点をロックを解除する。*/
     661                /* 通信端点をロックを解除する。*/
    681662                syscall(sig_sem(cep->semid_lock));
    682663                }
    683664        else {
    684                 /* 現在のタスク識別子を記録する。*/
     665                /* 現在のタスク識別子を記録する。*/
    685666                get_tid(&(cep->snd_tskid));
    686667
    687668#ifdef UDP_CFG_EXTENTIONS
    688669
    689                 /* å¾
    690 ã¡ä¸­ã«ç™ºç”Ÿã—たエラーæƒ
    691 å ±ã‚’リセットする。*/
     670                /* 待ち中に発生したエラー情報をリセットする。*/
    692671                cep->error = E_OK;
    693672
    694673#endif  /* of #ifdef UDP_CFG_EXTENTIONS */
    695674
    696                 /* 通信端点をロックを解除する。*/
     675                /* 通信端点をロックを解除する。*/
    697676                syscall(sig_sem(cep->semid_lock));
    698677
    699                 /* パケットを送信する。*/
     678                /* パケットを送信する。*/
    700679                error = UDP_SEND_DATA(cep, p_dstaddr, data, len, tmout);
    701680
    702681#ifdef UDP_CFG_EXTENTIONS
    703682
    704                 /* å¾
    705 ã¡ä¸­ã«ç™ºç”Ÿã—たエラーæƒ
    706 å ±ã‚’返す。*/
     683                /* 待ち中に発生したエラー情報を返す。*/
    707684                if (error == E_RLWAI)
    708685                        error = cep->error;
     
    719696
    720697/*
    721  *  udp_rcv_dat -- パケットの受信【標準機能】
     698 *  udp_rcv_dat -- パケットの受信【標準機能】
    722699 */
    723700
     
    731708        uint_t          ulen, uhoff;
    732709
    733         /* p_dstaddr または data が NULL 、len < 0 か、tmout が TMO_NBLK ならエラー */
     710        /* p_dstaddr または data が NULL 、len < 0 か、tmout が TMO_NBLK ならエラー */
    734711        if (p_dstaddr == NULL || data == NULL || len < 0 || tmout == TMO_NBLK)
    735712                return E_PAR;
    736713
    737         /* UDP 通信端点 ID をチェックする。*/
     714        /* UDP 通信端点 ID をチェックする。*/
    738715        if (!VALID_UDP_CEPID(cepid))
    739716                return E_ID;
    740717
    741         /* UDP 通信端点を得る。*/
     718        /* UDP 通信端点を得る。*/
    742719        cep = GET_UDP_CEP(cepid);
    743720
    744         /* UDP 通信端点をチェックする。*/
     721        /* UDP 通信端点をチェックする。*/
    745722        if (!VALID_UDP_CEP(cep))
    746723                return E_NOEXS;
    747724
    748         /* 通信端点をロックする。*/
     725        /* 通信端点をロックする。*/
    749726        syscall(wai_sem(cep->semid_lock));
    750727
    751728        if (cep->rcv_tskid != TA_NULL) {
    752729
    753                 /* 非ノンブロッキングコールでペンディング中 */
     730                /* 非ノンブロッキングコールでペンディング中 */
    754731                error = E_QOVR;
    755732
    756                 /* 通信端点をロックを解除する。*/
     733                /* 通信端点をロックを解除する。*/
    757734                syscall(sig_sem(cep->semid_lock));
    758735                }
    759736        else {
    760737
    761                 /* 現在のタスク識別子を記録する。*/
     738                /* 現在のタスク識別子を記録する。*/
    762739                get_tid(&(cep->rcv_tskid));
    763740
    764741#ifdef UDP_CFG_EXTENTIONS
    765742
    766                 /* å¾
    767 ã¡ä¸­ã«ç™ºç”Ÿã—たエラーæƒ
    768 å ±ã‚’リセットする。*/
     743                /* 待ち中に発生したエラー情報をリセットする。*/
    769744                cep->error = E_OK;
    770745
    771746#endif  /* of #ifdef UDP_CFG_EXTENTIONS */
    772747
    773                 /* 通信端点をロックを解除する。*/
     748                /* 通信端点をロックを解除する。*/
    774749                syscall(sig_sem(cep->semid_lock));
    775750
    776                 /* å
    777 ¥åŠ›ãŒã‚るまでå¾
    778 ã¤ã€‚*/
     751                /* 入力があるまで待つ。*/
    779752                if (cep->cb_netbuf != NULL) {
    780753
    781754                        /*
    782                          *  ここにくる場合は、コールバック関数の中から
    783                          *  udp_rcv_dat を呼び出していることになり、
    784                          *  すでにå
    785 ¥åŠ›æ¸ˆã¿ã§ã‚る。
     755                         *  ここにくる場合は、コールバック関数の中から
     756                         *  udp_rcv_dat を呼び出していることになり、
     757                         *  すでに入力済みである。
    786758                         */
    787759                        input = cep->cb_netbuf;
     
    792764#ifdef UDP_CFG_EXTENTIONS
    793765
    794                         /* å¾
    795 ã¡ä¸­ã«ç™ºç”Ÿã—たエラーæƒ
    796 å ±ã‚’返す。*/
     766                        /* 待ち中に発生したエラー情報を返す。*/
    797767                        if (error == E_RLWAI)
    798768                                error = cep->error;
     
    804774                        }
    805775
    806                 /* p_dstaddr を設定する。*/
     776                /* p_dstaddr を設定する。*/
    807777                uhoff = (uint_t)GET_UDP_HDR_OFFSET(input);
    808778                udph = GET_UDP_HDR(input, uhoff);
     
    810780                IN_COPY_TO_HOST(&p_dstaddr->ipaddr, input);
    811781
    812                 /* データをバッファに移す。*/
     782                /* データをバッファに移す。*/
    813783                ulen = ntohs(udph->ulen);
    814784                if (ulen - UDP_HDR_SIZE > len)
Note: See TracChangeset for help on using the changeset viewer.