From owner-freebsd-multimedia Wed Jul 4 20:11:47 2001 Delivered-To: freebsd-multimedia@freebsd.org Received: from smtp6.port.ru (mx6.port.ru [194.67.23.42]) by hub.freebsd.org (Postfix) with ESMTP id E7D2A37B405 for ; Wed, 4 Jul 2001 20:11:42 -0700 (PDT) (envelope-from kabaev@mail.ru) Received: from adsl-141-154-19-164.bostma.adsl.bellatlantic.net ([141.154.19.164] helo=kan.dnsalias.net) by smtp6.port.ru with esmtp (Exim 3.14 #2) id 15HzYK-000AjC-00; Thu, 05 Jul 2001 07:11:41 +0400 Received: (from kan@localhost) by kan.dnsalias.net (8.11.4/8.11.4) id f653Bb031737; Wed, 4 Jul 2001 23:11:37 -0400 (EDT) (envelope-from kan) Date: Wed, 4 Jul 2001 23:11:37 -0400 From: "Alexander N. Kabaev" To: freebsd-multimedia@FreeBSD.org Cc: anholt@teleport.com Subject: XFree86 4.1.0 DRI patch for -CURRENT Message-ID: <20010704231137.A31583@kan.dnsalias.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Sender: owner-freebsd-multimedia@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Attached is a patch which, when applied to the bsd-2-0-0-0 branch from dri.sourceforge.net, allows DRI kernel modules to compile on todays -CURRENT. I was able to test Matrox driver with my G400 card only and your mileage can vary if you are using other supported card. Index: drm_bufs.h =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm_bufs.h,v retrieving revision 1.10.2.16 diff -u -r1.10.2.16 drm_bufs.h --- drm_bufs.h 2001/06/05 13:51:23 1.10.2.16 +++ drm_bufs.h 2001/07/05 02:47:34 @@ -40,6 +40,7 @@ #include #include #include +#include #endif #include "drmP.h" @@ -1028,6 +1029,7 @@ #endif #ifdef __FreeBSD__ vm_offset_t virtual, address; + struct vmspace *vms = p->p_vmspace; #endif drm_buf_map_t request; int i; @@ -1073,7 +1075,8 @@ #endif #ifdef __FreeBSD__ - retcode = vm_mmap(&p->p_vmspace->vm_map, + virtual = round_page((vm_offset_t)vms->vm_daddr + MAXDSIZ); + retcode = vm_mmap(&vms->vm_map, &virtual, round_page(map->size), PROT_READ|PROT_WRITE, VM_PROT_ALL, @@ -1099,7 +1102,8 @@ #endif #endif #ifdef __FreeBSD__ - retcode = vm_mmap(&p->p_vmspace->vm_map, + virtual = round_page((vm_offset_t)vms->vm_daddr + MAXDSIZ); + retcode = vm_mmap(&vms->vm_map, &virtual, round_page(dma->byte_count), PROT_READ|PROT_WRITE, VM_PROT_ALL, Index: drm_fops.h =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm_fops.h,v retrieving revision 1.4.2.6 diff -u -r1.4.2.6 drm_fops.h --- drm_fops.h 2001/05/07 15:49:53 1.4.2.6 +++ drm_fops.h 2001/07/05 02:47:35 @@ -41,7 +41,11 @@ drm_file_t *DRM(find_file_by_proc)(drm_device_t *dev, struct proc *p) { +#if __FreeBSD_version >= 500021 + uid_t uid = p->p_ucred->cr_svuid; +#else uid_t uid = p->p_cred->p_svuid; +#endif pid_t pid = p->p_pid; drm_file_t *priv; @@ -113,7 +117,11 @@ } else { priv = (drm_file_t *) DRM(alloc)(sizeof(*priv), DRM_MEM_FILES); bzero(priv, sizeof(*priv)); +#if __FreeBSD_version >= 500021 + priv->uid = p->p_ucred->cr_svuid; +#else priv->uid = p->p_cred->p_svuid; +#endif priv->pid = p->p_pid; priv->refs = 1; priv->minor = m; To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-multimedia" in the body of the message