From owner-freebsd-net@FreeBSD.ORG  Wed Feb 28 22:20:52 2007
Return-Path: <owner-freebsd-net@FreeBSD.ORG>
X-Original-To: net@FreeBSD.org
Delivered-To: freebsd-net@FreeBSD.ORG
Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52])
	by hub.freebsd.org (Postfix) with ESMTP id 7A69F16A403
	for <net@FreeBSD.org>; Wed, 28 Feb 2007 22:20:52 +0000 (UTC)
	(envelope-from bms@incunabulum.net)
Received: from out5.smtp.messagingengine.com (out5.smtp.messagingengine.com
	[66.111.4.29]) by mx1.freebsd.org (Postfix) with ESMTP id 56C3913C48D
	for <net@FreeBSD.org>; Wed, 28 Feb 2007 22:20:52 +0000 (UTC)
	(envelope-from bms@incunabulum.net)
Received: from out1.internal (unknown [10.202.2.149])
	by out1.messagingengine.com (Postfix) with ESMTP id 4B9021F463B
	for <net@FreeBSD.org>; Wed, 28 Feb 2007 17:20:52 -0500 (EST)
Received: from heartbeat2.messagingengine.com ([10.202.2.161])
	by out1.internal (MEProxy); Wed, 28 Feb 2007 17:20:52 -0500
X-Sasl-enc: Q47ZMR718n97xORVbifzwSgmgsTJ75vEjMQRXxMqjFFG 1172701251
Received: from [192.168.123.18]
	(82-35-112-254.cable.ubr07.dals.blueyonder.co.uk [82.35.112.254])
	by mail.messagingengine.com (Postfix) with ESMTP id C86F32118
	for <net@FreeBSD.org>; Wed, 28 Feb 2007 17:20:51 -0500 (EST)
Message-ID: <45E60041.1090607@incunabulum.net>
Date: Wed, 28 Feb 2007 22:20:49 +0000
From: Bruce M Simpson <bms@incunabulum.net>
User-Agent: Thunderbird 1.5.0.9 (X11/20070125)
MIME-Version: 1.0
To: net@FreeBSD.org
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Cc: 
Subject: Proposal: Add M_HASCL().
X-BeenThere: freebsd-net@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Networking and TCP/IP with FreeBSD <freebsd-net.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-net>,
	<mailto:freebsd-net-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-net>
List-Post: <mailto:freebsd-net@freebsd.org>
List-Help: <mailto:freebsd-net-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-net>,
	<mailto:freebsd-net-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Feb 2007 22:20:52 -0000

Much network code needs to know if the mbuf it is looking at is using a 
cluster. I propose putting M_HASCL() in sys/mbuf.h. I realise this is a 
style change, however, it seems to be a very common idiom.

Places this macro is currently defined and used directly:
netinet/ip_mroute.c
netinet6/ip6_mroute.c
nfsclient/nfsm_subs.h
nfsserver/nfsm_subs.h

Places which use this idiom by another name:
if_ppp.c
ppp_tty.c

Places which use this idiom indirectly by its expansion:
 sys/mbuf.h
 sys/socketvar.h
 netinet/ip6.h
 dev/pdq
 Many device drivers and third party code.

Head on over to http://fxr.watson.org/fxr/ident?i=M_HASCL and have a look.

Feel free to not bikeshed about this. It became apparent that this is a 
common idiom (needing to know if an mbuf is using external storage for 
whatever reason).

Thoughts?

BMS