aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert P. J. Day <rpjday@mindspring.com>2006-12-22 04:09:11 -0500
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-22 11:55:49 -0500
commit58637ec90b7ceed5909e726ac90118852f79d2b1 (patch)
treef5478b2f088d31b609ed07bb10fb641bad7cd10e
parent163ca88b9c5858909ee3f8801ae0096b5f94e835 (diff)
[PATCH] Add a new section to CodingStyle, promoting include/linux/kernel.h
Add a new section to the CodingStyle file, encouraging people not to re-invent available kernel macros such as ARRAY_SIZE(), FIELD_SIZEOF(), min() and max(), among others. Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Acked-by: Randy Dunlap <randy.dunlap@oracle.com> Acked-by: Jan Engelhardt <jengelh@gmx.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--Documentation/CodingStyle18
1 files changed, 18 insertions, 0 deletions
diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle
index 0ad6dcb5d45f..9069189e78ef 100644
--- a/Documentation/CodingStyle
+++ b/Documentation/CodingStyle
@@ -682,6 +682,24 @@ result. Typical examples would be functions that return pointers; they use
682NULL or the ERR_PTR mechanism to report failure. 682NULL or the ERR_PTR mechanism to report failure.
683 683
684 684
685 Chapter 17: Don't re-invent the kernel macros
686
687The header file include/linux/kernel.h contains a number of macros that
688you should use, rather than explicitly coding some variant of them yourself.
689For example, if you need to calculate the length of an array, take advantage
690of the macro
691
692 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
693
694Similarly, if you need to calculate the size of some structure member, use
695
696 #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
697
698There are also min() and max() macros that do strict type checking if you
699need them. Feel free to peruse that header file to see what else is already
700defined that you shouldn't reproduce in your code.
701
702
685 703
686 Appendix I: References 704 Appendix I: References
687 705