Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 58637ec9 authored by Robert P. J. Day's avatar Robert P. J. Day Committed by Linus Torvalds
Browse files

[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: default avatarRobert P. J. Day <rpjday@mindspring.com>
Acked-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
Acked-by: default avatarJan Engelhardt <jengelh@gmx.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 163ca88b
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -682,6 +682,24 @@ result. Typical examples would be functions that return pointers; they use
NULL or the ERR_PTR mechanism to report failure.


		Chapter 17:  Don't re-invent the kernel macros

The header file include/linux/kernel.h contains a number of macros that
you should use, rather than explicitly coding some variant of them yourself.
For example, if you need to calculate the length of an array, take advantage
of the macro

  #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))

Similarly, if you need to calculate the size of some structure member, use

  #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))

There are also min() and max() macros that do strict type checking if you
need them.  Feel free to peruse that header file to see what else is already
defined that you shouldn't reproduce in your code.



		Appendix I: References