From: Ian Campbell <ian.campbell@citrix.com>
To: Ian Jackson <Ian.Jackson@eu.citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
Paul Durrant <Paul.Durrant@citrix.com>,
wei.liu2@citrix.com, xen-devel@lists.xen.org
Subject: Re: [PATCH XEN v5 13/23] tools: Refactor foreign memory mapping into libxenforeignmemory
Date: Fri, 27 Nov 2015 17:18:26 +0000 [thread overview]
Message-ID: <1448644706.13576.138.camel@citrix.com> (raw)
In-Reply-To: <22086.340.522438.701042@mariner.uk.xensource.com>
On Fri, 2015-11-13 at 15:27 +0000, Ian Jackson wrote:
> Ian Campbell writes ("Re: [PATCH XEN v5 13/23] tools: Refactor foreign
> memory mapping into libxenforeignmemory"):
> > On Wed, 2015-11-11 at 15:13 +0000, Ian Jackson wrote:
> > Are you suggesting:
> >
> > void *xenforeignmemory_map(xenforeignmemory_handle *fmem, uint32_t dom,
> > int prot, const xen_pfn_t *arr,
> > int err_out[num],
> > unsigned int num);
> >
> > Is that (a var sized array based on another param) really allowed?
>
> Yes, if the array size precedes the array.
Sadly:
for i in include/xenforeignmemory.h; do \
gcc -x c -ansi -Wall -Werror -pedantic -I/local/scratch/ianc/devel/libxenctrl-split/xen.git/tools/libs/foreignmemory/../../../tools/include \
-S -o /dev/null $i || exit 1; \
echo $i; \
done >headers.chk.new
include/xenforeignmemory.h:142:28: error: ISO C90 forbids variable length array ‘arr’ [-Werror=vla]
const xen_pfn_t *arr[pages], int err[pages]);
^
include/xenforeignmemory.h:142:28: error: ISO C90 forbids variable length array ‘err’ [-Werror=vla]
cc1: all warnings being treated as errors
/local/scratch/ianc/devel/libxenctrl-split/xen.git/tools/libs/foreignmemory/../../../tools/Rules.mk:200: recipe for target 'headers.chk' failed
It's -ansi (AKA -std=c90) together with -pedantic which does it. -std=c99
is happy with it (including with -pedantic).
The original motivation for this check was [0]:
As part of the tidyup, we should choose a particular C standard (89,
probably) and ensure that the API/ABI complies with `gcc -std=c$VER
-pedantic`. This will help to provide a consistent API on other
platforms (I seem to recall an effort to port libvchan to windows.)
It's not clear to me how much the "89 probably" was influenced by the "on
other platforms ... windows" bit (maybe Andy or Paul has an opinion).
C99 was 16 years ago now, I'm struggling to think of a reason not to move
the baseline for tools stuff at least to that.
https://en.wikipedia.org/wiki/Visual_C%2B%2B might be one such reason I
suppose, although I'm not convinced a libvchan port to Windows, even if not
entirely hypothetical, would be using any of xen.git/tools/libs/* rather
than the equivalent frameworks provided by the Windows PV drivers.
Ian.
[0] http://article.gmane.org/gmane.comp.emulators.xen.devel/247265
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2015-11-27 17:18 UTC|newest]
Thread overview: 111+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-09 11:59 [Qemu-devel] [Minios-devel] [PATCH v4 0/<VARIOUS>] Begin to disentangle libxenctrl and provide some stable libraries Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 00/23] " Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 01/23] tools/Rules.mk: Properly handle libraries with recursive dependencies Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 02/23] tools: Refactor "xentoollog" into its own library Ian Campbell
2015-11-13 15:05 ` Andrew Cooper
2015-11-13 15:35 ` Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 03/23] tools/libxc: Remove osdep indirection for xc_evtchn Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 04/23] tools: Refactor /dev/xen/evtchn wrappers into libxenevtchn Ian Campbell
2015-11-11 14:50 ` Ian Jackson
2015-11-09 12:00 ` [PATCH XEN v5 05/23] tools: Arrange to check public headers for ANSI compatiblity Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 06/23] tools/libxc: Remove osdep indirection for xc_gnt{shr, tab} Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 07/23] tools: Refactor /dev/xen/gnt{dev, shr} wrappers into libxengnttab Ian Campbell
2015-11-11 14:34 ` Wei Liu
2015-11-11 15:03 ` Ian Jackson
2015-11-13 15:02 ` Ian Campbell
2015-11-13 20:38 ` Daniel De Graaf
2015-11-16 12:30 ` Ian Campbell
2015-11-24 16:32 ` Daniel De Graaf
2015-11-23 17:05 ` Ian Campbell
2015-11-24 9:34 ` Ian Campbell
2015-11-25 15:06 ` Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 08/23] tools/libxc: Remove osdep indirection for privcmd Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 09/23] tools: Refactor hypercall calling wrappers into libxencall Ian Campbell
2015-11-11 15:08 ` Ian Jackson
2015-11-11 15:31 ` Wei Liu
2015-11-13 15:17 ` Ian Campbell
2015-11-13 15:16 ` Ian Campbell
2015-11-13 16:56 ` Ian Campbell
2015-11-13 16:57 ` Ian Campbell
2015-11-13 17:16 ` Roger Pau Monné
2015-11-13 17:23 ` Ian Campbell
2015-11-13 15:35 ` Andrew Cooper
2015-11-13 15:49 ` Andrew Cooper
2015-12-02 14:55 ` Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 10/23] tools/libxc: drop xc_map_foreign_bulk_compat wrappers Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 11/23] tools: Remove xc_map_foreign_batch Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 12/23] tools: Implement xc_map_foreign_range(s) in terms of common helper Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 13/23] tools: Refactor foreign memory mapping into libxenforeignmemory Ian Campbell
2015-11-11 15:13 ` Ian Jackson
2015-11-13 15:21 ` Ian Campbell
2015-11-13 15:27 ` Ian Jackson
2015-11-27 17:18 ` Ian Campbell [this message]
2015-11-27 17:48 ` Andrew Cooper
2015-11-29 9:54 ` Paul Durrant
[not found] ` <9AAE0902D5BC7E449B7C8E4E778ABCD02F69D32F@AMSPEX01CL01.citrite.net>
2015-11-30 9:51 ` Ian Campbell
[not found] ` <1448877118.15768.11.camel@citrix.com>
2015-12-01 10:16 ` Paul Durrant
2015-11-27 15:46 ` Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 14/23] tools: foreignmemory: provide xenforeignmemory_unmap Ian Campbell
2015-11-11 15:14 ` Ian Jackson
2015-11-27 15:57 ` Ian Campbell
2015-11-13 16:16 ` Andrew Cooper
2015-11-13 16:17 ` Andrew Cooper
2015-11-09 12:00 ` [PATCH XEN v5 15/23] foreignmemory: use size_t for size arguments Ian Campbell
2015-11-11 15:15 ` Ian Jackson
2015-11-09 12:00 ` [PATCH XEN v5 16/23] tools/libs/evtchn: Review and update doc comments Ian Campbell
2015-11-11 15:15 ` Ian Jackson
2015-11-09 12:00 ` [PATCH XEN v5 17/23] tools/libs: Clean up hard tabs Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 18/23] tools/libs/gnttab: Review and update doc comments Ian Campbell
2015-11-11 15:17 ` Ian Jackson
2015-11-09 12:00 ` [PATCH XEN v5 19/23] tools/libs/call: Update some log messages to not refer to xc Ian Campbell
2015-11-13 16:20 ` Andrew Cooper
2015-11-23 13:10 ` Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 20/23] tools/libs/call: Avoid xc_memalign in netbsd and solaris backends Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 21/23] tools/libs/foreignmemory: Mention restrictions on fork in docs Ian Campbell
2015-11-11 15:18 ` Ian Jackson
2015-11-09 12:00 ` [PATCH XEN v5 22/23] tools: Update CFLAGS for qemu-xen to allow it to use new libraries Ian Campbell
2015-11-09 12:00 ` [PATCH XEN v5 23/23] HACK: Update Config.mk to pull all the right bits from my xenbits trees Ian Campbell
2015-11-11 15:20 ` [PATCH XEN v5 00/23] Begin to disentangle libxenctrl and provide some stable libraries Ian Jackson
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 0/9] " Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 1/9] xen_console: correctly cleanup primary console on teardown Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 2/9] xen: Switch to libxenevtchn interface for compat shims Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 3/9] xen: Switch to libxengnttab " Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-10 14:02 ` [Qemu-devel] " Stefano Stabellini
2015-11-10 14:02 ` Stefano Stabellini
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 4/9] xen: Switch uses of xc_map_foreign_range into xc_map_foreign_bulk Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 5/9] xen: Switch uses of xc_map_foreign_pages " Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 6/9] xen: Switch uses of xc_map_foreign_bulk to use libxenforeignmemory API Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 7/9] xen: Use stable library interfaces when they are available Ian Campbell
2015-11-10 14:00 ` Stefano Stabellini
2015-11-10 14:00 ` [Qemu-devel] " Stefano Stabellini
2015-11-09 12:01 ` Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 8/9] xen: domainbuild: reopen libxenctrl interface after forking for domain watcher Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-09 12:01 ` [Qemu-devel] [PATCH QEMU-XEN v5 9/9] xen: make it possible to build without the Xen PV domain builder Ian Campbell
2015-11-09 12:01 ` Ian Campbell
2015-11-10 12:48 ` Stefano Stabellini
2015-11-10 12:48 ` [Qemu-devel] " Stefano Stabellini
2015-11-09 12:01 ` [PATCH QEMU-XEN-TRADITIONAL v5 0/5] Begin to disentangle libxenctrl and provide some stable libraries Ian Campbell
2015-11-09 12:01 ` [PATCH QEMU-XEN-TRADITIONAL v5 1/5] qemu-xen-traditional: Use xentoollog as a separate library Ian Campbell
2015-11-09 12:01 ` [PATCH QEMU-XEN-TRADITIONAL v5 2/5] qemu-xen-traditional: Use libxenevtchn Ian Campbell
2015-11-11 15:19 ` Ian Jackson
2015-11-09 12:01 ` [PATCH QEMU-XEN-TRADITIONAL v5 3/5] qemu-xen-traditional: Use libxengnttab Ian Campbell
2015-11-11 15:20 ` Ian Jackson
2015-11-09 12:01 ` [PATCH QEMU-XEN-TRADITIONAL v5 4/5] qemu-xen-traditional: Add libxencall to rpath-link Ian Campbell
2015-11-11 15:20 ` Ian Jackson
2015-11-09 12:01 ` [PATCH QEMU-XEN-TRADITIONAL v5 5/5] qemu-xen-traditional: Add libxenforeignmemory " Ian Campbell
2015-11-11 15:21 ` Ian Jackson
2015-11-11 15:23 ` [PATCH QEMU-XEN-TRADITIONAL v5 0/5] Begin to disentangle libxenctrl and provide some stable libraries Ian Jackson
2015-11-09 12:01 ` [PATCH MINI-OS " Ian Campbell
2015-11-09 12:01 ` [PATCH MINI-OS v5 1/5] mini-os: Include libxentoollog with libxc Ian Campbell
2015-11-09 12:01 ` [PATCH MINI-OS v5 2/5] mini-os: Include libxenevtchn " Ian Campbell
2015-11-09 12:01 ` [PATCH MINI-OS v5 3/5] mini-os: Include libxengnttab " Ian Campbell
2015-11-09 12:01 ` [PATCH MINI-OS v5 4/5] mini-os: Include libxencall " Ian Campbell
2015-11-09 12:01 ` [PATCH MINI-OS v5 5/5] mini-os: Include libxenforeignmemory " Ian Campbell
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=1448644706.13576.138.camel@citrix.com \
--to=ian.campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=Paul.Durrant@citrix.com \
--cc=andrew.cooper3@citrix.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.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.