[Nouveau] [PATCH 00/24] drm: add extern C guard for the UAPI headers
Emil Velikov
emil.l.velikov at gmail.com
Thu Apr 21 19:41:31 UTC 2016
Hi all,
As some of you may know there some subtle distinction between C and C++
structs, thus one should wrap/annotate them roughly like below.
...
#if defined(__cplusplus)
extern "C" {
#endif
struct foo {
int bar;
...
};
...
#if defined(__cplusplus)
}
#endif
In order to work around the lack of these users can wrap the header
inclusion in the same way. For example:
...
#if defined(__cplusplus)
extern "C" {
#endif
#include <i915_drm.h>
#if defined(__cplusplus)
}
#endif
Yet we should avoid this approach, as it might cause issues [1] [2] [3].
Thus here is a series which systematically updates all the UAPI headers
in one go.
I would prefer if we get this merged in one go. Daniel, is it possible
to go through drm-misc ? The series is already based on it.
Maintainers, does this sound reasonable, can we get a few acks ?
Thanks
Emil
[1] http://developers.redhat.com/blog/2016/02/29/why-cstdlib-is-more-complicated-than-you-might-think/
[2] https://isocpp.org/wiki/faq/mixing-c-and-cpp
[3] http://www.oracle.com/technetwork/articles/servers-storage-dev/mixingcandcpluspluscode-305840.html
Cc: Alex Deucher <alexander.deucher at amd.com>
Cc: Andrzej Hajda <a.hajda at samsung.com>
Cc: Ben Skeggs <bskeggs at redhat.com>
Cc: Brian Paul <brianp at vmware.com>
Cc: Christian Gmeiner <christian.gmeiner at gmail.com>
Cc: Christian König <christian.koenig at amd.com>
Cc: Daniel Vetter <daniel.vetter at intel.com>
Cc: Dave Airlie <airlied at redhat.com>
Cc: Eric Anholt <eric at anholt.net>
Cc: Erik Faye-Lund <kusmabite at gmail.com>
Cc: Gerd Hoffmann <kraxel at redhat.com>
Cc: Inki Dae <inki.dae at samsung.com>
Cc: Jani Nikula <jani.nikula at linux.intel.com>
Cc: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Cc: Lucas Stach <l.stach at pengutronix.de>
Cc: Michel Dänzer <michel.daenzer at amd.com>
Cc: Rob Clark <robdclark at gmail.com>
Cc: Russell King <rmk+kernel at arm.linux.org.uk>
Cc: Sinclair Yeh <syeh at vmware.com>
Cc: Thierry Reding <thierry.reding at gmail.com>
Cc: Thomas Hellstrom <thellstrom at vmware.com>
Cc: Tomi Valkeinen <tomi.valkeinen at ti.com>
Emil Velikov (24):
drm/amdgpu: add extern C guard for the UAPI header
drm/armada: add extern C guard for the UAPI header
drm: add extern C guard for the UAPI headers
drm/etnaviv: add extern C guard for the UAPI header
drm/exynos: add extern C guard for the UAPI header
drm/i810: add extern C guard for the UAPI header
drm/i915: add extern C guard for the UAPI header
drm/mga: add extern C guard for the UAPI header
drm/msm: add extern C guard for the UAPI header
drm/nouveau: add extern C guard for the UAPI header
drm/nouveau: drop drm/ prefix from include
drm/omap: add extern C guard for the UAPI header
drm/qxl: add extern C guard for the UAPI header
drm/qxl: remove XXX comment from the UAPI header
drm/r128: add extern C guard for the UAPI header
drm/radeon: add extern C guard for the UAPI header
drm/savage: add extern C guard for the UAPI header
drm/sis: add extern C guard for the UAPI header
drm/sis: add missing include drm.h for the UAPI header
drm/tegra: add extern C guard for the UAPI header
drm/vc4: add extern C guard for the UAPI header
drm/via: add extern C guard for the UAPI header
drm/virgl: add extern C guard for the UAPI header
drm/vmwgfx: add extern C guard for the UAPI header
include/uapi/drm/amdgpu_drm.h | 8 ++++++++
include/uapi/drm/armada_drm.h | 8 ++++++++
include/uapi/drm/drm.h | 16 ++++++++++++++++
include/uapi/drm/drm_fourcc.h | 8 ++++++++
include/uapi/drm/drm_mode.h | 8 ++++++++
include/uapi/drm/drm_sarea.h | 8 ++++++++
include/uapi/drm/etnaviv_drm.h | 8 ++++++++
include/uapi/drm/exynos_drm.h | 8 ++++++++
include/uapi/drm/i810_drm.h | 8 ++++++++
include/uapi/drm/i915_drm.h | 8 ++++++++
include/uapi/drm/mga_drm.h | 8 ++++++++
include/uapi/drm/msm_drm.h | 8 ++++++++
include/uapi/drm/nouveau_drm.h | 10 +++++++++-
include/uapi/drm/omap_drm.h | 8 ++++++++
include/uapi/drm/qxl_drm.h | 9 ++++++++-
include/uapi/drm/r128_drm.h | 8 ++++++++
include/uapi/drm/radeon_drm.h | 8 ++++++++
include/uapi/drm/savage_drm.h | 8 ++++++++
include/uapi/drm/sis_drm.h | 10 ++++++++++
include/uapi/drm/tegra_drm.h | 8 ++++++++
include/uapi/drm/vc4_drm.h | 8 ++++++++
include/uapi/drm/via_drm.h | 8 ++++++++
include/uapi/drm/virtgpu_drm.h | 8 ++++++++
include/uapi/drm/vmwgfx_drm.h | 9 +++++++++
24 files changed, 204 insertions(+), 2 deletions(-)
--
2.6.2
More information about the Nouveau
mailing list