From: David Vrabel <david.vrabel@citrix.com>
Based on a version originally posted in 2007.
http://lists.xen.org/archives/html/xen-devel/2007-06/msg00070.html
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
---
Changes since v1:
- renamed to CODING_STYLE
- intro text from Ian C.
- line length section
- expanded bracing example.
Not changed since v1:
- braces around single statement still ''should'' not
''may''.
---
CODING_STYLE | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 120 insertions(+), 0 deletions(-)
create mode 100644 CODING_STYLE
diff --git a/CODING_STYLE b/CODING_STYLE
new file mode 100644
index 0000000..95842e3
--- /dev/null
+++ b/CODING_STYLE
@@ -0,0 +1,120 @@
+Coding Style for the Xen Hypervisor
+==================================+
+The Xen coding style described below is the coding style used by the
+Xen hypervisor itself (xen/*) as well as various associated low-level
+libraries (e.g. tools/libxc/*).
+
+An exception is made for files which are imported from an external
+source. In these cases the prevailing coding style of the upstream
+source is generally used (commonly the Linux coding style).
+
+Other parts of the code base may use other coding styles, sometimes
+explicitly (e.g. tools/libxl/CODING_STYLE) but often implicitly (Linux
+coding style is fairly common). In general you should copy the style
+of the surrounding code. If you are unsure please ask.
+
+Indentation
+-----------
+
+Indenting uses spaces, not tabs - in contrast to Linux. An indent
+level consists of four spaces. Code within blocks is indented by one
+extra indent level. The enclosing braces of a block are indented the
+same as the code _outside_ the block. e.g.
+
+void fun(void)
+{
+ /* One level of indent. */
+
+ {
+ /* A second level of indent. */
+ }
+}
+
+White space
+-----------
+
+Space characters are used to spread out logical statements, such as in
+the condition of an if or while. Spaces are placed between the
+keyword and the brackets surrounding the condition, between the
+brackets and the condition itself, and around binary operators (except
+the structure access operators, ''.'' and
''->''). e.g.
+
+if ( (wibble & wombat) == 42 )
+{
+ ...
+
+There should be no trailing white space at the end of lines (including
+after the opening /* of a comment block).
+
+Line Length
+-----------
+
+Lines should be less than 80 characters in length. Long lines should
+be split at sensible places and the trailing portions indented.
+
+User visible strings (e.g., printk() messages) should not be split so
+they can searched for more easily.
+
+Bracing
+-------
+
+Braces (''{'' and ''}'') are usually placed on
a line of their own, except
+for the do/while loop. This is unlike the Linux coding style and
+unlike K&R. do/while loops are an exception. e.g.:
+
+if ( condition )
+{
+ /* Do stuff. */
+}
+else
+{
+ /* Other stuff. */
+}
+
+while ( condition )
+{
+ /* Do stuff. */
+}
+
+do {
+ /* Do stuff. */
+} while ( condition );
+
+etc.
+
+Braces should be omitted for blocks with a single statement. e.g.,
+
+if ( condition )
+ single_statement();
+
+Comments
+--------
+
+Only C style /* ... */ comments are to be used. C++ style // comments
+should not be used. Multi-word comments should begin with a capital
+letter and end with a full stop.
+
+Multi-line comment blocks should start and end with comment markers on
+separate lines and each line should begin with a leading ''*''.
+
+/*
+ * Example, multi-line comment block.
+ *
+ * Note beginning and end markers on separate lines and leading
''*''.
+ */
+
+Emacs local variables
+---------------------
+
+A comment block containing local variables for emacs is permitted at
+the end of files. It should be:
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--
1.7.2.5
Stefano Stabellini
2012-Mar-19 12:20 UTC
Re: [PATCH v2] Document the coding style conventions.
On Mon, 19 Mar 2012, David Vrabel wrote:> From: David Vrabel <david.vrabel@citrix.com> > > Based on a version originally posted in 2007. > http://lists.xen.org/archives/html/xen-devel/2007-06/msg00070.html > > Signed-off-by: David Vrabel <david.vrabel@citrix.com> > --- > Changes since v1: > - renamed to CODING_STYLE > - intro text from Ian C. > - line length section > - expanded bracing example. > > Not changed since v1: > - braces around single statement still ''should'' not ''may''. > --- > CODING_STYLE | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 files changed, 120 insertions(+), 0 deletions(-) > create mode 100644 CODING_STYLE > > diff --git a/CODING_STYLE b/CODING_STYLE > new file mode 100644 > index 0000000..95842e3 > --- /dev/null > +++ b/CODING_STYLE > @@ -0,0 +1,120 @@ > +Coding Style for the Xen Hypervisor > +==================================> + > +The Xen coding style described below is the coding style used by the > +Xen hypervisor itself (xen/*) as well as various associated low-level > +libraries (e.g. tools/libxc/*). > + > +An exception is made for files which are imported from an external > +source. In these cases the prevailing coding style of the upstream > +source is generally used (commonly the Linux coding style). > + > +Other parts of the code base may use other coding styles, sometimes > +explicitly (e.g. tools/libxl/CODING_STYLE) but often implicitly (Linux > +coding style is fairly common). In general you should copy the style > +of the surrounding code. If you are unsure please ask. > + > +Indentation > +----------- > + > +Indenting uses spaces, not tabs - in contrast to Linux. An indent > +level consists of four spaces. Code within blocks is indented by one > +extra indent level. The enclosing braces of a block are indented the > +same as the code _outside_ the block. e.g. > + > +void fun(void) > +{ > + /* One level of indent. */ > + > + { > + /* A second level of indent. */ > + } > +} > + > +White space > +----------- > + > +Space characters are used to spread out logical statements, such as in > +the condition of an if or while. Spaces are placed between the > +keyword and the brackets surrounding the condition, between the > +brackets and the condition itself, and around binary operators (except > +the structure access operators, ''.'' and ''->''). e.g. > + > +if ( (wibble & wombat) == 42 ) > +{ > + ... > + > +There should be no trailing white space at the end of lines (including > +after the opening /* of a comment block). > + > +Line Length > +----------- > + > +Lines should be less than 80 characters in length. Long lines should > +be split at sensible places and the trailing portions indented. > + > +User visible strings (e.g., printk() messages) should not be split so > +they can searched for more easily. > + > +Bracing > +------- > + > +Braces (''{'' and ''}'') are usually placed on a line of their own, except > +for the do/while loop. This is unlike the Linux coding style and > +unlike K&R. do/while loops are an exception. e.g.: > + > +if ( condition ) > +{ > + /* Do stuff. */ > +} > +else > +{ > + /* Other stuff. */ > +} > + > +while ( condition ) > +{ > + /* Do stuff. */ > +} > + > +do { > + /* Do stuff. */ > +} while ( condition ); > + > +etc. > + > +Braces should be omitted for blocks with a single statement. e.g., > + > +if ( condition ) > + single_statement(); > + > +Comments > +-------- > + > +Only C style /* ... */ comments are to be used. C++ style // comments > +should not be used. Multi-word comments should begin with a capital > +letter and end with a full stop. > + > +Multi-line comment blocks should start and end with comment markers on > +separate lines and each line should begin with a leading ''*''. > + > +/* > + * Example, multi-line comment block. > + * > + * Note beginning and end markers on separate lines and leading ''*''. > + */ > + > +Emacs local variables > +--------------------- > + > +A comment block containing local variables for emacs is permitted at > +the end of files. It should be: > + > +/* > + * Local variables: > + * mode: C > + * c-file-style: "BSD" > + * c-basic-offset: 4 > + * indent-tabs-mode: nil > + * End: > + */vim comments should be allowed too? We don''t want to start a religious war, do we? ;-) It think that the equivalent of the emacs comment would be: /* vim: ts=4 et sw=4 */
On Mon, 2012-03-19 at 12:20 +0000, Stefano Stabellini wrote:> On Mon, 19 Mar 2012, David Vrabel wrote: > > From: David Vrabel <david.vrabel@citrix.com> > > > > Based on a version originally posted in 2007. > > http://lists.xen.org/archives/html/xen-devel/2007-06/msg00070.html > > > > Signed-off-by: David Vrabel <david.vrabel@citrix.com>Acked-by: Ian Campbell <ian.campbell@citrix.com> As usual with these things I''m of the opinion that having a document in place which can be improved is more important than getting it 100% right first time. [...]> > +/* > > + * Local variables: > > + * mode: C > > + * c-file-style: "BSD" > > + * c-basic-offset: 4 > > + * indent-tabs-mode: nil > > + * End: > > + */ > > vim comments should be allowed too? > We don''t want to start a religious war, do we? ;-)Absolutely not ;-) Just waiting for the nano fans to come out of the woodwork...> > It think that the equivalent of the emacs comment would be: > > /* vim: ts=4 et sw=4 */