Bosko Milekic writes:
> This code includes all that was discussed in the previous Email, as
> well as a better/actually working external storage facility for clusters.
> Previously, it was very difficult to allocate external storage, attach it
> to the mbuf, _and_ as well maintain a reference counter for it, primarily
> due to the arguments that were taken by ext_free() and ext_buf(). These
> have been changed to have a new void * pointer passed in as the second
> argument (following the base address of the storage buffer). Also has
> been included a void * multi-purpose ext_args pointer in the m_ext
> struct, so the caller has much more flexibility now. In fact, the caller
> can now attach a "management" or "reference" structure to the m_ext
> struct via the ext_args pointer, and have it passed to his ext_free and
> ext_buf routines. Naturally, for dynamically sized malloc() external
YES! This is wonderful news.
I started coding device drivers on Digital UNIX and have long missed
this feature. I can't count the number of times I've gotten 90% of
the way through doing something with ext mubfs & thought to myself
"oh hell, now what am I going to do for an m_ext.ext_ref() function?"
On a less enthusiastic note, the amount of whitespace changes make it
very difficult to eyeball your diff. Could you re-roll your diffs with
-b (to ignore your whitespace changes).
------------------------------------------------------------------------------
Andrew Gallatin, Sr Systems Programmer http://www.cs.duke.edu/~gallatin
Duke University Email: [EMAIL PROTECTED]
Department of Computer Science Phone: (919) 660-6590
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message