Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Jun 1997 17:06:52 -0500 (CDT)
From:      Vivek Sadananda Pai <vivek@cs.rice.edu>
To:        freebsd-stable@FreeBSD.ORG
Cc:        vivek@cs.rice.edu
Subject:   mbuf external storage
Message-ID:  <199706302206.RAA11429@cs.rice.edu>

next in thread | raw e-mail | index | archive | help
Hi,

I'm not sure if this is the best list to use, but it seemed to be the
closest to which I could actually subscribe. If it's more appropriate
somewhere else, please let me know.

I'm interested in mbufs with external storage, particularly when that
storage is not in the form of mbufs clusters. I've examined the mbuf.h
file, and the structure for external storage is:


struct m_ext {
  caddr_t ext_buf;                /* start of buffer */
  void    (*ext_free)             /* free routine if not the usual */
          __P((caddr_t, u_int));
  u_int   ext_size;               /* size of buffer, for ext_free */
  void    (*ext_ref)              /* add a reference to the ext object */
          __P((caddr_t, u_int));
};


I also searched through old mail on this topic, and it seems that this
structure used to be a lot richer, with some form of "opaque" argument
(ext_arg) that could be used by whatever was allocating/freeing the
external memory. Having something like this would be extremely useful
in certain scenarios, and I've used it to good effect in Digital Unix.
We're examining FreeBSD as a platform for doing some I/O research, and
the package we want to port uses this "ext_arg" convention.

Does anyone know if there are any plans of (re)including this, or if
there's some reason why it was removed?

Thanks,
Vivek




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199706302206.RAA11429>