Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer


Over time, I am moving all of the IPFilter code to what I consider a better
coding style than it had before.  If you submit patches, I expect them to
conform as appropriate.

Function Comments
=================
Preceeding each and every function, a comment block like this should
be present:

/* ------------------------------------------------------------------------ */
/* Function:    function-name                                               */
/* Returns:     return-type                                                 */
/* Parameters:  param1(I) - param1 is an input parameter                    */
/*              p2(O)     - p2 is an output parameter passed as an arg      */
/*              par3(IO)  - par3 is a parameter which is both input and     */
/*                          output.  Pointers to things which are used and  */
/*                          then get a result stored in them qualify here.  */
/*                                                                          */
/* Description about what the function does.  This comment should explain   */
/* any gotchas or algorithms that are used which aren't obvious to the      */
/* casual reader.  It should not be an excuse to not use comments inside    */
/* the function.                                                            */
/* ------------------------------------------------------------------------ */


Tab spacing
===========
Tabs are to be at 8 characters.


Conditions
==========
All expressions which evaluate to a boolean for a test condition, such as
in an if()/while() statement must involve a boolean operation.  Since C
has no native boolean type, this means that one of <,>,<=,>=,==,!= must
be present.  Implied boolean evaluations are out.

In code, the following is banned:

if (x)
if (!x)
while ((a = b))

and should be replaced by:

if (x != 0)
if (x == 0)
while ((a = b) != 0)

If pointers are involved, always compare with NULL, ie.:

if (x != NULL)
if (x == NULL)
while ((a = b) != NULL)