From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Xen Devel <xen-devel@lists.xenproject.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
Jbeulich <jbeulich@suse.com>,
Andrew Cooper3 <andrew.cooper3@citrix.com>,
Julien Grall <julien@xen.org>,
George Dunlap <george.dunlap@citrix.com>, Wei Liu <wl@xen.org>
Subject: Re: MISRA: Compatible declarations for sort and bsearch
Date: Mon, 27 Nov 2023 15:32:01 +0100 [thread overview]
Message-ID: <ca540835e3cce50a852fdf2b3956205a@bugseng.com> (raw)
In-Reply-To: <f60a702c838c3274cf9e1193964222f4@bugseng.com>
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)
next prev parent reply other threads:[~2023-11-27 14:32 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-24 9:40 MISRA: Compatible declarations for sort and bsearch Nicola Vetrini
2023-11-27 14:32 ` Nicola Vetrini [this message]
2023-11-27 14:59 ` Jan Beulich
2023-11-27 17:57 ` Nicola Vetrini
2023-11-28 8:54 ` Jan Beulich
2023-11-29 3:26 ` Stefano Stabellini
2023-11-29 9:07 ` Nicola Vetrini
2023-11-28 8:56 ` Jan Beulich
2023-11-28 11:17 ` Nicola Vetrini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ca540835e3cce50a852fdf2b3956205a@bugseng.com \
--to=nicola.vetrini@bugseng.com \
--cc=andrew.cooper3@citrix.com \
--cc=george.dunlap@citrix.com \
--cc=jbeulich@suse.com \
--cc=julien@xen.org \
--cc=sstabellini@kernel.org \
--cc=wl@xen.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.