This source file includes following definitions.
- drm_legacy_ctxbitmap_init
- drm_legacy_ctxbitmap_cleanup
- drm_legacy_ctxbitmap_flush
- drm_legacy_create_map_hash
- drm_legacy_remove_map_hash
- drm_legacy_create_map_hash
- drm_legacy_remove_map_hash
- drm_legacy_master_rmmaps
- drm_legacy_rmmaps
- drm_legacy_vma_flush
- drm_legacy_lock_release
- drm_legacy_dma_setup
- drm_legacy_reclaim_buffers
- drm_legacy_init_members
- drm_legacy_destroy_members
- drm_legacy_dev_reinit
- drm_legacy_setup
- drm_legacy_lock_master_cleanup
- drm_master_legacy_init
   1 #ifndef __DRM_LEGACY_H__
   2 #define __DRM_LEGACY_H__
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 
  11 
  12 
  13 
  14 
  15 
  16 
  17 
  18 
  19 
  20 
  21 
  22 
  23 
  24 
  25 
  26 
  27 
  28 
  29 
  30 
  31 #include <linux/list.h>
  32 
  33 #include <drm/drm.h>
  34 #include <drm/drm_device.h>
  35 #include <drm/drm_legacy.h>
  36 
  37 struct agp_memory;
  38 struct drm_device;
  39 struct drm_file;
  40 struct drm_buf_desc;
  41 
  42 
  43 
  44 
  45 
  46 #define DRM_KERNEL_CONTEXT              0
  47 #define DRM_RESERVED_CONTEXTS           1
  48 
  49 #if IS_ENABLED(CONFIG_DRM_LEGACY)
  50 void drm_legacy_ctxbitmap_init(struct drm_device *dev);
  51 void drm_legacy_ctxbitmap_cleanup(struct drm_device *dev);
  52 void drm_legacy_ctxbitmap_flush(struct drm_device *dev, struct drm_file *file);
  53 #else
  54 static inline void drm_legacy_ctxbitmap_init(struct drm_device *dev) {}
  55 static inline void drm_legacy_ctxbitmap_cleanup(struct drm_device *dev) {}
  56 static inline void drm_legacy_ctxbitmap_flush(struct drm_device *dev, struct drm_file *file) {}
  57 #endif
  58 
  59 void drm_legacy_ctxbitmap_free(struct drm_device *dev, int ctx_handle);
  60 
  61 #if IS_ENABLED(CONFIG_DRM_LEGACY)
  62 int drm_legacy_resctx(struct drm_device *d, void *v, struct drm_file *f);
  63 int drm_legacy_addctx(struct drm_device *d, void *v, struct drm_file *f);
  64 int drm_legacy_getctx(struct drm_device *d, void *v, struct drm_file *f);
  65 int drm_legacy_switchctx(struct drm_device *d, void *v, struct drm_file *f);
  66 int drm_legacy_newctx(struct drm_device *d, void *v, struct drm_file *f);
  67 int drm_legacy_rmctx(struct drm_device *d, void *v, struct drm_file *f);
  68 
  69 int drm_legacy_setsareactx(struct drm_device *d, void *v, struct drm_file *f);
  70 int drm_legacy_getsareactx(struct drm_device *d, void *v, struct drm_file *f);
  71 #endif
  72 
  73 
  74 
  75 
  76 
  77 #define DRM_MAP_HASH_OFFSET 0x10000000
  78 
  79 #if IS_ENABLED(CONFIG_DRM_LEGACY)
  80 static inline int drm_legacy_create_map_hash(struct drm_device *dev)
  81 {
  82         return drm_ht_create(&dev->map_hash, 12);
  83 }
  84 
  85 static inline void drm_legacy_remove_map_hash(struct drm_device *dev)
  86 {
  87         drm_ht_remove(&dev->map_hash);
  88 }
  89 #else
  90 static inline int drm_legacy_create_map_hash(struct drm_device *dev)
  91 {
  92         return 0;
  93 }
  94 
  95 static inline void drm_legacy_remove_map_hash(struct drm_device *dev) {}
  96 #endif
  97 
  98 
  99 #if IS_ENABLED(CONFIG_DRM_LEGACY)
 100 int drm_legacy_getmap_ioctl(struct drm_device *dev, void *data,
 101                             struct drm_file *file_priv);
 102 int drm_legacy_addmap_ioctl(struct drm_device *d, void *v, struct drm_file *f);
 103 int drm_legacy_rmmap_ioctl(struct drm_device *d, void *v, struct drm_file *f);
 104 
 105 int drm_legacy_addbufs(struct drm_device *d, void *v, struct drm_file *f);
 106 int drm_legacy_infobufs(struct drm_device *d, void *v, struct drm_file *f);
 107 int drm_legacy_markbufs(struct drm_device *d, void *v, struct drm_file *f);
 108 int drm_legacy_freebufs(struct drm_device *d, void *v, struct drm_file *f);
 109 int drm_legacy_mapbufs(struct drm_device *d, void *v, struct drm_file *f);
 110 int drm_legacy_dma_ioctl(struct drm_device *d, void *v, struct drm_file *f);
 111 #endif
 112 
 113 int __drm_legacy_infobufs(struct drm_device *, void *, int *,
 114                           int (*)(void *, int, struct drm_buf_entry *));
 115 int __drm_legacy_mapbufs(struct drm_device *, void *, int *,
 116                           void __user **,
 117                           int (*)(void *, int, unsigned long, struct drm_buf *),
 118                           struct drm_file *);
 119 
 120 #if IS_ENABLED(CONFIG_DRM_LEGACY)
 121 void drm_legacy_master_rmmaps(struct drm_device *dev,
 122                               struct drm_master *master);
 123 void drm_legacy_rmmaps(struct drm_device *dev);
 124 #else
 125 static inline void drm_legacy_master_rmmaps(struct drm_device *dev,
 126                                             struct drm_master *master) {}
 127 static inline void drm_legacy_rmmaps(struct drm_device *dev) {}
 128 #endif
 129 
 130 #if IS_ENABLED(CONFIG_DRM_VM) && IS_ENABLED(CONFIG_DRM_LEGACY)
 131 void drm_legacy_vma_flush(struct drm_device *d);
 132 #else
 133 static inline void drm_legacy_vma_flush(struct drm_device *d)
 134 {
 135         
 136 }
 137 #endif
 138 
 139 
 140 
 141 
 142 
 143 struct drm_agp_mem {
 144         unsigned long handle;
 145         struct agp_memory *memory;
 146         unsigned long bound;
 147         int pages;
 148         struct list_head head;
 149 };
 150 
 151 
 152 #if IS_ENABLED(CONFIG_DRM_LEGACY)
 153 int drm_legacy_lock(struct drm_device *d, void *v, struct drm_file *f);
 154 int drm_legacy_unlock(struct drm_device *d, void *v, struct drm_file *f);
 155 void drm_legacy_lock_release(struct drm_device *dev, struct file *filp);
 156 #else
 157 static inline void drm_legacy_lock_release(struct drm_device *dev, struct file *filp) {}
 158 #endif
 159 
 160 
 161 #if IS_ENABLED(CONFIG_DRM_LEGACY)
 162 int drm_legacy_dma_setup(struct drm_device *dev);
 163 void drm_legacy_dma_takedown(struct drm_device *dev);
 164 #else
 165 static inline int drm_legacy_dma_setup(struct drm_device *dev)
 166 {
 167         return 0;
 168 }
 169 #endif
 170 
 171 void drm_legacy_free_buffer(struct drm_device *dev,
 172                             struct drm_buf * buf);
 173 #if IS_ENABLED(CONFIG_DRM_LEGACY)
 174 void drm_legacy_reclaim_buffers(struct drm_device *dev,
 175                                 struct drm_file *filp);
 176 #else
 177 static inline void drm_legacy_reclaim_buffers(struct drm_device *dev,
 178                                               struct drm_file *filp) {}
 179 #endif
 180 
 181 
 182 #if IS_ENABLED(CONFIG_DRM_LEGACY)
 183 void drm_legacy_sg_cleanup(struct drm_device *dev);
 184 int drm_legacy_sg_alloc(struct drm_device *dev, void *data,
 185                         struct drm_file *file_priv);
 186 int drm_legacy_sg_free(struct drm_device *dev, void *data,
 187                        struct drm_file *file_priv);
 188 #endif
 189 
 190 #if IS_ENABLED(CONFIG_DRM_LEGACY)
 191 void drm_legacy_init_members(struct drm_device *dev);
 192 void drm_legacy_destroy_members(struct drm_device *dev);
 193 void drm_legacy_dev_reinit(struct drm_device *dev);
 194 int drm_legacy_setup(struct drm_device * dev);
 195 #else
 196 static inline void drm_legacy_init_members(struct drm_device *dev) {}
 197 static inline void drm_legacy_destroy_members(struct drm_device *dev) {}
 198 static inline void drm_legacy_dev_reinit(struct drm_device *dev) {}
 199 static inline int drm_legacy_setup(struct drm_device * dev) { return 0; }
 200 #endif
 201 
 202 #if IS_ENABLED(CONFIG_DRM_LEGACY)
 203 void drm_legacy_lock_master_cleanup(struct drm_device *dev, struct drm_master *master);
 204 #else
 205 static inline void drm_legacy_lock_master_cleanup(struct drm_device *dev, struct drm_master *master) {}
 206 #endif
 207 
 208 #if IS_ENABLED(CONFIG_DRM_LEGACY)
 209 void drm_master_legacy_init(struct drm_master *master);
 210 #else
 211 static inline void drm_master_legacy_init(struct drm_master *master) {}
 212 #endif
 213 
 214 #endif