Add freeglut3 and libdrm
[kopensolaris-gnu/patches.git] / libdrm.diff
1
2 Based on patches from:
3
4   http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg35327.html
5
6 diff -ur libdrm-2.3.1/libdrm/xf86drm.c libdrm-2.3.1.new/libdrm/xf86drm.c
7 --- libdrm-2.3.1/libdrm/xf86drm.c       2008-07-01 09:51:40.000000000 +0200
8 +++ libdrm-2.3.1.new/libdrm/xf86drm.c   2009-01-19 22:00:30.245462504 +0100
9 @@ -894,7 +894,11 @@
10  {
11      drm_map_t map;
12  
13 +#if defined(__sun) || defined(__OpenSolaris_kernel__)
14 +    map.handle = handle;
15 +#else
16      map.handle = (void *)handle;
17 +#endif
18  
19      if(ioctl(fd, DRM_IOCTL_RM_MAP, &map))
20         return -errno;
21 @@ -1132,6 +1136,9 @@
22      bufs.count = 0;
23      bufs.list  = NULL;
24      bufs.virtual = NULL;
25 +#if defined(__sun) || defined(__OpenSolaris_kernel__)
26 +    bufs.fd = fd;
27 +#endif
28      if (ioctl(fd, DRM_IOCTL_MAP_BUFS, &bufs))
29         return NULL;
30  
31 diff -ur libdrm-2.3.1/shared-core/drm.h libdrm-2.3.1.new/shared-core/drm.h
32 --- libdrm-2.3.1/shared-core/drm.h      2008-07-01 09:55:17.000000000 +0200
33 +++ libdrm-2.3.1.new/shared-core/drm.h  2009-01-19 21:59:20.233644179 +0100
34 @@ -79,7 +79,7 @@
35  #define DRM_IOC_WRITE          _IOC_WRITE
36  #define DRM_IOC_READWRITE      _IOC_READ|_IOC_WRITE
37  #define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size)
38 -#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
39 +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__OpenSolaris_kernel__)
40  #include <sys/ioccom.h>
41  #define DRM_IOCTL_NR(n)                ((n) & 0xff)
42  #define DRM_IOC_VOID           IOC_VOID
43 @@ -112,7 +112,7 @@
44  typedef unsigned int drm_handle_t;
45  #else
46  #include <sys/types.h>
47 -typedef unsigned long drm_handle_t;    /**< To mapped regions */
48 +typedef unsigned long long drm_handle_t;       /**< To mapped regions */
49  #endif
50  typedef unsigned int drm_context_t;    /**< GLXContext handle */
51  typedef unsigned int drm_drawable_t;
52 @@ -264,12 +264,11 @@
53   * \sa drmAddMap().
54   */
55  struct drm_map {
56 -       unsigned long offset;    /**< Requested physical address (0 for SAREA)*/
57 +       unsigned long long offset;       /**< Requested physical address (0 for SAREA)*/
58 +       unsigned long long handle;
59         unsigned long size;      /**< Requested physical size (bytes) */
60         enum drm_map_type type;  /**< Type of memory to map */
61         enum drm_map_flags flags;        /**< Flags */
62 -       void *handle;            /**< User-space: "Handle" to pass to mmap() */
63 -                                /**< Kernel-space: kernel-virtual address */
64         int mtrr;                /**< MTRR slot used */
65         /*   Private data */
66  };
67 @@ -433,6 +432,7 @@
68         void __user *virtual;           /**< Mmap'd area in user-virtual */
69  #endif
70         struct drm_buf_pub __user *list;        /**< Buffer information */
71 +       int fd;
72  };
73  
74  /**