Date: Tue, 1 Nov 2011 02:07:43 +0000 From: Alexey Dokuchaev <danfe@FreeBSD.org> To: Bruce Evans <brde@optusnet.com.au> Cc: svn-src-head@freebsd.org, Marius Strobl <marius@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org Subject: Re: svn commit: r226947 - in head/sys: dev/esp sparc64/sbus Message-ID: <20111101020743.GA14822@FreeBSD.org> In-Reply-To: <20111031233854.Y1523@besplex.bde.org> References: <201110302117.p9ULHgLD085245@svn.freebsd.org> <20111031042526.GA57014@FreeBSD.org> <20111031233854.Y1523@besplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Nov 01, 2011 at 12:01:16AM +1100, Bruce Evans wrote: > On Mon, 31 Oct 2011, Alexey Dokuchaev wrote: > > When convention requires a typedef, make its name match the struct tag. > > Avoid typedefs ending in _t, except as specified in Standard C or by > > POSIX. > > > > Do these rules not apply for struct device for some reason? > > Yes (they don't apply here). device_t is one of a few properly opaque > typedefs for struct pointers. 'struct device' is only (completely) > declared in kern/subr_bus.c. Thus the implementation details of it > obviously cannot escape to drivers. Most of the APIs in <sys/bus.h> > are supposed to be like this. But `typedef struct kobj_class driver_t' > and `#define driver_method_t kobj_method_t' are gross exceptions. > <sys/bus.h> has to include <sys/kobj.h> for dereferencing these, and > kobj.h breaks the rule by providing both typedefs for struct pointers > and complete struct declarations. Thanks for detailed explanation Bruce. ./danfe
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111101020743.GA14822>