Deleted Added
sdiff udiff text old ( 203288 ) new ( 207066 )
full compact
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 $");
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) + \
243 (vm_offset_t)(offset))
244#define DRM_READ16(map, offset) \
245 *(volatile u_int16_t *)(((vm_offset_t)(map)->handle) + \
246 (vm_offset_t)(offset))
247#define DRM_READ32(map, offset) \
248 *(volatile u_int32_t *)(((vm_offset_t)(map)->handle) + \
249 (vm_offset_t)(offset))
250#define DRM_WRITE8(map, offset, val) \
251 *(volatile u_int8_t *)(((vm_offset_t)(map)->handle) + \
252 (vm_offset_t)(offset)) = val
253#define DRM_WRITE16(map, offset, val) \
254 *(volatile u_int16_t *)(((vm_offset_t)(map)->handle) + \
255 (vm_offset_t)(offset)) = val
256#define DRM_WRITE32(map, offset, val) \
257 *(volatile u_int32_t *)(((vm_offset_t)(map)->handle) + \
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
484typedef TAILQ_HEAD(drm_map_list, drm_local_map) drm_map_list_t;
485
486typedef 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 */
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;
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{
976 map->handle = drm_ioremap_wc(dev, map);
977}
978static __inline__ void
979drm_core_ioremap(struct drm_local_map *map, struct drm_device *dev)
980{
981 map->handle = drm_ioremap(dev, map);
982}
983static __inline__ void
984drm_core_ioremapfree(struct drm_local_map *map, struct drm_device *dev)
985{
986 if ( map->handle && 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) {
997 if (map->offset == offset)
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_ */