From 4d49d952b68daa76c4263856b327dd5688761d9e Mon Sep 17 00:00:00 2001 From: goldsimon Date: Sun, 23 Aug 2009 11:13:19 +0000 Subject: [PATCH] patch #6843: tcp.h macro optimization patch (for little endian) --- CHANGELOG | 5 ++++- src/include/lwip/tcp.h | 7 +++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 8ad99cab..ca913dd4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -19,12 +19,15 @@ HISTORY ++ New features: - 2009-09-23 Simon Goldschmidt + 2009-08-23 Simon Goldschmidt * tcp.h/.c: Added function tcp_debug_state_str() to convert a tcp state to a human-readable string. ++ Bugfixes: + 2009-08-23 Simon Goldschmidt + * tcp.h: patch #6843: tcp.h macro optimization patch (for little endian) + (STABLE-1.3.1) diff --git a/src/include/lwip/tcp.h b/src/include/lwip/tcp.h index 6d0f8886..6ce05fd4 100644 --- a/src/include/lwip/tcp.h +++ b/src/include/lwip/tcp.h @@ -230,12 +230,11 @@ PACK_STRUCT_END #define TCPH_OFFSET_SET(phdr, offset) (phdr)->_hdrlen_rsvd_flags = htons(((offset) << 8) | TCPH_FLAGS(phdr)) #define TCPH_HDRLEN_SET(phdr, len) (phdr)->_hdrlen_rsvd_flags = htons(((len) << 12) | TCPH_FLAGS(phdr)) -#define TCPH_FLAGS_SET(phdr, flags) (phdr)->_hdrlen_rsvd_flags = htons((ntohs((phdr)->_hdrlen_rsvd_flags) & ~TCP_FLAGS) | (flags)) -#define TCPH_SET_FLAG(phdr, flags ) (phdr)->_hdrlen_rsvd_flags = htons(ntohs((phdr)->_hdrlen_rsvd_flags) | (flags)) +#define TCPH_FLAGS_SET(phdr, flags) (phdr)->_hdrlen_rsvd_flags = (((phdr)->_hdrlen_rsvd_flags & htons((u16_t)(~(u16_t)(TCP_FLAGS)))) | htons(flags)) +#define TCPH_SET_FLAG(phdr, flags ) (phdr)->_hdrlen_rsvd_flags = ((phdr)->_hdrlen_rsvd_flags | htons(flags)) #define TCPH_UNSET_FLAG(phdr, flags) (phdr)->_hdrlen_rsvd_flags = htons(ntohs((phdr)->_hdrlen_rsvd_flags) | (TCPH_FLAGS(phdr) & ~(flags)) ) -#define TCP_TCPLEN(seg) ((seg)->len + ((TCPH_FLAGS((seg)->tcphdr) & TCP_FIN || \ - TCPH_FLAGS((seg)->tcphdr) & TCP_SYN)? 1: 0)) +#define TCP_TCPLEN(seg) ((seg)->len + ((TCPH_FLAGS((seg)->tcphdr) & (TCP_FIN | TCP_SYN)) != 0)) enum tcp_state { CLOSED = 0,