From 62bdb6ae503cb9f921317ac056585af316054d49 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 29 Aug 2014 11:05:19 +0200 Subject: C++ compatibility for some kernel headers --- freebsd/sys/net/if_var.h | 16 ++++++++-------- freebsd/sys/sys/buf_ring.h | 15 ++++++++++----- freebsd/sys/sys/mbuf.h | 11 ++++++----- freebsd/sys/sys/systm.h | 2 +- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/freebsd/sys/net/if_var.h b/freebsd/sys/net/if_var.h index 5992fa0b..fb590fa6 100644 --- a/freebsd/sys/net/if_var.h +++ b/freebsd/sys/net/if_var.h @@ -612,7 +612,7 @@ drbr_enqueue(struct ifnet *ifp, struct buf_ring *br, struct mbuf *m) } static __inline void -drbr_putback(struct ifnet *ifp, struct buf_ring *br, struct mbuf *new) +drbr_putback(struct ifnet *ifp, struct buf_ring *br, struct mbuf *new_mbuf) { /* * The top of the list needs to be swapped @@ -624,11 +624,11 @@ drbr_putback(struct ifnet *ifp, struct buf_ring *br, struct mbuf *new) * Peek in altq case dequeued it * so put it back. */ - IFQ_DRV_PREPEND(&ifp->if_snd, new); + IFQ_DRV_PREPEND(&ifp->if_snd, new_mbuf); return; } #endif - buf_ring_putback_sc(br, new); + buf_ring_putback_sc(br, new_mbuf); } static __inline struct mbuf * @@ -647,7 +647,7 @@ drbr_peek(struct ifnet *ifp, struct buf_ring *br) return (m); } #endif - return(buf_ring_peek(br)); + return ((struct mbuf *)buf_ring_peek(br)); } static __inline void @@ -659,7 +659,7 @@ drbr_flush(struct ifnet *ifp, struct buf_ring *br) if (ifp != NULL && ALTQ_IS_ENABLED(&ifp->if_snd)) IFQ_PURGE(&ifp->if_snd); #endif - while ((m = buf_ring_dequeue_sc(br)) != NULL) + while ((m = (struct mbuf *)buf_ring_dequeue_sc(br)) != NULL) m_freem(m); } @@ -682,7 +682,7 @@ drbr_dequeue(struct ifnet *ifp, struct buf_ring *br) return (m); } #endif - return (buf_ring_dequeue_sc(br)); + return ((struct mbuf *)buf_ring_dequeue_sc(br)); } static __inline void @@ -715,11 +715,11 @@ drbr_dequeue_cond(struct ifnet *ifp, struct buf_ring *br, return (m); } #endif - m = buf_ring_peek(br); + m = (struct mbuf *)buf_ring_peek(br); if (m == NULL || func(m, arg) == 0) return (NULL); - return (buf_ring_dequeue_sc(br)); + return ((struct mbuf *)buf_ring_dequeue_sc(br)); } static __inline int diff --git a/freebsd/sys/sys/buf_ring.h b/freebsd/sys/sys/buf_ring.h index 59e74cf7..ee7a48ce 100644 --- a/freebsd/sys/sys/buf_ring.h +++ b/freebsd/sys/sys/buf_ring.h @@ -99,7 +99,7 @@ buf_ring_enqueue(struct buf_ring *br, void *buf) return (ENOBUFS); } - success = atomic_cmpset_int(&br->br_prod_head, prod_head, + success = atomic_cmpset_int((volatile int *)&br->br_prod_head, prod_head, prod_next); } while (success == 0); #ifdef DEBUG_BUFRING @@ -146,7 +146,7 @@ buf_ring_dequeue_mc(struct buf_ring *br) return (NULL); } - success = atomic_cmpset_int(&br->br_cons_head, cons_head, + success = atomic_cmpset_int((volatile int *)&br->br_cons_head, cons_head, cons_next); } while (success == 0); @@ -178,7 +178,10 @@ buf_ring_dequeue_mc(struct buf_ring *br) static __inline void * buf_ring_dequeue_sc(struct buf_ring *br) { - uint32_t cons_head, cons_next, cons_next_next; + uint32_t cons_head, cons_next; +#ifdef PREFETCH_DEFINED + uint32_t cons_next_next; +#endif uint32_t prod_tail; void *buf; @@ -186,7 +189,9 @@ buf_ring_dequeue_sc(struct buf_ring *br) prod_tail = br->br_prod_tail; cons_next = (cons_head + 1) & br->br_cons_mask; +#ifdef PREFETCH_DEFINED cons_next_next = (cons_head + 2) & br->br_cons_mask; +#endif if (cons_head == prod_tail) return (NULL); @@ -254,11 +259,11 @@ buf_ring_advance_sc(struct buf_ring *br) * the compare and an atomic. */ static __inline void -buf_ring_putback_sc(struct buf_ring *br, void *new) +buf_ring_putback_sc(struct buf_ring *br, void *new_item) { KASSERT(br->br_cons_head != br->br_prod_tail, ("Buf-Ring has none in putback")) ; - br->br_ring[br->br_cons_head] = new; + br->br_ring[br->br_cons_head] = new_item; } /* diff --git a/freebsd/sys/sys/mbuf.h b/freebsd/sys/sys/mbuf.h index 391582c3..12328751 100644 --- a/freebsd/sys/sys/mbuf.h +++ b/freebsd/sys/sys/mbuf.h @@ -529,7 +529,7 @@ m_getclr(int how, short type) args.flags = 0; args.type = type; - m = uma_zalloc_arg(zone_mbuf, &args, how); + m = (struct mbuf *)uma_zalloc_arg(zone_mbuf, &args, how); if (m != NULL) bzero(m->m_data, MLEN); return (m); @@ -574,12 +574,12 @@ m_getjcl(int how, short type, int flags, int size) args.flags = flags; args.type = type; - m = uma_zalloc_arg(zone_mbuf, &args, how); + m = (struct mbuf *)uma_zalloc_arg(zone_mbuf, &args, how); if (m == NULL) return (NULL); zone = m_getzone(size); - n = uma_zalloc_arg(zone, m, how); + n = (struct mbuf *)uma_zalloc_arg(zone, m, how); if (n == NULL) { uma_zfree(zone_mbuf, m); return (NULL); @@ -679,8 +679,9 @@ m_cljset(struct mbuf *m, void *cl, int type) break; } - m->m_data = m->m_ext.ext_buf = cl; - m->m_ext.ext_free = m->m_ext.ext_arg1 = m->m_ext.ext_arg2 = NULL; + m->m_data = m->m_ext.ext_buf = (caddr_t)cl; + m->m_ext.ext_free = NULL; + m->m_ext.ext_arg1 = m->m_ext.ext_arg2 = NULL; m->m_ext.ext_size = size; m->m_ext.ext_type = type; m->m_ext.ref_cnt = (volatile u_int *) uma_find_refcnt(zone, cl); diff --git a/freebsd/sys/sys/systm.h b/freebsd/sys/sys/systm.h index 676bd9c7..f16c30a7 100644 --- a/freebsd/sys/sys/systm.h +++ b/freebsd/sys/sys/systm.h @@ -306,7 +306,7 @@ int fubyte(const void *base); static inline int fubyte(const void *base) { - const unsigned char *byte_base = base; + const unsigned char *byte_base = (const unsigned char *)base; return byte_base[0]; } -- cgit v1.2.3