Signed-off-by: Alan Coopersmith <alan.coopersmith at sun.com>
---
 xf86drm.h |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/xf86drm.h b/xf86drm.h
index 40c55c9..781c323 100644
--- a/xf86drm.h
+++ b/xf86drm.h
@@ -56,9 +56,17 @@ extern "C" {
 #define DRM_IOC_READWRITE      _IOC_READ|_IOC_WRITE
 #define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size)

-#else /* One of the *BSDs */
+#else /* One of the *BSDs or Solaris */

 #include <sys/ioccom.h>
+
+#if defined(__sun) && !defined(_IOC)
+#define _IOC(dir, group, nr, size)                                      \
+    ((dir) == DRM_IOC_READWRITE ? _IOWRN((group), (nr), (size)) :       \
+     ((dir) == DRM_IOC_WRITE ? _IOWN((group), (nr), (size)) :           \
+      /* (dir) == DRM_IOC_READ */  _IORN((group), (nr), (size)) ))
+#endif
+
 #define DRM_IOCTL_NR(n)         ((n) & 0xff)
 #define DRM_IOC_VOID            IOC_VOID
 #define DRM_IOC_READ            IOC_OUT
-- 
1.7.9.2

Reply via email to