root/drivers/gpu/drm/drm_legacy.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. drm_legacy_ctxbitmap_init
  2. drm_legacy_ctxbitmap_cleanup
  3. drm_legacy_ctxbitmap_flush
  4. drm_legacy_create_map_hash
  5. drm_legacy_remove_map_hash
  6. drm_legacy_create_map_hash
  7. drm_legacy_remove_map_hash
  8. drm_legacy_master_rmmaps
  9. drm_legacy_rmmaps
  10. drm_legacy_vma_flush
  11. drm_legacy_lock_release
  12. drm_legacy_dma_setup
  13. drm_legacy_reclaim_buffers
  14. drm_legacy_init_members
  15. drm_legacy_destroy_members
  16. drm_legacy_dev_reinit
  17. drm_legacy_setup
  18. drm_legacy_lock_master_cleanup
  19. drm_master_legacy_init

   1 #ifndef __DRM_LEGACY_H__
   2 #define __DRM_LEGACY_H__
   3 
   4 /*
   5  * Copyright (c) 2014 David Herrmann <dh.herrmann@gmail.com>
   6  *
   7  * Permission is hereby granted, free of charge, to any person obtaining a
   8  * copy of this software and associated documentation files (the "Software"),
   9  * to deal in the Software without restriction, including without limitation
  10  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  11  * and/or sell copies of the Software, and to permit persons to whom the
  12  * Software is furnished to do so, subject to the following conditions:
  13  *
  14  * The above copyright notice and this permission notice shall be included in
  15  * all copies or substantial portions of the Software.
  16  *
  17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  18  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  19  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  20  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
  21  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  22  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  23  * OTHER DEALINGS IN THE SOFTWARE.
  24  */
  25 
  26 /*
  27  * This file contains legacy interfaces that modern drm drivers
  28  * should no longer be using. They cannot be removed as legacy
  29  * drivers use them, and removing them are API breaks.
  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  * Generic DRM Contexts
  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  * Generic Buffer Management
  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         /* do nothing */
 136 }
 137 #endif
 138 
 139 /*
 140  * AGP Support
 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 /* drm_lock.c */
 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 /* DMA support */
 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 /* Scatter Gather Support */
 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 /* __DRM_LEGACY_H__ */

/* [<][>][^][v][top][bottom][index][help] */