Changeset 331 for EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.h
- Timestamp:
- Jan 21, 2018, 12:10:09 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.h
r321 r331 2 2 * TINET (TCP/IP Protocol Stack) 3 3 * 4 * Copyright (C) 2001-20 09by Dep. of Computer Science and Engineering4 * Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * … … 98 98 #endif /* of #ifndef IF_ETHER_NIC_HDR_ALIGN */ 99 99 100 #if defined(__RX) 101 102 #pragma pack 103 typedef struct t_ether_header { 104 105 #if IF_ETHER_NIC_HDR_ALIGN != 0 106 107 uint8_t align[IF_ETHER_NIC_HDR_ALIGN]; /* アライン調整 */ 108 109 #endif /* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */ 110 111 uint8_t dhost[ETHER_ADDR_LEN]; 112 uint8_t shost[ETHER_ADDR_LEN]; 113 uint16_t type; 114 } T_ETHER_HDR; 115 #pragma packoption 116 117 #elif defined(TOPPERS_S810_CLG3_85) /* of #if defined(__RX) */ 118 119 typedef struct t_ether_header { 120 121 #if IF_ETHER_NIC_HDR_ALIGN != 0 122 123 uint8_t align[IF_ETHER_NIC_HDR_ALIGN]; /* アライン調整 */ 124 125 #endif /* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */ 126 127 uint8_t dhost[ETHER_ADDR_LEN]; 128 uint8_t shost[ETHER_ADDR_LEN]; 129 uint16_t type; 130 } T_ETHER_HDR; 131 132 #else /* of #if defined(__RX) */ 133 100 134 typedef struct t_ether_header { 101 135 … … 111 145 } __attribute__((packed, aligned(2)))T_ETHER_HDR; 112 146 147 #endif /* of #if defined(__RX) */ 148 113 149 #define GET_ETHER_HDR(nbuf) ((T_ETHER_HDR*)((nbuf)->buf)) 114 150 … … 140 176 #define IF_HDR_ALIGN 2 /* ヘッダのアライン単位 */ 141 177 #define IF_MTU 1500 /* インタフェースの MTU */ 178 #define IF_MIN_LEN ETHER_MIN_LEN /* インターフェースフレームの最短長 */ 142 179 143 180 #define IF_OUTPUT(o,d,g,t) ether_output(o,d,g,t) /* インタフェースの出力関数 */ … … 148 185 /* ソフトウェア情報から MAC アドレスを取り出す */ 149 186 #define IF_GET_IFNET() ether_get_ifnet() /* ネットワークインタフェース構造体を返す。 */ 150 #define IF_TYPE IFT_ETHER /* インターフェースの型 */ 187 #define IF_TYPE IFT_ETHER /* インタフェースの型 */ 188 #define IF_SRAND() ether_srand() /* インタフェースの乱数初期値 */ 151 189 152 190 /* IPv4 関係 */ 153 191 154 #define IF_PROTO_IP ETHER_TYPE_IP /* インタフェースの IP プロトコル指定 */192 #define IF_PROTO_IP ETHER_TYPE_IP /* インタフェースの IPv4 プロトコル指定 */ 155 193 #define IF_PROTO_ARP ETHER_TYPE_ARP /* インタフェースの ARP プロトコル指定 */ 156 194 … … 160 198 #define IF_MADDR_INIT { { { 0, 0, 0, 0, 0, 0 } }, { { 0, 0, 0, 0, 0, 0 } } } 161 199 /* インタフェースのマルチキャストアドレス配列の初期化 */ 162 #define IF_PROTO_IPV6 ETHER_TYPE_IPV6 /* インタフェースの IP プロトコル指定 */200 #define IF_PROTO_IPV6 ETHER_TYPE_IPV6 /* インタフェースの IPv6 プロトコル指定 */ 163 201 #define IF_ADDMULTI(s) IF_ETHER_NIC_ADDMULTI(s) 164 202 /* マルチキャストアドレスの登録 */ … … 215 253 T_IF_ADDR ifaddr; /* ネットワークインタフェースのアドレス */ 216 254 uint16_t timer; /* 送信タイムアウト */ 217 T_IF_ETHER_NIC_SOFTC *sc; /* ディバイス依存のソフトウェア情報 */255 T_IF_ETHER_NIC_SOFTC *sc; /* ディバイス依存のソフトウェア情報 */ 218 256 ID semid_txb_ready; /* 送信セマフォ */ 219 257 ID semid_rxb_ready; /* 受信セマフォ */ 220 258 221 #ifdef SUPPORT_INET6259 #ifdef _IP6_CFG 222 260 223 261 T_IF_ADDR maddrs[MAX_IF_MADDR_CNT]; /* マルチキャストアドレスリスト */ 224 262 225 #endif /* of #ifdef SUPPORT_INET6*/263 #endif /* of #ifdef _IP6_CFG */ 226 264 }; 227 265 … … 231 269 #define IF_FLAG_LINK_UP 0x10U 232 270 233 #ifdef SUPPORT_INET6 271 /* 272 * 変数 273 */ 274 275 #ifdef ETHER_CFG_COLLECT_ADDR 276 277 T_ETHER_ADDR ether_collect_addr; 278 279 #endif /* of #ifdef ETHER_CFG_COLLECT_ADDR */ 280 281 /* 282 * 関数 283 */ 284 285 #ifdef _IP6_CFG 234 286 235 287 /* 前方参照 */ … … 243 295 #endif /* of #ifndef T_IN6_ADDR_DEFINED */ 244 296 245 /* 246 * 関数 247 */ 248 249 extern ER ether_in6_resolve_multicast(T_ETHER_ADDR *ifaddr, T_IN6_ADDR *maddr); 250 251 #endif /* of #ifdef SUPPORT_INET6 */ 252 253 /* 254 * 関数 255 */ 297 extern ER ether_in6_resolve_multicast(T_ETHER_ADDR *ifaddr, const T_IN6_ADDR *maddr); 298 299 #endif /* of #ifdef _IP6_CFG */ 256 300 257 301 extern T_IFNET *ether_get_ifnet (void); 258 extern ER ether_output (T_NET_BUF *data, void *dst, T_IF_ADDR *gw, TMO tmout);302 extern ER ether_output (T_NET_BUF *data, const void *dst, T_IF_ADDR *gw, TMO tmout); 259 303 extern ER ether_raw_output (T_NET_BUF *data, TMO tmout); 304 extern uint32_t ether_srand (void); 260 305 261 306 /** Function prototype for netif status- or link-callback functions. */
Note:
See TracChangeset
for help on using the changeset viewer.