# HG changeset patch # User sergeig # Date 1314207327 0 # Node ID 654ce0d409eee39376b1f3f6f747a71ac3231bf7 # Parent b8cb8bedf5e19cb75301cbb8a7c4c00921321481 * cdl/lwip_net.cdl: New CDL option CYGIMP_LWIP_ENDIAN_BY_HAL. * include/lwipopts.h: Add HAL override of htonl() and htons(). [ Bugzilla 1001275 ] diff --git a/packages/net/lwip_tcpip/current/ChangeLog b/packages/net/lwip_tcpip/current/ChangeLog --- a/packages/net/lwip_tcpip/current/ChangeLog +++ b/packages/net/lwip_tcpip/current/ChangeLog @@ -1,3 +1,9 @@ +2011-08-23 Ilija Kocho + + * cdl/lwip_net.cdl: New CDL option CYGIMP_LWIP_ENDIAN_BY_HAL. + * include/lwipopts.h: Add HAL override of htonl() and htons(). + [ Bugzilla 1001275 ] + 2011-03-08 John Dallaway * cdl/lwip_net.cdl: Require CYGPKG_ISOINFRA. diff --git a/packages/net/lwip_tcpip/current/cdl/lwip_net.cdl b/packages/net/lwip_tcpip/current/cdl/lwip_net.cdl --- a/packages/net/lwip_tcpip/current/cdl/lwip_net.cdl +++ b/packages/net/lwip_tcpip/current/cdl/lwip_net.cdl @@ -127,6 +127,17 @@ cdl_package CYGPKG_NET_LWIP { compile ecos/sio.c } + cdl_option CYGIMP_LWIP_ENDIAN_BY_HAL { + display "HAL optimized endian functions" + flavor bool + active_if CYGIMP_HAL_ARCH_ENDIAN + default_value CYGIMP_HAL_ARCH_ENDIAN + description " + Some architectures provide optimized functions for endian + manipulation (byte swapping). If utilized, they can give + shorter and faster code for that." + } + cdl_component CYGPKG_LWIP_APIS { display "APIs" flavor none diff --git a/packages/net/lwip_tcpip/current/include/lwipopts.h b/packages/net/lwip_tcpip/current/include/lwipopts.h --- a/packages/net/lwip_tcpip/current/include/lwipopts.h +++ b/packages/net/lwip_tcpip/current/include/lwipopts.h @@ -36,6 +36,10 @@ #include +#if defined(CYGIMP_LWIP_ENDIAN_BY_HAL) && CYGIMP_LWIP_ENDIAN_BY_HAL +# include +#endif + //------------------------------------------------------------------------------ // Platform specific locking //------------------------------------------------------------------------------ @@ -44,6 +48,16 @@ #define NO_SYS defined(CYGFUN_LWIP_MODE_SIMPLE) //------------------------------------------------------------------------------ +// Architecture specific options +//------------------------------------------------------------------------------ + +#if defined(CYGIMP_LWIP_ENDIAN_BY_HAL) && CYGIMP_LWIP_ENDIAN_BY_HAL +# define LWIP_PLATFORM_BYTESWAP 1 +# define LWIP_PLATFORM_HTONS(__val) CYG_CPU_TO_BE16(__val) +# define LWIP_PLATFORM_HTONL(__val) CYG_CPU_TO_BE32(__val) +#endif + +//------------------------------------------------------------------------------ // Memory options //------------------------------------------------------------------------------