mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
automation/eclair: update configuration of D4.10
MISRA C Directive 4.10 states that "Precautions shall be taken in order to prevent the contents of a header file being included more than once". Add a SAF tag and update the comment on top of cpufeatures.h. Add a header inclusion guard to compile.h. Generate header guards for hypercall-defs.h Update ECLAIR configuration to: - extend existing deviation to other comments explicitly saying a file is intended for multiple inclusion; - extend existing deviation to other autogenerated files; - tag the guidelines as clean. Update deviations.rst accordingly. Signed-off-by: Federico Serafini <federico.serafini@bugseng.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> Acked-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
1 parent
047a94b3fe
commit
67b99a3691
7 files changed
+33
-7
No files matched your search
@@ -72,11 +72,14 @@ they are not instances of commented-out code."
|
||||
-config=MC3A2.D4.3,reports+={deliberate, "any_area(any_loc(file(arm64_bitops))&&context(name(int_clear_mask16)))"}
|
||||
-doc_end
|
||||
|
||||
-doc_begin="Files that are intended to be included more than once do not need to
|
||||
conform to the directive."
|
||||
-doc_begin="Files that are intended to be included more than once (and have
|
||||
a comment that says this explicitly) do not need to conform to the directive."
|
||||
-config=MC3A2.D4.10,reports+={safe, "first_area(text(^/\\* This file is intended to be included multiple times\\. \\*/$, begin-4))"}
|
||||
-config=MC3A2.D4.10,reports+={safe, "first_area(text(^/\\* Generated file, do not edit! \\*/$, begin-3))"}
|
||||
-config=MC3A2.D4.10,reports+={safe, "all_area(all_loc(file(^xen/include/generated/autoconf.h$)))"}
|
||||
-config=MC3A2.D4.10,reports+={safe, "first_area(text(^/\\* Generated file, do not edit! \\*/$, begin-3...begin-2))"}
|
||||
-doc_end
|
||||
|
||||
-doc_begin="Autogenerated files that do not need to conform to the directive."
|
||||
-config=MC3A2.D4.10,reports+={safe, "all_area(all_loc(file(^xen/include/generated/autoconf\\.h$)))"}
|
||||
-doc_end
|
||||
|
||||
-doc_begin="Including multiple times a .c file is safe because every function or data item
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
"MC3A2.D1.1||
|
||||
MC3A2.D2.1||
|
||||
MC3A2.D4.1||
|
||||
MC3A2.D4.10||
|
||||
MC3A2.D4.11||
|
||||
MC3A2.D4.14||
|
||||
MC3A2.R1.1||
|
||||
|
||||
@@ -30,6 +30,18 @@ Deviations related to MISRA C:2012 Directives:
|
||||
not to add an additional encapsulation layer.
|
||||
- Tagged as `deliberate` for ECLAIR.
|
||||
|
||||
* - D4.10
|
||||
- Files that are intended to be included more than once (and have
|
||||
a comment that says this explicitly) do not need to conform to the
|
||||
directive.
|
||||
- Tagged as `safe` for ECLAIR.
|
||||
|
||||
* - D4.10
|
||||
- There are autogenerated files that do not need to comply to the
|
||||
directive.
|
||||
- Tagged as `safe` for ECLAIR. Such files are:
|
||||
- xen/include/generated/autoconf.h
|
||||
|
||||
* - D4.10
|
||||
- Including multiple times a .c file is safe because every function or data item
|
||||
it defines would in (the common case) be already defined.
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/*
|
||||
* Explicitly intended for multiple inclusion.
|
||||
*/
|
||||
/* This file is intended to be included multiple times. */
|
||||
|
||||
/* SAF-8-safe */
|
||||
#include <xen/lib/x86/cpuid-autogen.h>
|
||||
|
||||
/* Number of capability words covered by the featureset words. */
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
#ifndef XEN_COMPILE_H
|
||||
#define XEN_COMPILE_H
|
||||
|
||||
#define XEN_COMPILE_DATE "@@date@@"
|
||||
#define XEN_COMPILE_TIME "@@time@@"
|
||||
#define XEN_COMPILE_BY "@@whoami@@"
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
# the calls of the handlers inside a switch() statement.
|
||||
|
||||
BEGIN {
|
||||
printf("#ifndef XEN_HYPERCALL_DEFS_H\n");
|
||||
printf("#define XEN_HYPERCALL_DEFS_H\n\n");
|
||||
printf("/* Generated file, do not edit! */\n\n");
|
||||
e = 0;
|
||||
n = 0;
|
||||
@@ -311,4 +313,5 @@ END {
|
||||
printf("[__HYPERVISOR_%s] = %d, \\\n", fn[call_fn[i]], n_args[call_fn[i]]);
|
||||
printf("}\n");
|
||||
}
|
||||
printf("\n#endif /* XEN_HYPERCALL_DEFS_H */\n");
|
||||
}
|
||||
@@ -12,3 +12,8 @@ s_(.*)_"\1\\n"_
|
||||
|
||||
# Trailing \ on all but the final line.
|
||||
$!s_$_ \\_
|
||||
|
||||
# Append closing header guard
|
||||
$a\
|
||||
\
|
||||
#endif /* XEN_COMPILE_H */
|
||||