Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 19 Jun 1999 14:03:34 +0100 (BST)
From:      Doug Rabson <dfr@nlsystems.com>
To:        Dag-Erling Smorgrav <des@flood.ping.uio.no>
Cc:        Ruslan Ermilov <ru@ucb.crimea.ua>, ugen@xonix.com, green@unixhelp.org, committers@freebsd.org, hackers@freebsd.org
Subject:   Re: Introduction
Message-ID:  <Pine.BSF.4.05.9906191357100.80685-100000@herring.nlsystems.com>
In-Reply-To: <xzpzp1w8irt.fsf@flood.ping.uio.no>

next in thread | previous in thread | raw e-mail | index | archive | help
On 19 Jun 1999, Dag-Erling Smorgrav wrote:

> Ruslan Ermilov <ru@ucb.crimea.ua> writes:
> > * Clean the existing code (both userland and kernel) (10-20% done)
> > * Re-design the ipfw's API
> > * Port the existing functionality to the new API
> > * Proceed with new features
> 
> Pretty please with sugar on top, design an API that can be extended
> without breaking binary compatibility. We've had too much of that for
> no good reason (at least once between 2.2.7 and 2.2.8, and once
> between 3.1 and 3.2).

As far as possible, all new apis in the kernel should be designed with a
stable ABI. Its pretty simple if you follow a few simple rules:

	1. Hide implementation data structures. Access all information
	   outside the core implementation using function calls.
	2. Try to avoid using complex structures in the api. Each
	   structure in an api defines part of its ABI. Changing that
	   structure later breaks the ABI.
	3. Keep the external api as simple as possible. As a rule of
	   thumb, try to write manpages for each function. If you can't
	   describe the function accurately and concisely in a manpage
	   then its too complex.

--
Doug Rabson				Mail:  dfr@nlsystems.com
Nonlinear Systems Ltd.			Phone: +44 181 442 9037




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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9906191357100.80685-100000>