summaryrefslogtreecommitdiff
path: root/libdrm
diff options
context:
space:
mode:
authorAlan Hourihane <alanh@fairlite.demon.co.uk>2000-09-24 09:34:10 +0000
committerAlan Hourihane <alanh@fairlite.demon.co.uk>2000-09-24 09:34:10 +0000
commitc7558d8fa4df805b7f7ff3d631432eadac9b8a1c (patch)
tree3275f130db9176a55470713b02c13fb1feb7fbdb /libdrm
parentb1aa228f7d7390f8b9a361f862d724b908d5a71f (diff)
commit xfree86 4.0.1d-pre update
Diffstat (limited to 'libdrm')
-rw-r--r--libdrm/xf86drm.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/libdrm/xf86drm.c b/libdrm/xf86drm.c
index c561f01f..c933f593 100644
--- a/libdrm/xf86drm.c
+++ b/libdrm/xf86drm.c
@@ -27,7 +27,7 @@
* Authors: Rickard E. (Rik) Faith <faith@valinux.com>
* Kevin E. Martin <martin@valinux.com>
*
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c,v 1.15 2000/08/09 14:44:27 alanh Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c,v 1.16 2000/08/28 16:55:52 dawes Exp $
*
*/
@@ -597,7 +597,15 @@ int drmMap(int fd,
drmSize size,
drmAddressPtr address)
{
+ static unsigned long pagesize_mask = 0;
+
if (fd < 0) return -EINVAL;
+
+ if (!pagesize_mask)
+ pagesize_mask = getpagesize() - 1;
+
+ size = (size + pagesize_mask) & ~pagesize_mask;
+
*address = mmap(0, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, handle);
if (*address == MAP_FAILED) return -errno;
return 0;