intro(9)

NAME

intro - introduction to system kernel interfaces

DESCRIPTION

This section contains information about the interfaces and
subroutines in
the kernel.

PROTOTYPES ANSI-C AND ALL THAT

Yes please.

We would like all code to be fully prototyped.

If your code compiles cleanly with cc -Wall we would feel
happy about it.
It is important to understand that this is not a question of
just shutting up cc, it is a question about avoiding the things it
complains
about. To put it bluntly, do not hide the problem by cast
ing and other
obfuscating practices, solve the problem.

INDENTATION AND STYLE

Believe it or not, there actually exists a guide for inden
tation and
style. It is not generally applied though.
We would appreciate if people would pay attention to it, and
at least not
violate it blatantly.
We do not mind it too badly if you have your own style, but
please make
sure we can read it too.
Please take time to read style(9) for more information.

NAMING THINGS

Some general rules exist:

1. If a function is meant as a debugging aid in DDB, it
should be
enclosed in

#ifdef DDB
#endif /* DDB */
And the name of the procedure should start with the
prefix DDB_ to
clearly identify the procedure as a debugger routine.

SCOPE OF SYMBOLS

It is important to carefully consider the scope of symbols
in the kernel.
The default is to make everything static, unless some reason
requires the
opposite.
There are several reasons for this policy, the main one is
that the kernel is one monolithic name-space, and pollution is not a
good idea here
either.
For device drivers and other modules that do not add new in
ternal interfaces to the kernel, the entire source should be in one file
if possible.
That way all symbols can be made static.
If for some reason a module is split over multiple source
files, then try
to split the module along some major fault-line and consider
using the
number of global symbols as your guide. The fewer the bet
ter.

SEE ALSO

style(9)

HISTORY

The intro section manual page appeared in FreeBSD 2.2.
BSD December 13, 1995
Copyright © 2010-2017 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout