[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MISRA: Compatible declarations for sort and bsearch



On 2023-11-24 10:40, Nicola Vetrini wrote:
Hi all,

in xen/lib.h and xen/sort.h there are definitions of the functions bsearch and sort that have no prior declarations, and therefore are subject to a violation of MISRA C Rule 8.4.

I'm wondering whether it would be preferred

1. to put a declaration just before the definition, in lib.h and sort.h
2. deviate these functions, as their signatures are well-known and somewhat standardized

other resolution strategies are possible, but I think these are the main ones.

Still on the matter of Rule 8.4, though not related to bsearch or sort:

- the definition of do_mca in x86/cpu/mcheck/mca.c has the following header:
  #include <xen/hypercall.h> /* for do_mca */
which in turn leads to x86/include/asm/hypercall.h, which includes the following:
  #include <public/arch-x86/xen-mca.h> /* for do_mca */

where I can't see a declaration for do_mca, as I would have expected. I'd like to understand what's going on here, since I may be missing some piece of information (perhaps something is generated during the build).

- x86/traps.c do_general_protection may want a declaration in x86/include/asm/traps.h, or perhaps it should gain the asmlinkage attribute, given that it's used only by asm and the TU that defines it.

- function test and variable data in x86/efi/check.c look like they should not be MISRA compliant, so they may be added to the exclude-list.json

- given the comment in xen/common/page_alloc.c for first_valid_mfn

/*
 * first_valid_mfn is exported because it is use in ARM specific NUMA
 * helpers. See comment in arch/arm/include/asm/numa.h.
 */
mfn_t first_valid_mfn = INVALID_MFN_INITIALIZER;

and the related ARM comment

/*
 * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
 * is required because the dummy helpers are using it.
 */
extern mfn_t first_valid_mfn;

it should probably be deviated.

- compat_set_{px,cx}_pminfo in x86/x86_64/cpufreq.c are perhaps declared with an autogenerated header?

--
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.