Emil Velikov
2016-Apr-21  19:41 UTC
[Nouveau] [PATCH 00/24] drm: add extern C guard for the UAPI headers
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
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 01/24] drm/amdgpu: add extern C guard for the UAPI header
Cc: Alex Deucher <alexander.deucher at amd.com>
Cc: Christian König <christian.koenig at amd.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/amdgpu_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/amdgpu_drm.h b/include/uapi/drm/amdgpu_drm.h
index 453a76a..cdecf87 100644
--- a/include/uapi/drm/amdgpu_drm.h
+++ b/include/uapi/drm/amdgpu_drm.h
@@ -34,6 +34,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 #define DRM_AMDGPU_GEM_CREATE		0x00
 #define DRM_AMDGPU_GEM_MMAP		0x01
 #define DRM_AMDGPU_CTX			0x02
@@ -642,4 +646,8 @@ struct drm_amdgpu_info_hw_ip {
 #define AMDGPU_FAMILY_VI			130 /* Iceland, Tonga */
 #define AMDGPU_FAMILY_CZ			135 /* Carrizo, Stoney */
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 02/24] drm/armada: add extern C guard for the UAPI header
Cc: Russell King <rmk+kernel at arm.linux.org.uk>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/armada_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/armada_drm.h b/include/uapi/drm/armada_drm.h
index 6de7f01..72e326f 100644
--- a/include/uapi/drm/armada_drm.h
+++ b/include/uapi/drm/armada_drm.h
@@ -11,6 +11,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 #define DRM_ARMADA_GEM_CREATE		0x00
 #define DRM_ARMADA_GEM_MMAP		0x02
 #define DRM_ARMADA_GEM_PWRITE		0x03
@@ -44,4 +48,8 @@ struct drm_armada_gem_pwrite {
 #define DRM_IOCTL_ARMADA_GEM_PWRITE \
 	ARMADA_IOCTL(IOW, GEM_PWRITE, gem_pwrite)
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 03/24] drm: add extern C guard for the UAPI headers
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 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 ++++++++
 4 files changed, 40 insertions(+)
diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h
index 3683250..452675f 100644
--- a/include/uapi/drm/drm.h
+++ b/include/uapi/drm/drm.h
@@ -65,6 +65,10 @@ typedef unsigned long drm_handle_t;
 
 #endif
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 #define DRM_NAME	"drm"	  /**< Name in kernel, /dev, and /proc */
 #define DRM_MIN_ORDER	5	  /**< At least 2^5 bytes = 32 bytes */
 #define DRM_MAX_ORDER	22	  /**< Up to 2^22 bytes = 4MB */
@@ -691,8 +695,16 @@ struct drm_prime_handle {
 	__s32 fd;
 };
 
+#if defined(__cplusplus)
+}
+#endif
+
 #include "drm_mode.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 #define DRM_IOCTL_BASE			'd'
 #define DRM_IO(nr)			_IO(DRM_IOCTL_BASE,nr)
 #define DRM_IOR(nr,type)		_IOR(DRM_IOCTL_BASE,nr,type)
@@ -886,4 +898,8 @@ typedef struct drm_scatter_gather drm_scatter_gather_t;
 typedef struct drm_set_version drm_set_version_t;
 #endif
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif
diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h
index 4d8da69..a5890bf 100644
--- a/include/uapi/drm/drm_fourcc.h
+++ b/include/uapi/drm/drm_fourcc.h
@@ -26,6 +26,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 #define fourcc_code(a, b, c, d) ((__u32)(a) | ((__u32)(b) << 8) | \
 				 ((__u32)(c) << 16) | ((__u32)(d) << 24))
 
@@ -229,4 +233,8 @@
  */
 #define DRM_FORMAT_MOD_SAMSUNG_64_32_TILE	fourcc_mod_code(SAMSUNG, 1)
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif /* DRM_FOURCC_H */
diff --git a/include/uapi/drm/drm_mode.h b/include/uapi/drm/drm_mode.h
index 7a7856e0..a4c5378 100644
--- a/include/uapi/drm/drm_mode.h
+++ b/include/uapi/drm/drm_mode.h
@@ -29,6 +29,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 #define DRM_DISPLAY_INFO_LEN	32
 #define DRM_CONNECTOR_NAME_LEN	32
 #define DRM_DISPLAY_MODE_LEN	32
@@ -621,4 +625,8 @@ struct drm_mode_destroy_blob {
 	__u32 blob_id;
 };
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif
diff --git a/include/uapi/drm/drm_sarea.h b/include/uapi/drm/drm_sarea.h
index 1d1a858..a951ced 100644
--- a/include/uapi/drm/drm_sarea.h
+++ b/include/uapi/drm/drm_sarea.h
@@ -34,6 +34,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 /* SAREA area needs to be at least a page */
 #if defined(__alpha__)
 #define SAREA_MAX                       0x2000U
@@ -83,4 +87,8 @@ typedef struct drm_sarea_frame drm_sarea_frame_t;
 typedef struct drm_sarea drm_sarea_t;
 #endif
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif				/* _DRM_SAREA_H_ */
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 04/24] drm/etnaviv: add extern C guard for the UAPI header
Cc: Christian Gmeiner <christian.gmeiner at gmail.com>
Cc: Russell King <rmk+kernel at arm.linux.org.uk>
Cc: Lucas Stach <l.stach at pengutronix.de>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/etnaviv_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/etnaviv_drm.h b/include/uapi/drm/etnaviv_drm.h
index f95e1c4..2584c1c 100644
--- a/include/uapi/drm/etnaviv_drm.h
+++ b/include/uapi/drm/etnaviv_drm.h
@@ -19,6 +19,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 /* Please note that modifications to all structs defined here are
  * subject to backwards-compatibility constraints:
  *  1) Do not use pointers, use __u64 instead for 32 bit / 64 bit
@@ -222,4 +226,8 @@ struct drm_etnaviv_gem_wait {
 #define DRM_IOCTL_ETNAVIV_GEM_USERPTR  DRM_IOWR(DRM_COMMAND_BASE +
DRM_ETNAVIV_GEM_USERPTR, struct drm_etnaviv_gem_userptr)
 #define DRM_IOCTL_ETNAVIV_GEM_WAIT     DRM_IOW(DRM_COMMAND_BASE +
DRM_ETNAVIV_GEM_WAIT, struct drm_etnaviv_gem_wait)
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif /* __ETNAVIV_DRM_H__ */
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 05/24] drm/exynos: add extern C guard for the UAPI header
Cc: Andrzej Hajda <a.hajda at samsung.com>
Cc: Inki Dae <inki.dae at samsung.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
Inki,
Can we please have someone from the Exynos/Samsung look into the
following:
 - A follow up on patch cbf0aceff85 "drm/exynos: use arch independent
types in uapi header"
 - Use the same licence for both libdrm and kernel version of
exynos_drm.h - ideally X11/MIT.
No rush, just making sure that it doesn't fall through the cracks.
Thanks
Emil
---
 include/uapi/drm/exynos_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/exynos_drm.h b/include/uapi/drm/exynos_drm.h
index 3947c2e..cb3e9f9 100644
--- a/include/uapi/drm/exynos_drm.h
+++ b/include/uapi/drm/exynos_drm.h
@@ -17,6 +17,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 /**
  * User-desired buffer creation information structure.
  *
@@ -362,4 +366,8 @@ struct drm_exynos_ipp_event {
 	__u32			buf_id[EXYNOS_DRM_OPS_MAX];
 };
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif /* _UAPI_EXYNOS_DRM_H_ */
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 06/24] drm/i810: add extern C guard for the UAPI header
Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
Daniel,
Based on earlier chat that his file has never been used by userspace,
should we just move it for internal usage (to include/drm) ?
Regards,
Emil
---
 include/uapi/drm/i810_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/i810_drm.h b/include/uapi/drm/i810_drm.h
index bdb0287..6e6cf86 100644
--- a/include/uapi/drm/i810_drm.h
+++ b/include/uapi/drm/i810_drm.h
@@ -3,6 +3,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 /* WARNING: These defines must be the same as what the Xserver uses.
  * if you change them, you must change the defines in the Xserver.
  */
@@ -280,4 +284,8 @@ typedef struct _drm_i810_mc {
 	unsigned int last_render;	/* Last Render Request */
 } drm_i810_mc_t;
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif				/* _I810_DRM_H_ */
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 07/24] drm/i915: add extern C guard for the UAPI header
Cc: Daniel Vetter <daniel.vetter at intel.com>
Cc: Jani Nikula <jani.nikula at linux.intel.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/i915_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
index a5524cc..c17d63d 100644
--- a/include/uapi/drm/i915_drm.h
+++ b/include/uapi/drm/i915_drm.h
@@ -29,6 +29,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 /* Please note that modifications to all structs defined here are
  * subject to backwards-compatibility constraints.
  */
@@ -1170,4 +1174,8 @@ struct drm_i915_gem_context_param {
 	__u64 value;
 };
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif /* _UAPI_I915_DRM_H_ */
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 08/24] drm/mga: add extern C guard for the UAPI header
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/mga_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/mga_drm.h b/include/uapi/drm/mga_drm.h
index fca8170..8c43375 100644
--- a/include/uapi/drm/mga_drm.h
+++ b/include/uapi/drm/mga_drm.h
@@ -37,6 +37,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 /* WARNING: If you change any of these defines, make sure to change the
  * defines in the Xserver file (mga_sarea.h)
  */
@@ -416,4 +420,8 @@ typedef struct drm_mga_getparam {
 	void __user *value;
 } drm_mga_getparam_t;
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 09/24] drm/msm: add extern C guard for the UAPI header
Cc: Rob Clark <robdclark at gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/msm_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/msm_drm.h b/include/uapi/drm/msm_drm.h
index 254d3e9..bf19d2c 100644
--- a/include/uapi/drm/msm_drm.h
+++ b/include/uapi/drm/msm_drm.h
@@ -20,6 +20,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 /* Please note that modifications to all structs defined here are
  * subject to backwards-compatibility constraints:
  *  1) Do not use pointers, use __u64 instead for 32 bit / 64 bit
@@ -217,4 +221,8 @@ struct drm_msm_wait_fence {
 #define DRM_IOCTL_MSM_GEM_SUBMIT       DRM_IOWR(DRM_COMMAND_BASE +
DRM_MSM_GEM_SUBMIT, struct drm_msm_gem_submit)
 #define DRM_IOCTL_MSM_WAIT_FENCE       DRM_IOW (DRM_COMMAND_BASE +
DRM_MSM_WAIT_FENCE, struct drm_msm_wait_fence)
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif /* __MSM_DRM_H__ */
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 10/24] drm/nouveau: add extern C guard for the UAPI header
Cc: Ben Skeggs <bskeggs at redhat.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/nouveau_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/nouveau_drm.h b/include/uapi/drm/nouveau_drm.h
index 500d82a..8d2dc05 100644
--- a/include/uapi/drm/nouveau_drm.h
+++ b/include/uapi/drm/nouveau_drm.h
@@ -29,6 +29,10 @@
 
 #include <drm/drm.h>
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 #define NOUVEAU_GEM_DOMAIN_CPU       (1 << 0)
 #define NOUVEAU_GEM_DOMAIN_VRAM      (1 << 1)
 #define NOUVEAU_GEM_DOMAIN_GART      (1 << 2)
@@ -141,4 +145,8 @@ struct drm_nouveau_gem_cpu_fini {
 #define DRM_IOCTL_NOUVEAU_GEM_CPU_FINI       DRM_IOW (DRM_COMMAND_BASE +
DRM_NOUVEAU_GEM_CPU_FINI, struct drm_nouveau_gem_cpu_fini)
 #define DRM_IOCTL_NOUVEAU_GEM_INFO           DRM_IOWR(DRM_COMMAND_BASE +
DRM_NOUVEAU_GEM_INFO, struct drm_nouveau_gem_info)
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif /* __NOUVEAU_DRM_H__ */
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 11/24] drm/nouveau: drop drm/ prefix from include
Similar to the rest of the DRM UAPI - these are to be imported
unmodified into libdrm. In current form that's impossible.
Cc: Ben Skeggs <bskeggs at redhat.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/nouveau_drm.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/uapi/drm/nouveau_drm.h b/include/uapi/drm/nouveau_drm.h
index 8d2dc05..259588a 100644
--- a/include/uapi/drm/nouveau_drm.h
+++ b/include/uapi/drm/nouveau_drm.h
@@ -27,7 +27,7 @@
 
 #define DRM_NOUVEAU_EVENT_NVIF                                       0x80000000
 
-#include <drm/drm.h>
+#include "drm.h"
 
 #if defined(__cplusplus)
 extern "C" {
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 12/24] drm/omap: add extern C guard for the UAPI header
Cc: Tomi Valkeinen <tomi.valkeinen at ti.com>
Cc: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/omap_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/omap_drm.h b/include/uapi/drm/omap_drm.h
index 38a3bd8..407cb55 100644
--- a/include/uapi/drm/omap_drm.h
+++ b/include/uapi/drm/omap_drm.h
@@ -22,6 +22,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 /* Please note that modifications to all structs defined here are
  * subject to backwards-compatibility constraints.
  */
@@ -114,4 +118,8 @@ struct drm_omap_gem_info {
 #define DRM_IOCTL_OMAP_GEM_CPU_FINI	DRM_IOW (DRM_COMMAND_BASE +
DRM_OMAP_GEM_CPU_FINI, struct drm_omap_gem_cpu_fini)
 #define DRM_IOCTL_OMAP_GEM_INFO		DRM_IOWR(DRM_COMMAND_BASE + DRM_OMAP_GEM_INFO,
struct drm_omap_gem_info)
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif /* __OMAP_DRM_H__ */
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 13/24] drm/qxl: add extern C guard for the UAPI header
Cc: Gerd Hoffmann <kraxel at redhat.com>
Cc: Dave Airlie <airlied at redhat.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/qxl_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/qxl_drm.h b/include/uapi/drm/qxl_drm.h
index 4d1e326..cd99da0 100644
--- a/include/uapi/drm/qxl_drm.h
+++ b/include/uapi/drm/qxl_drm.h
@@ -26,6 +26,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 /* Please note that modifications to all structs defined here are
  * subject to backwards-compatibility constraints.
  *
@@ -148,4 +152,8 @@ struct drm_qxl_alloc_surf {
 	DRM_IOWR(DRM_COMMAND_BASE + DRM_QXL_ALLOC_SURF,\
 		struct drm_qxl_alloc_surf)
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 14/24] drm/qxl: remove XXX comment from the UAPI header
One cannot rename the struct at this point, so might as well remove the
comment.
Cc: Gerd Hoffmann <kraxel at redhat.com>
Cc: Dave Airlie <airlied at redhat.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/qxl_drm.h | 1 -
 1 file changed, 1 deletion(-)
diff --git a/include/uapi/drm/qxl_drm.h b/include/uapi/drm/qxl_drm.h
index cd99da0..7eef422 100644
--- a/include/uapi/drm/qxl_drm.h
+++ b/include/uapi/drm/qxl_drm.h
@@ -88,7 +88,6 @@ struct drm_qxl_command {
 	__u32                pad;
 };
 
-/* XXX: call it drm_qxl_commands? */
 struct drm_qxl_execbuffer {
 	__u32		flags;		/* for future use */
 	__u32		commands_num;
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 15/24] drm/r128: add extern C guard for the UAPI header
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/r128_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/r128_drm.h b/include/uapi/drm/r128_drm.h
index 7a44c65..690e9c6 100644
--- a/include/uapi/drm/r128_drm.h
+++ b/include/uapi/drm/r128_drm.h
@@ -35,6 +35,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 /* WARNING: If you change any of these defines, make sure to change the
  * defines in the X server file (r128_sarea.h)
  */
@@ -325,4 +329,8 @@ typedef struct drm_r128_getparam {
 	void __user *value;
 } drm_r128_getparam_t;
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 16/24] drm/radeon: add extern C guard for the UAPI header
Cc: Alex Deucher <alexander.deucher at amd.com>
Cc: Christian König <christian.koenig at amd.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/radeon_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/radeon_drm.h b/include/uapi/drm/radeon_drm.h
index ccb9bcd..490a59c 100644
--- a/include/uapi/drm/radeon_drm.h
+++ b/include/uapi/drm/radeon_drm.h
@@ -35,6 +35,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 /* WARNING: If you change any of these defines, make sure to change the
  * defines in the X server file (radeon_sarea.h)
  */
@@ -1067,4 +1071,8 @@ struct drm_radeon_info {
 
 #define CIK_TILE_MODE_DEPTH_STENCIL_1D		5
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 17/24] drm/savage: add extern C guard for the UAPI header
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/savage_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/savage_drm.h b/include/uapi/drm/savage_drm.h
index 5741474..0f6edde 100644
--- a/include/uapi/drm/savage_drm.h
+++ b/include/uapi/drm/savage_drm.h
@@ -28,6 +28,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 #ifndef __SAVAGE_SAREA_DEFINES__
 #define __SAVAGE_SAREA_DEFINES__
 
@@ -209,4 +213,8 @@ union drm_savage_cmd_header {
 	} clear1;		/* SAVAGE_CMD_CLEAR data */
 };
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 18/24] drm/sis: add extern C guard for the UAPI header
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/sis_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/sis_drm.h b/include/uapi/drm/sis_drm.h
index 374858c..3f7d8ca 100644
--- a/include/uapi/drm/sis_drm.h
+++ b/include/uapi/drm/sis_drm.h
@@ -27,6 +27,10 @@
 #ifndef __SIS_DRM_H__
 #define __SIS_DRM_H__
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 /* SiS specific ioctls */
 #define NOT_USED_0_3
 #define DRM_SIS_FB_ALLOC	0x04
@@ -64,4 +68,8 @@ typedef struct {
 	unsigned long offset, size;
 } drm_sis_fb_t;
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif				/* __SIS_DRM_H__ */
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 19/24] drm/sis: add missing include drm.h for the UAPI header
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/sis_drm.h | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/include/uapi/drm/sis_drm.h b/include/uapi/drm/sis_drm.h
index 3f7d8ca..3e3f7e9 100644
--- a/include/uapi/drm/sis_drm.h
+++ b/include/uapi/drm/sis_drm.h
@@ -27,6 +27,8 @@
 #ifndef __SIS_DRM_H__
 #define __SIS_DRM_H__
 
+#include "drm.h"
+
 #if defined(__cplusplus)
 extern "C" {
 #endif
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 20/24] drm/tegra: add extern C guard for the UAPI header
Cc: Erik Faye-Lund <kusmabite at gmail.com>
Cc: Thierry Reding <thierry.reding at gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/tegra_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/tegra_drm.h b/include/uapi/drm/tegra_drm.h
index 27d0b05..d954f8c 100644
--- a/include/uapi/drm/tegra_drm.h
+++ b/include/uapi/drm/tegra_drm.h
@@ -25,6 +25,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 #define DRM_TEGRA_GEM_CREATE_TILED     (1 << 0)
 #define DRM_TEGRA_GEM_CREATE_BOTTOM_UP (1 << 1)
 
@@ -198,4 +202,8 @@ struct drm_tegra_gem_get_flags {
 #define DRM_IOCTL_TEGRA_GEM_SET_FLAGS DRM_IOWR(DRM_COMMAND_BASE +
DRM_TEGRA_GEM_SET_FLAGS, struct drm_tegra_gem_set_flags)
 #define DRM_IOCTL_TEGRA_GEM_GET_FLAGS DRM_IOWR(DRM_COMMAND_BASE +
DRM_TEGRA_GEM_GET_FLAGS, struct drm_tegra_gem_get_flags)
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 21/24] drm/vc4: add extern C guard for the UAPI header
Cc: Eric Anholt <eric at anholt.net>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/vc4_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/vc4_drm.h b/include/uapi/drm/vc4_drm.h
index eeb37e3..af12e8a 100644
--- a/include/uapi/drm/vc4_drm.h
+++ b/include/uapi/drm/vc4_drm.h
@@ -26,6 +26,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 #define DRM_VC4_SUBMIT_CL                         0x00
 #define DRM_VC4_WAIT_SEQNO                        0x01
 #define DRM_VC4_WAIT_BO                           0x02
@@ -276,4 +280,8 @@ struct drm_vc4_get_hang_state {
 	__u32 pad[16];
 };
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif /* _UAPI_VC4_DRM_H_ */
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 22/24] drm/via: add extern C guard for the UAPI header
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/via_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/via_drm.h b/include/uapi/drm/via_drm.h
index fa21ed1..a1e125d 100644
--- a/include/uapi/drm/via_drm.h
+++ b/include/uapi/drm/via_drm.h
@@ -26,6 +26,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 /* WARNING: These defines must be the same as what the Xserver uses.
  * if you change them, you must change the defines in the Xserver.
  */
@@ -271,4 +275,8 @@ typedef struct drm_via_dmablit {
 	drm_via_blitsync_t sync;
 } drm_via_dmablit_t;
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif				/* _VIA_DRM_H_ */
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 23/24] drm/virgl: add extern C guard for the UAPI header
Cc: Dave Airlie <airlied at redhat.com>
Cc: Gerd Hoffmann <kraxel at redhat.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/virtgpu_drm.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/uapi/drm/virtgpu_drm.h b/include/uapi/drm/virtgpu_drm.h
index c74f1f9..91a31ff 100644
--- a/include/uapi/drm/virtgpu_drm.h
+++ b/include/uapi/drm/virtgpu_drm.h
@@ -26,6 +26,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 /* Please note that modifications to all structs defined here are
  * subject to backwards-compatibility constraints.
  *
@@ -163,4 +167,8 @@ struct drm_virtgpu_get_caps {
 	DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GET_CAPS, \
 	struct drm_virtgpu_get_caps)
 
+#if defined(__cplusplus)
+}
+#endif
+
 #endif
-- 
2.6.2
Emil Velikov
2016-Apr-21  19:42 UTC
[Nouveau] [PATCH 24/24] drm/vmwgfx: add extern C guard for the UAPI header
Cc: Sinclair Yeh <syeh at vmware.com>
Cc: Thomas Hellstrom <thellstrom at vmware.com>
Cc: Brian Paul <brianp at vmware.com>
Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 include/uapi/drm/vmwgfx_drm.h | 9 +++++++++
 1 file changed, 9 insertions(+)
diff --git a/include/uapi/drm/vmwgfx_drm.h b/include/uapi/drm/vmwgfx_drm.h
index 5b68b4d..d325a41 100644
--- a/include/uapi/drm/vmwgfx_drm.h
+++ b/include/uapi/drm/vmwgfx_drm.h
@@ -30,6 +30,10 @@
 
 #include "drm.h"
 
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
 #define DRM_VMW_MAX_SURFACE_FACES 6
 #define DRM_VMW_MAX_MIP_LEVELS 24
 
@@ -1087,4 +1091,9 @@ union drm_vmw_extended_context_arg {
 	enum drm_vmw_extended_context req;
 	struct drm_vmw_context_arg rep;
 };
+
+#if defined(__cplusplus)
+}
+#endif
+
 #endif
-- 
2.6.2
Apparently Analagous Threads
- [PATCH trivial] include: uapi: standard all files' macro prefix and suffix, excluding "linux/" sub-directory
- [PATCH trivial] include: uapi: standard all files' macro prefix and suffix, excluding "linux/" sub-directory
- [PATCH trivial] include: uapi: standard all files' macro prefix and suffix, excluding "linux/" sub-directory
- [Bug 76376] New: mesa does not build after nouveau loader changes
- [PATCH 0/2] drm/nouveau: option for staging ioctls and new SET_TILING ioctl