svn commit: r243215 - user/andre/tcp_workqueue/sys/sys

Andre Oppermann andre at freebsd.org
Mon Nov 19 13:33:38 UTC 2012


On 19.11.2012 12:45, Gleb Smirnoff wrote:
> On Sun, Nov 18, 2012 at 12:17:07PM +0000, Andre Oppermann wrote:
> A> Author: andre
> A> Date: Sun Nov 18 12:17:07 2012
> A> New Revision: 243215
> A> URL: http://svnweb.freebsd.org/changeset/base/243215
> A>
> A> Log:
> A>   Add mtodo(m, o, t) macro taking an additional offset into
> A>   the mbuf data section before the casting to type 't'.
>
> IMHO, argument order of (m, t, o) is more intuitive, since
> matches order of mtod().

Yes, but that looks rather horrible and counter-intuitive:

  th = mtodo(m, struct tcphdr *, 20);

vs.

  th = mtodo(m, 20, struct tcphdr *);

Reads m->m_data at offset 20 is struct tcphdr.

Naming it mtood() wasn't convincing either. ;-)

-- 
Andre

> A>
> A> Modified:
> A>   user/andre/tcp_workqueue/sys/sys/mbuf.h
> A>
> A> Modified: user/andre/tcp_workqueue/sys/sys/mbuf.h
> A> ==============================================================================
> A> --- user/andre/tcp_workqueue/sys/sys/mbuf.h	Sun Nov 18 12:16:50 2012	(r243214)
> A> +++ user/andre/tcp_workqueue/sys/sys/mbuf.h	Sun Nov 18 12:17:07 2012	(r243215)
> A> @@ -64,8 +64,10 @@
> A>   * type:
> A>   *
> A>   * mtod(m, t)	-- Convert mbuf pointer to data pointer of correct type.
> A> + * mtodo(m, o, t) - Same as above but with offset 'o' into data.
> A>   */
> A>  #define	mtod(m, t)	((t)((m)->m_data))
> A> +#define	mtodo(m, o, t)	((t)(((m)->m_data) + (o)))
> A>
> A>  /*
> A>   * Argument structure passed to UMA routines during mbuf and packet
>



More information about the svn-src-user mailing list