From owner-svn-src-user@FreeBSD.ORG Mon May 18 21:58:22 2009 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5F3FF106564A; Mon, 18 May 2009 21:58:22 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4A9DB8FC19; Mon, 18 May 2009 21:58:22 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n4ILwM2r076078; Mon, 18 May 2009 21:58:22 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n4ILwLvI076061; Mon, 18 May 2009 21:58:21 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200905182158.n4ILwLvI076061@svn.freebsd.org> From: Kip Macy Date: Mon, 18 May 2009 21:58:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r192345 - in user/kmacy/releng_7_2_fcs/sys: compat/ndis dev/cxgb dev/cxgb/ulp/tom dev/hatm dev/iscsi/initiator dev/lge dev/msk dev/patm dev/sk dev/ti dev/wpi kern pci sys X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 May 2009 21:58:22 -0000 Author: kmacy Date: Mon May 18 21:58:21 2009 New Revision: 192345 URL: http://svn.freebsd.org/changeset/base/192345 Log: merge 175872 Give MEXTADD() another argument to make both void pointers to the free function controlable, instead of passing the KVA of the buffer storage as the first argument. Fix all conventional users of the API to pass the KVA of the buffer as the first argument, to make this a no-op commit. Likely break the only non-convetional user of the API, after informing the relevant committer. Update the mbuf(9) manual page, which was already out of sync on this point. This paves the way for giving sendfile(9) a way to wait for the passed storage to have been accessed before returning. This does not affect the memory layout or size of mbufs. Modified: user/kmacy/releng_7_2_fcs/sys/compat/ndis/kern_ndis.c user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c user/kmacy/releng_7_2_fcs/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c user/kmacy/releng_7_2_fcs/sys/dev/hatm/if_hatm_intr.c user/kmacy/releng_7_2_fcs/sys/dev/iscsi/initiator/isc_soc.c user/kmacy/releng_7_2_fcs/sys/dev/lge/if_lge.c user/kmacy/releng_7_2_fcs/sys/dev/msk/if_msk.c user/kmacy/releng_7_2_fcs/sys/dev/patm/if_patm_rx.c user/kmacy/releng_7_2_fcs/sys/dev/sk/if_sk.c user/kmacy/releng_7_2_fcs/sys/dev/ti/if_ti.c user/kmacy/releng_7_2_fcs/sys/dev/wpi/if_wpi.c user/kmacy/releng_7_2_fcs/sys/kern/kern_mbuf.c user/kmacy/releng_7_2_fcs/sys/kern/uipc_cow.c user/kmacy/releng_7_2_fcs/sys/kern/uipc_mbuf.c user/kmacy/releng_7_2_fcs/sys/kern/uipc_syscalls.c user/kmacy/releng_7_2_fcs/sys/pci/if_wb.c user/kmacy/releng_7_2_fcs/sys/sys/mbuf.h Modified: user/kmacy/releng_7_2_fcs/sys/compat/ndis/kern_ndis.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/compat/ndis/kern_ndis.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/compat/ndis/kern_ndis.c Mon May 18 21:58:21 2009 (r192345) @@ -732,7 +732,7 @@ ndis_ptom(m0, p) m->m_len = MmGetMdlByteCount(buf); m->m_data = MmGetMdlVirtualAddress(buf); MEXTADD(m, m->m_data, m->m_len, ndis_return_packet, - p, 0, EXT_NDIS); + m->m_data, p, 0, EXT_NDIS); p->np_refcnt++; totlen += m->m_len; Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c Mon May 18 21:58:21 2009 (r192345) @@ -2552,12 +2552,8 @@ init_cluster_mbuf(caddr_t cl, int flags, m->m_ext.ref_cnt = (uint32_t *)(cl + header_size - sizeof(uint32_t)); m->m_ext.ext_size = m_getsizefromtype(type); m->m_ext.ext_free = ext_free_handler; -#if __FreeBSD_version >= 800016 m->m_ext.ext_arg1 = cl; m->m_ext.ext_arg2 = (void *)(uintptr_t)type; -#else - m->m_ext.ext_args = (void *)(uintptr_t)type; -#endif m->m_ext.ext_type = EXT_EXTREF; *(m->m_ext.ref_cnt) = 1; DPRINTF("data=%p ref_cnt=%p\n", m->m_data, m->m_ext.ref_cnt); Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c Mon May 18 21:58:21 2009 (r192345) @@ -368,7 +368,8 @@ cxgb_vm_page_to_miov(struct toepcb *toep m0->m_flags = (M_EXT|M_NOFREE); m0->m_ext.ext_type = EXT_EXTREF; m0->m_ext.ext_free = cxgb_zero_copy_free; - m0->m_ext.ext_args = NULL; /* XXX: probably wrong /phk */ + m0->m_ext.ext_arg1 = NULL; /* XXX: probably wrong /phk */ + m0->m_ext.ext_arg2 = NULL; mv = mtomv(m0); mv->mv_count = seg_count; Modified: user/kmacy/releng_7_2_fcs/sys/dev/hatm/if_hatm_intr.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/dev/hatm/if_hatm_intr.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/dev/hatm/if_hatm_intr.c Mon May 18 21:58:21 2009 (r192345) @@ -458,7 +458,7 @@ hatm_rx_buffer(struct hatm_softc *sc, u_ if (m != NULL) { m->m_ext.ref_cnt = &c0->hdr.ref_cnt; MEXTADD(m, (void *)c0, MBUF0_SIZE, - hatm_mbuf0_free, sc, M_PKTHDR, EXT_EXTREF); + hatm_mbuf0_free, c0, sc, M_PKTHDR, EXT_EXTREF); m->m_data += MBUF0_OFFSET; } else hatm_mbuf0_free(c0, sc); @@ -482,7 +482,7 @@ hatm_rx_buffer(struct hatm_softc *sc, u_ if (m != NULL) { m->m_ext.ref_cnt = &c1->hdr.ref_cnt; MEXTADD(m, (void *)c1, MBUF1_SIZE, - hatm_mbuf1_free, sc, M_PKTHDR, EXT_EXTREF); + hatm_mbuf1_free, c1, sc, M_PKTHDR, EXT_EXTREF); m->m_data += MBUF1_OFFSET; } else hatm_mbuf1_free(c1, sc); Modified: user/kmacy/releng_7_2_fcs/sys/dev/iscsi/initiator/isc_soc.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/dev/iscsi/initiator/isc_soc.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/dev/iscsi/initiator/isc_soc.c Mon May 18 21:58:21 2009 (r192345) @@ -164,7 +164,7 @@ isc_sendPDU(isc_session_t *sp, pduq_t *p md->m_ext.ref_cnt = &nil_refcnt; l = min(MCLBYTES, len); MEXTADD(md, pp->ds + off, l, nil_fn, - NULL, 0, EXT_EXTREF); + pp->ds + off, NULL, 0, EXT_EXTREF); md->m_len = l; md->m_next = NULL; mh->m_pkthdr.len += l; Modified: user/kmacy/releng_7_2_fcs/sys/dev/lge/if_lge.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/dev/lge/if_lge.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/dev/lge/if_lge.c Mon May 18 21:58:21 2009 (r192345) @@ -718,7 +718,7 @@ lge_newbuf(sc, c, m) m_new->m_data = (void *)buf; m_new->m_len = m_new->m_pkthdr.len = LGE_JUMBO_FRAMELEN; MEXTADD(m_new, buf, LGE_JUMBO_FRAMELEN, lge_jfree, - (struct lge_softc *)sc, 0, EXT_NET_DRV); + buf, (struct lge_softc *)sc, 0, EXT_NET_DRV); } else { m_new = m; m_new->m_len = m_new->m_pkthdr.len = LGE_JUMBO_FRAMELEN; Modified: user/kmacy/releng_7_2_fcs/sys/dev/msk/if_msk.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/dev/msk/if_msk.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/dev/msk/if_msk.c Mon May 18 21:58:21 2009 (r192345) @@ -841,6 +841,14 @@ msk_jumbo_newbuf(struct msk_if_softc *sc m = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, MJUM9BYTES); if (m == NULL) return (ENOBUFS); + buf = msk_jalloc(sc_if); + if (buf == NULL) { + m_freem(m); + return (ENOBUFS); + } + /* Attach the buffer to the mbuf. */ + MEXTADD(m, buf, MSK_JLEN, msk_jfree, buf, + (struct msk_if_softc *)sc_if, 0, EXT_NET_DRV); if ((m->m_flags & M_EXT) == 0) { m_freem(m); return (ENOBUFS); Modified: user/kmacy/releng_7_2_fcs/sys/dev/patm/if_patm_rx.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/dev/patm/if_patm_rx.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/dev/patm/if_patm_rx.c Mon May 18 21:58:21 2009 (r192345) @@ -406,11 +406,11 @@ patm_rcv_mbuf(struct patm_softc *sc, voi if ((h & ~MBUF_HMASK) == MBUF_VHANDLE) { MEXTADD(m, (caddr_t)buf, VMBUF_SIZE, mbp_ext_free, - sc->vbuf_pool, M_PKTHDR, EXT_NET_DRV); + buf, sc->vbuf_pool, M_PKTHDR, EXT_NET_DRV); m->m_data += VMBUF_OFFSET; } else { MEXTADD(m, (caddr_t)buf, SMBUF_SIZE, mbp_ext_free, - sc->sbuf_pool, M_PKTHDR, EXT_NET_DRV); + buf, sc->sbuf_pool, M_PKTHDR, EXT_NET_DRV); m->m_data += SMBUF_OFFSET; } Modified: user/kmacy/releng_7_2_fcs/sys/dev/sk/if_sk.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/dev/sk/if_sk.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/dev/sk/if_sk.c Mon May 18 21:58:21 2009 (r192345) @@ -1052,6 +1052,14 @@ sk_jumbo_newbuf(sc_if, idx) m = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, MJUM9BYTES); if (m == NULL) return (ENOBUFS); + buf = sk_jalloc(sc_if); + if (buf == NULL) { + m_freem(m); + return (ENOBUFS); + } + /* Attach the buffer to the mbuf */ + MEXTADD(m, buf, SK_JLEN, sk_jfree, (struct sk_if_softc *)sc_if, buf, 0, + EXT_NET_DRV); if ((m->m_flags & M_EXT) == 0) { m_freem(m); return (ENOBUFS); Modified: user/kmacy/releng_7_2_fcs/sys/dev/ti/if_ti.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/dev/ti/if_ti.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/dev/ti/if_ti.c Mon May 18 21:58:21 2009 (r192345) @@ -1503,7 +1503,8 @@ ti_newbuf_jumbo(sc, idx, m_old) m[i]->m_data = (void *)sf_buf_kva(sf[i]); m[i]->m_len = PAGE_SIZE; MEXTADD(m[i], sf_buf_kva(sf[i]), PAGE_SIZE, - sf_buf_mext, sf[i], 0, EXT_DISPOSABLE); + sf_buf_mext, (void*)sf_buf_kva(sf[i]), sf[i], + 0, EXT_DISPOSABLE); m[i]->m_next = m[i+1]; } /* link the buffers to the header */ Modified: user/kmacy/releng_7_2_fcs/sys/dev/wpi/if_wpi.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/dev/wpi/if_wpi.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/dev/wpi/if_wpi.c Mon May 18 21:58:21 2009 (r192345) @@ -971,16 +971,15 @@ wpi_alloc_rx_ring(struct wpi_softc *sc, error = ENOMEM; goto fail; } - /* map page */ - error = bus_dmamap_load(ring->data_dmat, data->map, - mtod(m, caddr_t), MJUMPAGESIZE, - wpi_dma_map_addr, &paddr, BUS_DMA_NOWAIT); - if (error != 0 && error != EFBIG) { - device_printf(sc->sc_dev, - "%s: bus_dmamap_load failed, error %d\n", - __func__, error); - m_freem(m); - error = ENOMEM; /* XXX unique code */ + + /* attach RxBuffer to mbuf */ + MEXTADD(data->m, rbuf->vaddr, WPI_RBUF_SIZE,wpi_free_rbuf, + rbuf->vaddr, rbuf, 0, EXT_NET_DRV); + + if ((data->m->m_flags & M_EXT) == 0) { + m_freem(data->m); + data->m = NULL; + error = ENOBUFS; goto fail; } bus_dmamap_sync(ring->data_dmat, data->map, @@ -1489,7 +1488,27 @@ wpi_rx_intr(struct wpi_softc *sc, struct data->m = mnew; /* update Rx descriptor */ ring->desc[ring->cur] = htole32(paddr); + /* attach Rx buffer to mbuf */ + MEXTADD(mnew, rbuf->vaddr, WPI_RBUF_SIZE, wpi_free_rbuf, + rbuf->vaddr, rbuf, 0, EXT_NET_DRV); + SLIST_REMOVE_HEAD(&sc->rxq.freelist, next); + data->m = mnew; + + /* update Rx descriptor */ + ring->desc[ring->cur] = htole32(rbuf->paddr); + } else { + /* no free rbufs, copy frame */ + m = m_dup(m, M_DONTWAIT); + if (m == NULL) { + /* no free mbufs either, drop frame */ + ifp->if_ierrors++; + return; + } + } +#ifndef WPI_CURRENT + if (sc->sc_drvbpf != NULL) { +#else if (bpf_peers_present(sc->sc_drvbpf)) { struct wpi_rx_radiotap_header *tap = &sc->sc_rxtap; Modified: user/kmacy/releng_7_2_fcs/sys/kern/kern_mbuf.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/kern/kern_mbuf.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/kern/kern_mbuf.c Mon May 18 21:58:21 2009 (r192345) @@ -469,7 +469,8 @@ mb_dtor_pack(void *mem, int size, void * KASSERT((m->m_flags & M_EXT) == M_EXT, ("%s: M_EXT not set", __func__)); KASSERT(m->m_ext.ext_buf != NULL, ("%s: ext_buf == NULL", __func__)); KASSERT(m->m_ext.ext_free == NULL, ("%s: ext_free != NULL", __func__)); - KASSERT(m->m_ext.ext_args == NULL, ("%s: ext_args != NULL", __func__)); + KASSERT(m->m_ext.ext_arg1 == NULL, ("%s: ext_arg1 != NULL", __func__)); + KASSERT(m->m_ext.ext_arg2 == NULL, ("%s: ext_arg2 != NULL", __func__)); KASSERT(m->m_ext.ext_size == MCLBYTES, ("%s: ext_size != MCLBYTES", __func__)); KASSERT(m->m_ext.ext_type == EXT_PACKET, ("%s: ext_type != EXT_PACKET", __func__)); KASSERT(*m->m_ext.ref_cnt == 1, ("%s: ref_cnt != 1", __func__)); @@ -537,7 +538,8 @@ mb_ctor_clust(void *mem, int size, void m->m_data = m->m_ext.ext_buf; m->m_flags |= M_EXT; m->m_ext.ext_free = NULL; - m->m_ext.ext_args = NULL; + m->m_ext.ext_arg1 = NULL; + m->m_ext.ext_arg2 = NULL; m->m_ext.ext_size = size; m->m_ext.ext_type = type; m->m_ext.ref_cnt = refcnt; Modified: user/kmacy/releng_7_2_fcs/sys/kern/uipc_cow.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/kern/uipc_cow.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/kern/uipc_cow.c Mon May 18 21:58:21 2009 (r192345) @@ -164,8 +164,8 @@ socow_setup(struct mbuf *m0, struct uio /* * attach to mbuf */ - MEXTADD(m0, sf_buf_kva(sf), PAGE_SIZE, socow_iodone, sf, M_RDONLY, - EXT_SFBUF); + MEXTADD(m0, sf_buf_kva(sf), PAGE_SIZE, socow_iodone, + (void*)sf_buf_kva(sf), sf, M_RDONLY, EXT_SFBUF); m0->m_len = PAGE_SIZE - offset; m0->m_data = (caddr_t)sf_buf_kva(sf) + offset; socow_stats.success++; Modified: user/kmacy/releng_7_2_fcs/sys/kern/uipc_mbuf.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/kern/uipc_mbuf.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/kern/uipc_mbuf.c Mon May 18 21:58:21 2009 (r192345) @@ -186,7 +186,7 @@ m_freem(struct mbuf *mb) */ void m_extadd(struct mbuf *mb, caddr_t buf, u_int size, - void (*freef)(void *, void *), void *args, int flags, int type) + void (*freef)(void *, void *), void *arg1, void *arg2, int flags, int type) { KASSERT(type != EXT_CLUSTER, ("%s: EXT_CLUSTER not allowed", __func__)); @@ -199,7 +199,8 @@ m_extadd(struct mbuf *mb, caddr_t buf, u mb->m_data = mb->m_ext.ext_buf; mb->m_ext.ext_size = size; mb->m_ext.ext_free = freef; - mb->m_ext.ext_args = args; + mb->m_ext.ext_arg1 = arg1; + mb->m_ext.ext_arg2 = arg2; mb->m_ext.ext_type = type; } } @@ -254,8 +255,8 @@ mb_free_ext(struct mbuf *m) case EXT_EXTREF: KASSERT(m->m_ext.ext_free != NULL, ("%s: ext_free not set", __func__)); - (*(m->m_ext.ext_free))(m->m_ext.ext_buf, - m->m_ext.ext_args); + (*(m->m_ext.ext_free))(m->m_ext.ext_arg1, + m->m_ext.ext_arg2); break; default: KASSERT(m->m_ext.ext_type == 0, @@ -271,7 +272,8 @@ mb_free_ext(struct mbuf *m) */ m->m_ext.ext_buf = NULL; m->m_ext.ext_free = NULL; - m->m_ext.ext_args = NULL; + m->m_ext.ext_arg1 = NULL; + m->m_ext.ext_arg2 = NULL; m->m_ext.ref_cnt = NULL; m->m_ext.ext_size = 0; m->m_ext.ext_type = 0; @@ -296,7 +298,8 @@ mb_dupcl(struct mbuf *n, struct mbuf *m) atomic_add_int(m->m_ext.ref_cnt, 1); n->m_ext.ext_buf = m->m_ext.ext_buf; n->m_ext.ext_free = m->m_ext.ext_free; - n->m_ext.ext_args = m->m_ext.ext_args; + n->m_ext.ext_arg1 = m->m_ext.ext_arg1; + n->m_ext.ext_arg2 = m->m_ext.ext_arg2; n->m_ext.ext_size = m->m_ext.ext_size; n->m_ext.ref_cnt = m->m_ext.ref_cnt; n->m_ext.ext_type = m->m_ext.ext_type; Modified: user/kmacy/releng_7_2_fcs/sys/kern/uipc_syscalls.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/kern/uipc_syscalls.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/kern/uipc_syscalls.c Mon May 18 21:58:21 2009 (r192345) @@ -2148,7 +2148,7 @@ retry_space: break; } MEXTADD(m0, sf_buf_kva(sf), PAGE_SIZE, sf_buf_mext, - sf, M_RDONLY, EXT_SFBUF); + (void*)sf_buf_kva(sf), sf, M_RDONLY, EXT_SFBUF); m0->m_data = (char *)sf_buf_kva(sf) + pgoff; m0->m_len = xfsize; Modified: user/kmacy/releng_7_2_fcs/sys/pci/if_wb.c ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/pci/if_wb.c Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/pci/if_wb.c Mon May 18 21:58:21 2009 (r192345) @@ -1036,8 +1036,8 @@ wb_newbuf(sc, c, m) return(ENOBUFS); m_new->m_data = c->wb_buf; m_new->m_pkthdr.len = m_new->m_len = WB_BUFBYTES; - MEXTADD(m_new, c->wb_buf, WB_BUFBYTES, wb_bfree, NULL, 0, - EXT_NET_DRV); + MEXTADD(m_new, c->wb_buf, WB_BUFBYTES, wb_bfree, c->wb_buf, + NULL, 0, EXT_NET_DRV); } else { m_new = m; m_new->m_len = m_new->m_pkthdr.len = WB_BUFBYTES; Modified: user/kmacy/releng_7_2_fcs/sys/sys/mbuf.h ============================================================================== --- user/kmacy/releng_7_2_fcs/sys/sys/mbuf.h Mon May 18 21:57:28 2009 (r192344) +++ user/kmacy/releng_7_2_fcs/sys/sys/mbuf.h Mon May 18 21:58:21 2009 (r192345) @@ -134,7 +134,8 @@ struct m_ext { caddr_t ext_buf; /* start of buffer */ void (*ext_free) /* free routine if not the usual */ (void *, void *); - void *ext_args; /* optional argument pointer */ + void *ext_arg1; /* optional argument pointer */ + void *ext_arg2; /* optional argument pointer */ u_int ext_size; /* size of buffer, for ext_free */ volatile u_int *ref_cnt; /* pointer to ref count info */ int ext_type; /* type of external storage */ @@ -597,7 +598,7 @@ m_cljset(struct mbuf *m, void *cl, int t } m->m_data = m->m_ext.ext_buf = cl; - m->m_ext.ext_free = m->m_ext.ext_args; + m->m_ext.ext_free = 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 = uma_find_refcnt(zone, cl); @@ -629,8 +630,8 @@ m_last(struct mbuf *m) #define MGET(m, how, type) ((m) = m_get((how), (type))) #define MGETHDR(m, how, type) ((m) = m_gethdr((how), (type))) #define MCLGET(m, how) m_clget((m), (how)) -#define MEXTADD(m, buf, size, free, args, flags, type) \ - m_extadd((m), (caddr_t)(buf), (size), (free),(args),(flags), (type)) +#define MEXTADD(m, buf, size, free, arg1, arg2, flags, type) \ + m_extadd((m), (caddr_t)(buf), (size), (free),(arg1),(arg2),(flags), (type)) #define m_getm(m, len, how, type) \ m_getm2((m), (len), (how), (type), M_PKTHDR) @@ -756,7 +757,7 @@ int m_apply(struct mbuf *, int, int, int m_append(struct mbuf *, int, c_caddr_t); void m_cat(struct mbuf *, struct mbuf *); void m_extadd(struct mbuf *, caddr_t, u_int, - void (*)(void *, void *), void *, int, int); + void (*)(void *, void *), void *, void *, int, int); struct mbuf *m_collapse(struct mbuf *, int, int); void m_copyback(struct mbuf *, int, int, c_caddr_t); void m_copydata(const struct mbuf *, int, int, caddr_t);