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>