* Integrate the work that has been done in tcp-rewrite-branch.
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=51629
--- /dev/null
--- /dev/null
--- /dev/null
- ${REACTOS_SOURCE_DIR}/lib/drivers/oskittcp/include)
+++
+++include_directories(
+++ BEFORE include
- oskittcp
++++ ${REACTOS_SOURCE_DIR}/lib/drivers/lwip/src/include
++++ ${REACTOS_SOURCE_DIR}/lib/drivers/lwip/src/include/ipv4)
+++
+++add_definitions(
+++ -DNDIS40
+++ -D_NTDRIVER_)
+++
+++spec2def(tcpip.sys tcpip.spec)
+++
+++list(APPEND SOURCE
+++ datalink/lan.c
+++ tcpip/ainfo.c
+++ tcpip/buffer.c
+++ tcpip/dispatch.c
+++ tcpip/fileobjs.c
+++ tcpip/iinfo.c
+++ tcpip/info.c
+++ tcpip/lock.c
+++ tcpip/main.c
+++ tcpip/ninfo.c
+++ tcpip/proto.c
+++ tcpip/tinfo.c
+++ tcpip/wait.c
+++ tcpip.rc
+++ ${CMAKE_CURRENT_BINARY_DIR}/tcpip.def)
+++
+++add_library(tcpip SHARED ${CMAKE_CURRENT_BINARY_DIR}/tcpip_precomp.h.gch ${SOURCE})
+++
+++target_link_libraries(tcpip
+++ ip
++++ lwip
+++ ${PSEH_LIB}
+++ chew)
+++
+++set_module_type(tcpip kernelmodedriver)
+++add_importlibs(tcpip ndis ntoskrnl hal)
+++
+++add_pch(tcpip ${CMAKE_CURRENT_SOURCE_DIR}/include/precomp.h ${SOURCE})
+++
+++add_cab_target(tcpip 2)
--- /dev/null
--- /dev/null
--- /dev/null
+++
+++add_subdirectory(chew)
+++add_subdirectory(csq)
+++add_subdirectory(ip)
++++add_subdirectory(lwip)
+++add_subdirectory(oskittcp)
+++add_subdirectory(sound)
--- /dev/null
--- /dev/null
--- /dev/null
- ${REACTOS_SOURCE_DIR}/lib/drivers/oskittcp/include)
+++
+++add_definitions(-D__NTDRIVER__)
+++
+++include_directories(
+++ BEFORE ${REACTOS_SOURCE_DIR}/drivers/network/tcpip/include
++++ ${REACTOS_SOURCE_DIR}/lib/drivers/lwip/src/include
++++ ${REACTOS_SOURCE_DIR}/lib/drivers/lwip/src/include/ipv4)
+++
+++if(ARCH MATCHES i386)
+++ list(APPEND SOURCE network/i386/checksum.S)
+++endif()
+++
+++list(APPEND SOURCE
+++ network/address.c
+++ network/arp.c
+++ network/checksum.c
+++ network/icmp.c
+++ network/interface.c
+++ network/ip.c
+++ network/loopback.c
+++ network/neighbor.c
+++ network/ports.c
+++ network/receive.c
+++ network/router.c
+++ network/routines.c
+++ network/transmit.c
+++ transport/datagram/datagram.c
+++ transport/rawip/rawip.c
+++ transport/tcp/accept.c
+++ transport/tcp/event.c
+++ transport/tcp/if.c
+++ transport/tcp/tcp.c
+++ transport/udp/udp.c)
+++
+++add_library(ip ${SOURCE})
+++add_dependencies(ip bugcodes)
--- /dev/null
--- /dev/null
--- /dev/null
--- /dev/null
++++
++++include_directories(
++++ src/include
++++ src/include/ipv4)
++++
++++list(APPEND SOURCE
++++ src/rosip.c
++++ src/rostcp.c
++++ src/rosmem.c
++++ src/sys_arch.c
++++ src/api/api_lib.c
++++ src/api/api_msg.c
++++ src/api/err.c
++++ src/api/netbuf.c
++++ src/api/netdb.c
++++ src/api/netifapi.c
++++ src/api/sockets.c
++++ src/api/tcpip.c
++++ src/core/def.c
++++ src/core/dhcp.c
++++ src/core/dns.c
++++ src/core/init.c
++++ src/core/mem.c
++++ src/core/memp.c
++++ src/core/netif.c
++++ src/core/pbuf.c
++++ src/core/raw.c
++++ src/core/stats.c
++++ src/core/sys.c
++++ src/core/tcp_in.c
++++ src/core/tcp_out.c
++++ src/core/tcp.c
++++ src/core/timers.c
++++ src/core/udp.c
++++ src/core/ipv4/autoip.c
++++ src/core/ipv4/icmp.c
++++ src/core/ipv4/igmp.c
++++ src/core/ipv4/inet_chksum.c
++++ src/core/ipv4/inet.c
++++ src/core/ipv4/ip.c
++++ src/core/ipv4/ip_addr.c
++++ src/core/ipv4/ip_frag.c
++++ #src/core/ipv6/icmp6.c
++++ #src/core/ipv6/inet6.c
++++ #src/core/ipv6/ip6_addr.c
++++ #src/core/ipv6/ip6.c
++++ src/core/snmp/asn1_dec.c
++++ src/core/snmp/asn1_enc.c
++++ src/core/snmp/mib_structs.c
++++ src/core/snmp/mib2.c
++++ src/core/snmp/msg_in.c
++++ src/core/snmp/msg_out.c)
++++
++++add_library(lwip ${SOURCE})
++++
--- /dev/null
--- /dev/null
-#define mem_realloc(_m_, _s_) realloc(_m_, _s_)
++ /* ReactOS-Specific lwIP binding header - by Cameron Gutman */
++
++ #include <wdm.h>
++
++ #define LWIP_PROVIDE_ERRNO
++
++ /* ROS-specific mem defs */
++ void *
++ malloc(size_t size);
++
++ void *
++ calloc(size_t count, size_t size);
++
++ void
++ free(void *mem);
++
++ void *
++ realloc(void *mem, size_t size);
++
--#define SYS_ARCH_DECL_PROTECT(lev) \
-- sys_prot_t lev; \
-- sys_arch_decl_protect(&lev)
--#define SYS_ARCH_PROTECT(lev) sys_arch_protect(&lev)
--#define SYS_ARCH_UNPROTECT(lev) sys_arch_unprotect(&lev)
++ +#define mem_trim(_m_, _s_) realloc(_m_, _s_)
++
++ /* Unsigned int types */
++ typedef unsigned char u8_t;
++ typedef unsigned short u16_t;
++ typedef unsigned long u32_t;
++
++ /* Signed int types */
++ typedef signed char s8_t;
++ typedef signed short s16_t;
++ typedef signed long s32_t;
++
++ /* Memory pointer */
++ typedef u32_t mem_ptr_t;
++
++ /* Printf/DPRINT formatters */
++ #define U16_F "hu"
++ #define S16_F "hd"
++ #define X16_F "hx"
++ #define U32_F "lu"
++ #define S32_F "ld"
++ #define X32_F "lx"
++
++ /* Endianness */
++ #define BYTE_ORDER LITTLE_ENDIAN
++
++ /* Checksum calculation algorithm choice */
++ #define LWIP_CHKSUM_ALGORITHM 3
++
++ /* Diagnostics */
++ #define LWIP_PLATFORM_DIAG(x) DbgPrint(x)
++ #define LWIP_PLATFORM_ASSERT(x) ASSERTMSG(x, FALSE)
++
++ /* Synchronization */
++++#define SYS_ARCH_DECL_PROTECT(lev) sys_prot_t (lev)
++++#define SYS_ARCH_PROTECT(lev) sys_arch_protect(&(lev))
++++#define SYS_ARCH_UNPROTECT(lev) sys_arch_unprotect(lev)
++
++ /* Compiler hints for packing structures */
++ #define PACK_STRUCT_STRUCT
++ #define PACK_STRUCT_USE_INCLUDES
++