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/net/ethernet.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r388 r389  
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
    7  *  上記著作権è€
    8 ã¯ï¼Œä»¥ä¸‹ã® (1)~(4) の条件か,Free Software Foundation
    9  *  によってå
    10 ¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
    11  *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
    12  *  を改変したものを含む.以下同じ)を使用・複製・改変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
    14  *  利用と呼ぶ)することを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®æ¡ä»¶ã‚’満たすこと.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    33  *      害からも,上記著作権è€
    34 ãŠã‚ˆã³TOPPERSプロジェクトをå
    35 è²¬ã™ã‚‹ã“と.
    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$
     
    8876
    8977/*
    90  *  フィールド長
     78 *  フィールド長
    9179 */
    9280
     
    9684
    9785/*
    98  *  フレーム長 (Ethernet ヘッダと CRC を含む)
     86 *  フレーム長 (Ethernet ヘッダと CRC を含む)
    9987 */
    10088
     
    10391
    10492/*
    105  *  Ethernet ヘッダ
     93 *  Ethernet ヘッダ
    10694 */
    10795
     
    122110#if IF_ETHER_NIC_HDR_ALIGN != 0
    123111
    124         uint8_t         align[IF_ETHER_NIC_HDR_ALIGN];  /* アライン調整 */
     112        uint8_t         align[IF_ETHER_NIC_HDR_ALIGN];  /* アライン調整 */
    125113
    126114#endif  /* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */
     
    137125#if IF_ETHER_NIC_HDR_ALIGN != 0
    138126
    139         uint8_t         align[IF_ETHER_NIC_HDR_ALIGN];  /* アライン調整 */
     127        uint8_t         align[IF_ETHER_NIC_HDR_ALIGN];  /* アライン調整 */
    140128
    141129#endif  /* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */
     
    152140#if IF_ETHER_NIC_HDR_ALIGN != 0
    153141
    154         uint8_t         align[IF_ETHER_NIC_HDR_ALIGN];  /* アライン調整 */
     142        uint8_t         align[IF_ETHER_NIC_HDR_ALIGN];  /* アライン調整 */
    155143
    156144#endif  /* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */
     
    166154
    167155/*
    168  *  MAC アドレスの定義
    169  */
    170 
    171 #define ETHER_MCAST_ADDR        UINT_C(0x01)    /* マルチキャスト・アドレス */
    172 #define ETHER_LOCAL_ADDR        UINT_C(0x02)    /* ローカル・アドレス          */
     156 *  MAC アドレスの定義
     157 */
     158
     159#define ETHER_MCAST_ADDR        UINT_C(0x01)    /* マルチキャスト・アドレス */
     160#define ETHER_LOCAL_ADDR        UINT_C(0x02)    /* ローカル・アドレス            */
    173161
    174162typedef struct t_ether_addr {
     
    183171
    184172/*
    185  *  Type フィールド
     173 *  Type フィールド
    186174 */
    187175
     
    191179
    192180/*
    193  *  インタフェースの選択マクロ
    194  */
    195 
    196 #define T_IF_HDR                T_ETHER_HDR             /* インタフェースのヘッダ                            */
    197 #define T_IF_ADDR               T_ETHER_ADDR            /* インタフェースのアドレス                 */
    198 #define IF_HDR_ALIGN            2                       /* ヘッダのアライン単位                               */
    199 #define IF_MTU                  1500                    /* インタフェースの MTU                         */
    200 #define IF_MIN_LEN              ETHER_MIN_LEN           /* インターフェースフレームの最短長             */
    201 
    202 #define IF_OUTPUT(o,d,g,t)      ether_output(o,d,g,t)   /* インタフェースの出力関数                 */
    203 #define IF_RAW_OUTPUT(o,t)      ether_raw_output(o,t)   /* インタフェースの出力関数、アドレス解決無し      */
     181 *  インタフェースの選択マクロ
     182 */
     183
     184#define T_IF_HDR                T_ETHER_HDR             /* インタフェースのヘッダ                          */
     185#define T_IF_ADDR               T_ETHER_ADDR            /* インタフェースのアドレス                 */
     186#define IF_HDR_ALIGN            2                       /* ヘッダのアライン単位                           */
     187#define IF_MTU                  1500                    /* インタフェースの MTU                         */
     188#define IF_MIN_LEN              ETHER_MIN_LEN           /* インターフェースフレームの最短長             */
     189
     190#define IF_OUTPUT(o,d,g,t)      ether_output(o,d,g,t)   /* インタフェースの出力関数                 */
     191#define IF_RAW_OUTPUT(o,t)      ether_raw_output(o,t)   /* インタフェースの出力関数、アドレス解決無し        */
    204192#define IF_SET_PROTO(b,p)       (GET_ETHER_HDR(b)->type = htons(p))
    205                                                         /* インタフェースのプロトコル設定関数          */
     193                                                        /* インタフェースのプロトコル設定関数            */
    206194#define IF_SOFTC_TO_IFADDR(s)   ((T_IF_ADDR*)(s)->ifaddr.lladdr)
    207                                                         /* ソフトウェアæƒ
    208 å ±ã‹ã‚‰ MAC アドレスを取り出す       */
    209 #define IF_GET_IFNET()          ether_get_ifnet()       /* ネットワークインタフェース構造体を返す。         */
    210 #define IF_TYPE                 IFT_ETHER               /* インタフェースの型                          */
    211 #define IF_SRAND()              ether_srand()   /* インタフェースの乱数初期値                      */
    212 
    213 /* IPv4 関係 */
    214 
    215 #define IF_PROTO_IP             ETHER_TYPE_IP           /* インタフェースの IPv4 プロトコル指定          */
    216 #define IF_PROTO_ARP            ETHER_TYPE_ARP          /* インタフェースの ARP プロトコル指定           */
    217 
    218 /* IPv6 関係 */
    219 
    220 #define MAX_IF_MADDR_CNT        2                       /* インタフェースのマルチキャストアドレスé
    221 åˆ—の最大サイズ  */
     195                                                        /* ソフトウェア情報から MAC アドレスを取り出す     */
     196#define IF_GET_IFNET()          ether_get_ifnet()       /* ネットワークインタフェース構造体を返す。         */
     197#define IF_TYPE                 IFT_ETHER               /* インタフェースの型                            */
     198#define IF_SRAND()              ether_srand()   /* インタフェースの乱数初期値                        */
     199
     200/* IPv4 関係 */
     201
     202#define IF_PROTO_IP             ETHER_TYPE_IP           /* インタフェースの IPv4 プロトコル指定                */
     203#define IF_PROTO_ARP            ETHER_TYPE_ARP          /* インタフェースの ARP プロトコル指定         */
     204
     205/* IPv6 関係 */
     206
     207#define MAX_IF_MADDR_CNT        2                       /* インタフェースのマルチキャストアドレス配列の最大サイズ  */
    222208#define IF_MADDR_INIT           { { { 0, 0, 0, 0, 0, 0 } }, { { 0, 0, 0, 0, 0, 0 } } }
    223                                                         /* インタフェースのマルチキャストアドレスé
    224 åˆ—の初期化        */
    225 #define IF_PROTO_IPV6           ETHER_TYPE_IPV6         /* インタフェースの IPv6 プロトコル指定                  */
     209                                                        /* インタフェースのマルチキャストアドレス配列の初期化    */
     210#define IF_PROTO_IPV6           ETHER_TYPE_IPV6         /* インタフェースの IPv6 プロトコル指定                        */
    226211#define IF_ADDMULTI(s)          IF_ETHER_NIC_ADDMULTI(s)
    227                                                         /* マルチキャストアドレスの登録                           */
    228 #define IF_IN6_NEED_CACHE(i)    (true)                  /* 近隣探索キャッシュを使用する。                                */
     212                                                        /* マルチキャストアドレスの登録                               */
     213#define IF_IN6_NEED_CACHE(i)    (true)                  /* 近隣探索キャッシュを使用する。                              */
    229214#define IF_IN6_IFID(i,a)        IF_ETHER_NIC_IN6_IFID(i,a)
    230                                                         /* インタフェース識別子の設定                              */
     215                                                        /* インタフェース識別子の設定                                */
    231216#define IF_IN6_RESOLVE_MULTICAST(i,m)   \
    232217                                ether_in6_resolve_multicast(i,m)
    233                                                         /* インタフェースのマルチキャストアドレスへの変換                */
     218                                                        /* インタフェースのマルチキャストアドレスへの変換              */
    234219
    235220#define IF_FLAG_UP                              0x01U
     
    237222
    238223/*
    239  *  前方参ç
    240 §
     224 *  前方参照
    241225 */
    242226
     
    274258
    275259/*
    276  *  ネットワークインタフェースに依存しないソフトウェアæƒ
    277 å ±
     260 *  ネットワークインタフェースに依存しないソフトウェア情報
    278261 */
    279262
     
    281264
    282265struct t_if_softc {
    283         T_IF_ADDR               ifaddr;                 /* ネットワークインタフェースのアドレス       */
    284         uint16_t                timer;                  /* 送信タイムアウト                     */
    285         T_IF_ETHER_NIC_SOFTC    *sc;                    /* ディバイス依存のソフトウェアæƒ
    286 å ±     */
    287         ID                      semid_txb_ready;        /* 送信セマフォ                           */
    288         ID                      semid_rxb_ready;        /* 受信セマフォ                           */
     266        T_IF_ADDR               ifaddr;                 /* ネットワークインタフェースのアドレス   */
     267        uint16_t                timer;                  /* 送信タイムアウト                     */
     268        T_IF_ETHER_NIC_SOFTC    *sc;                    /* ディバイス依存のソフトウェア情報     */
     269        ID                      semid_txb_ready;        /* 送信セマフォ                               */
     270        ID                      semid_rxb_ready;        /* 受信セマフォ                               */
    289271
    290272#ifdef _IP6_CFG
    291273
    292         T_IF_ADDR       maddrs[MAX_IF_MADDR_CNT];       /* マルチキャストアドレスリスト   */
     274        T_IF_ADDR       maddrs[MAX_IF_MADDR_CNT];       /* マルチキャストアドレスリスト       */
    293275
    294276#endif  /* of #ifdef _IP6_CFG */
     
    298280
    299281/*
    300  *  変数
     282 *  変数
    301283 */
    302284
     
    308290
    309291/*
    310  *  関数
     292 *  関数
    311293 */
    312294
    313295#ifdef _IP6_CFG
    314296
    315 /* 前方参ç
    316 § */
     297/* 前方参照 */
    317298
    318299#ifndef T_IN6_ADDR_DEFINED
Note: See TracChangeset for help on using the changeset viewer.