mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2026-05-07 13:28:06 +02:00
tdfx module now builds, but warnings and full check up still needed.
This commit is contained in:
parent
a54832fca8
commit
3a1e399a64
13 changed files with 216 additions and 56 deletions
|
|
@ -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)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;
|
||||
#if DRM_DEBUG_CODExx
|
||||
static int DRM(vma_info)(SYSCTL_HANDLER_ARGS);
|
||||
static int DRM(vma_info)SYSCTL_HANDLER_ARGS;
|
||||
#endif
|
||||
#if DRM_DMA_HISTOGRAM
|
||||
static int DRM(histo_info)(SYSCTL_HANDLER_ARGS);
|
||||
static int DRM(histo_info)SYSCTL_HANDLER_ARGS;
|
||||
#endif
|
||||
|
||||
struct DRM(sysctl_list) {
|
||||
const char *name;
|
||||
int (*f) (SYSCTL_HANDLER_ARGS);
|
||||
int (*f) 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)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)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)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)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) 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) 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) 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) 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)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)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)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)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)SYSCTL_HANDLER_ARGS
|
||||
{
|
||||
drm_device_t *dev = arg1;
|
||||
int ret;
|
||||
|
|
@ -519,5 +519,3 @@ static int DRM(histo_info)(SYSCTL_HANDLER_ARGS)
|
|||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
|||
75
bsd-core/drm_vm.c
Normal file
75
bsd-core/drm_vm.c
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
#include <vm/vm.h>
|
||||
#include <vm/pmap.h>
|
||||
|
||||
static int DRM(dma_mmap)(dev_t kdev, vm_offset_t offset, int prot)
|
||||
{
|
||||
drm_device_t *dev = kdev->si_drv1;
|
||||
drm_device_dma_t *dma = dev->dma;
|
||||
unsigned long physical;
|
||||
unsigned long page;
|
||||
|
||||
if (!dma) return -1; /* Error */
|
||||
if (!dma->pagelist) return -1; /* Nothing allocated */
|
||||
|
||||
page = offset >> PAGE_SHIFT;
|
||||
physical = dma->pagelist[page];
|
||||
|
||||
DRM_DEBUG("0x%08x (page %lu) => 0x%08lx\n", offset, page, physical);
|
||||
return atop(physical);
|
||||
}
|
||||
|
||||
int DRM(mmap)(dev_t kdev, vm_offset_t offset, int prot)
|
||||
{
|
||||
drm_device_t *dev = kdev->si_drv1;
|
||||
drm_map_t *map = NULL;
|
||||
drm_map_list_entry_t *listentry=NULL;
|
||||
|
||||
/* DRM_DEBUG("offset = 0x%x\n", offset);*/
|
||||
|
||||
if (dev->dma
|
||||
&& offset >= 0
|
||||
&& offset < ptoa(dev->dma->page_count))
|
||||
return DRM(dma_mmap)(kdev, offset, prot);
|
||||
|
||||
/* A sequential search of a linked list is
|
||||
fine here because: 1) there will only be
|
||||
about 5-10 entries in the list and, 2) a
|
||||
DRI client only has to do this mapping
|
||||
once, so it doesn't have to be optimized
|
||||
for performance, even if the list was a
|
||||
bit longer. */
|
||||
TAILQ_FOREACH(listentry, dev->maplist, link) {
|
||||
map = listentry->map;
|
||||
/* DRM_DEBUG("considering 0x%x..0x%x\n", map->offset, map->offset + map->size - 1);*/
|
||||
if (offset >= map->offset
|
||||
&& offset < map->offset + map->size) break;
|
||||
}
|
||||
|
||||
if (!listentry) {
|
||||
DRM_DEBUG("can't find map\n");
|
||||
return -1;
|
||||
}
|
||||
if (((map->flags&_DRM_RESTRICTED) && suser(curproc))) {
|
||||
DRM_DEBUG("restricted map\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
switch (map->type) {
|
||||
case _DRM_FRAME_BUFFER:
|
||||
case _DRM_REGISTERS:
|
||||
case _DRM_AGP:
|
||||
return atop(offset);
|
||||
case _DRM_SHM:
|
||||
DRM_DEBUG("In DRM_SHM\n");
|
||||
return atop(vtophys(offset));
|
||||
default:
|
||||
return -1; /* This should never happen. */
|
||||
}
|
||||
DRM_DEBUG("bailing out\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# $FreeBSD$
|
||||
|
||||
KMOD = tdfx
|
||||
SRCS = tdfx_drv.c tdfx_context.c
|
||||
SRCS = tdfx_drv.c
|
||||
SRCS += device_if.h bus_if.h pci_if.h
|
||||
CFLAGS += ${DEBUG_FLAGS} -I. -I..
|
||||
KMODDEPS = drm
|
||||
|
|
|
|||
|
|
@ -41,10 +41,10 @@ LinkSourceFile(drm_ioctl.h,$(XF86OSSRC)/linux/drm/kernel)
|
|||
LinkSourceFile(drm_lists.h,$(XF86OSSRC)/linux/drm/kernel)
|
||||
LinkSourceFile(drm_lock.h,$(XF86OSSRC)/linux/drm/kernel)
|
||||
LinkSourceFile(drm_memory.h,$(XF86OSSRC)/linux/drm/kernel)
|
||||
LinkSourceFile(drm_proc.h,$(XF86OSSRC)/linux/drm/kernel)
|
||||
XCOMM LinkSourceFile(drm_proc.h,$(XF86OSSRC)/linux/drm/kernel)
|
||||
LinkSourceFile(drm_scatter.h,$(XF86OSSRC)/linux/drm/kernel)
|
||||
XCOMM LinkSourceFile(drm_stub.h,$(XF86OSSRC)/linux/drm/kernel)
|
||||
LinkSourceFile(drm_vm.h,$(XF86OSSRC)/linux/drm/kernel)
|
||||
XCOMM LinkSourceFile(drm_vm.h,$(XF86OSSRC)/linux/drm/kernel)
|
||||
LinkSourceFile(drm.h,$(XF86OSSRC)/linux/drm/kernel)
|
||||
LinkSourceFile(drmP.h,$(XF86OSSRC)/linux/drm/kernel)
|
||||
LinkSourceFile(i810_drm.h,$(XF86OSSRC)/linux/drm/kernel)
|
||||
|
|
|
|||
|
|
@ -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)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;
|
||||
#if DRM_DEBUG_CODExx
|
||||
static int DRM(vma_info)(SYSCTL_HANDLER_ARGS);
|
||||
static int DRM(vma_info)SYSCTL_HANDLER_ARGS;
|
||||
#endif
|
||||
#if DRM_DMA_HISTOGRAM
|
||||
static int DRM(histo_info)(SYSCTL_HANDLER_ARGS);
|
||||
static int DRM(histo_info)SYSCTL_HANDLER_ARGS;
|
||||
#endif
|
||||
|
||||
struct DRM(sysctl_list) {
|
||||
const char *name;
|
||||
int (*f) (SYSCTL_HANDLER_ARGS);
|
||||
int (*f) 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)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)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)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)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) 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) 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) 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) 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)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)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)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)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)SYSCTL_HANDLER_ARGS
|
||||
{
|
||||
drm_device_t *dev = arg1;
|
||||
int ret;
|
||||
|
|
@ -519,5 +519,3 @@ static int DRM(histo_info)(SYSCTL_HANDLER_ARGS)
|
|||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
|||
75
bsd/drm_vm.h
Normal file
75
bsd/drm_vm.h
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
#include <vm/vm.h>
|
||||
#include <vm/pmap.h>
|
||||
|
||||
static int DRM(dma_mmap)(dev_t kdev, vm_offset_t offset, int prot)
|
||||
{
|
||||
drm_device_t *dev = kdev->si_drv1;
|
||||
drm_device_dma_t *dma = dev->dma;
|
||||
unsigned long physical;
|
||||
unsigned long page;
|
||||
|
||||
if (!dma) return -1; /* Error */
|
||||
if (!dma->pagelist) return -1; /* Nothing allocated */
|
||||
|
||||
page = offset >> PAGE_SHIFT;
|
||||
physical = dma->pagelist[page];
|
||||
|
||||
DRM_DEBUG("0x%08x (page %lu) => 0x%08lx\n", offset, page, physical);
|
||||
return atop(physical);
|
||||
}
|
||||
|
||||
int DRM(mmap)(dev_t kdev, vm_offset_t offset, int prot)
|
||||
{
|
||||
drm_device_t *dev = kdev->si_drv1;
|
||||
drm_map_t *map = NULL;
|
||||
drm_map_list_entry_t *listentry=NULL;
|
||||
|
||||
/* DRM_DEBUG("offset = 0x%x\n", offset);*/
|
||||
|
||||
if (dev->dma
|
||||
&& offset >= 0
|
||||
&& offset < ptoa(dev->dma->page_count))
|
||||
return DRM(dma_mmap)(kdev, offset, prot);
|
||||
|
||||
/* A sequential search of a linked list is
|
||||
fine here because: 1) there will only be
|
||||
about 5-10 entries in the list and, 2) a
|
||||
DRI client only has to do this mapping
|
||||
once, so it doesn't have to be optimized
|
||||
for performance, even if the list was a
|
||||
bit longer. */
|
||||
TAILQ_FOREACH(listentry, dev->maplist, link) {
|
||||
map = listentry->map;
|
||||
/* DRM_DEBUG("considering 0x%x..0x%x\n", map->offset, map->offset + map->size - 1);*/
|
||||
if (offset >= map->offset
|
||||
&& offset < map->offset + map->size) break;
|
||||
}
|
||||
|
||||
if (!listentry) {
|
||||
DRM_DEBUG("can't find map\n");
|
||||
return -1;
|
||||
}
|
||||
if (((map->flags&_DRM_RESTRICTED) && suser(curproc))) {
|
||||
DRM_DEBUG("restricted map\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
switch (map->type) {
|
||||
case _DRM_FRAME_BUFFER:
|
||||
case _DRM_REGISTERS:
|
||||
case _DRM_AGP:
|
||||
return atop(offset);
|
||||
case _DRM_SHM:
|
||||
DRM_DEBUG("In DRM_SHM\n");
|
||||
return atop(vtophys(offset));
|
||||
default:
|
||||
return -1; /* This should never happen. */
|
||||
}
|
||||
DRM_DEBUG("bailing out\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# $FreeBSD$
|
||||
|
||||
KMOD = tdfx
|
||||
SRCS = tdfx_drv.c tdfx_context.c
|
||||
SRCS = tdfx_drv.c
|
||||
SRCS += device_if.h bus_if.h pci_if.h
|
||||
CFLAGS += ${DEBUG_FLAGS} -I. -I..
|
||||
KMODDEPS = drm
|
||||
|
|
|
|||
|
|
@ -537,6 +537,11 @@ typedef struct drm_device {
|
|||
wait_queue_head_t buf_readers; /* Processes waiting to read */
|
||||
wait_queue_head_t buf_writers; /* Processes waiting to ctx switch */
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
/* Sysctl support */
|
||||
struct drm_sysctl_info *sysctl;
|
||||
#endif
|
||||
|
||||
#if __REALLY_HAVE_AGP
|
||||
drm_agp_head_t *agp;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -364,13 +364,13 @@ void DRM(free_pages)(unsigned long address, int order, int area)
|
|||
unsigned long bytes = PAGE_SIZE << order;
|
||||
int alloc_count;
|
||||
int free_count;
|
||||
unsigned long addr;
|
||||
unsigned int sz;
|
||||
|
||||
if (!address) {
|
||||
DRM_MEM_ERROR(area, "Attempt to free address 0\n");
|
||||
} else {
|
||||
#ifdef __linux__
|
||||
unsigned long addr;
|
||||
unsigned int sz;
|
||||
/* Unreserve */
|
||||
for (addr = address, sz = bytes;
|
||||
sz > 0;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
#include <sys/types.h>
|
||||
#include <sys/bus.h>
|
||||
#include <pci/pcivar.h>
|
||||
#include <opt_drm_linux.h>
|
||||
/* #include <opt_drm_linux.h> */
|
||||
#endif
|
||||
|
||||
#include "tdfx.h"
|
||||
|
|
@ -94,7 +94,9 @@ static int tdfx_probe(device_t dev)
|
|||
#include "drm_ioctl.h"
|
||||
#include "drm_lock.h"
|
||||
#include "drm_memory.h"
|
||||
#ifdef __linux__
|
||||
#include "drm_proc.h"
|
||||
#endif
|
||||
#include "drm_vm.h"
|
||||
#ifdef __linux__
|
||||
#include "drm_stub.h"
|
||||
|
|
|
|||
|
|
@ -537,6 +537,11 @@ typedef struct drm_device {
|
|||
wait_queue_head_t buf_readers; /* Processes waiting to read */
|
||||
wait_queue_head_t buf_writers; /* Processes waiting to ctx switch */
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
/* Sysctl support */
|
||||
struct drm_sysctl_info *sysctl;
|
||||
#endif
|
||||
|
||||
#if __REALLY_HAVE_AGP
|
||||
drm_agp_head_t *agp;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -364,13 +364,13 @@ void DRM(free_pages)(unsigned long address, int order, int area)
|
|||
unsigned long bytes = PAGE_SIZE << order;
|
||||
int alloc_count;
|
||||
int free_count;
|
||||
unsigned long addr;
|
||||
unsigned int sz;
|
||||
|
||||
if (!address) {
|
||||
DRM_MEM_ERROR(area, "Attempt to free address 0\n");
|
||||
} else {
|
||||
#ifdef __linux__
|
||||
unsigned long addr;
|
||||
unsigned int sz;
|
||||
/* Unreserve */
|
||||
for (addr = address, sz = bytes;
|
||||
sz > 0;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
#include <sys/types.h>
|
||||
#include <sys/bus.h>
|
||||
#include <pci/pcivar.h>
|
||||
#include <opt_drm_linux.h>
|
||||
/* #include <opt_drm_linux.h> */
|
||||
#endif
|
||||
|
||||
#include "tdfx.h"
|
||||
|
|
@ -94,7 +94,9 @@ static int tdfx_probe(device_t dev)
|
|||
#include "drm_ioctl.h"
|
||||
#include "drm_lock.h"
|
||||
#include "drm_memory.h"
|
||||
#ifdef __linux__
|
||||
#include "drm_proc.h"
|
||||
#endif
|
||||
#include "drm_vm.h"
|
||||
#ifdef __linux__
|
||||
#include "drm_stub.h"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue