Home | History | Annotate | Line # | Download | only in drm
drm_agpsupport.h revision 1.2.6.3
      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 #if !defined(__NetBSD__)
     57 
     58 static inline void drm_free_agp(struct agp_memory * handle, int pages)
     59 {
     60 }
     61 
     62 static inline int drm_bind_agp(struct agp_memory * handle, unsigned int start)
     63 {
     64 	return -ENODEV;
     65 }
     66 
     67 static inline int drm_unbind_agp(struct agp_memory * handle)
     68 {
     69 	return -ENODEV;
     70 }
     71 
     72 #endif
     73 
     74 static inline struct agp_memory *drm_agp_bind_pages(struct drm_device *dev,
     75 					      struct page **pages,
     76 					      unsigned long num_pages,
     77 					      uint32_t gtt_offset,
     78 					      uint32_t type)
     79 {
     80 	return NULL;
     81 }
     82 
     83 static inline struct drm_agp_head *drm_agp_init(struct drm_device *dev)
     84 {
     85 	return NULL;
     86 }
     87 
     88 static inline void drm_agp_clear(struct drm_device *dev)
     89 {
     90 }
     91 
     92 static inline int drm_agp_acquire(struct drm_device *dev)
     93 {
     94 	return -ENODEV;
     95 }
     96 
     97 static inline int drm_agp_acquire_ioctl(struct drm_device *dev, void *data,
     98 					struct drm_file *file_priv)
     99 {
    100 	return -ENODEV;
    101 }
    102 
    103 static inline int drm_agp_release(struct drm_device *dev)
    104 {
    105 	return -ENODEV;
    106 }
    107 
    108 static inline int drm_agp_release_ioctl(struct drm_device *dev, void *data,
    109 					struct drm_file *file_priv)
    110 {
    111 	return -ENODEV;
    112 }
    113 
    114 static inline int drm_agp_enable(struct drm_device *dev,
    115 				 struct drm_agp_mode mode)
    116 {
    117 	return -ENODEV;
    118 }
    119 
    120 static inline int drm_agp_enable_ioctl(struct drm_device *dev, void *data,
    121 				       struct drm_file *file_priv)
    122 {
    123 	return -ENODEV;
    124 }
    125 
    126 static inline int drm_agp_info(struct drm_device *dev,
    127 			       struct drm_agp_info *info)
    128 {
    129 	return -ENODEV;
    130 }
    131 
    132 static inline int drm_agp_info_ioctl(struct drm_device *dev, void *data,
    133 				     struct drm_file *file_priv)
    134 {
    135 	return -ENODEV;
    136 }
    137 
    138 static inline int drm_agp_alloc(struct drm_device *dev,
    139 				struct drm_agp_buffer *request)
    140 {
    141 	return -ENODEV;
    142 }
    143 
    144 static inline int drm_agp_alloc_ioctl(struct drm_device *dev, void *data,
    145 				      struct drm_file *file_priv)
    146 {
    147 	return -ENODEV;
    148 }
    149 
    150 static inline int drm_agp_free(struct drm_device *dev,
    151 			       struct drm_agp_buffer *request)
    152 {
    153 	return -ENODEV;
    154 }
    155 
    156 static inline int drm_agp_free_ioctl(struct drm_device *dev, void *data,
    157 				     struct drm_file *file_priv)
    158 {
    159 	return -ENODEV;
    160 }
    161 
    162 static inline int drm_agp_unbind(struct drm_device *dev,
    163 				 struct drm_agp_binding *request)
    164 {
    165 	return -ENODEV;
    166 }
    167 
    168 static inline int drm_agp_unbind_ioctl(struct drm_device *dev, void *data,
    169 				       struct drm_file *file_priv)
    170 {
    171 	return -ENODEV;
    172 }
    173 
    174 static inline int drm_agp_bind(struct drm_device *dev,
    175 			       struct drm_agp_binding *request)
    176 {
    177 	return -ENODEV;
    178 }
    179 
    180 static inline int drm_agp_bind_ioctl(struct drm_device *dev, void *data,
    181 				     struct drm_file *file_priv)
    182 {
    183 	return -ENODEV;
    184 }
    185 #endif /* __OS_HAS_AGP */
    186 
    187 #endif /* _DRM_AGPSUPPORT_H_ */
    188