Style tibits:

  char *pointer; // how we declare pointers 
  char *function(); // etc
  char* pointer; // No good.
  char * pointer; // no good

  /*
   * VERY important single-line comments look like this.
   */                                             

   
   func() // After a function they look like this
   if () // or here

   Kernel include files come first; normally, you'll need <sys/types.h> OR
   <sys/param.h>, but not both!  <sys/types.h> includes <sys/cdefs.h>, and
   it's okay to depend on that.            

   Macros are capitalized, parenthesized, and should avoid side-effects. If
   they are an inline expansion of a function, the function is defined all
   in lowercase, the macro has the same name all in uppercase. If the macro
   needs more than a single line, use braces.  Right-justify the
   backslash-es, it makes it easier to read.   
  
   Prefer inline functions to Macros.
   Prefer const to #define's

   Enum types are capitalized.  enum enumtype { ONE, TWO } et;         
  
   Variable Declarations are: 
		 int a = 0, b = 0, c = 0;
	
		 not:
		 int a;
		 int b;
		 int c;
		 
		 a = 0; 
		 b = 0;
		 c = 0;

 When declaring variables in structures, declare them sorted by use, then
 by size, and then by alphabetical order.  The first category normally
 doesn't apply, but there are exceptions. 

 Use initializers in classes.

     /*
      * All major routines should have a comment briefly describing what
      * they do.  The comment before the "main" routine should describe
      * what the program does && its parameters.
      * int argc = number of command line parameters
      * char *argv[] = actual parameters 
      */
     int
     main(int argc, char *argv[])

 I've broken this, but.. I'm going to fix eventually.

 if () not if()

 If theres 1 condition after an if statement or such, no brackets.
 

 This is the bracket style of choice.

 	for () {
 	 /* statements.... */
 	}  

 Use C++ Style casts. static_cast<foo*>(variable);
		      reinterpret_cast<>();
		      const_cast<>();
 Use them correctly. Reinterpret_cast's and const_cast's tend to be a
sign of bad design. Avoid them.

 Be careful not to overload any buffers. strncpy, snprintf (It's standard
as of C99)

 Let's just try and be posix, and not go overboard for odd platiorms.


Keep encapsulation in mind. Effective C++ / More Effective C++ && The
C++ Programming Language guide you well here.


Don't let some of my laziness affect you.

I run the code through xemacs bsd-style and then remove tabs (make them 8
spaces) with M-x replace-regexp

That's all ;-)