CodingStyle.txt
author Florian Pose <fp@igh-essen.com>
Fri, 28 Oct 2011 11:31:54 +0200
branchredundancy
changeset 2293 21b876f552a2
child 2127 0814802f5928
permissions -rw-r--r--
Added coding style document.
2293
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     1
$Id$
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     2
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     3
vim: spelllang=en tw=78
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     4
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     5
This is a short introduction to the coding style that shall be used. The below
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     6
rules are applicable for all C source files, except the Ethernet drivers, for
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     7
which the Linux Kernel coding style shall be used to minimize the
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     8
differences).
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     9
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    10
* Lines shall not exceed 78 characters.
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    11
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    12
* Indentation shall be done using 4 space characters
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    13
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    14
* No whitespace shall be left at the end of a line.
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    15
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    16
* After a comma, a single space shall be placed (if not followed by a
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    17
  line break).
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    18
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    19
* Braces shall be placed in the following way (K&R style):
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    20
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    21
    if (...) {
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    22
        ...
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    23
    } else if (...) {
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    24
        ...
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    25
    } else {
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    26
        ...
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    27
    }
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    28
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    29
    int function(...)
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    30
    {
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    31
        ...
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    32
    }
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    33
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    34
* Macros shall be named in CAPITAL letters. If a macro contains multiple
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    35
  statements, they should be enclosed by a 'do {} while (0)' loop. Macro
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    36
  parameters shall also be capital letters and shall be enclosed py parantheses
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    37
  if necessary.
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    38
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    39
    #define MACRO(A, B) \
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    40
        do { \
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    41
            if ((A) == 1) { \
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    42
                statement(B); \
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    43
        } while (0)
21b876f552a2 Added coding style document.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    44