On 29/08/23 00:51, Stefano Stabellini wrote:
On Mon, 28 Aug 2023, Simone Ballarin wrote:
Move or amended inclusion guards to address violations of
MISRA C:2012 Directive 4.10 ("Precautions shall be taken in order
to prevent the contents of a header file being included more than
once").

Inclusion guards must appear at the beginning of the headers
(comments are permitted anywhere) and the #if directive cannot
be used for other checks.

Mechanical change.

Signed-off-by: Simone Ballarin <simone.balla...@bugseng.com>
---
  xen/include/xen/err.h       | 4 +++-
  xen/include/xen/pci_ids.h   | 5 +++++
  xen/include/xen/softirq.h   | 4 +++-
  xen/include/xen/unaligned.h | 7 ++++---
  xen/include/xen/vmap.h      | 4 +++-
  5 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/xen/include/xen/err.h b/xen/include/xen/err.h
index 2f29b57d28..a6323d82d7 100644
--- a/xen/include/xen/err.h
+++ b/xen/include/xen/err.h
@@ -1,5 +1,6 @@
-#if !defined(__XEN_ERR_H__) && !defined(__ASSEMBLY__)
+#if !defined(__XEN_ERR_H__)
  #define __XEN_ERR_H__
+#if !defined(__ASSEMBLY__)

The original pattern was also guarding the header file sufficiently,
protecting it from double-inclusion. In fact, it is posing stricter
restrictions than usual (not laxer). This change is unnecessary?

The MISRA directive asks to use one of the two following forms:

<start-of-file>
#if !defined ( identifier )
#define identifier
/* Contents of file */
#endif
<end-of-file>

<start-of-file>
#ifndef identifier
#define identifier
/* Contents of file */
#endif
<end-of-file>

I do not see any reason for deviating, but if you ask that, I can do it.



  #include <xen/compiler.h>
  #include <xen/errno.h>
@@ -54,4 +55,5 @@ static inline int __must_check PTR_RET(const void *ptr)
        return IS_ERR(ptr) ? PTR_ERR(ptr) : 0;
  }
+#endif /* __ASSEMBLY__ */
  #endif /* __XEN_ERR_H__ */
diff --git a/xen/include/xen/pci_ids.h b/xen/include/xen/pci_ids.h
index e798477a7e..1a739d4c92 100644
--- a/xen/include/xen/pci_ids.h
+++ b/xen/include/xen/pci_ids.h
@@ -1,3 +1,6 @@
+#ifndef __XEN_PCI_IDS_H__
+#define __XEN_PCI_IDS_H__
+
  #define PCI_VENDOR_ID_AMD                0x1022
#define PCI_VENDOR_ID_NVIDIA 0x10de
@@ -11,3 +14,5 @@
  #define PCI_VENDOR_ID_BROADCOM           0x14e4
#define PCI_VENDOR_ID_INTEL 0x8086
+
+#endif /* __XEN_PCI_IDS_H__ */
diff --git a/xen/include/xen/softirq.h b/xen/include/xen/softirq.h
index 33d6f2ecd2..092ec733b7 100644
--- a/xen/include/xen/softirq.h
+++ b/xen/include/xen/softirq.h
@@ -1,5 +1,6 @@
-#if !defined(__XEN_SOFTIRQ_H__) && !defined(__ASSEMBLY__)
+#if !defined(__XEN_SOFTIRQ_H__)
  #define __XEN_SOFTIRQ_H__
+#if !defined(__ASSEMBLY__)

same here


  /* Low-latency softirqs come first in the following list. */
  enum {
@@ -40,4 +41,5 @@ void cpu_raise_softirq_batch_finish(void);
   */
  void process_pending_softirqs(void);
+#endif /* __ASSEMBLY__ */
  #endif /* __XEN_SOFTIRQ_H__ */
diff --git a/xen/include/xen/unaligned.h b/xen/include/xen/unaligned.h
index 0a2b16d05d..45f03b3f1b 100644
--- a/xen/include/xen/unaligned.h
+++ b/xen/include/xen/unaligned.h
@@ -3,13 +3,14 @@
   * without faulting, and at least reasonably efficiently.  Other architectures
   * will need to have a custom asm/unaligned.h.
   */
-#ifndef __ASM_UNALIGNED_H__
-#error "xen/unaligned.h should not be included directly - include asm/unaligned.h 
instead"
-#endif
#ifndef __XEN_UNALIGNED_H__
  #define __XEN_UNALIGNED_H__
+#ifndef __ASM_UNALIGNED_H__
+#error "xen/unaligned.h should not be included directly - include asm/unaligned.h 
instead"
+#endif
+
  #ifdef __XEN__
  #include <xen/types.h>
  #include <asm/byteorder.h>
diff --git a/xen/include/xen/vmap.h b/xen/include/xen/vmap.h
index b0f7632e89..7a61dea54a 100644
--- a/xen/include/xen/vmap.h
+++ b/xen/include/xen/vmap.h
@@ -1,5 +1,6 @@
-#if !defined(__XEN_VMAP_H__) && defined(VMAP_VIRT_START)
+#if !defined(__XEN_VMAP_H__)
  #define __XEN_VMAP_H__
+#if defined(VMAP_VIRT_START)

same here


  #include <xen/mm-frame.h>
  #include <xen/page-size.h>
@@ -38,4 +39,5 @@ static inline void vm_init(void)
      vm_init_type(VMAP_DEFAULT, (void *)VMAP_VIRT_START, arch_vmap_virt_end());
  }
+#endif /* VMAP_VIRT_START */
  #endif /* __XEN_VMAP_H__ */
--
2.34.1



--
Simone Ballarin, M.Sc.

Field Application Engineer, BUGSENG (https://bugseng.com)


Reply via email to