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