Date: Mon, 11 Dec 2000 12:13:55 -0800 From: Alfred Perlstein <bright@wintelcom.net> To: Bosko Milekic <bmilekic@technokratis.com> Cc: net@FreeBSD.ORG Subject: Re: Abusing m_ext for a worthy goal. Message-ID: <20001211121354.E16205@fw.wintelcom.net> In-Reply-To: <Pine.BSF.4.21.0012111455380.21878-100000@jehovah.technokratis.com>; from bmilekic@technokratis.com on Mon, Dec 11, 2000 at 02:57:43PM -0500 References: <Pine.BSF.4.21.0012111223350.21769-100000@jehovah.technokratis.com> <Pine.BSF.4.21.0012111455380.21878-100000@jehovah.technokratis.com>
next in thread | previous in thread | raw e-mail | index | archive | help
* Bosko Milekic <bmilekic@technokratis.com> [001211 11:56] wrote: > > Something I forgot in first Email... > > On Mon, 11 Dec 2000, Bosko Milekic wrote: > > [...] > > Actually, your free routine needs to accept the address of the > > cluster as a first argument, and the optional argument as a second > > argument. According to your MEXTADD() above, your optional argument will > > be something called "cm." In your case, what you need to make your > > optional argument be is the actual mbuf "control" (you can cast it to > > struct mbuf *). Then, you can call unp_scan() on that mbuf (second > > argument) and call _MCLFREE() on the first argument, which will > > effectively be the address of the cluster. > > Don't forget to also, after running _MCLFREE() on the ext_buf, to > NULL out the control mbuf's ext_buf, and to remove the M_EXT bit from the > mbuf if you are planning to re-use it. Basically, make sure to clean up > after yourself after you forcibly free the cluster "manually." Hmm, I think instead of doing this sort of abuse, what I should be doing is allocating an mbuf header, then allocating a mbuf cluster then attaching them using the MEXTADD() macro. I'm going to look at the code to see if there's a clean way to do this, if not can you provide an interface for allocating and free'ing clusters by themselves? thanks, -- -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org] "I have the heart of a child; I keep it in a jar on my desk." To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001211121354.E16205>