} drm_lock_data_t;
typedef struct drm_device_dma {
-#if 0
- /* Performance Counters */
- atomic_t total_prio; /* Total DRM_DMA_PRIORITY */
- atomic_t total_bytes; /* Total bytes DMA'd */
- atomic_t total_dmas; /* Total DMA buffers dispatched */
-
- atomic_t total_missed_dma; /* Missed drm_do_dma */
- atomic_t total_missed_lock; /* Missed lock in drm_do_dma */
- atomic_t total_missed_free; /* Missed drm_free_this_buffer */
- atomic_t total_missed_sched;/* Missed drm_dma_schedule */
-
- atomic_t total_tried; /* Tried next_buffer */
- atomic_t total_hit; /* Sent next_buffer */
- atomic_t total_lost; /* Lost interrupt */
-#endif
drm_buf_entry_t bufs[DRM_MAX_ORDER+1];
int buf_count;
extern void *DRM(alloc)(size_t size, int area);
extern void *DRM(realloc)(void *oldpt, size_t oldsize, size_t size,
int area);
-extern char *DRM(strdup)(const char *s, int area);
-extern void DRM(strfree)(const char *s, int area);
extern void DRM(free)(void *pt, size_t size, int area);
extern unsigned long DRM(alloc_pages)(int order, int area);
extern void DRM(free_pages)(unsigned long address, int order,
break; /* Got lock */
}
/* Contention */
-#if 0
- atomic_inc( &dev->total_sleeps );
-#endif
schedule();
if ( signal_pending( current ) ) {
retcode = -ERESTARTSYS;
return pt;
}
-char *DRM(strdup)(const char *s, int area)
-{
- char *pt;
- int length = s ? strlen(s) : 0;
-
- if (!(pt = DRM(alloc)(length+1, area))) return NULL;
- strcpy(pt, s);
- return pt;
-}
-
-void DRM(strfree)(const char *s, int area)
-{
- unsigned int size;
-
- if (!s) return;
-
- size = 1 + (s ? strlen(s) : 0);
- DRM(free)((void *)s, size, area);
-}
-
void DRM(free)(void *pt, size_t size, int area)
{
int alloc_count;
} drm_lock_data_t;
typedef struct drm_device_dma {
-#if 0
- /* Performance Counters */
- atomic_t total_prio; /* Total DRM_DMA_PRIORITY */
- atomic_t total_bytes; /* Total bytes DMA'd */
- atomic_t total_dmas; /* Total DMA buffers dispatched */
-
- atomic_t total_missed_dma; /* Missed drm_do_dma */
- atomic_t total_missed_lock; /* Missed lock in drm_do_dma */
- atomic_t total_missed_free; /* Missed drm_free_this_buffer */
- atomic_t total_missed_sched;/* Missed drm_dma_schedule */
-
- atomic_t total_tried; /* Tried next_buffer */
- atomic_t total_hit; /* Sent next_buffer */
- atomic_t total_lost; /* Lost interrupt */
-#endif
drm_buf_entry_t bufs[DRM_MAX_ORDER+1];
int buf_count;
extern void *DRM(alloc)(size_t size, int area);
extern void *DRM(realloc)(void *oldpt, size_t oldsize, size_t size,
int area);
-extern char *DRM(strdup)(const char *s, int area);
-extern void DRM(strfree)(const char *s, int area);
extern void DRM(free)(void *pt, size_t size, int area);
extern unsigned long DRM(alloc_pages)(int order, int area);
extern void DRM(free_pages)(unsigned long address, int order,
break; /* Got lock */
}
/* Contention */
-#if 0
- atomic_inc( &dev->total_sleeps );
-#endif
schedule();
if ( signal_pending( current ) ) {
retcode = -ERESTARTSYS;
return pt;
}
-char *DRM(strdup)(const char *s, int area)
-{
- char *pt;
- int length = s ? strlen(s) : 0;
-
- if (!(pt = DRM(alloc)(length+1, area))) return NULL;
- strcpy(pt, s);
- return pt;
-}
-
-void DRM(strfree)(const char *s, int area)
-{
- unsigned int size;
-
- if (!s) return;
-
- size = 1 + (s ? strlen(s) : 0);
- DRM(free)((void *)s, size, area);
-}
-
void DRM(free)(void *pt, size_t size, int area)
{
int alloc_count;
char buf[64];
drm_queue_t *q;
-#if 0
- atomic_inc(&dev->total_ctx);
-#endif
-
if (test_and_set_bit(0, &dev->context_flag)) {
DRM_ERROR("Reentering -- FIXME\n");
return -EBUSY;
}
-
DRM_DEBUG("Context switch from %d to %d\n", old, new);
if (new >= dev->queue_count) {
drmFreeBusid(busid);
}
-#if 0
-typedef struct {
- unsigned long offset; /* Requested physical address (0 for SAREA)*/
- unsigned long size; /* Requested physical size (bytes) */
- drm_map_type_t type; /* Type of memory to map */
- drm_map_flags_t flags; /* Flags */
- void *handle; /* User-space: "Handle" to pass to mmap */
- /* Kernel-space: kernel-virtual address */
- int mtrr; /* MTRR slot used */
- /* Private data */
-} drmVmRec, *drmVmPtr;
-#endif
static void getvm(int fd)
{