diff --git a/bsd-core/drm_os_freebsd.h b/bsd-core/drm_os_freebsd.h index 990accfb..6b60e050 100644 --- a/bsd-core/drm_os_freebsd.h +++ b/bsd-core/drm_os_freebsd.h @@ -13,10 +13,14 @@ #include #include #include +#include #include #if __FreeBSD_version >= 400005 #include #endif +#if __FreeBSD_version >= 500000 +#include +#endif #if __FreeBSD_version >= 400006 #define __REALLY_HAVE_AGP 1 @@ -36,8 +40,13 @@ #define DRM_OS_LOCK lockmgr(&dev->dev_lock, LK_EXCLUSIVE, 0, curproc) #define DRM_OS_UNLOCK lockmgr(&dev->dev_lock, LK_RELEASE, 0, curproc) +#if __FreeBSD_version >= 500000 +#define DRM_OS_SPINLOCK(l) mtx_lock(l) +#define DRM_OS_SPINUNLOCK(u) mtx_unlock(u); +#else #define DRM_OS_SPINLOCK(l) simple_lock(l) #define DRM_OS_SPINUNLOCK(u) simple_unlock(u); +#endif #define DRM_OS_IOCTL dev_t kdev, u_long cmd, caddr_t data, int flags, struct proc *p #define DRM_OS_DEVICE drm_file_t *priv; \ drm_device_t *dev = kdev->si_drv1 @@ -165,6 +174,12 @@ find_first_zero_bit(volatile unsigned long *p, int max) #define DRM_PROC_LIMIT (PAGE_SIZE-80) +#if __FreeBSD_version >= 500000 +#define DRM_SYSCTL_HANDLER_ARGS (SYSCTL_HANDLER_ARGS) +#else +#define DRM_SYSCTL_HANDLER_ARGS SYSCTL_HANDLER_ARGS +#endif + #define DRM_SYSCTL_PRINT(fmt, arg...) \ snprintf(buf, sizeof(buf), fmt, ##arg); \ error = SYSCTL_OUT(req, buf, strlen(buf)); \ @@ -248,7 +263,7 @@ extern d_ioctl_t DRM(mapbufs); #endif /* Memory management support (drm_memory.h) */ -extern int DRM(mem_info)SYSCTL_HANDLER_ARGS; +extern int DRM(mem_info)DRM_SYSCTL_HANDLER_ARGS; /* DMA support (drm_dma.h) */ #if __HAVE_DMA_IRQ diff --git a/bsd-core/drm_sysctl.c b/bsd-core/drm_sysctl.c index b11dc4a3..fd3a358f 100644 --- a/bsd-core/drm_sysctl.c +++ b/bsd-core/drm_sysctl.c @@ -1,20 +1,20 @@ SYSCTL_NODE(_hw, OID_AUTO, dri, CTLFLAG_RW, 0, "DRI Graphics"); -static int DRM(name_info)SYSCTL_HANDLER_ARGS; -static int DRM(vm_info)SYSCTL_HANDLER_ARGS; -static int DRM(clients_info)SYSCTL_HANDLER_ARGS; -static int DRM(queues_info)SYSCTL_HANDLER_ARGS; -static int DRM(bufs_info)SYSCTL_HANDLER_ARGS; +static int DRM(name_info)DRM_SYSCTL_HANDLER_ARGS; +static int DRM(vm_info)DRM_SYSCTL_HANDLER_ARGS; +static int DRM(clients_info)DRM_SYSCTL_HANDLER_ARGS; +static int DRM(queues_info)DRM_SYSCTL_HANDLER_ARGS; +static int DRM(bufs_info)DRM_SYSCTL_HANDLER_ARGS; #if DRM_DEBUG_CODExx -static int DRM(vma_info)SYSCTL_HANDLER_ARGS; +static int DRM(vma_info)DRM_SYSCTL_HANDLER_ARGS; #endif #if DRM_DMA_HISTOGRAM -static int DRM(histo_info)SYSCTL_HANDLER_ARGS; +static int DRM(histo_info)DRM_SYSCTL_HANDLER_ARGS; #endif struct DRM(sysctl_list) { const char *name; - int (*f) SYSCTL_HANDLER_ARGS; + int (*f) DRM_SYSCTL_HANDLER_ARGS; } DRM(sysctl_list)[] = { { "name", DRM(name_info) }, { "mem", DRM(mem_info) }, @@ -102,7 +102,7 @@ int DRM(sysctl_cleanup)(drm_device_t *dev) return 0; } -static int DRM(name_info)SYSCTL_HANDLER_ARGS +static int DRM(name_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; char buf[128]; @@ -120,7 +120,7 @@ static int DRM(name_info)SYSCTL_HANDLER_ARGS return 0; } -static int DRM(_vm_info)SYSCTL_HANDLER_ARGS +static int DRM(_vm_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; drm_map_t *map; @@ -159,7 +159,7 @@ static int DRM(_vm_info)SYSCTL_HANDLER_ARGS return 0; } -static int DRM(vm_info)SYSCTL_HANDLER_ARGS +static int DRM(vm_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret; @@ -172,7 +172,7 @@ static int DRM(vm_info)SYSCTL_HANDLER_ARGS } -static int DRM(_queues_info)SYSCTL_HANDLER_ARGS +static int DRM(_queues_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int i; @@ -210,7 +210,7 @@ static int DRM(_queues_info)SYSCTL_HANDLER_ARGS return 0; } -static int DRM(queues_info) SYSCTL_HANDLER_ARGS +static int DRM(queues_info) DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret; @@ -224,7 +224,7 @@ static int DRM(queues_info) SYSCTL_HANDLER_ARGS /* drm_bufs_info is called whenever a process reads hw.dri.0.bufs. */ -static int DRM(_bufs_info) SYSCTL_HANDLER_ARGS +static int DRM(_bufs_info) DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; drm_device_dma_t *dma = dev->dma; @@ -260,7 +260,7 @@ static int DRM(_bufs_info) SYSCTL_HANDLER_ARGS return 0; } -static int DRM(bufs_info) SYSCTL_HANDLER_ARGS +static int DRM(bufs_info) DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret; @@ -272,7 +272,7 @@ static int DRM(bufs_info) SYSCTL_HANDLER_ARGS } -static int DRM(_clients_info) SYSCTL_HANDLER_ARGS +static int DRM(_clients_info) DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; drm_file_t *priv; @@ -294,7 +294,7 @@ static int DRM(_clients_info) SYSCTL_HANDLER_ARGS return 0; } -static int DRM(clients_info)SYSCTL_HANDLER_ARGS +static int DRM(clients_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret; @@ -307,7 +307,7 @@ static int DRM(clients_info)SYSCTL_HANDLER_ARGS #if DRM_DEBUG_CODExx -static int DRM(_vma_info)SYSCTL_HANDLER_ARGS +static int DRM(_vma_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; drm_vma_entry_t *pt; @@ -379,7 +379,7 @@ static int DRM(_vma_info)SYSCTL_HANDLER_ARGS return 0; } -static int DRM(vma_info)SYSCTL_HANDLER_ARGS +static int DRM(vma_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret; @@ -393,7 +393,7 @@ static int DRM(vma_info)SYSCTL_HANDLER_ARGS #if DRM_DMA_HISTOGRAM -static int DRM(_histo_info)SYSCTL_HANDLER_ARGS +static int DRM(_histo_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; drm_device_dma_t *dma = dev->dma; @@ -508,7 +508,7 @@ static int DRM(_histo_info)SYSCTL_HANDLER_ARGS return 0; } -static int DRM(histo_info)SYSCTL_HANDLER_ARGS +static int DRM(histo_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret; diff --git a/bsd/drm_os_freebsd.h b/bsd/drm_os_freebsd.h index 990accfb..6b60e050 100644 --- a/bsd/drm_os_freebsd.h +++ b/bsd/drm_os_freebsd.h @@ -13,10 +13,14 @@ #include #include #include +#include #include #if __FreeBSD_version >= 400005 #include #endif +#if __FreeBSD_version >= 500000 +#include +#endif #if __FreeBSD_version >= 400006 #define __REALLY_HAVE_AGP 1 @@ -36,8 +40,13 @@ #define DRM_OS_LOCK lockmgr(&dev->dev_lock, LK_EXCLUSIVE, 0, curproc) #define DRM_OS_UNLOCK lockmgr(&dev->dev_lock, LK_RELEASE, 0, curproc) +#if __FreeBSD_version >= 500000 +#define DRM_OS_SPINLOCK(l) mtx_lock(l) +#define DRM_OS_SPINUNLOCK(u) mtx_unlock(u); +#else #define DRM_OS_SPINLOCK(l) simple_lock(l) #define DRM_OS_SPINUNLOCK(u) simple_unlock(u); +#endif #define DRM_OS_IOCTL dev_t kdev, u_long cmd, caddr_t data, int flags, struct proc *p #define DRM_OS_DEVICE drm_file_t *priv; \ drm_device_t *dev = kdev->si_drv1 @@ -165,6 +174,12 @@ find_first_zero_bit(volatile unsigned long *p, int max) #define DRM_PROC_LIMIT (PAGE_SIZE-80) +#if __FreeBSD_version >= 500000 +#define DRM_SYSCTL_HANDLER_ARGS (SYSCTL_HANDLER_ARGS) +#else +#define DRM_SYSCTL_HANDLER_ARGS SYSCTL_HANDLER_ARGS +#endif + #define DRM_SYSCTL_PRINT(fmt, arg...) \ snprintf(buf, sizeof(buf), fmt, ##arg); \ error = SYSCTL_OUT(req, buf, strlen(buf)); \ @@ -248,7 +263,7 @@ extern d_ioctl_t DRM(mapbufs); #endif /* Memory management support (drm_memory.h) */ -extern int DRM(mem_info)SYSCTL_HANDLER_ARGS; +extern int DRM(mem_info)DRM_SYSCTL_HANDLER_ARGS; /* DMA support (drm_dma.h) */ #if __HAVE_DMA_IRQ diff --git a/bsd/drm_sysctl.h b/bsd/drm_sysctl.h index b11dc4a3..fd3a358f 100644 --- a/bsd/drm_sysctl.h +++ b/bsd/drm_sysctl.h @@ -1,20 +1,20 @@ SYSCTL_NODE(_hw, OID_AUTO, dri, CTLFLAG_RW, 0, "DRI Graphics"); -static int DRM(name_info)SYSCTL_HANDLER_ARGS; -static int DRM(vm_info)SYSCTL_HANDLER_ARGS; -static int DRM(clients_info)SYSCTL_HANDLER_ARGS; -static int DRM(queues_info)SYSCTL_HANDLER_ARGS; -static int DRM(bufs_info)SYSCTL_HANDLER_ARGS; +static int DRM(name_info)DRM_SYSCTL_HANDLER_ARGS; +static int DRM(vm_info)DRM_SYSCTL_HANDLER_ARGS; +static int DRM(clients_info)DRM_SYSCTL_HANDLER_ARGS; +static int DRM(queues_info)DRM_SYSCTL_HANDLER_ARGS; +static int DRM(bufs_info)DRM_SYSCTL_HANDLER_ARGS; #if DRM_DEBUG_CODExx -static int DRM(vma_info)SYSCTL_HANDLER_ARGS; +static int DRM(vma_info)DRM_SYSCTL_HANDLER_ARGS; #endif #if DRM_DMA_HISTOGRAM -static int DRM(histo_info)SYSCTL_HANDLER_ARGS; +static int DRM(histo_info)DRM_SYSCTL_HANDLER_ARGS; #endif struct DRM(sysctl_list) { const char *name; - int (*f) SYSCTL_HANDLER_ARGS; + int (*f) DRM_SYSCTL_HANDLER_ARGS; } DRM(sysctl_list)[] = { { "name", DRM(name_info) }, { "mem", DRM(mem_info) }, @@ -102,7 +102,7 @@ int DRM(sysctl_cleanup)(drm_device_t *dev) return 0; } -static int DRM(name_info)SYSCTL_HANDLER_ARGS +static int DRM(name_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; char buf[128]; @@ -120,7 +120,7 @@ static int DRM(name_info)SYSCTL_HANDLER_ARGS return 0; } -static int DRM(_vm_info)SYSCTL_HANDLER_ARGS +static int DRM(_vm_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; drm_map_t *map; @@ -159,7 +159,7 @@ static int DRM(_vm_info)SYSCTL_HANDLER_ARGS return 0; } -static int DRM(vm_info)SYSCTL_HANDLER_ARGS +static int DRM(vm_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret; @@ -172,7 +172,7 @@ static int DRM(vm_info)SYSCTL_HANDLER_ARGS } -static int DRM(_queues_info)SYSCTL_HANDLER_ARGS +static int DRM(_queues_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int i; @@ -210,7 +210,7 @@ static int DRM(_queues_info)SYSCTL_HANDLER_ARGS return 0; } -static int DRM(queues_info) SYSCTL_HANDLER_ARGS +static int DRM(queues_info) DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret; @@ -224,7 +224,7 @@ static int DRM(queues_info) SYSCTL_HANDLER_ARGS /* drm_bufs_info is called whenever a process reads hw.dri.0.bufs. */ -static int DRM(_bufs_info) SYSCTL_HANDLER_ARGS +static int DRM(_bufs_info) DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; drm_device_dma_t *dma = dev->dma; @@ -260,7 +260,7 @@ static int DRM(_bufs_info) SYSCTL_HANDLER_ARGS return 0; } -static int DRM(bufs_info) SYSCTL_HANDLER_ARGS +static int DRM(bufs_info) DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret; @@ -272,7 +272,7 @@ static int DRM(bufs_info) SYSCTL_HANDLER_ARGS } -static int DRM(_clients_info) SYSCTL_HANDLER_ARGS +static int DRM(_clients_info) DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; drm_file_t *priv; @@ -294,7 +294,7 @@ static int DRM(_clients_info) SYSCTL_HANDLER_ARGS return 0; } -static int DRM(clients_info)SYSCTL_HANDLER_ARGS +static int DRM(clients_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret; @@ -307,7 +307,7 @@ static int DRM(clients_info)SYSCTL_HANDLER_ARGS #if DRM_DEBUG_CODExx -static int DRM(_vma_info)SYSCTL_HANDLER_ARGS +static int DRM(_vma_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; drm_vma_entry_t *pt; @@ -379,7 +379,7 @@ static int DRM(_vma_info)SYSCTL_HANDLER_ARGS return 0; } -static int DRM(vma_info)SYSCTL_HANDLER_ARGS +static int DRM(vma_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret; @@ -393,7 +393,7 @@ static int DRM(vma_info)SYSCTL_HANDLER_ARGS #if DRM_DMA_HISTOGRAM -static int DRM(_histo_info)SYSCTL_HANDLER_ARGS +static int DRM(_histo_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; drm_device_dma_t *dma = dev->dma; @@ -508,7 +508,7 @@ static int DRM(_histo_info)SYSCTL_HANDLER_ARGS return 0; } -static int DRM(histo_info)SYSCTL_HANDLER_ARGS +static int DRM(histo_info)DRM_SYSCTL_HANDLER_ARGS { drm_device_t *dev = arg1; int ret;