diff options
Diffstat (limited to 'include/drm/drmP.h')
| -rw-r--r-- | include/drm/drmP.h | 47 | 
1 files changed, 30 insertions, 17 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 34e1676b53d..03a7c11cb24 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -523,19 +523,32 @@ struct drm_mm {  /** + * Kernel side of a mapping + */ +struct drm_local_map { +	unsigned long offset;	 /**< Requested physical address (0 for SAREA)*/ +	unsigned long size;	 /**< Requested physical size (bytes) */ +	enum drm_map_type type;	 /**< Type of memory to map */ +	enum drm_map_flags flags;	 /**< Flags */ +	void *handle;		 /**< User-space: "Handle" to pass to mmap() */ +				 /**< Kernel-space: kernel-virtual address */ +	int mtrr;		 /**< MTRR slot used */ +}; + +typedef struct drm_local_map drm_local_map_t; + +/**   * Mappings list   */  struct drm_map_list {  	struct list_head head;		/**< list head */  	struct drm_hash_item hash; -	struct drm_map *map;			/**< mapping */ +	struct drm_local_map *map;	/**< mapping */  	uint64_t user_token;  	struct drm_master *master;  	struct drm_mm_node *file_offset_node;	/**< fake offset */  }; -typedef struct drm_map drm_local_map_t; -  /**   * Context handle list   */ @@ -560,7 +573,7 @@ struct drm_ati_pcigart_info {  	dma_addr_t bus_addr;  	dma_addr_t table_mask;  	struct drm_dma_handle *table_handle; -	drm_local_map_t mapping; +	struct drm_local_map mapping;  	int table_size;  }; @@ -747,7 +760,7 @@ struct drm_driver {  					struct drm_file *file_priv);  	void (*reclaim_buffers_idlelocked) (struct drm_device *dev,  					    struct drm_file *file_priv); -	unsigned long (*get_map_ofs) (struct drm_map * map); +	unsigned long (*get_map_ofs) (struct drm_local_map * map);  	unsigned long (*get_reg_ofs) (struct drm_device *dev);  	void (*set_version) (struct drm_device *dev,  			     struct drm_set_version *sv); @@ -932,7 +945,7 @@ struct drm_device {  	sigset_t sigmask;  	struct drm_driver *driver; -	drm_local_map_t *agp_buffer_map; +	struct drm_local_map *agp_buffer_map;  	unsigned int agp_buffer_token;  	struct drm_minor *control;		/**< Control node for card */  	struct drm_minor *primary;		/**< render type primary screen head */ @@ -1049,7 +1062,7 @@ extern int drm_release(struct inode *inode, struct file *filp);  extern int drm_mmap(struct file *filp, struct vm_area_struct *vma);  extern int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma);  extern void drm_vm_open_locked(struct vm_area_struct *vma); -extern unsigned long drm_core_get_map_ofs(struct drm_map * map); +extern unsigned long drm_core_get_map_ofs(struct drm_local_map * map);  extern unsigned long drm_core_get_reg_ofs(struct drm_device *dev);  extern unsigned int drm_poll(struct file *filp, struct poll_table_struct *wait); @@ -1155,11 +1168,11 @@ extern int drm_addbufs_agp(struct drm_device *dev, struct drm_buf_desc * request  extern int drm_addbufs_pci(struct drm_device *dev, struct drm_buf_desc * request);  extern int drm_addmap(struct drm_device *dev, unsigned int offset,  		      unsigned int size, enum drm_map_type type, -		      enum drm_map_flags flags, drm_local_map_t ** map_ptr); +		      enum drm_map_flags flags, struct drm_local_map **map_ptr);  extern int drm_addmap_ioctl(struct drm_device *dev, void *data,  			    struct drm_file *file_priv); -extern int drm_rmmap(struct drm_device *dev, drm_local_map_t *map); -extern int drm_rmmap_locked(struct drm_device *dev, drm_local_map_t *map); +extern int drm_rmmap(struct drm_device *dev, struct drm_local_map *map); +extern int drm_rmmap_locked(struct drm_device *dev, struct drm_local_map *map);  extern int drm_rmmap_ioctl(struct drm_device *dev, void *data,  			   struct drm_file *file_priv);  extern int drm_addbufs(struct drm_device *dev, void *data, @@ -1261,7 +1274,7 @@ extern struct proc_dir_entry *drm_proc_root;  extern struct idr drm_minors_idr; -extern drm_local_map_t *drm_getsarea(struct drm_device *dev); +extern struct drm_local_map *drm_getsarea(struct drm_device *dev);  				/* Proc support (drm_proc.h) */  extern int drm_proc_init(struct drm_minor *minor, int minor_id, @@ -1378,12 +1391,12 @@ int drm_gem_open_ioctl(struct drm_device *dev, void *data,  void drm_gem_open(struct drm_device *dev, struct drm_file *file_private);  void drm_gem_release(struct drm_device *dev, struct drm_file *file_private); -extern void drm_core_ioremap(struct drm_map *map, struct drm_device *dev); -extern void drm_core_ioremap_wc(struct drm_map *map, struct drm_device *dev); -extern void drm_core_ioremapfree(struct drm_map *map, struct drm_device *dev); +extern void drm_core_ioremap(struct drm_local_map *map, struct drm_device *dev); +extern void drm_core_ioremap_wc(struct drm_local_map *map, struct drm_device *dev); +extern void drm_core_ioremapfree(struct drm_local_map *map, struct drm_device *dev); -static __inline__ struct drm_map *drm_core_findmap(struct drm_device *dev, -						   unsigned int token) +static __inline__ struct drm_local_map *drm_core_findmap(struct drm_device *dev, +							 unsigned int token)  {  	struct drm_map_list *_entry;  	list_for_each_entry(_entry, &dev->maplist, head) @@ -1410,7 +1423,7 @@ static __inline__ int drm_device_is_pcie(struct drm_device *dev)  	return pci_find_capability(dev->pdev, PCI_CAP_ID_EXP);  } -static __inline__ void drm_core_dropmap(struct drm_map *map) +static __inline__ void drm_core_dropmap(struct drm_local_map *map)  {  }  |