[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH v2 00/10] address violations of MISRA C:2012 Directive 4.10
On 28.09.2023 15:17, Simone Ballarin wrote: > On 28/09/23 14:51, Jan Beulich wrote: >> On 28.09.2023 14:46, Simone Ballarin wrote: >>> On 13/09/23 10:02, Jan Beulich wrote: >>>> On 12.09.2023 11:36, Simone Ballarin wrote: >>>>> Add or move 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. >>>>> >>>>> Simone Ballarin (10): >>>>> misra: add deviation for headers that explicitly avoid guards >>>>> misra: modify deviations for empty and generated headers >>>>> misra: add deviations for direct inclusion guards >>>>> xen/arm: address violations of MISRA C:2012 Directive 4.10 >>>>> xen/x86: address violations of MISRA C:2012 Directive 4.10 >>>>> x86/EFI: address violations of MISRA C:2012 Directive 4.10 >>>>> xen/common: address violations of MISRA C:2012 Directive 4.10 >>>>> xen/efi: address violations of MISRA C:2012 Directive 4.10 >>>>> xen: address violations of MISRA C:2012 Directive 4.10 >>>>> x86/asm: address violations of MISRA C:2012 Directive 4.10 >>>> >>>> Just to mention it here again for the entire series, seeing that despite >>>> my earlier comments to this effect a few R-b have arrived: If private >>>> headers need to gain guards (for, imo, no real reason), we first need to >>>> settle on a naming scheme for these guards, such that guards used in >>>> private headers aren't at risk of colliding with ones used headers >>>> living in one of the usual include directories. IOW imo fair parts of >>>> this series may need redoing. >>>> >>>> Jan >>>> >>> >>> My proposal is: >>> - the relative path from "xen/arch" for files in this directory >>> (i.e. X86_X86_X86_MMCONFIG_H for "xen/arch/x86/x86_64/mmconfig.h"; >> >> X86_X86_64_MMCONFIG_H that is? >> >> Yet then this scheme won't hold for xen/arch/include/asm/... ? It's also >> not clear whether you're deliberately omitting leading/trailing underscores >> here, which may be a way to distinguish private from global headers. > > Each name that begins with a double or single underscore (__, _) > followed by an uppercase letter is reserved. Using a reserved identifier > is an undefined-b. > > I would be better to avoid them. I'm with you about avoiding them, except that we use such all over the place. Taking this together with ... >>> - for the others, the entire path. >> >> What exactly is "entire" here? > > Let me try again. > > If we are inside xen/arch the relative path starting from this directory: > | xen/arch/x86/include/asm/compat.h > X86_INCLUDE_ASM_COMPAT_H > > For xen/include, the current convention. > Maybe, in a future patch, we can consider removing the leading _. > > For the others, the relative path after xen: > | xen/common/efi/efi.h > COMMON_EFI_EFI_H ... this you're effectively suggesting to change all existing guards. That's an option, but likely not a preferred one. Personally I'd prefer if in particular the headers in xen/include/ and in xen/arch/*include/ didn't needlessly include _INCLUDE_ in their guard names. I'm really curious what others think. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |