Deleted Added
full compact
drmP.h (203288) drmP.h (207066)
1/* drmP.h -- Private header for Direct Rendering Manager -*- linux-c -*-
2 * Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
3 */
4/*-
5 * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
6 * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
7 * All rights reserved.
8 *

--- 18 unchanged lines hidden (view full) ---

27 *
28 * Authors:
29 * Rickard E. (Rik) Faith <faith@valinux.com>
30 * Gareth Hughes <gareth@valinux.com>
31 *
32 */
33
34#include <sys/cdefs.h>
1/* drmP.h -- Private header for Direct Rendering Manager -*- linux-c -*-
2 * Created: Mon Jan 4 10:05:05 1999 by faith@precisioninsight.com
3 */
4/*-
5 * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
6 * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
7 * All rights reserved.
8 *

--- 18 unchanged lines hidden (view full) ---

27 *
28 * Authors:
29 * Rickard E. (Rik) Faith <faith@valinux.com>
30 * Gareth Hughes <gareth@valinux.com>
31 *
32 */
33
34#include <sys/cdefs.h>
35__FBSDID("$FreeBSD: head/sys/dev/drm/drmP.h 203288 2010-01-31 14:30:39Z rnoland $");
35__FBSDID("$FreeBSD: head/sys/dev/drm/drmP.h 207066 2010-04-22 18:21:25Z rnoland $");
36
37#ifndef _DRM_P_H_
38#define _DRM_P_H_
39
40#if defined(_KERNEL) || defined(__KERNEL__)
41
42struct drm_device;
43struct drm_file;

--- 190 unchanged lines hidden (view full) ---

234 * DRM_WRITEMEMORYBARRIER() prevents reordering of writes.
235 * DRM_MEMORYBARRIER() prevents reordering of reads and writes.
236 */
237#define DRM_READMEMORYBARRIER() rmb()
238#define DRM_WRITEMEMORYBARRIER() wmb()
239#define DRM_MEMORYBARRIER() mb()
240
241#define DRM_READ8(map, offset) \
36
37#ifndef _DRM_P_H_
38#define _DRM_P_H_
39
40#if defined(_KERNEL) || defined(__KERNEL__)
41
42struct drm_device;
43struct drm_file;

--- 190 unchanged lines hidden (view full) ---

234 * DRM_WRITEMEMORYBARRIER() prevents reordering of writes.
235 * DRM_MEMORYBARRIER() prevents reordering of reads and writes.
236 */
237#define DRM_READMEMORYBARRIER() rmb()
238#define DRM_WRITEMEMORYBARRIER() wmb()
239#define DRM_MEMORYBARRIER() mb()
240
241#define DRM_READ8(map, offset) \
242 *(volatile u_int8_t *)(((vm_offset_t)(map)->handle) + \
242 *(volatile u_int8_t *)(((vm_offset_t)(map)->virtual) + \
243 (vm_offset_t)(offset))
244#define DRM_READ16(map, offset) \
243 (vm_offset_t)(offset))
244#define DRM_READ16(map, offset) \
245 *(volatile u_int16_t *)(((vm_offset_t)(map)->handle) + \
245 *(volatile u_int16_t *)(((vm_offset_t)(map)->virtual) + \
246 (vm_offset_t)(offset))
247#define DRM_READ32(map, offset) \
246 (vm_offset_t)(offset))
247#define DRM_READ32(map, offset) \
248 *(volatile u_int32_t *)(((vm_offset_t)(map)->handle) + \
248 *(volatile u_int32_t *)(((vm_offset_t)(map)->virtual) + \
249 (vm_offset_t)(offset))
250#define DRM_WRITE8(map, offset, val) \
249 (vm_offset_t)(offset))
250#define DRM_WRITE8(map, offset, val) \
251 *(volatile u_int8_t *)(((vm_offset_t)(map)->handle) + \
251 *(volatile u_int8_t *)(((vm_offset_t)(map)->virtual) + \
252 (vm_offset_t)(offset)) = val
253#define DRM_WRITE16(map, offset, val) \
252 (vm_offset_t)(offset)) = val
253#define DRM_WRITE16(map, offset, val) \
254 *(volatile u_int16_t *)(((vm_offset_t)(map)->handle) + \
254 *(volatile u_int16_t *)(((vm_offset_t)(map)->virtual) + \
255 (vm_offset_t)(offset)) = val
256#define DRM_WRITE32(map, offset, val) \
255 (vm_offset_t)(offset)) = val
256#define DRM_WRITE32(map, offset, val) \
257 *(volatile u_int32_t *)(((vm_offset_t)(map)->handle) + \
257 *(volatile u_int32_t *)(((vm_offset_t)(map)->virtual) + \
258 (vm_offset_t)(offset)) = val
259
260#define DRM_VERIFYAREA_READ( uaddr, size ) \
261 (!useracc(__DECONST(caddr_t, uaddr), size, VM_PROT_READ))
262
263#define DRM_COPY_TO_USER(user, kern, size) \
264 copyout(kern, user, size)
265#define DRM_COPY_FROM_USER(kern, user, size) \

--- 210 unchanged lines hidden (view full) ---

476typedef struct drm_sg_mem {
477 unsigned long handle;
478 void *virtual;
479 int pages;
480 dma_addr_t *busaddr;
481 struct drm_dma_handle *dmah; /* Handle to PCI memory */
482} drm_sg_mem_t;
483
258 (vm_offset_t)(offset)) = val
259
260#define DRM_VERIFYAREA_READ( uaddr, size ) \
261 (!useracc(__DECONST(caddr_t, uaddr), size, VM_PROT_READ))
262
263#define DRM_COPY_TO_USER(user, kern, size) \
264 copyout(kern, user, size)
265#define DRM_COPY_FROM_USER(kern, user, size) \

--- 210 unchanged lines hidden (view full) ---

476typedef struct drm_sg_mem {
477 unsigned long handle;
478 void *virtual;
479 int pages;
480 dma_addr_t *busaddr;
481 struct drm_dma_handle *dmah; /* Handle to PCI memory */
482} drm_sg_mem_t;
483
484#define DRM_MAP_HANDLE_BITS (sizeof(void *) == 4 ? 4 : 24)
485#define DRM_MAP_HANDLE_SHIFT (sizeof(void *) * 8 - DRM_MAP_HANDLE_BITS)
484typedef TAILQ_HEAD(drm_map_list, drm_local_map) drm_map_list_t;
485
486typedef struct drm_local_map {
486typedef TAILQ_HEAD(drm_map_list, drm_local_map) drm_map_list_t;
487
488typedef struct drm_local_map {
487 unsigned long offset; /* Physical address (0 for SAREA)*/
488 unsigned long size; /* Physical size (bytes) */
489 enum drm_map_type type; /* Type of memory mapped */
490 enum drm_map_flags flags; /* Flags */
491 void *handle; /* User-space: "Handle" to pass to mmap */
492 /* Kernel-space: kernel-virtual address */
493 int mtrr; /* Boolean: MTRR used */
494 /* Private data */
495 int rid; /* PCI resource ID for bus_space */
489 unsigned long offset; /* Physical address (0 for SAREA) */
490 unsigned long size; /* Physical size (bytes) */
491 enum drm_map_type type; /* Type of memory mapped */
492 enum drm_map_flags flags; /* Flags */
493 void *handle; /* User-space: "Handle" to pass to mmap */
494 /* Kernel-space: kernel-virtual address */
495 int mtrr; /* Boolean: MTRR used */
496 /* Private data */
497 int rid; /* PCI resource ID for bus_space */
498 void *virtual; /* Kernel-space: kernel-virtual address */
496 struct resource *bsr;
497 bus_space_tag_t bst;
498 bus_space_handle_t bsh;
499 drm_dma_handle_t *dmah;
500 TAILQ_ENTRY(drm_local_map) link;
501} drm_local_map_t;
502
503struct drm_vblank_info {

--- 134 unchanged lines hidden (view full) ---

638 atomic_t counts[15];
639
640 /* Authentication */
641 drm_file_list_t files;
642 drm_magic_head_t magiclist[DRM_HASH_SIZE];
643
644 /* Linked list of mappable regions. Protected by dev_lock */
645 drm_map_list_t maplist;
499 struct resource *bsr;
500 bus_space_tag_t bst;
501 bus_space_handle_t bsh;
502 drm_dma_handle_t *dmah;
503 TAILQ_ENTRY(drm_local_map) link;
504} drm_local_map_t;
505
506struct drm_vblank_info {

--- 134 unchanged lines hidden (view full) ---

641 atomic_t counts[15];
642
643 /* Authentication */
644 drm_file_list_t files;
645 drm_magic_head_t magiclist[DRM_HASH_SIZE];
646
647 /* Linked list of mappable regions. Protected by dev_lock */
648 drm_map_list_t maplist;
649 struct unrhdr *map_unrhdr;
646
647 drm_local_map_t **context_sareas;
648 int max_context;
649
650 drm_lock_data_t lock; /* Information on hardware lock */
651
652 /* DMA queues (contexts) */
653 drm_device_dma_t *dma; /* Optional pointer for DMA support */

--- 314 unchanged lines hidden (view full) ---

968{
969 free(pt, area);
970}
971
972/* Inline replacements for DRM_IOREMAP macros */
973static __inline__ void
974drm_core_ioremap_wc(struct drm_local_map *map, struct drm_device *dev)
975{
650
651 drm_local_map_t **context_sareas;
652 int max_context;
653
654 drm_lock_data_t lock; /* Information on hardware lock */
655
656 /* DMA queues (contexts) */
657 drm_device_dma_t *dma; /* Optional pointer for DMA support */

--- 314 unchanged lines hidden (view full) ---

972{
973 free(pt, area);
974}
975
976/* Inline replacements for DRM_IOREMAP macros */
977static __inline__ void
978drm_core_ioremap_wc(struct drm_local_map *map, struct drm_device *dev)
979{
976 map->handle = drm_ioremap_wc(dev, map);
980 map->virtual = drm_ioremap_wc(dev, map);
977}
978static __inline__ void
979drm_core_ioremap(struct drm_local_map *map, struct drm_device *dev)
980{
981}
982static __inline__ void
983drm_core_ioremap(struct drm_local_map *map, struct drm_device *dev)
984{
981 map->handle = drm_ioremap(dev, map);
985 map->virtual = drm_ioremap(dev, map);
982}
983static __inline__ void
984drm_core_ioremapfree(struct drm_local_map *map, struct drm_device *dev)
985{
986}
987static __inline__ void
988drm_core_ioremapfree(struct drm_local_map *map, struct drm_device *dev)
989{
986 if ( map->handle && map->size )
990 if ( map->virtual && map->size )
987 drm_ioremapfree(map);
988}
989
990static __inline__ struct drm_local_map *
991drm_core_findmap(struct drm_device *dev, unsigned long offset)
992{
993 drm_local_map_t *map;
994
995 DRM_SPINLOCK_ASSERT(&dev->dev_lock);
996 TAILQ_FOREACH(map, &dev->maplist, link) {
991 drm_ioremapfree(map);
992}
993
994static __inline__ struct drm_local_map *
995drm_core_findmap(struct drm_device *dev, unsigned long offset)
996{
997 drm_local_map_t *map;
998
999 DRM_SPINLOCK_ASSERT(&dev->dev_lock);
1000 TAILQ_FOREACH(map, &dev->maplist, link) {
997 if (map->offset == offset)
1001 if (offset == (unsigned long)map->handle)
998 return map;
999 }
1000 return NULL;
1001}
1002
1003static __inline__ void drm_core_dropmap(struct drm_map *map)
1004{
1005}
1006
1007#endif /* __KERNEL__ */
1008#endif /* _DRM_P_H_ */
1002 return map;
1003 }
1004 return NULL;
1005}
1006
1007static __inline__ void drm_core_dropmap(struct drm_map *map)
1008{
1009}
1010
1011#endif /* __KERNEL__ */
1012#endif /* _DRM_P_H_ */