svn commit: r226947 - in head/sys: dev/esp sparc64/sbus
Alexey Dokuchaev
danfe at FreeBSD.org
Tue Nov 1 02:07:43 UTC 2011
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
More information about the svn-src-all
mailing list