All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Add a new section to CodingStyle, promoting include/linux/kernel.h.
@ 2006-12-18 17:43 Robert P. J. Day
  2006-12-18 17:57 ` Randy Dunlap
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Robert P. J. Day @ 2006-12-18 17:43 UTC (permalink / raw)
  To: Linux kernel mailing list; +Cc: Andrew Morton


  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>

---

  NOTE:  at the moment, there is not a single invocation of the
FIELD_SIZEOF() macro anywhere in the entire source tree, so if someone
had a hankering to rename it to something more catchy, now would be a
good time and i can always resubmit the patch i sent in yesterday.



diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle
index 0ad6dcb..a736333 100644
--- a/Documentation/CodingStyle
+++ b/Documentation/CodingStyle
@@ -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




^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-12-18 21:58 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-18 17:43 [PATCH] Add a new section to CodingStyle, promoting include/linux/kernel.h Robert P. J. Day
2006-12-18 17:57 ` Randy Dunlap
2006-12-18 20:18 ` Jan Engelhardt
2006-12-18 21:50 ` Erik Mouw
2006-12-18 21:54   ` Robert P. J. Day

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.