[PATCH] drm: Add compatibility #ifdefs for *BSD

2009-12-02 Thread Kristian Høgsberg
This let's use use the linux drm headers as the canonical source for
libdrm on all platforms.

Signed-off-by: Kristian Høgsberg k...@bitplanet.net
---

This is the patch to sync the linux kernel headers with what's in
libdrm now.  With this patch upstream, we can copy headers from the
kernel into the libdrm repo unchanged.

 include/drm/drm.h|   29 +++--
 include/drm/drm_mode.h   |3 ---
 include/drm/i915_drm.h   |4 ++--
 include/drm/mga_drm.h|2 +-
 include/drm/radeon_drm.h |2 +-
 include/drm/via_drm.h|2 +-
 6 files changed, 24 insertions(+), 18 deletions(-)

diff --git a/include/drm/drm.h b/include/drm/drm.h
index 7cb50bd..838bce9 100644
--- a/include/drm/drm.h
+++ b/include/drm/drm.h
@@ -36,17 +36,27 @@
 #ifndef _DRM_H_
 #define _DRM_H_
 
+#if defined(__linux__)
+
 #include linux/types.h
-#include asm/ioctl.h /* For _IO* macros */
-#define DRM_IOCTL_NR(n)_IOC_NR(n)
-#define DRM_IOC_VOID   _IOC_NONE
-#define DRM_IOC_READ   _IOC_READ
-#define DRM_IOC_WRITE  _IOC_WRITE
-#define DRM_IOC_READWRITE  _IOC_READ|_IOC_WRITE
-#define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size)
+#include asm/ioctl.h
+typedef unsigned int drm_handle_t;
+
+#else /* One of the BSDs */
 
-#define DRM_MAJOR   226
-#define DRM_MAX_MINOR   15
+#include sys/ioccom.h
+#include sys/types.h
+typedef int8_t   __s8;
+typedef uint8_t  __u8;
+typedef int16_t  __s16;
+typedef uint16_t __u16;
+typedef int32_t  __s32;
+typedef uint32_t __u32;
+typedef int64_t  __s64;
+typedef uint64_t __u64;
+typedef unsigned long drm_handle_t;
+
+#endif
 
 #define DRM_NAME   drm /** Name in kernel, /dev, and /proc */
 #define DRM_MIN_ORDER  5 /** At least 2^5 bytes = 32 bytes */
@@ -59,7 +69,6 @@
 #define _DRM_LOCK_IS_CONT(lock)   ((lock)  _DRM_LOCK_CONT)
 #define _DRM_LOCKING_CONTEXT(lock) ((lock)  ~(_DRM_LOCK_HELD|_DRM_LOCK_CONT))
 
-typedef unsigned int drm_handle_t;
 typedef unsigned int drm_context_t;
 typedef unsigned int drm_drawable_t;
 typedef unsigned int drm_magic_t;
diff --git a/include/drm/drm_mode.h b/include/drm/drm_mode.h
index 1f90841..852505e 100644
--- a/include/drm/drm_mode.h
+++ b/include/drm/drm_mode.h
@@ -27,9 +27,6 @@
 #ifndef _DRM_MODE_H
 #define _DRM_MODE_H
 
-#include linux/kernel.h
-#include linux/types.h
-
 #define DRM_DISPLAY_INFO_LEN   32
 #define DRM_CONNECTOR_NAME_LEN 32
 #define DRM_DISPLAY_MODE_LEN   32
diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
index 7e0cb1d..a04c3ab 100644
--- a/include/drm/i915_drm.h
+++ b/include/drm/i915_drm.h
@@ -27,11 +27,11 @@
 #ifndef _I915_DRM_H_
 #define _I915_DRM_H_
 
+#include drm.h
+
 /* Please note that modifications to all structs defined here are
  * subject to backwards-compatibility constraints.
  */
-#include linux/types.h
-#include drm.h
 
 /* Each region is a minimum of 16k, and there are at most 255 of them.
  */
diff --git a/include/drm/mga_drm.h b/include/drm/mga_drm.h
index 325fd6f..3ffbc47 100644
--- a/include/drm/mga_drm.h
+++ b/include/drm/mga_drm.h
@@ -35,7 +35,7 @@
 #ifndef __MGA_DRM_H__
 #define __MGA_DRM_H__
 
-#include linux/types.h
+#include drm.h
 
 /* WARNING: If you change any of these defines, make sure to change the
  * defines in the Xserver file (mga_sarea.h)
diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h
index 3b9932a..39537f3 100644
--- a/include/drm/radeon_drm.h
+++ b/include/drm/radeon_drm.h
@@ -33,7 +33,7 @@
 #ifndef __RADEON_DRM_H__
 #define __RADEON_DRM_H__
 
-#include linux/types.h
+#include drm.h
 
 /* WARNING: If you change any of these defines, make sure to change the
  * defines in the X server file (radeon_sarea.h)
diff --git a/include/drm/via_drm.h b/include/drm/via_drm.h
index 170786e..fd11a5b 100644
--- a/include/drm/via_drm.h
+++ b/include/drm/via_drm.h
@@ -24,7 +24,7 @@
 #ifndef _VIA_DRM_H_
 #define _VIA_DRM_H_
 
-#include linux/types.h
+#include drm.h
 
 /* WARNING: These defines must be the same as what the Xserver uses.
  * if you change them, you must change the defines in the Xserver.
-- 
1.6.5.rc2


--
Join us December 9, 2009 for the Red Hat Virtual Experience,
a free event focused on virtualization and cloud computing. 
Attend in-depth sessions from your desk. Your couch. Anywhere.
http://p.sf.net/sfu/redhat-sfdev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


Re: [PATCH] drm: Add compatibility #ifdefs for *BSD

2009-12-02 Thread Robert Noland
On Wed, 2009-12-02 at 11:36 -0500, Kristian Høgsberg wrote:
 This let's use use the linux drm headers as the canonical source for
 libdrm on all platforms.
 
 Signed-off-by: Kristian Høgsberg k...@bitplanet.net
 ---
 
 This is the patch to sync the linux kernel headers with what's in
 libdrm now.  With this patch upstream, we can copy headers from the
 kernel into the libdrm repo unchanged.
 
  include/drm/drm.h|   29 +++--
  include/drm/drm_mode.h   |3 ---
  include/drm/i915_drm.h   |4 ++--
  include/drm/mga_drm.h|2 +-
  include/drm/radeon_drm.h |2 +-
  include/drm/via_drm.h|2 +-
  6 files changed, 24 insertions(+), 18 deletions(-)
 
 diff --git a/include/drm/drm.h b/include/drm/drm.h
 index 7cb50bd..838bce9 100644
 --- a/include/drm/drm.h
 +++ b/include/drm/drm.h
 @@ -36,17 +36,27 @@
  #ifndef _DRM_H_
  #define _DRM_H_
  
 +#if defined(__linux__)
 +
  #include linux/types.h
 -#include asm/ioctl.h   /* For _IO* macros */
 -#define DRM_IOCTL_NR(n)  _IOC_NR(n)
 -#define DRM_IOC_VOID _IOC_NONE
 -#define DRM_IOC_READ _IOC_READ
 -#define DRM_IOC_WRITE_IOC_WRITE
 -#define DRM_IOC_READWRITE_IOC_READ|_IOC_WRITE
 -#define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size)
 +#include asm/ioctl.h
 +typedef unsigned int drm_handle_t;
 +
 +#else /* One of the BSDs */
  
 -#define DRM_MAJOR   226
 -#define DRM_MAX_MINOR   15

This does not look like the latest version with the DRM_MAX_MINOR
shuffle.  Are you planning to handle that with a separate patch?

robert.

 +#include sys/ioccom.h
 +#include sys/types.h
 +typedef int8_t   __s8;
 +typedef uint8_t  __u8;
 +typedef int16_t  __s16;
 +typedef uint16_t __u16;
 +typedef int32_t  __s32;
 +typedef uint32_t __u32;
 +typedef int64_t  __s64;
 +typedef uint64_t __u64;
 +typedef unsigned long drm_handle_t;
 +
 +#endif
  
  #define DRM_NAME drm /** Name in kernel, /dev, and /proc */
  #define DRM_MIN_ORDER5 /** At least 2^5 bytes = 32 bytes */
 @@ -59,7 +69,6 @@
  #define _DRM_LOCK_IS_CONT(lock) ((lock)  _DRM_LOCK_CONT)
  #define _DRM_LOCKING_CONTEXT(lock) ((lock)  
 ~(_DRM_LOCK_HELD|_DRM_LOCK_CONT))
  
 -typedef unsigned int drm_handle_t;
  typedef unsigned int drm_context_t;
  typedef unsigned int drm_drawable_t;
  typedef unsigned int drm_magic_t;
 diff --git a/include/drm/drm_mode.h b/include/drm/drm_mode.h
 index 1f90841..852505e 100644
 --- a/include/drm/drm_mode.h
 +++ b/include/drm/drm_mode.h
 @@ -27,9 +27,6 @@
  #ifndef _DRM_MODE_H
  #define _DRM_MODE_H
  
 -#include linux/kernel.h
 -#include linux/types.h
 -
  #define DRM_DISPLAY_INFO_LEN 32
  #define DRM_CONNECTOR_NAME_LEN   32
  #define DRM_DISPLAY_MODE_LEN 32
 diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
 index 7e0cb1d..a04c3ab 100644
 --- a/include/drm/i915_drm.h
 +++ b/include/drm/i915_drm.h
 @@ -27,11 +27,11 @@
  #ifndef _I915_DRM_H_
  #define _I915_DRM_H_
  
 +#include drm.h
 +
  /* Please note that modifications to all structs defined here are
   * subject to backwards-compatibility constraints.
   */
 -#include linux/types.h
 -#include drm.h
  
  /* Each region is a minimum of 16k, and there are at most 255 of them.
   */
 diff --git a/include/drm/mga_drm.h b/include/drm/mga_drm.h
 index 325fd6f..3ffbc47 100644
 --- a/include/drm/mga_drm.h
 +++ b/include/drm/mga_drm.h
 @@ -35,7 +35,7 @@
  #ifndef __MGA_DRM_H__
  #define __MGA_DRM_H__
  
 -#include linux/types.h
 +#include drm.h
  
  /* WARNING: If you change any of these defines, make sure to change the
   * defines in the Xserver file (mga_sarea.h)
 diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h
 index 3b9932a..39537f3 100644
 --- a/include/drm/radeon_drm.h
 +++ b/include/drm/radeon_drm.h
 @@ -33,7 +33,7 @@
  #ifndef __RADEON_DRM_H__
  #define __RADEON_DRM_H__
  
 -#include linux/types.h
 +#include drm.h
  
  /* WARNING: If you change any of these defines, make sure to change the
   * defines in the X server file (radeon_sarea.h)
 diff --git a/include/drm/via_drm.h b/include/drm/via_drm.h
 index 170786e..fd11a5b 100644
 --- a/include/drm/via_drm.h
 +++ b/include/drm/via_drm.h
 @@ -24,7 +24,7 @@
  #ifndef _VIA_DRM_H_
  #define _VIA_DRM_H_
  
 -#include linux/types.h
 +#include drm.h
  
  /* WARNING: These defines must be the same as what the Xserver uses.
   * if you change them, you must change the defines in the Xserver.
 -- 
 1.6.5.rc2
 
 
 --
 Join us December 9, 2009 for the Red Hat Virtual Experience,
 a free event focused on virtualization and cloud computing. 
 Attend in-depth sessions from your desk. Your couch. Anywhere.
 http://p.sf.net/sfu/redhat-sfdev2dev
 --
 ___
 Dri-devel mailing list
 Dri-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/dri-devel
-- 
Robert Noland rnol...@2hip.net
2Hip Networks



Re: [PATCH] drm: Add compatibility #ifdefs for *BSD

2009-12-02 Thread Kristian Høgsberg
2009/12/2 Robert Noland rnol...@2hip.net:
 On Wed, 2009-12-02 at 11:36 -0500, Kristian Høgsberg wrote:
 This let's use use the linux drm headers as the canonical source for
 libdrm on all platforms.

 Signed-off-by: Kristian Høgsberg k...@bitplanet.net
 ---

 This is the patch to sync the linux kernel headers with what's in
 libdrm now.  With this patch upstream, we can copy headers from the
 kernel into the libdrm repo unchanged.
...
 This does not look like the latest version with the DRM_MAX_MINOR
 shuffle.  Are you planning to handle that with a separate patch?

DRM_MAX_MINOR is only used in userspace, but this patch does break
linux kernel compile. I need to move a couple of #defines deteled from
drm.h to drmP.h.  New patch on the way.

thanks,
Kristian

--
Join us December 9, 2009 for the Red Hat Virtual Experience,
a free event focused on virtualization and cloud computing. 
Attend in-depth sessions from your desk. Your couch. Anywhere.
http://p.sf.net/sfu/redhat-sfdev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH] drm: Add compatibility #ifdefs for *BSD

2009-12-02 Thread Kristian Høgsberg
This let's use use the linux drm headers as the canonical source for
libdrm on all platforms.

Signed-off-by: Kristian Høgsberg k...@bitplanet.net
---

Second try, now with the #defines added to drmP.h that was missing in
the first patch.

 include/drm/drm.h|   29 +++--
 include/drm/drmP.h   |3 +++
 include/drm/drm_mode.h   |3 ---
 include/drm/i915_drm.h   |4 ++--
 include/drm/mga_drm.h|2 +-
 include/drm/radeon_drm.h |2 +-
 include/drm/via_drm.h|2 +-
 7 files changed, 27 insertions(+), 18 deletions(-)

diff --git a/include/drm/drm.h b/include/drm/drm.h
index 7cb50bd..838bce9 100644
--- a/include/drm/drm.h
+++ b/include/drm/drm.h
@@ -36,17 +36,27 @@
 #ifndef _DRM_H_
 #define _DRM_H_
 
+#if defined(__linux__)
+
 #include linux/types.h
-#include asm/ioctl.h /* For _IO* macros */
-#define DRM_IOCTL_NR(n)_IOC_NR(n)
-#define DRM_IOC_VOID   _IOC_NONE
-#define DRM_IOC_READ   _IOC_READ
-#define DRM_IOC_WRITE  _IOC_WRITE
-#define DRM_IOC_READWRITE  _IOC_READ|_IOC_WRITE
-#define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size)
+#include asm/ioctl.h
+typedef unsigned int drm_handle_t;
+
+#else /* One of the BSDs */
 
-#define DRM_MAJOR   226
-#define DRM_MAX_MINOR   15
+#include sys/ioccom.h
+#include sys/types.h
+typedef int8_t   __s8;
+typedef uint8_t  __u8;
+typedef int16_t  __s16;
+typedef uint16_t __u16;
+typedef int32_t  __s32;
+typedef uint32_t __u32;
+typedef int64_t  __s64;
+typedef uint64_t __u64;
+typedef unsigned long drm_handle_t;
+
+#endif
 
 #define DRM_NAME   drm /** Name in kernel, /dev, and /proc */
 #define DRM_MIN_ORDER  5 /** At least 2^5 bytes = 32 bytes */
@@ -59,7 +69,6 @@
 #define _DRM_LOCK_IS_CONT(lock)   ((lock)  _DRM_LOCK_CONT)
 #define _DRM_LOCKING_CONTEXT(lock) ((lock)  ~(_DRM_LOCK_HELD|_DRM_LOCK_CONT))
 
-typedef unsigned int drm_handle_t;
 typedef unsigned int drm_context_t;
 typedef unsigned int drm_drawable_t;
 typedef unsigned int drm_magic_t;
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index c8e64bb..5a9582b 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -322,6 +322,9 @@ typedef int drm_ioctl_t(struct drm_device *dev, void *data,
 typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
   unsigned long arg);
 
+#define DRM_IOCTL_NR(n)_IOC_NR(n)
+#define DRM_MAJOR   226
+
 #define DRM_AUTH   0x1
 #defineDRM_MASTER  0x2
 #define DRM_ROOT_ONLY  0x4
diff --git a/include/drm/drm_mode.h b/include/drm/drm_mode.h
index 1f90841..852505e 100644
--- a/include/drm/drm_mode.h
+++ b/include/drm/drm_mode.h
@@ -27,9 +27,6 @@
 #ifndef _DRM_MODE_H
 #define _DRM_MODE_H
 
-#include linux/kernel.h
-#include linux/types.h
-
 #define DRM_DISPLAY_INFO_LEN   32
 #define DRM_CONNECTOR_NAME_LEN 32
 #define DRM_DISPLAY_MODE_LEN   32
diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
index 7e0cb1d..a04c3ab 100644
--- a/include/drm/i915_drm.h
+++ b/include/drm/i915_drm.h
@@ -27,11 +27,11 @@
 #ifndef _I915_DRM_H_
 #define _I915_DRM_H_
 
+#include drm.h
+
 /* Please note that modifications to all structs defined here are
  * subject to backwards-compatibility constraints.
  */
-#include linux/types.h
-#include drm.h
 
 /* Each region is a minimum of 16k, and there are at most 255 of them.
  */
diff --git a/include/drm/mga_drm.h b/include/drm/mga_drm.h
index 325fd6f..3ffbc47 100644
--- a/include/drm/mga_drm.h
+++ b/include/drm/mga_drm.h
@@ -35,7 +35,7 @@
 #ifndef __MGA_DRM_H__
 #define __MGA_DRM_H__
 
-#include linux/types.h
+#include drm.h
 
 /* WARNING: If you change any of these defines, make sure to change the
  * defines in the Xserver file (mga_sarea.h)
diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h
index 3b9932a..39537f3 100644
--- a/include/drm/radeon_drm.h
+++ b/include/drm/radeon_drm.h
@@ -33,7 +33,7 @@
 #ifndef __RADEON_DRM_H__
 #define __RADEON_DRM_H__
 
-#include linux/types.h
+#include drm.h
 
 /* WARNING: If you change any of these defines, make sure to change the
  * defines in the X server file (radeon_sarea.h)
diff --git a/include/drm/via_drm.h b/include/drm/via_drm.h
index 170786e..fd11a5b 100644
--- a/include/drm/via_drm.h
+++ b/include/drm/via_drm.h
@@ -24,7 +24,7 @@
 #ifndef _VIA_DRM_H_
 #define _VIA_DRM_H_
 
-#include linux/types.h
+#include drm.h
 
 /* WARNING: These defines must be the same as what the Xserver uses.
  * if you change them, you must change the defines in the Xserver.
-- 
1.6.5.rc2


--
Join us December 9, 2009 for the Red Hat Virtual Experience,
a free event focused on virtualization and cloud computing. 
Attend in-depth sessions from your desk. Your couch. Anywhere.
http://p.sf.net/sfu/redhat-sfdev2dev
--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net