mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-05-09 09:48:05 +02:00
More fixes for FreeBSD-current.
This commit is contained in:
parent
e1770afb48
commit
5c1d043535
10 changed files with 54 additions and 8 deletions
|
|
@ -43,9 +43,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_SPINTYPE struct mtx
|
||||
#define DRM_OS_SPININIT(l,name) mtx_init(l, name, MTX_DEF)
|
||||
#define DRM_OS_SPINLOCK(l) mtx_lock(l)
|
||||
#define DRM_OS_SPINUNLOCK(u) mtx_unlock(u);
|
||||
#else
|
||||
#define DRM_OS_SPINTYPE struct simplelock
|
||||
#define DRM_OS_SPININIT(l,name) simple_lock_init(l)
|
||||
#define DRM_OS_SPINLOCK(l) simple_lock(l)
|
||||
#define DRM_OS_SPINUNLOCK(u) simple_unlock(u);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -43,9 +43,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_SPINTYPE struct mtx
|
||||
#define DRM_OS_SPININIT(l,name) mtx_init(l, name, MTX_DEF)
|
||||
#define DRM_OS_SPINLOCK(l) mtx_lock(l)
|
||||
#define DRM_OS_SPINUNLOCK(u) mtx_unlock(u);
|
||||
#else
|
||||
#define DRM_OS_SPINTYPE struct simplelock
|
||||
#define DRM_OS_SPININIT(l,name) simple_lock_init(l)
|
||||
#define DRM_OS_SPINLOCK(l) simple_lock(l)
|
||||
#define DRM_OS_SPINUNLOCK(u) simple_unlock(u);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -448,7 +448,7 @@ typedef struct drm_device {
|
|||
struct semaphore struct_sem; /* For others */
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
struct simplelock count_lock; /* For inuse, open_count, buf_use */
|
||||
DRM_OS_SPINTYPE count_lock; /* For inuse, open_count, buf_use */
|
||||
struct lock dev_lock; /* For others */
|
||||
#endif
|
||||
/* Usage Counters */
|
||||
|
|
|
|||
|
|
@ -123,11 +123,18 @@ int DRM(getmagic)(DRM_OS_IOCTL)
|
|||
static spinlock_t lock = SPIN_LOCK_UNLOCKED;
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
static struct simplelock lock;
|
||||
static DRM_OS_SPINTYPE lock;
|
||||
static int first = 1;
|
||||
#endif
|
||||
DRM_OS_DEVICE;
|
||||
DRM_OS_PRIV;
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
if (first) {
|
||||
DRM_OS_SPININIT(&lock, "drm getmagic");
|
||||
first = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Find unique magic */
|
||||
if (priv->magic) {
|
||||
|
|
|
|||
|
|
@ -286,7 +286,11 @@ static struct cdevsw DRM( cdevsw) = {
|
|||
/* dump */ nodump,
|
||||
/* psize */ nopsize,
|
||||
/* flags */ D_TTY | D_TRACKCLOSE,
|
||||
#if __FreeBSD_version >= 500000
|
||||
/* kqfilter */ 0
|
||||
#else
|
||||
/* bmaj */ -1
|
||||
#endif
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
@ -387,7 +391,11 @@ static int DRM(setup)( drm_device_t *dev )
|
|||
init_waitqueue_head( &dev->context_wait );
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
#if __FreeBSD_version >= 500000
|
||||
callout_init( &dev->timer, 1 );
|
||||
#else
|
||||
callout_init( &dev->timer );
|
||||
#endif
|
||||
dev->context_wait = 0;
|
||||
#endif
|
||||
|
||||
|
|
@ -638,7 +646,7 @@ static int DRM(init)( device_t nbdev )
|
|||
#endif
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
simple_lock_init(&dev->count_lock);
|
||||
DRM_OS_SPININIT(&dev->count_lock, "drm device");
|
||||
lockinit(&dev->dev_lock, PZERO, "drmlk", 0, 0);
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ typedef struct drm_mem_stats {
|
|||
static spinlock_t DRM(mem_lock) = SPIN_LOCK_UNLOCKED;
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
static struct simplelock DRM(mem_lock);
|
||||
static DRM_OS_SPINTYPE DRM(mem_lock);
|
||||
#endif
|
||||
static unsigned long DRM(ram_available) = 0; /* In pages */
|
||||
static unsigned long DRM(ram_used) = 0;
|
||||
|
|
@ -101,6 +101,10 @@ void DRM(mem_init)(void)
|
|||
struct sysinfo si;
|
||||
#endif
|
||||
|
||||
#if defined(__FreeBSD__)
|
||||
DRM_OS_SPININIT(&DRM(mem_lock), "drm memory");
|
||||
#endif
|
||||
|
||||
for (mem = DRM(mem_stats); mem->name; ++mem) {
|
||||
mem->succeed_count = 0;
|
||||
mem->free_count = 0;
|
||||
|
|
|
|||
|
|
@ -448,7 +448,7 @@ typedef struct drm_device {
|
|||
struct semaphore struct_sem; /* For others */
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
struct simplelock count_lock; /* For inuse, open_count, buf_use */
|
||||
DRM_OS_SPINTYPE count_lock; /* For inuse, open_count, buf_use */
|
||||
struct lock dev_lock; /* For others */
|
||||
#endif
|
||||
/* Usage Counters */
|
||||
|
|
|
|||
|
|
@ -123,11 +123,18 @@ int DRM(getmagic)(DRM_OS_IOCTL)
|
|||
static spinlock_t lock = SPIN_LOCK_UNLOCKED;
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
static struct simplelock lock;
|
||||
static DRM_OS_SPINTYPE lock;
|
||||
static int first = 1;
|
||||
#endif
|
||||
DRM_OS_DEVICE;
|
||||
DRM_OS_PRIV;
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
if (first) {
|
||||
DRM_OS_SPININIT(&lock, "drm getmagic");
|
||||
first = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Find unique magic */
|
||||
if (priv->magic) {
|
||||
|
|
|
|||
|
|
@ -286,7 +286,11 @@ static struct cdevsw DRM( cdevsw) = {
|
|||
/* dump */ nodump,
|
||||
/* psize */ nopsize,
|
||||
/* flags */ D_TTY | D_TRACKCLOSE,
|
||||
#if __FreeBSD_version >= 500000
|
||||
/* kqfilter */ 0
|
||||
#else
|
||||
/* bmaj */ -1
|
||||
#endif
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
@ -387,7 +391,11 @@ static int DRM(setup)( drm_device_t *dev )
|
|||
init_waitqueue_head( &dev->context_wait );
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
#if __FreeBSD_version >= 500000
|
||||
callout_init( &dev->timer, 1 );
|
||||
#else
|
||||
callout_init( &dev->timer );
|
||||
#endif
|
||||
dev->context_wait = 0;
|
||||
#endif
|
||||
|
||||
|
|
@ -638,7 +646,7 @@ static int DRM(init)( device_t nbdev )
|
|||
#endif
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
simple_lock_init(&dev->count_lock);
|
||||
DRM_OS_SPININIT(&dev->count_lock, "drm device");
|
||||
lockinit(&dev->dev_lock, PZERO, "drmlk", 0, 0);
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ typedef struct drm_mem_stats {
|
|||
static spinlock_t DRM(mem_lock) = SPIN_LOCK_UNLOCKED;
|
||||
#endif
|
||||
#ifdef __FreeBSD__
|
||||
static struct simplelock DRM(mem_lock);
|
||||
static DRM_OS_SPINTYPE DRM(mem_lock);
|
||||
#endif
|
||||
static unsigned long DRM(ram_available) = 0; /* In pages */
|
||||
static unsigned long DRM(ram_used) = 0;
|
||||
|
|
@ -101,6 +101,10 @@ void DRM(mem_init)(void)
|
|||
struct sysinfo si;
|
||||
#endif
|
||||
|
||||
#if defined(__FreeBSD__)
|
||||
DRM_OS_SPININIT(&DRM(mem_lock), "drm memory");
|
||||
#endif
|
||||
|
||||
for (mem = DRM(mem_stats); mem->name; ++mem) {
|
||||
mem->succeed_count = 0;
|
||||
mem->free_count = 0;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue