Skip site navigation (1)Skip section navigation (2)
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>