#define CSUM_IP_VALID 0x0200 /* ... the csum is valid */
#define CSUM_DATA_VALID 0x0400 /* csum_data field is valid */
#define CSUM_PSEUDO_HDR 0x0800 /* csum_data has pseudo hdr */
+#define CSUM_TCP_SUM16 0x1000 /* simple TCP Sum16 computation */
#define CSUM_DELAY_DATA (CSUM_TCP | CSUM_UDP)
#define CSUM_DELAY_IP (CSUM_IP) /* XXX add ipv6 here too? */
extern
decl_simple_lock_data(, mbuf_slock);
-#define MBUF_LOCK() simple_lock(&mbuf_slock);
-#define MBUF_UNLOCK() simple_unlock(&mbuf_slock);
+#define MBUF_LOCK() usimple_lock(&mbuf_slock);
+#define MBUF_UNLOCK() usimple_unlock(&mbuf_slock);
#define MBUF_LOCKINIT() simple_lock_init(&mbuf_slock);
* and internal data.
*/
-#ifdef DIAGNOSE
-#define MCHECK(m) if ((m)->m_type != MT_FREE) panic("mget")
+#if 1
+#define MCHECK(m) if ((m)->m_type != MT_FREE) panic("mget MCHECK: m_type=%x m=%x", m->m_type, m)
#else
#define MCHECK(m)
#endif
_MINTGET(m, type); \
if (m) { \
(m)->m_next = (m)->m_nextpkt = 0; \
+ (m)->m_len = 0; \
(m)->m_type = (type); \
(m)->m_data = (m)->m_dat; \
(m)->m_flags = 0; \
(m)->m_type = (type); \
(m)->m_data = (m)->m_pktdat; \
(m)->m_flags = M_PKTHDR; \
+ (m)->m_pkthdr.len = 0; \
(m)->m_pkthdr.rcvif = NULL; \
(m)->m_pkthdr.header = NULL; \
(m)->m_pkthdr.csum_flags = 0; \