diff options
Diffstat (limited to 'CODING-STYLE')
-rw-r--r-- | CODING-STYLE | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/CODING-STYLE b/CODING-STYLE new file mode 100644 index 0000000..cab2b36 --- /dev/null +++ b/CODING-STYLE @@ -0,0 +1,69 @@ +Every project has its coding style, and kmod is not an exception. This +document describes the preferred coding style for kmod code, in order to keep +some level of consistency among developers so that code can be easily +understood and maintained, and also to help your code survive under +maintainer's fastidious eyes so that you can get a passport for your patch +ASAP. + +First of all, kmod coding style must follow every rule for Linux kernel +(http://www.kernel.org/doc/Documentation/CodingStyle). There also exists a tool +named checkpatch.pl to help you check the compliance with it. Just type +"checkpatch.pl --no-tree patch_name" to check your patch. In theory, you need +to clean up all the warnings and errors except this one: "ERROR: Missing +Signed-off-by: line(s)". kmod does not used Signed-Off lines, so including +them is actually an error. In certain circumstances one can ignore the 80 +character per line limit. This is generally only allowed if the alternative +would make the code even less readable. + +Besides the kernel coding style above, kmod coding style is heavily based on +oFono's and BlueZ's. Below some basic rules: + +1) Wrap line at 80 char limit. + +There are a few exceptions: + - Headers may or may not wrap + - If it's a string that is hitting the limit, it's preferred not to break + in order to be able to grep for that string. E.g: + + err = my_function(ctx, "this is a long string that will pass the 80chr limit"); + + - If code would become unreadable if line is wrapped + - If there's only one argument to the function, don't put it alone in a + new line. + +Align the wrapped line either with tabs (BlueZ, oFono, etc) or tab + spaces +(kernel), at your discretion. Kernel's is preferred. + +2) It's better to return/exit early in a function than having a really long + "if (...) { }". Example: + + if (x) { // worse | if (!x) // better + ... | return b; + ... | + ... | ... + ... | ... + ... | ... + ... | ... + ... | ... + ... | ... + } else { | ... + return b; | return a; + } | + | + return a; | + +3) Don't initialize variable unnecessarily +When declaring a variable, try not to initialize it unless necessary. + +Example: +int i = 1; // wrong + +for (i = 0; i < 3; i++) { +} + +4) Let the includes in the following order, separated by a new line: + < system headers > + < shared/* > + < libkmod > + < tool > + "local headers" |