Home | History | Annotate | Line # | Download | only in drm
drm_agpsupport.h revision 1.4
      1 #ifndef _DRM_AGPSUPPORT_H_
      2 #define _DRM_AGPSUPPORT_H_
      3 
      4 #include <linux/kernel.h>
      5 #include <linux/mm.h>
      6 #include <linux/mutex.h>
      7 #include <linux/types.h>
      8 #include <linux/agp_backend.h>
      9 #include <drm/drmP.h>
     10 
     11 #if __OS_HAS_AGP
     12 
     13 #ifdef __NetBSD__
     14 static inline void drm_free_agp(struct agp_bridge_data *, struct agp_memory *, int);
     15 static inline int drm_bind_agp(struct agp_bridge_data *, struct agp_memory *, unsigned);
     16 static inline int drm_unbind_agp(struct agp_bridge_data *, struct agp_memory *);
     17 #else
     18 void drm_free_agp(struct agp_memory * handle, int pages);
     19 int drm_bind_agp(struct agp_memory * handle, unsigned int start);
     20 int drm_unbind_agp(struct agp_memory * handle);
     21 #endif
     22 struct agp_memory *drm_agp_bind_pages(struct drm_device *dev,
     23 				struct page **pages,
     24 				unsigned long num_pages,
     25 				uint32_t gtt_offset,
     26 				uint32_t type);
     27 
     28 struct drm_agp_head *drm_agp_init(struct drm_device *dev);
     29 void drm_agp_clear(struct drm_device *dev);
     30 int drm_agp_acquire(struct drm_device *dev);
     31 int drm_agp_acquire_ioctl(struct drm_device *dev, void *data,
     32 			  struct drm_file *file_priv);
     33 int drm_agp_release(struct drm_device *dev);
     34 int drm_agp_release_ioctl(struct drm_device *dev, void *data,
     35 			  struct drm_file *file_priv);
     36 int drm_agp_enable(struct drm_device *dev, struct drm_agp_mode mode);
     37 int drm_agp_enable_ioctl(struct drm_device *dev, void *data,
     38 			 struct drm_file *file_priv);
     39 int drm_agp_info(struct drm_device *dev, struct drm_agp_info *info);
     40 int drm_agp_info_ioctl(struct drm_device *dev, void *data,
     41 		       struct drm_file *file_priv);
     42 int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request);
     43 int drm_agp_alloc_ioctl(struct drm_device *dev, void *data,
     44 			struct drm_file *file_priv);
     45 int drm_agp_free(struct drm_device *dev, struct drm_agp_buffer *request);
     46 int drm_agp_free_ioctl(struct drm_device *dev, void *data,
     47 		       struct drm_file *file_priv);
     48 int drm_agp_unbind(struct drm_device *dev, struct drm_agp_binding *request);
     49 int drm_agp_unbind_ioctl(struct drm_device *dev, void *data,
     50 			 struct drm_file *file_priv);
     51 int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request);
     52 int drm_agp_bind_ioctl(struct drm_device *dev, void *data,
     53 		       struct drm_file *file_priv);
     54 #else /* __OS_HAS_AGP */
     55 
     56 static inline void drm_free_agp(struct agp_memory * handle, int pages)
     57 {
     58 }
     59 
     60 static inline int drm_bind_agp(struct agp_memory * handle, unsigned int start)
     61 {
     62 	return -ENODEV;
     63 }
     64 
     65 static inline int drm_unbind_agp(struct agp_memory * handle)
     66 {
     67 	return -ENODEV;
     68 }
     69 
     70 static inline struct agp_memory *drm_agp_bind_pages(struct drm_device *dev,
     71 					      struct page **pages,
     72 					      unsigned long num_pages,
     73 					      uint32_t gtt_offset,
     74 					      uint32_t type)
     75 {
     76 	return NULL;
     77 }
     78 
     79 static inline struct drm_agp_head *drm_agp_init(struct drm_device *dev)
     80 {
     81 	return NULL;
     82 }
     83 
     84 static inline void drm_agp_clear(struct drm_device *dev)
     85 {
     86 }
     87 
     88 static inline int drm_agp_acquire(struct drm_device *dev)
     89 {
     90 	return -ENODEV;
     91 }
     92 
     93 static inline int drm_agp_acquire_ioctl(struct drm_device *dev, void *data,
     94 					struct drm_file *file_priv)
     95 {
     96 	return -ENODEV;
     97 }
     98 
     99 static inline int drm_agp_release(struct drm_device *dev)
    100 {
    101 	return -ENODEV;
    102 }
    103 
    104 static inline int drm_agp_release_ioctl(struct drm_device *dev, void *data,
    105 					struct drm_file *file_priv)
    106 {
    107 	return -ENODEV;
    108 }
    109 
    110 static inline int drm_agp_enable(struct drm_device *dev,
    111 				 struct drm_agp_mode mode)
    112 {
    113 	return -ENODEV;
    114 }
    115 
    116 static inline int drm_agp_enable_ioctl(struct drm_device *dev, void *data,
    117 				       struct drm_file *file_priv)
    118 {
    119 	return -ENODEV;
    120 }
    121 
    122 static inline int drm_agp_info(struct drm_device *dev,
    123 			       struct drm_agp_info *info)
    124 {
    125 	return -ENODEV;
    126 }
    127 
    128 static inline int drm_agp_info_ioctl(struct drm_device *dev, void *data,
    129 				     struct drm_file *file_priv)
    130 {
    131 	return -ENODEV;
    132 }
    133 
    134 static inline int drm_agp_alloc(struct drm_device *dev,
    135 				struct drm_agp_buffer *request)
    136 {
    137 	return -ENODEV;
    138 }
    139 
    140 static inline int drm_agp_alloc_ioctl(struct drm_device *dev, void *data,
    141 				      struct drm_file *file_priv)
    142 {
    143 	return -ENODEV;
    144 }
    145 
    146 static inline int drm_agp_free(struct drm_device *dev,
    147 			       struct drm_agp_buffer *request)
    148 {
    149 	return -ENODEV;
    150 }
    151 
    152 static inline int drm_agp_free_ioctl(struct drm_device *dev, void *data,
    153 				     struct drm_file *file_priv)
    154 {
    155 	return -ENODEV;
    156 }
    157 
    158 static inline int drm_agp_unbind(struct drm_device *dev,
    159 				 struct drm_agp_binding *request)
    160 {
    161 	return -ENODEV;
    162 }
    163 
    164 static inline int drm_agp_unbind_ioctl(struct drm_device *dev, void *data,
    165 				       struct drm_file *file_priv)
    166 {
    167 	return -ENODEV;
    168 }
    169 
    170 static inline int drm_agp_bind(struct drm_device *dev,
    171 			       struct drm_agp_binding *request)
    172 {
    173 	return -ENODEV;
    174 }
    175 
    176 static inline int drm_agp_bind_ioctl(struct drm_device *dev, void *data,
    177 				     struct drm_file *file_priv)
    178 {
    179 	return -ENODEV;
    180 }
    181 #endif /* __OS_HAS_AGP */
    182 
    183 #endif /* _DRM_AGPSUPPORT_H_ */
    184