- Summary
- Notes
+ * - `Dir 1.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_01_01.c>`_
+ - Required
+ - Any implementation-defined behaviour on which the output of the
+ program depends shall be documented and understood
+ -
+
* - `Dir 2.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_02_01.c>`_
- Required
- All source files shall compile without any compilation errors
header file being included more than once
-
+ * - `Dir 4.11 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_11.c>`_
+ - Required
+ - The validity of values passed to library functions shall be checked
+ - We do not have libraries in Xen (libfdt and others are not
+ considered libraries from MISRA C point of view as they are
+ imported in source form)
+
* - `Dir 4.14 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/D_04_14.c>`_
- Required
- The validity of values received from external sources shall be
headers (xen/include/public/) are allowed to retain longer
identifiers for backward compatibility.
+ * - `Rule 6.1 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_06_01.c>`_
+ - Required
+ - Bit-fields shall only be declared with an appropriate type
+ - In addition to the C99 types, we also consider appropriate types
+ enum and all explicitly signed / unsigned integer types.
+
* - `Rule 6.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_06_02.c>`_
- Required
- Single-bit named bit fields shall not be of a signed type
- Octal constants shall not be used
-
+ * - `Rule 7.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_07_02.c>`_
+ - Required
+ - A "u" or "U" suffix shall be applied to all integer constants
+ that are represented in an unsigned type
+ - The rule asks that any integer literal that is implicitly
+ unsigned is made explicitly unsigned by using one of the
+ indicated suffixes. As an example, on a machine where the int
+ type is 32-bit wide, 0x77777777 is signed whereas 0x80000000 is
+ (implicitly) unsigned. In order to comply with the rule, the
+ latter should be rewritten as either 0x80000000u or 0x80000000U.
+ Consistency considerations may suggest using the same suffix even
+ when not required by the rule. For instance, if one has:
+
+ Original: f(0x77777777); f(0x80000000);
+
+ one should do
+
+ Solution 1: f(0x77777777U); f(0x80000000U);
+
+ over
+
+ Solution 2: f(0x77777777); f(0x80000000U);
+
+ after having ascertained that "Solution 1" is compatible with the
+ intended semantics.
+
* - `Rule 7.3 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_07_03.c>`_
- Required
- The lowercase character l shall not be used in a literal suffix
used following a subsequent call to the same function
-
+ * - `Rule 21.21 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/>`_
+ - Required
+ - The Standard Library function system of <stdlib.h> shall not be used
+ -
+
* - `Rule 22.2 <https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite/-/blob/master/R_22_02.c>`_
- Mandatory
- A block of memory shall only be freed if it was allocated by means of a