Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Sep 2000 23:44:45 -0600
From:      Warner Losh <imp@village.org>
To:        arch@freebsd.org
Subject:   binary compat guidelines
Message-ID:  <200009190544.XAA36298@harmony.village.org>

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

I'm wondering if we (the FreeBSD project) has guidelines for kernel
binary compatibility over time.  What things are allowed?  What things
are bogus?

I've been following the rules.  I've been focused on the card driver
<-> bus driver interface, so these are slanted.
	o use kobj
	o don't add args to functions called with kobj
	o use only basic types in args.  If pointers are used, they
	  aren't dereferenced by the driver directly.
	o use ivars.  icky but useful.
	o OK to make calls to external functions, not all calls must
	  be brokered through kobj.  These are convenience functions.
	o no sizeof(struct foo) 
	o no offsetof
And some silly things I've done or cleaned up in the past:
	o Don't have module symbol interdependencies

Any others?  Anything stupid I'm doing?

Warner


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




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