Index: EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.h
===================================================================
--- EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.h	(revision 321)
+++ EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.h	(revision 331)
@@ -2,5 +2,5 @@
  *  TINET (TCP/IP Protocol Stack)
  * 
- *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
  *                   Tomakomai National College of Technology, JAPAN
  *
@@ -69,124 +69,4 @@
 
 /*
- *  バイトオーダの定義
- */
-
-#define _NET_CFG_LITTLE_ENDIAN	1234
-#define _NET_CFG_BIG_ENDIAN	4321
-
-#ifdef TARGET_KERNEL_ASP
-
-#if defined(SIL_ENDIAN_LITTLE)
-
-#define _NET_CFG_BYTE_ORDER	_NET_CFG_LITTLE_ENDIAN
-
-#elif defined(SIL_ENDIAN_BIG)
-
-#define _NET_CFG_BYTE_ORDER	_NET_CFG_BIG_ENDIAN
-
-#else	/* of #if defined(SIL_ENDIAN_BIG) */
-
-#error "SIL_ENDIAN expected."
-
-#endif	/* of #if defined(SIL_ENDIAN_BIG) */
-
-#endif	/* of #ifdef TARGET_KERNEL_ASP */
-
-#ifdef TARGET_KERNEL_JSP
-
-#if SIL_ENDIAN == SIL_ENDIAN_LITTLE
-
-#define _NET_CFG_BYTE_ORDER	_NET_CFG_LITTLE_ENDIAN
-
-#elif SIL_ENDIAN == SIL_ENDIAN_BIG	/* of #if SIL_ENDIAN == SIL_ENDIAN_LITTLE */
-
-#define _NET_CFG_BYTE_ORDER	_NET_CFG_BIG_ENDIAN
-
-#else	/* of #if SIL_ENDIAN == SIL_ENDIAN_LITTLE */
-
-#error "SIL_ENDIAN expected."
-
-#endif	/* of #if SIL_ENDIAN == SIL_ENDIAN_LITTLE */
-
-#endif	/* of #ifdef TARGET_KERNEL_JSP */
-
-/*
- *  バイトオーダ変換の定義
- */
-
-#if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
-
-#define ntohs(n)		((uint16_t)n)
-#define htons(h)		((uint16_t)h)
-#define ntohl(n)		((uint32_t)n)
-#define htonl(h)		((uint32_t)h)
-
-#define NTOHS(n)
-#define HTONS(h)
-#define NTOHL(n)
-#define HTONL(h)
-
-/*
- *  注意: IPヘッダ以降は、4 バイト境界にアラインされている事を
- *        前提としているが、4 バイト境界でアクセスする
- *        プロセッサで、ネットワーク側のデータが、4 バイト境界にアライン
- *        されていない場合は、ntoahl、ahtonl、nahcmpl を使用すること。
- */
-
-#define ntoahl(h,n)		memcpy((uint8_t*)&(h),(n),4)
-#define ahtonl(n,h)		memcpy((n),(uint8_t*)&(h),4)
-
-#define nahcmpl(n,h)		memcmp((n),(uint8_t*)&(h),4)
-
-#elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
-
-#ifndef NET_REV_ENDIAN_HWORD
-
-#define NET_REV_ENDIAN_HWORD(d)	((uint16_t)((((uint16_t)(d)&0xff)<<8)|(((uint16_t)(d)>>8)&0xff)))
-
-#endif	/* of #ifndef NET_REV_ENDIAN_HWORD */
-
-#ifndef NET_REV_ENDIAN_WORD
-
-#define NET_REV_ENDIAN_WORD(d)	((uint32_t)((((uint32_t)(d)&0xff)<<24)|(((uint32_t)(d)&0xff00)<<8)| \
-				            (((uint32_t)(d)>>8)&0xff00)|(((uint32_t)(d)>>24)&0xff)))
-
-#endif	/* of #ifndef NET_REV_ENDIAN_WORD */
-
-#define ntohs(n)		NET_REV_ENDIAN_HWORD(n)
-#define htons(h)		NET_REV_ENDIAN_HWORD(h)
-#define ntohl(n)		NET_REV_ENDIAN_WORD(n)
-#define htonl(h)		NET_REV_ENDIAN_WORD(h)
-
-#define NTOHS(n)		((n)=NET_REV_ENDIAN_HWORD(n))
-#define HTONS(h)		((h)=NET_REV_ENDIAN_HWORD(h))
-#define NTOHL(n)		((n)=NET_REV_ENDIAN_WORD(n))
-#define HTONL(h)		((h)=NET_REV_ENDIAN_WORD(h))
-
-/*
- *  注意: IPヘッダ以降は、4 バイト境界にアラインされている事を
- *        前提としているが、4 バイト境界でアクセスする
- *        プロセッサで、ネットワーク側のデータが、4 バイト境界にアライン
- *        されていない場合は、ntoahl、ahtonl、nahcmpl を使用すること。
- */
-
-#ifndef _MACRO_ONLY
-
-extern void rev_memcpy_word (uint8_t *dst, uint8_t *src);
-extern int  rev_memcmp_word (uint8_t *data1, uint8_t *data2);
-
-#endif	/* of #ifndef _MACRO_ONLY */
-
-#define ntoahl(h,n)		rev_memcpy_word((uint8_t*)&(h),(n))
-#define ahtonl(n,h)		rev_memcpy_word((n),(uint8_t*)&(h))
-#define nahcmpl(n,h)		rev_memcmp_word((n),(uint8_t*)&(h))
-
-#else	/* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
-
-#error "_NET_CFG_BYTE_ORDER expected."
-
-#endif	/* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
-
-/*
  *  プロトコルを識別するフラグに関する定義
  *
@@ -199,8 +79,9 @@
 #define PROTO_FLG_PPP_LCP	ULONG_C(0x00000008)	/* ppp_lcp.c	*/
 #define PROTO_FLG_PPP_IPCP	ULONG_C(0x00000010)	/* ppp_ipcp.c	*/
-#define PROTO_FLG_PPP_CCP	ULONG_C(0x00000020)	/* ppp_ccp.c	*/
-#define PROTO_FLG_PPP_PAP	ULONG_C(0x00000040)	/* ppp_upap.c	*/
-#define PROTO_FLG_PPP_MODEM	ULONG_C(0x00000080)	/* ppp_modem.c	*/
-#define PROTO_FLG_PPP		ULONG_C(0x00000100)	/* ppp.c	*/
+#define PROTO_FLG_PPP_IPV6CP	ULONG_C(0x00000020)	/* ppp_ipv6cp.c	*/
+#define PROTO_FLG_PPP_CCP	ULONG_C(0x00000040)	/* ppp_ccp.c	*/
+#define PROTO_FLG_PPP_PAP	ULONG_C(0x00000080)	/* ppp_upap.c	*/
+#define PROTO_FLG_PPP_MODEM	ULONG_C(0x00000100)	/* ppp_modem.c	*/
+#define PROTO_FLG_PPP		ULONG_C(0x00000200)	/* ppp.c	*/
 
 #define PROTO_FLG_ETHER_NIC	ULONG_C(0x00000001)	/* if_??.c	*/
@@ -216,4 +97,5 @@
 #define PROTO_FLG_IP4		ULONG_C(0x00010000)	/* ip_*.c	*/
 #define PROTO_FLG_ICMP4		ULONG_C(0x00040000)	/* ip_icmp.c	*/
+#define PROTO_FLG_IGMP		ULONG_C(0x00080000)	/* ip_igmp.c	*/
 
 #define PROTO_FLG_IP6		ULONG_C(0x00100000)	/* ip6_*.c	*/
@@ -236,4 +118,15 @@
 #define AT_INET6		UINT_C(0x20)		/* IPv6 アドレス	*/
 
+/*
+ *  IPv4 UDPオプションの定義
+ */
+
+#define IP_MULTICAST_IF    32
+#define IP_MULTICAST_TTL   33
+#define IP_MULTICAST_LOOP  34
+#define IP_ADD_MEMBERSHIP  35
+#define IP_DROP_MEMBERSHIP 36
+#define IP_MSFILTER        41
+
 #if !defined(TOPPERS_MACRO_ONLY) && !defined(_MACRO_ONLY)
 
